パスワードの強度をテストするために自分でパスワードを解読する方法

この記事では、オープンソースのパスワードクラッキングツールを使用して 3 つの異なるパスワードをテストし、パスワードのセキュリティに関してはどの方法が実際に機能するかを調べました。

目次

パスワードクラッキングとは何ですか?

パスワードの強度をテストするために自分でパスワードを解読する方法

オンライン サービスでアカウントを作成すると、通常、プロバイダーはサーバー上でログイン情報を暗号化します。これは、パスワード用の一見一意のランダムな文字と数字の文字列である「ハッシュ」を作成するアルゴリズムを使用して行われます。もちろん、これは完全にランダムなわけではなく、パスワードだけが生成できる非常に特殊な文字列ですが、訓練されていない目には混乱しているように見えます。

単語をハッシュに変換するのは、ハッシュを再び単語に「デコード」するよりもはるかに高速で簡単です。したがって、パスワードを設定すると、ログインしているサービスはパスワードをハッシュ化し、その結果をサーバー上に保存します。

このパスワード ファイルが漏洩した場合、ハッカーはパスワードを解読してその内容を見つけ出そうとします。パスワードの暗号化は復号化よりも速いため、ハッカーは潜在的なパスワードを入力として受け取り、サーバーと同じ方法を使用して暗号化し、その結果をパスワード データベースと比較するシステムを設定します。

潜在的なパスワードのハッシュがデータベース内のいずれかのエントリと一致する場合、ハッカーはすべての試行が試行された潜在的なパスワードと一致することを知ることができます。

HashCatを使って自分のパスワードを解読する方法

この記事で生成されたパスワードのいくつかを解読してみて、それがいかに簡単か確認してみましょう。これを実現するために、この例では、誰でも使用できる無料のオープンソースのパスワードクラッキングツールであるHashcat を使用します。

これらのテストでは、次のパスワードを解読する例を示します。

  • 123456 : 古典的なパスワードであり、サイバーセキュリティの悪夢である 123456 は、世界で最も一般的に使用されているパスワードです。 NordPass は、300 万のアカウントがパスワードとして 123,456 を使用しており、そのうち 120 万は企業レベルのアカウントを保護していると計算しました。
  • スーザン48さん! : ほとんどのユーザーが安全なパスワードを作成するために使用するパターンに従ったパスワード。これは一般的に基本的なパスワード保護の基準を満たしていますが、後ほど説明するように、悪用される可能性のある重要な弱点がいくつかあります。
  • t9^kJ$2q9a : Bitwarden のツールを使用して生成されたパスワード。大文字、小文字、記号、数字を含む 10 文字のパスワードを生成するように設定されています。

次に、MD5 を使用してパスワードを暗号化します。保存されたパスワード ファイル内のパスワードは次のようになります。

  • 123456 : e10adc3949ba59abbe56e057f20f883e
  • スーザン48さん! : df1ce7227606805745ee6cbc644ecbe4
  • t9^kJ$2q9a : 450e4e0ad3ed8766cb2ba83081c0a625

今、それらを解読する時が来ました。

辞書攻撃法を使って簡単な脱獄を実行する

パスワードの強度をテストするために自分でパスワードを解読する方法

まず、最も一般的なパスワード攻撃方法の 1 つである辞書攻撃を実行してみましょう。これは、ハッカーが潜在的なパスワードのリストを取得し、Hashcat にそれらを MD5 に変換するように要求し、パスワードのいずれかが上記の 3 つのエントリと一致するかどうかを確認するという単純な攻撃です。このテストでは、史上最大のパスワード漏洩の一つであるファイル「rockyou.txt」を辞書として使用します。

クラッキングを開始するために、記事の著者は Hashcat フォルダーに移動し、空白部分を右クリックして [ターミナルで開く] をクリックしました。ターミナルが開いて Hashcat ディレクトリに設定されたので、次のコマンドで Hashcat アプリケーションを起動します。

.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt

コマンドの実行内容は次のとおりです。

  • .\hashcat はHashcat を呼び出します。
  • -m 0 : 使用するエンコーディングの種類を指定します。この場合、Hashcat ヘルプ ドキュメントで 0 としてリストされている MD5 を使用します。
  • -a 0 : 実行する攻撃を指定します。 Hashcat のヘルプ ドキュメントでは、辞書攻撃が 0 と記載されているため、ここではそれを 0 と呼びます。
  • passwordfile.txt rockyou.txt : 最初のファイルには、先ほど設定した 3 つの暗号化されたパスワードが含まれています。 2 番目のファイルは、rockyou パスワード データベース全体です。
  • -o results.txt : この変数は結果を保存する場所を決定します。このコマンドでは、解読されたパスワードが「results」という名前の TXT ファイルに保存されます。

