
Ideaslocas リポジトリ
このプロジェクトは、k-anonymity方式を使用して高いレベルのプライバシーを維持しながら、漏洩したパスワードの検索を支援することを目的としています。
これを実現するために、さまざまなサービスの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: 「Hash」、「Password」、または改行で区切られたハッシュまたはパスワードのリストを含むファイル名です。
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")
この関数は、受け取ったファイルの行を1行ずつ読み取り、各パスワードをチェックし、受け取ったパスワードとそれが漏洩したかどうかの情報を提供します。
passme_file(filename, engine="HIBP", api_key="0")
この関数は、受け取ったファイルの行を1行ずつ読み取り、各ハッシュをチェックし、受け取ったハッシュとそれが漏洩したかどうかの情報を提供します。
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 General Public Licenseの下でライセンスされています。詳細はLICENSEファイルを参照してください。
本ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害の黙示の保証を含むがこれに限定されない、いかなる種類の保証もありません。いかなる場合においても、著作者または著作権所有者は、契約行為、不法行為、またはその他の行為に起因する、ソフトウェアまたはソフトウェアの使用またはその他の取引から生じるいかなる請求、損害、またはその他の責任についても責任を負いません。
このソフトウェアにはQAプロセスはありません。このソフトウェアは概念実証です。
問題が発生した場合は、以下に連絡してください:
[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 バージョン |