Dashlane は人気のパスワードマネージャーですが、もしマスターパスワードを忘れてしまったら大変です 😥。そんな時に役立つ可能性があるのが、John the Ripper という強力なパスワード回復ツール群に含まれる `dashlane2john` スクリプトです。このガイドでは、`dashlane2john` を使って Dashlane のデータからパスワードハッシュを抽出し、John the Ripper でマスターパスワードの解析を試みる方法を詳しく解説します。
はじめに:Dashlane と John the Ripper
Dashlane は、個人およびビジネスユーザー向けのパスワード管理ソリューションです。Webサイトのログイン情報、クレジットカード情報、個人情報などを安全に保管し、デバイス間で同期する機能を提供します。強力な暗号化(AES-256)とゼロ知識アーキテクチャを採用しており、Dashlane 自身もユーザーのマスターパスワードや保管庫のデータにアクセスできない仕組みになっています。
John the Ripper (通称 John) は、オープンソースのパスワードクラッキングツールです。元々は Unix 系システムの弱いパスワードを検出するために開発されましたが、現在では非常に多くの種類のパスワードハッシュや暗号化形式に対応しています。システム管理者によるパスワード強度監査や、ペネトレーションテスト、そしてパスワード回復などに利用されます。
`dashlane2john` は、John the Ripper の Jumbo バージョンに含まれるユーティリティスクリプトの一つです。Dashlane のデータファイル(主にエクスポートされたファイル)から、John the Ripper が解析できる形式のハッシュ値を抽出する役割を担います。
Dashlane のマスターパスワードを忘れてしまった場合、公式な手段での回復は基本的にできません。これはゼロ知識アーキテクチャを採用しているため、Dashlane 側でユーザーのパスワードをリセットすることが不可能だからです。そのため、最後の手段として、自分のデータファイルに対してパスワードクラッキングツールを試すことが考えられますが、成功の保証はなく、時間と計算リソースを大量に消費する可能性があります。
準備するもの 🛠️
`dashlane2john` と John the Ripper を使用するには、以下のものが必要です。
- John the Ripper (Jumbo バージョン): 標準の John the Ripper ではなく、多くの追加機能やフォーマットに対応した Jumbo バージョンが必要です。`dashlane2john.py` スクリプトもこれに含まれています。Linux ディストリビューション(特に Kali Linux など)には標準で含まれていることが多いですが、そうでない場合は 公式サイト からダウンロードしてインストールまたはコンパイルする必要があります。
- Python 環境: `dashlane2john.py` は Python スクリプトであるため、Python 3 の実行環境が必要です。多くの Linux システムにはプリインストールされています。
- Dashlane のデータファイル: これが最も重要です。`dashlane2john` が処理できる形式の Dashlane データファイルが必要です。一般的には、Dashlane アプリケーションからエクスポートされた `.dash` (セキュアアーカイブ) または `.csv` ファイルを使用します。(ただし、`.csv` はハッシュ情報を含まない可能性があるため、`.dash` ファイルが推奨されますが、現状の `dashlane2john` がどの形式に対応しているかは確認が必要です。古いバージョンのローカルデータファイル `.aes` なども対象になる可能性がありましたが、最近の Dashlane ではアクセスが困難です)。
John the Ripper のインストール(Debian/Ubuntu 系 Linux の例):
sudo apt update
sudo apt install john
これにより、John the Ripper (多くの場合 Jumbo バージョン) と関連ツールがインストールされます。`dashlane2john.py` スクリプトは通常 `/usr/share/john/` や `/usr/lib/john/`、あるいは John のソースディレクトリ内の `run` ディレクトリなどに配置されます。見つからない場合は `find / -name dashlane2john.py 2>/dev/null` コマンドなどで探してみてください。
Dashlane データファイルのエクスポート方法 📤
John the Ripper で解析を試みるためには、まず Dashlane からデータをエクスポートする必要があります。Dashlane は主に2種類のエクスポート形式を提供しています。
-
DASH ファイル (セキュアアーカイブ):
- Dashlane 独自の暗号化された形式です。
- パスワード情報だけでなく、アカウント内のほぼ全てのデータ(個人情報、支払い情報、セキュアノートなど)を含みます。
- バックアップや Dashlane アカウント間の移行に適しています。
- パスワードハッシュが含まれている可能性が高いため、`dashlane2john` で使用するにはこちらが適していると考えられます。
- エクスポート手順(Webアプリの場合):
- Dashlane Web アプリにログインします。
- 「マイアカウント」 > 「設定」 > 「データをエクスポート」を選択します。
- 「DASH ファイルをエクスポート」を選択します。
- マスターパスワードを入力してロックを解除します。
- ファイルがダウンロードされます(例: `dashlane-export.dash`)。
-
CSV ファイル (カンマ区切り):
- 暗号化されていないプレーンテキストのファイルです。取り扱いには十分注意が必要です。
- 主に他のパスワードマネージャーへの移行に使用されます。
- 通常、ログイン情報(ユーザー名、パスワード、ウェブサイトURLなど)のみが含まれます。
- マスターパスワードのハッシュ情報が含まれていない可能性が高いです。そのため、`dashlane2john` でマスターパスワードを解析する目的には不向きかもしれません。しかし、含まれる情報や `dashlane2john` の対応状況によっては利用できるケースも考えられます。
- エクスポート手順(Webアプリの場合):
- Dashlane Web アプリにログインします。
- 「マイアカウント」 > 「設定」 > 「データをエクスポート」を選択します。
- 「CSV ファイルをエクスポート」を選択します。
- マスターパスワードを入力してロックを解除します。
- 通常、ZIP ファイルとしてダウンロードされ、その中に `credentials.csv` などのファイルが含まれます。
- ⚠️ CSVファイルは暗号化されていないため、使用後は速やかに安全に削除してください。
現在の `dashlane2john` スクリプトが公式にサポートしている具体的な Dashlane のエクスポート形式やバージョンについての最新情報は、John the Ripper のドキュメントやコミュニティで確認することをお勧めします。多くの場合、`.dash` ファイルがターゲットとなります。
過去のバージョンについて: 以前の Dashlane デスクトップアプリケーションでは、ローカルに `.aes` 形式などの暗号化されたデータベースファイルを保存していました。もし古いバージョンのデータファイルが残っていれば、それが `dashlane2john` の対象となる可能性もありますが、最近のバージョンではこの形式は使われていないか、アクセスが非常に困難になっています。
`dashlane2john` の実行方法 ⚙️
Dashlane のデータファイル(ここでは `.dash` ファイルを想定)を取得したら、`dashlane2john.py` スクリプトを使って John the Ripper が解析できる形式のハッシュ値を抽出します。
基本的なコマンド構文は以下の通りです。
# Python 3 を明示的に指定する場合
python3 /path/to/dashlane2john.py /path/to/your_dashlane_export.dash > dashlane_hash.txt
# 環境によっては python だけで実行可能
python /path/to/dashlane2john.py /path/to/your_dashlane_export.dash > dashlane_hash.txt
詳細解説:
python3
またはpython
: Python インタープリタを起動します。/path/to/dashlane2john.py
: あなたの環境における `dashlane2john.py` スクリプトへのフルパスを指定します。例: `/usr/share/john/dashlane2john.py`/path/to/your_dashlane_export.dash
: エクスポートした Dashlane の `.dash` ファイルへのパスを指定します。例: `/home/user/Downloads/dashlane-export.dash`> dashlane_hash.txt
: スクリプトの標準出力を `dashlane_hash.txt` という名前のファイルにリダイレクト(保存)します。このファイルに抽出されたハッシュ値が書き込まれます。ファイル名は任意ですが、わかりやすい名前をつけましょう。
実行例:
仮に `/usr/share/john/` にスクリプトがあり、ダウンロードフォルダに `my_dashlane_data.dash` というファイルがあるとします。
python3 /usr/share/john/dashlane2john.py ~/Downloads/my_dashlane_data.dash > ~/dashlane_hash.txt
成功すれば、ホームディレクトリに `dashlane_hash.txt` というファイルが作成され、その中に以下のような形式のハッシュ文字列が記述されているはずです(実際の形式は異なる場合があります)。
my_dashlane_data.dash:$dashlane$*...(長いハッシュ文字列)...
この文字列が、John the Ripper がマスターパスワードを解析するために使用するデータです。ファイル名やユーザー名のような情報が含まれることもあります。
エラーが発生した場合:
- ファイルが見つからない: `dashlane2john.py` や `.dash` ファイルへのパスが正しいか確認してください。
- Python エラー: Python のバージョンが古い、必要なライブラリが不足している、などの可能性があります。エラーメッセージを確認し、対処してください。
- フォーマット非対応エラー: `dashlane2john.py` が、使用している Dashlane のエクスポートファイルのバージョンや形式に対応していない可能性があります。John the Ripper を最新の Jumbo バージョンに更新するか、異なる形式(もしあれば)のエクスポートファイルを試してみてください。
- .dash ファイルが破損している: エクスポートが正常に完了していなかったり、ファイルが破損している可能性も考えられます。再度エクスポートを試みてください。
John the Ripper によるハッシュ解析 💥
`dashlane2john` でハッシュファイル (`dashlane_hash.txt`) が作成できたら、いよいよ John the Ripper を使ってマスターパスワードの解析を試みます。
最も基本的な実行コマンドは以下の通りです。
john ~/dashlane_hash.txt
John the Ripper は、指定されたハッシュファイル (`dashlane_hash.txt`) を読み込み、ファイル内のハッシュ形式 (`$dashlane$` などの識別子から) を自動的に検出し、デフォルトの設定に基づいて複数のクラッキングモード(シングルクラックモード、辞書モード、インクリメンタルモードなど)を順番に試行します。
クラッキングモードとオプション
より効率的に解析を行うために、特定のクラッキングモードやオプションを指定できます。
-
辞書攻撃 (Wordlist Mode): パスワードの候補リスト(辞書ファイル)を使って解析します。強力な辞書ファイルを使うことで、よく使われる単語や過去に漏洩したパスワードなどを効率的に試すことができます。
有名な辞書リストとして `rockyou.txt` などがあります。Kali Linux には `/usr/share/wordlists/` ディレクトリ以下に様々な辞書が用意されていることが多いです。john --wordlist=/path/to/wordlist.txt ~/dashlane_hash.txt
john --wordlist=/usr/share/wordlists/rockyou.txt ~/dashlane_hash.txt
-
ルールベース攻撃 (Rules): 辞書攻撃と組み合わせて、単語を変化させるルール(例: `Password` -> `P@ssword`, `password123` など)を適用します。
`–rules` オプションでルールセット名を指定します。デフォルトのルールも存在します。john --wordlist=/path/to/wordlist.txt --rules=KoreLogic ~/dashlane_hash.txt
-
インクリメンタルモード (Incremental Mode): 指定された文字セット(例: 数字のみ、英小文字のみ、全文字種)を使って、総当たり的にパスワード候補を生成して試します。単純な短いパスワードには有効ですが、長く複雑なパスワードには膨大な時間がかかります。
john --incremental=Digits ~/dashlane_hash.txt # 数字のみ john --incremental=Lower ~/dashlane_hash.txt # 英小文字のみ john --incremental=All ~/dashlane_hash.txt # 全ての印刷可能文字
-
マスクモード (Mask Mode): パスワードのパターン(マスク)を指定して解析します。例えば、「大文字1文字 + 小文字7文字 + 数字2文字」のようなパターンがわかっている場合に有効です。
(john --mask='?u?l?l?l?l?l?l?d?d' ~/dashlane_hash.txt
?u
=大文字,?l
=小文字,?d
=数字) -
フォーマット指定: John がハッシュ形式を自動検出できない場合や、特定の形式で試したい場合に指定します。
john --format=dashlane ~/dashlane_hash.txt
解析の実行と結果の確認
コマンドを実行すると、John は解析を開始します。解析中は、任意のキーを押すと現在の状況(試行速度、経過時間、現在のモードなど)が表示されます。`q` キーまたは Ctrl+C で中断できます(進捗は自動的に保存されます)。
パスワードが見つかると、ターミナルに表示され、`$JOHN/john.pot` (通常は `~/.john/john.pot` または John の実行ディレクトリ内の `john.pot`) というファイルに記録されます。
解析が完了した後や、中断したセッションの結果を確認するには、`–show` オプションを使用します。
john --show ~/dashlane_hash.txt
もしパスワードがクラックされていれば、以下のように表示されます(形式は異なる場合があります)。
my_dashlane_data.dash:CorrectPassword123: ... (他の情報) ...
1 password hash cracked, 0 left
`CorrectPassword123` の部分が解析されたマスターパスワードです。もし何も表示されなければ、まだパスワードは見つかっていません。
中断したセッションを再開するには `–restore` オプションを使います。
john --restore
重要な注意点: Dashlane のマスターパスワードは、ユーザーが設定したものであり、通常は非常に強力なものが推奨されています。特に長く、複雑で、ユニークなパスワードを設定していた場合、John the Ripper を使っても解析には膨大な時間(数日、数週間、数年、あるいはそれ以上)がかかるか、現実的な時間内には解析できない可能性が高いです。成功は保証されるものではありません。
倫理的な考慮事項と法的側面 ⚖️
`dashlane2john` や John the Ripper のようなパスワード回復・解析ツールは非常に強力ですが、その使用には大きな責任が伴います。
- 自己責任と正当な権限: これらのツールは、あなたが所有するアカウントのパスワードを忘れてしまった場合の回復や、あなたが管理するシステムのセキュリティ強度をテストする(そしてその許可を得ている)場合にのみ使用してください。
- 不正アクセス禁止法: 他人の Dashlane アカウントやデータファイルに対して、本人の明確な許可なくこれらのツールを使用することは、不正アクセス行為等の禁止等に関する法律(不正アクセス禁止法)に抵触する可能性が非常に高い犯罪行為です。絶対に避けてください。
- 倫理: たとえ技術的に可能であっても、許可なく他人のパスワードを解析しようとする行為は、重大なプライバシー侵害であり、倫理的に許されません。
- パスワード強度の重要性: このプロセスを通じて、強力なマスターパスワードの重要性を再認識するはずです。長く、複雑で、推測されにくいパスワードは、たとえハッシュが漏洩したとしても、クラッキングされるリスクを大幅に低減します。Dashlane などのパスワードマネージャーは、強力なパスワードの生成機能も提供しています。
- ツールの目的理解: John the Ripper は、元々は「弱い」パスワードを検出するためのセキュリティ監査ツールとして開発されました。その能力を悪用せず、本来の目的や正当な理由(自己アカウントの回復など)の範囲内で責任を持って使用することが求められます。
技術的な知識やツールは、使い方次第で善にも悪にもなり得ます。常に法律と倫理を遵守し、正しい目的のためにのみ使用するよう心がけてください。
トラブルシューティングと補足 🤔
`dashlane2john` が動作しない場合
- John the Ripper のバージョン: 古いバージョンの John では `dashlane2john` が含まれていないか、最新の Dashlane エクスポート形式に対応していない場合があります。最新の Jumbo バージョンを使用しているか確認してください。
- Python のパス/バージョン: システムに複数の Python バージョンがある場合、適切なバージョン (通常は Python 3) でスクリプトが実行されているか確認してください (`python3` を明示的に指定するなど)。
- ファイル形式の互換性: Dashlane のエクスポート形式は時々変更される可能性があります。`dashlane2john` が現在の形式に対応しているか、John the Ripper の GitHub リポジトリの issue などで確認してみてください。場合によっては、スクリプトの修正や更新が必要になるかもしれません。
- 入力ファイル: `.dash` ファイルが破損していないか、正しくエクスポートされているか確認してください。CSV ファイルを使用している場合、必要なハッシュ情報が含まれていない可能性が高いです。
John the Ripper で解析が進まない/遅い場合
- パスワードの複雑さ: マスターパスワードが非常に長く複雑な場合、解析には膨大な時間がかかります。これはツールの問題ではなく、パスワード強度が高いことの証明です。
- ハードウェア性能: パスワード解析は CPU (または GPU を使う設定の場合 GPU) の計算能力に大きく依存します。高性能なハードウェアほど高速に処理できます。
- 辞書/ルールの選択: 使用している辞書ファイルやルールが、実際のパスワードのパターンと合っていない場合、クラックは成功しにくいです。より大規模な辞書や、より多様なルールを試すことができますが、その分時間もかかります。
- クラッキングモード: インクリメンタルモード(総当たり)は、特に文字種や桁数が多い場合に非常に時間がかかります。心当たりのあるパターンがあれば、マスクモードなどを試す方が効率的な場合があります。
パスワード回復以外の選択肢
Dashlane のマスターパスワードを忘れた場合、パスワードクラッキングは最後の手段であり、成功率も高くありません。もし Dashlane アカウントに緊急連絡先を設定していたり、他のデバイスでログイン状態が維持されているなどの状況があれば、そちらからのアクセス回復を試みる方が現実的かもしれません(ただし、Dashlane の仕様変更により、これらの手段が利用できるかは確認が必要です)。基本的には、マスターパスワードを忘れるとアクセスは絶望的と考え、忘れないように管理することが最も重要です。
まとめ ✨
`dashlane2john` は、Dashlane のマスターパスワードを忘れてしまった場合に、John the Ripper を使って回復を試みるための重要なステップです。Dashlane から適切なデータファイル(通常は `.dash` 形式のセキュアアーカイブ)をエクスポートし、`dashlane2john` スクリプトでハッシュ値を抽出し、John the Ripper で解析を実行します。
このプロセスは技術的に複雑であり、成功が保証されるものではありません。特に、強力なマスターパスワードを設定していた場合は、解析に非現実的な時間がかかる可能性が高いです。
最も重要なことは、これらのツールを倫理的かつ合法的に使用することです。自身のデータ回復や正当な権限のあるセキュリティテスト以外の目的で使用することは絶対に避けてください。
パスワードマネージャーは非常に便利ですが、マスターパスワードの管理は自己責任です。忘れないように安全な方法で記録・管理することが、結局のところ最も確実な対策となります。💪
参考情報
- John the Ripper 公式サイト: https://www.openwall.com/john/ (ドキュメント、ダウンロードなど)
- John the Ripper GitHub リポジトリ (Jumbo): https://github.com/openwall/john (*2john スクリプトのソースコードや issue が確認できます)
- Dashlane 公式サイト: https://www.dashlane.com/
- Dashlane ヘルプセンター – データのエクスポート: (最新の手順は公式サイトで確認してください。例えば https://support.dashlane.com/hc/en-us/articles/202699331-Export-your-data-from-Dashlane のようなページですが、URLは変更される可能性があります)
コメント