rockyou は巨大でしたが、Hashcat はそれをすべて 6 秒で処理しました。結果のファイルでは、Hashcat はパスワード 123456 を解読したが、パスワード Susan と Bitwarden は未解読のままであると示されています。これは、rockyou.txt ファイルで 123456 が他の誰かによって使用されていたものの、Susan や Bitwarden というパスワードを使用した人は他にいなかったため、この攻撃を生き延びるのに十分なセキュリティが確保されていたことを意味します。

隠されたブルートフォース攻撃を使用して、より複雑な脱獄を実行する

パスワードの強度をテストするために自分でパスワードを解読する方法
Hashcatでブルートフォース攻撃を実行する

辞書攻撃は、大規模なパスワード リストにあるパスワードと同じパスワードが使用されている場合に効果的です。これらは迅速かつ簡単に実装できますが、辞書にないパスワードを解読することはできません。したがって、本当にパスワードをテストしたい場合は、ブルート フォース攻撃を使用する必要があります。

辞書攻撃が事前に設定されたリストを取得して、それを 1 つずつ変換するだけである場合、ブルート フォース攻撃は、考えられるあらゆる組み合わせを使用して同じことを行います。実装が難しく、時間がかかりますが、最終的にはあらゆるパスワードを解読できるようになります。すぐにわかるように、その能力を身につけるには長い時間がかかることもあります。

以下は、「実際の」ブルート フォース攻撃を実行するために使用されるコマンドです。

.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a -o output.txt

コマンドの実行内容は次のとおりです。

  • -a 3 : この変数は実行する攻撃を定義します。 Hashcat のヘルプ ドキュメントでは、ブルート フォース攻撃が 3 番としてリストされているため、ここでは 3 番と呼びます。
  • target.txt : 解読したい暗号化されたパスワードを含むファイル。
  • --increment : このコマンドは、一致するものが見つかるまで、1 文字、2 文字、3 文字といった長さのすべてのパスワードを試行するように Hashcat に指示します。
  • ?a?a?a?a?a?a?a?a?a?a?a?a : これは「マスク」と呼ばれます。マスクを使用すると、どの文字がどの位置で使用されるかを Hashcat に伝えることができます。各疑問符はパスワード内の文字の位置を指定し、文字は各位置で試す内容を指定します。文字「a」は大文字と小文字、数字、記号を表すので、このマスクは「各位置ですべてを試してください」という意味になります。これはひどいマスクですが、後で効果的に使用する方法を説明します。
  • -o output.txt : この変数は結果を保存する場所を決定します。この例のコマンドは、解読されたパスワードを「output」という名前の TXT ファイルに保存します。

このひどいマスクを使用しても、パスワード 123456 は 15 秒以内に解読されます。最も一般的なパスワードですが、最も弱いパスワードの 1 つです。

パスワード「Susan48!」ずっと良くなりました - コンピューターによると、解読には 4 日かかります。しかし、一つ問題があります。スーザンのパスワードに重大な欠陥があると記事で書かれていたのを覚えていますか?最大の間違いは、パスワードが予測可能な方法で作成されることです。

パスワードを作成するときは、特定の要素を特定の場所に配置することがよくあります。パスワード作成者のスーザンは、最初は「susan」を使用しようとしましたが、大文字と数字を追加するように求められたことは想像に難くありません。覚えやすくするために、最初の文字を大文字にして、最後に数字を追加しました。その後、おそらくログイン サービスが記号を要求したため、パスワード設定者がそれを末尾に追加しました。

したがって、マスクを使用して、Hashcat に特定の場所の特定の文字のみを試すように指示し、パスワードを作成するときに推測するのがいかに簡単であるかを悪用することができます。このマスクでは、「?u」はその位置で大文字のみを使用し、「?l」は小文字のみを使用し、「?a」は任意の文字を表します。

.\hashcat -m 0 -a 3 -1 ?a target.txt ?u?l?l?l?l?a?a?a -o output.txt

このマスクを使用して、Hashcat は 4 日よりもはるかに速い 3 分 10 秒でパスワードを解読しました。

Bitwarden のパスワードは 10 文字で、予測可能なパターンは使用されていないため、解読するにはマスクなしのブルート フォース攻撃が必要になります。残念ながら、Hashcat にそれを実行するよう依頼したところ、可能な組み合わせの数が整数の制限を超えているというエラーが発生しました。 IT セキュリティ専門家は、Bitwarden がパスワードを解読するのに 3 年かかったと述べているので、これは十分だ。

