
Ideaslocas Repository
이 프로젝트는 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_KEY입니다.
프로젝트의 주요 함수는 해시된 비밀번호, 사용할 엔진, 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")
HIBP(Have I been pwned) API를 처리하는 함수로, 해시의 처음 5자를 보낸 후 전체 해시와 비교하여 비밀번호/해시가 유출되었는지 확인합니다.
engine_HIBP(hashed_password, engine, api_key)
이 프로젝트에는 모든 함수의 올바른 작동을 확인하기 위한 일련의 테스트가 있으며, 이를 위해 "pytest" 라이브러리가 사용되었습니다. 테스트를 실행하려면 다음 명령어로 pytest를 설치하세요:
pip install pytest
설치가 완료되면 "pytest" 명령어를 실행하기만 하면 테스트가 자동으로 실행되며, 발견된 오류가 터미널에 반환됩니다.
실험실에서의 테스트 결과는 다음과 같습니다:
이 프로젝트는 GNU 일반 공중 사용 허가서(GNU General Public License)에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
본 소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 묵시적 보증을 포함하여 어떠한 종류의 명시적 또는 묵시적 보증도 없이 제공됩니다. 어떠한 경우에도 저작자나 저작권 보유자는 계약, 불법행위 또는 기타 행위에 기인한 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래로 인한 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
이 소프트웨어에는 QA 프로세스가 없습니다. 이 소프트웨어는 개념 증명(Proof of Concept)입니다.
문제가 있으시면 다음 주소로 연락하실 수 있습니다:
[email protected] - Ideas Locas CDCO - Telefónica
많은 지역에서 소유자의 동의 없이 귀하가 소유하지 않은 컴퓨터에 소프트웨어를 설치하는 것은 범죄가 될 수 있습니다. 당사는 어떠한 불법적인 목적으로도 PoC를 사용하는 것을 승인하지 않습니다. 당사의 소프트웨어를 다운로드하거나 어떤 방식으로든 사용하려면 다음 사항을 인정하고 동의해야 합니다:
1 - 귀하는 이 PoC를 합법적인 방식으로만 사용할 것임을 선언합니다. 합법성에 의문이 있는 경우, 이 PoC를 사용할 관할권에서 면허가 있는 변호사와 상담하십시오.
2 - 귀하는 소프트웨어를 설치할 컴퓨터가 귀하의 소유이거나 귀하가 소유자의 동의를 받아 소프트웨어를 관리 및 설치할 권한이 있음을 인정합니다.
| Python Version | Function Hash | Function List | Function Password | RANDOM Hash | RANDOM Password | Comment |
|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Python 3.5에서는 random.choice를 사용할 수 없음 // 지원 중단된 Python 버전 |