
Репозиторий Ideaslocas
Этот проект предназначен для поиска утекших паролей с сохранением высокого уровня конфиденциальности с использованием метода k-анонимности.
Для этого используются API различных сервисов, отправляя только часть хеша проверяемого пароля, например, первые 5 символов.
Для работы проекта необходимы некоторые библиотеки, для их установки используйте следующую команду:
pip install -r requirements
Помните, что требуется Python 3.
passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY]
FUNC: Тип элемента, который вы хотите проверить. Может быть -h/--hash, -p/--password,
-f/--file, -l/--list или --help.
ELEMENT: «Хеш», «Пароль» или имя файла, содержащего список хешей или паролей, разделённых новой строкой.
ENGINE: Движок утечек, который вы хотите использовать. По умолчанию используется HIBP (Have I been PWN).
API_KEY: Ключ API, необходимый для некоторых функций некоторых движков.
Основная функция проекта получает хешированный пароль, используемый движок и ключ API.
В зависимости от полученного движка, ключ API и хешированный пароль будут отправлены в ту или иную функцию.
Если вы хотите добавить собственный движок или движок, который ещё не реализован, просто добавьте ещё один вариант здесь.
passme_hash(hashed_password, engine="HIBP", api_key="0")
Эта функция хеширует полученный пароль с помощью SHA-1 и отправляет хеш в функцию passme_hash().
passme_password(password, engine="HIBP", api_key="0")
Эта функция читает строки полученного файла одну за другой для проверки каждого пароля, предоставляя информацию о полученном пароле и о том, был ли он скомпрометирован.
passme_file(filename, engine="HIBP", api_key="0")
Эта функция читает строки полученного файла одну за другой для проверки каждого хеша, предоставляя информацию о полученном хеше и о том, был ли он скомпрометирован.
passme_list(filename, engine="HIBP", api_key="0")
Функция, которая взаимодействует с API HIBP (Have i been pwned), отправляет первые пять символов хеша, а затем сравнивает их с полным хешем, чтобы проверить, была ли утечка пароля/хеша.
engine_HIBP(hashed_password, engine, api_key)
Этот проект содержит серию тестов для проверки корректной работы всех его функций. Для этого используется библиотека pytest. Чтобы запустить тесты, установите pytest с помощью следующей команды:
pip install pytest
После установки просто выполните команду «pytest», чтобы тесты запустились автоматически. Любые обнаруженные ошибки будут выведены в терминал.
Результаты тестирования в лаборатории следующие:
Этот проект лицензирован в соответствии с GNU General Public License. Подробности см. в файле LICENSE.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ОПРЕДЕЛЁННОМУ НАЗНАЧЕНИЮ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ, ВОЗНИКШИХ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМ ОБРАЗОМ СВЯЗАННЫХ С НИМ.
Данное программное обеспечение не имеет процесса обеспечения качества. Это программное обеспечение является доказательством концепции (Proof of Concept).
Если у вас возникли проблемы, вы можете связаться:
[email protected] - Ideas Locas CDCO - Telefónica
Во многих местах установка программного обеспечения на компьютер, который вам не принадлежит, без согласия владельца может считаться преступлением. Мы не одобряем использование PoC в любых незаконных целях. Загружая или используя наше программное обеспечение любым способом, вы должны признать и одобрить следующее:
1 - Вы заявляете, что эта PoC будет использоваться исключительно законным образом. Если у вас есть сомнения относительно законности, проконсультируйтесь с лицензированным адвокатом в юрисдикции, где вы будете использовать эту PoC.
2 - Вы признаёте, что компьютер, на который будет установлено программное обеспечение, принадлежит вам, или у вас есть согласие владельца на управление и установку программного обеспечения на него.
| Версия Python | Функция Hash | Функция List | Функция Password | Случайный Hash | Случайный Password | Комментарий |
|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice недоступен в Python 3.5 // Устаревшая версия Python |