パスワードハッキングからアカウントを守る方法

この記事が Bitwarden のパスワードを解読できない主な要因は、その長さ (10 文字) と予測不可能性です。したがって、パスワードを作成するときは、できるだけ長くし、記号、数字、大文字をパスワード全体に均等に分散するようにしてください。これにより、ハッカーがマスクを使用して各要素の位置を予測できなくなり、解読がはるかに困難になります。

おそらく、「文字配列を使用する」や「できるだけ長くする」といったパスワードに関する古い格言をご存知でしょう。これらの役立つヒントがなぜ推奨されるのかお分かりいただけたでしょうか。これらは、簡単に解読されるパスワードと安全なパスワードの主な違いです。

Sign up and earn $1000 a day ⋙

Leave a Comment

通常のテレビとスマートテレビの違い

通常のテレビとスマートテレビの違い

スマートテレビはまさに世界を席巻しています。数多くの優れた機能とインターネット接続により、テクノロジーはテレビの視聴方法を変えました。

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

冷蔵庫は家庭ではよく使われる家電製品です。冷蔵庫には通常 2 つの部屋があり、冷蔵室は広く、ユーザーが開けるたびに自動的に点灯するライトが付いていますが、冷凍室は狭く、ライトはありません。

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fi ネットワークは、ルーター、帯域幅、干渉以外にも多くの要因の影響を受けますが、ネットワークを強化する賢い方法がいくつかあります。

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

お使いの携帯電話で安定した iOS 16 に戻したい場合は、iOS 17 をアンインストールして iOS 17 から 16 にダウングレードするための基本ガイドを以下に示します。

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトは素晴らしい食べ物です。ヨーグルトを毎日食べるのは良いことでしょうか?ヨーグルトを毎日食べると、身体はどう変わるのでしょうか?一緒に調べてみましょう!

健康に最も良いお米の種類は何ですか?

健康に最も良いお米の種類は何ですか?

この記事では、最も栄養価の高い米の種類と、どの米を選んだとしてもその健康効果を最大限に引き出す方法について説明します。

朝時間通りに起きる方法

朝時間通りに起きる方法

睡眠スケジュールと就寝時の習慣を確立し、目覚まし時計を変え、食生活を調整することは、よりよく眠り、朝時間通りに起きるのに役立つ対策の一部です。

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

レンタルして下さい! Landlord Sim は、iOS および Android 向けのシミュレーション モバイル ゲームです。あなたはアパートの大家としてプレイし、アパートの内装をアップグレードして入居者を受け入れる準備をしながら、アパートの賃貸を始めます。

最新のバスルームタワーディフェンスコードとコードの入力方法

最新のバスルームタワーディフェンスコードとコードの入力方法

Bathroom Tower Defense Roblox ゲーム コードを入手して、魅力的な報酬と引き換えましょう。これらは、より高いダメージを与えるタワーをアップグレードしたり、ロックを解除したりするのに役立ちます。

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理を最も正確な方法で学びましょう。

AIがスマートテレビを進化させる4つの方法

AIがスマートテレビを進化させる4つの方法

画質や音質の向上から音声制御まで、これらの AI 搭載機能により、スマートテレビはさらに優れたものになります。

ChatGPTがDeepSeekより優れている理由

ChatGPTがDeepSeekより優れている理由

当初、人々はDeepSeekに大きな期待を寄せていました。 ChatGPT の強力な競合製品として販売されている AI チャットボットは、インテリジェントなチャット機能とエクスペリエンスを約束します。

Fireflies.ai をご紹介します: 仕事の時間を節約できる無料の AI 秘書

Fireflies.ai をご紹介します: 仕事の時間を節約できる無料の AI 秘書

他の重要な事柄を書き留めるときに重要な詳細を見逃すことはよくありますし、チャットしながらメモを取ろうとすると気が散ってしまうこともあります。 Fireflies.ai が解決策です。

Minecraftでアホロートルを育てる方法、Minecraftでサラマンダーを飼いならす方法

Minecraftでアホロートルを育てる方法、Minecraftでサラマンダーを飼いならす方法

Axolot Minecraft は、使い方を知っていれば、水中で操作するときにプレイヤーにとって素晴らしいアシスタントになります。

『クワイエット・プレイス:ザ・ロード・アヘッド』PCゲーム設定

『クワイエット・プレイス:ザ・ロード・アヘッド』PCゲーム設定

『A Quiet Place: The Road Ahead』の構成は非常に高く評価されているため、ダウンロードを決定する前に構成を考慮する必要があります。