web-dev-qa-db-ja.com

ITのVPは、16,000人の従業員のPWのすべてをハッシュ化していないと主張しています。彼は私たちに嘘をついていますか?

私は16,000人ほどの従業員を抱える会社で働いています。 IT担当副社長が定期的にニュースレターを送信し、「技術的なヒント」やその他のIT情報を掲載しています。今週のニュースレターのトピックは「パスワードのセキュリティ」でした。紹介の段落が私の注意を引いた:

使用中のすべてのユーザーパスワードを復号化して、従業員が強力なパスワードを使用しているかどうかを確認しました。ブルートフォース、rcracki、hashcat/oclHhashcat、およびjohn-the-ripperツールの組み合わせを使用して、パスワードを復号化しました。

これに続いて、適切なパスワードの実践について説明する典型的なニュースレターが続きました。辞書の単語を使用しないでください。大文字と小文字が混在した記号を使用してください。モニターのそばに黄色の粘着性があるものにパスワードを書かないでください。等...

さて、私は暗号化の専門家ではありませんが、彼が「すべてのユーザーパスワードを復号化した」と彼が主張したことに懐疑的でした。私は彼らがすべてのハッシュをツールと「解読」したそれらの大部分を実行したと信じることができますが、彼らが持っていることは本当に合理的ですか?それらをクラックしたと主張するコンピューティングリソースall? (ところで、「復号化」はこのコンテキストでも正しいですか?)

私は彼にメールを送って、クラッキングツールを介してすべてのパスワードを実行したのか、それとも弱いパスワードを多数見つけただけなのかと尋ねました。しかし、彼は答えた、いいえ、彼らは確かにすべてのユーザーパスワードを解読しました。

彼がここで教えようとしているセキュリティレッスンに感謝しますが、私のパスワードはKeePassによって生成された8つのランダムな文字です。かなり良かったと思いました。Q6&dt>w}(明らかにそれだけではありませんが、それに似ています)。

最新のクラッキングツールは本当に強力ですか?それとも、この男はおそらく良いセキュリティレッスンの名の下に私の足を引っ張っているだけでしょうか?

追伸私は彼のメールに返信して、私のパスワードの最後の2文字が何であるか教えてくれるかどうか尋ねました。まだ返信はありませんが、もし彼がなんとか作り出したら更新します!


編集:一部の回答では、特定のパスワードの長さについて説明しています。彼が私のパスワードをクラックしたと主張しているだけでなく(私が特定した場合は信じられます)、彼はすべてのユーザーに対してこれを実行したと主張していることに注意してください。これは、10,000の安全なパスワードを意味するとは思わないほどナイーブではありませんが、ユーザーの1%が適切なパスワードを持っている場合でも、クラックしたと主張する100の安全なパスワードです。

73
loneboat

ここにはいくつかの可能性があり、そのうちのいくつかはすでに呼び出されています。これらのいずれかを使用すると、VP(IT)が「復号化」に使用している定義に関係なく、VP(IT)が「すべてのユーザーパスワードを復号化」することはかなり簡単になります。

  1. 問題のパスワードは、実際には、リバーシブルな暗号化で保存されています。
    • あなたのVPは、ハッシュではなく暗号化を使用することを選択した社内Webアプリケーションのパスワードを参照している可能性があります。
    • VPが実際にWindowsパスワードを参照している可能性があり、会社のグループポリシーにより、暗号化を元に戻せる状態でストレージが有効になっています。
  2. VPが参照するパスワードは、弱いハッシュアルゴリズムを使用して保存されているか、ユーザーごとのソルトなしでハッシュされています。
    • LMハッシュは弱いアルゴリズムの一例です。これは、下位互換性のために最適化されたWindows実装に共通しています。
    • ユーザーごとのソルトを使用しないと、辞書とRainbowテーブルの攻撃muchが簡単になります。
  3. あなたのVPが参照しているパスワードは、実際にはプレーンテキストで保存されている可能性があり、彼はそれらが「暗号化解除された」と言っているだけです。
  4. あなたの会社の従業員は実際にはdoすべて使用very弱いパスワードです。
    • パスワードがどれほどランダムであるかに関係なく、8文字は長い間「強力」とは見なされていませんでした。

私はそのリストの項目4はかなりありそうにないと考えているので、他の3つが真実でない限り、VPが少し誇張している可能性は十分にあります。しかし、あなたが会社のCレベルの誰かの耳を持っているのでない限り、私は自分のパスワードの実際の強さ以外のものを変更するためにあなたができることがたくさんあるとは思えません。そのために:

  • 「12は新しい8だ」と言う人もいます。私は15と言います。これにより、パスワードが自然に強力になるだけでなく、Windowsがパスワードを弱いLMハッシュ形式で保存することもできなくなります。 LMハッシュは14文字までのパスワードしか処理できません。パスワードを15文字以上に変更すると、Windowsは警告メッセージをスローしますが、これは(ほとんどの場合)無視しても問題ありません。
  • 複数のアプリケーションで同じパスワードを使用しないでください。少なくとも、個人のアカウントで使用するパスワードとは異なる仕事用パスワードを維持することをお勧めします。理想的には、2つのアプリケーションで同じパスワードを使用しないでください。
  • あなたがやっている残りの良いことを続けてください。完全なASCII文字セットからパスワードをランダムに生成するのは素晴らしいことです。最終製品に4つの文字タイプすべてが含まれ、実際の単語が含まれていないことを確認してください。
28
Iszi

パスワードの100%が解読される唯一の現実的な方法は、LMハッシュをWindowsに保存している場合です。 LMハッシュは2つの7文字のチャンクに分割されるため、ブルートフォース/レインボーテーブル攻撃が実行可能になります(追加の容易さのために大文字と小文字は区別されません)。このためのレインボーテーブルがあり、簡単に実行できます。

それを超えて、辞書にない(または辞書の単語を変異させることで見つけられる)10文字以上のパスワードを持つ人は、弱いアルゴリズム(md5など)を使用していて、ソルトを使用していなくても、合理的なシステムでクラックされることはありません。 AFAIK Rainbowテーブルは、長いパスワードでは実用的ではありません(参考 無料のRainbowテーブル には2.8 TB MD5ハッシュのパックがあり、9文字のパスワードで最高になります(完全な文字セットではありません)。

私が指摘する1つのポイントは、私がITのVPだった場合、パスワードの100%を取得できたという非常に理由から、適切なパスワードの実践について単に人々に伝えるのではなく、LMハッシュを取り除くことに集中するということです。

60
Rory McCune

「解読」は正しい用語ではありません。つまり、パスワードはハッシュされる代わりに暗号化される可能性がありますが、暗号化キー(これは復号化キーでもある)を知っている人なら誰でも簡単に復号化できます。 ); John the Ripper のようなクラッキングツールを適用しても意味がありません。

したがって、VPはおおよその用語を使用しています。したがって、彼がおおよその構文と文法も使用した可能性があるのはもっともらしいことです。ほとんどの場合、それらはクラッキングツールに10k +パスワードを送信、壊れましたsomeそれらの(VPの介入を要求するのに十分な割合ですが、すべてではありません)。彼が「すべて」を使用するのは、たとえば、過度に強調された熱意です。

今、私は彼がパスワードの半分を破ることができると信じる準備ができています。 Morrisワーム は、1988年に、1000ワード未満の辞書で既存のパスワードの約10%を解読できることが文書化されています...

28
Thomas Pornin

Decryptedは適切なWordではありませんが、技術的な正確さよりも読みやすさを追求しているのでしょう。私はまた、彼がおそらくそれらのallを獲得しなかったのではなく、かなりの割合を獲得したことにも同意します。

さて、パスワードに問題があります。会社がMD5やLMなどの高速ハッシュを使用している場合、8文字はそれほど長くありません。まともなGPUベースのクラッカーは、約5000万MD5ハッシュ/秒を達成できます。 QWERTYキーボードで100文字の印刷可能文字を想定すると、これは8文字のパスワードで10,000,000,000,000,000のキースペースです。これは、クラッキング時間が約3.15年であると予想されます。特に安全ではありません。

あるいは、完全な文字セット用の巨大な8文字のレインボーテーブルを用意して、すぐにパスワードをキャッチすることもできます。

8
Polynomial

彼らがどのようにしてそれらを非常に速くクラックしたかについて私が考えることができる何かがあります:

  • 彼らはあなたの会社でWindowsのLMハッシュを使用しています(非常に危険であり、単なる弱いパスワードよりも大きな問題を抱えています)
  • 彼らはレインボーテーブル攻撃を使用しており、レインボーテーブルが非常に大きい(8文字まで可能)
  • 彼らはあなたのパスワードをハッシュするのではなく暗号化して保存していて、彼らは彼らのキーでそれらを復号しました

とにかく、8文字は現在の標準ではほとんどの通常のユーザーにとって十分強いと考えられていますが、私は常に少なくとも12を使用することをお勧めします。 「やり過ぎ」ですが、弱すぎずに「強すぎ」にします。 KeePassを使用してパスワードを保護している場合、とにかく覚える必要がないので、パスワードを気にする必要はありません。

5
Lucas Kauffman

クライアント(Windows LMハッシュ)でも同様の演習を行い、元の投稿者が述べた同様のツールを使用してユーザーパスワードの75%以上を取得しました。このタイプの攻撃は通常、90%以上の8文字の人間(西洋および英語)由来のパスワードを取得します。パスワードが長いほど、文字セットは広くなります。これは難しくなり、合格率は低くなります。私のクライアントでは、パスワードの多くが8文字以下でしたので、私にとってはとても簡単でした。 25%は長いか、レインボーテーブルにない文字が含まれていました。

ITのVPがこれにお金を費やしていた場合、彼は商業用パスワードリストの1つまたはSaaSソリューションを使用している可能性があります。たとえば、£は含めないでください。パスワードが一般的に10文字未満の場合、ヒット率が100%に近づく可能性が高くなります。

4
Callum Wilson

私がこれから説明するように、多くの人々がこれをもっと精巧に述べており、それらの多くは提供されたオプションで技術的に正しいです(技術的に健全で完全であるため、Isziの応答に特に注意してください)。しかし、私は2セントを差し上げて、おそらく2つのことのどちらかが起こっていると言いたかっただけです。

  1. 彼らは、リバーシブル暗号化(ADグループポリシーオプション)を使用してパスワードを保存しているため、暗号化を使用しているだけであり、彼はパスワードを実際に "解読"しました。これは恐ろしい考えですが、人々はパスワード監査やレガシーアプリケーションとの互換性のためにそれを行います。

  2. 彼は嘘をついており、彼らはすべてではないが大半のパスワードを解読した。

また、LMハッシュを格納している可能性もあります。これが彼らのしていることだと私が思わない理由は、彼らがその場合には適切なセキュリティの深刻な欠如を抱えているからです。

私は自分の仕事でパスワードを常にクラックし、私は言わなければなりません、私はそれらのすべてをクラックしたことはありません。私は約50,000人の従業員を抱える会社で働いており、私たちは通常、1時間の労力で約8,000個のパスワードを解読します。

1時間の作業ステップを過ぎると、パスワードを解読することが指数的に難しくなります(通常、パスワードはその時点で十分な長さの複雑な非辞書の単語であるため)、証明しようとしない限り、通常はそこで停止します。特定のパスワードをポイントまたはクラックする。大企業では、ほとんどのセキュリティチームがすべての従業員のパスワードを常に監視および監査する方法がないため、四半期ごとに最も簡単に解読および解読できるパスワードを選択します。

3
JZeolla

IT VPが実際にパスワードを100%解読した場合、ユーザーが選択したプレーンテキストのパスワードの相対的な弱点や強さをはるかに超えて、いくつかの重大なセキュリティホールが生じます。

いくつかの可能性:

  • 実際にはハッシュを使用していません。グループポリシーやASP.NETなどの多くの「組み込み」セキュリティライブラリでは、ハッシュされたパスワードではなく暗号化されたパスワードがオプションになります。目的は、アカウントを完全に破壊することなく、パスワードを失ったアカウントを管理者が回復できるようにすることです。しかし、それが効率的にリバーシブルになるように設計されていれば、まあ、それは効率的にリバースすることができます。誰かが正当にパスワードを解読するためにその種のアクセス権を持っているとすれば、それはCIOですが、クラッキングツールを使用していないことを説明しているだけかもしれません必要管理者アクセス。
  • 侵害されたハッシュを使用しています。 MD5、LMHashなどは壊れているため、パスワードの保存にはneverを使用する必要があります。
  • 技術的には暗号強度のハッシュを使用していますが、SHA1/2などのパスワードには適していません。これは通常、次の2つの理由のいずれかが原因です。
    • ハッシュは速すぎて計算できず、GPUやボットネットベースのクラッカーなどの並列攻撃を実行可能にします。
    • 優れたパスワードであっても、メッセージダイジェストやチェックサムなどの安全なハッシュが使用される他のものに比べて、エントロピーは比較的低くなります。ランダムソルトを使用してエントロピーを人工的に増加させない限り、衝突するパスワードを見つけるのに、より大きな入力サイズの衝突するメッセージを見つけるよりも、通常、ブルートフォースクラッカーがかかる時間は短くなります。

VPにプレーンテキストのパスワードを取得するために何をしたか、およびパスワード自体を見せてもらいます。それはそんなに簡単ではなかったはずです。使用するハッシュ関数を制御できる場合(つまり、グループポリシーのように組み込みではない)、bcryptやscryptなどのパスワードハッシュ専用に設計されたハッシュに切り替えることを検討します。これらの2つは非常に遅いため、うまく機能します。また、ソルトを取得して変数の指数関数的な複雑さの演算を実行するキー導出関数を使用して、「遅い」だけでなく、常に遅くなるように構成できます。暗号化ベースのハッシュ。 BCryptは完全なハッシュで、KDFと暗号が組み込まれています。 scryptは単なるKDFであり、AESなどの安全な暗号化と組み合わせることができます。

3
KeithS

彼らが巨大な(達成不可能な)処理能力なしでそれを実行したことは非常に疑わしい(それがプロセス全体のほんの少量を構成しない限り、ブルートフォースの部分に対して)。パスワードを「復号化」すると、おそらくDID=主にブルートフォースを使用する必要があります。

また、「復号化」は正しい用語ではありません。復号化は、パスワードがかつて暗号化であったことを明らかに意味し、暗号化は双方向の機能を意味します。ハッシュは一方向の関数のみです-つまり、リバースエンジニアリングすることはできません(まあ、それはこの回答の範囲を超えています)。

1
Phillip Schmidt

8文字では不十分です!(以下で説明させてください)

最初に追加したいのは、すべての正確さのために、弱いアルゴリズムでハッシュされた場合、16kのパスワードはすべてクラックされる可能性があるということです。最初に、(平均IQと同僚の不注意に応じて)半分以上になる可能性があるものを辞書攻撃で解読し、次にレインボーテーブルを使用して残りをブルートフォースします(MD5は無塩としましょう)。もちろん、何人かが非常に長い強力なパスワードを持っていない限り、それは数年ではなく時間がかかります。これはブルートフォースに時間がかかり、おそらく長すぎますが、「知的な過半数」は適切なパスワードを気にしません。たとえば、あなたが好きな場合でも、8文字を使用します。 ;)

-そしてパスワードの長さに戻る-

それは管理者がパスワードをハッシュするために使用するものに大きく依存しますが

たとえば、bcrypt、または場合によってはさらに優れたscryptのように、反復回数が多いと、(受け入れ可能な)パスワードのセキュリティが大幅に向上します。

しかし、1万6千人の従業員を抱える会社について話しているとき、企業スパイなどの可能性があります。これらのことを行う人々は、ほとんどの場合、非常に技術に精通しており、海賊湾に設置したビデオゲームなど、個人的に作成して配布した小さなウイルストラフで取得した、それほど大きくはないがそれでもまともなボットネットを持っているでしょう。

私はこの例を使用して、ゲーマーをどのようにターゲットにするかを説明しましたつまり、必要なときにリーチできる大量のGPUがあることを意味します

このようにして、上記で多項式が提案した「予想されるクラッキング時間〜3.15年」を、アイドル時にリーチできる非常にまともなGPUカードを搭載した1000台のコンピューターで割ると、.

これで、MD5ハッシュされたパスワードは〜1.149日で解読されます

(たとえば、1%に8文字のランダムに生成されたパスワードがあるとします。つまり、160 x 1.149 = 221.37日なので、すべてのパスワードをテストするのに半年以上かかります。)

上記のLucas Kauffmanは、12文字以上の16文字のパスワードが技術的に最も適切であると正しく述べていますが、私自身パスフレーズを好みます。

このウェブサイトの作成者であるジェフ・アトウッドは長い間彼らを擁護してきました!

だから使い始めましょう!覚えやすく、ひびが入りにくい。

1
Happy

この物語で私を悩ませて、彼がはったりしていると信じさせるものはほとんどありません(または私は信じたいです)

  • 企業レベルでパスワードポリシーを適用するツールがあります。より良い/より安全なパスワードの使用について教育するためにすべてのユーザーパスワードをクラックするよりも、それらを使用する方が速くて安価です。

  • 彼はパスワードを復号化しましたが、これは非常に悪い兆候です。これは、ユーザーソルトごとに一方向ハッシュ+ランダムではなく、双方向暗号化(およびbcrypt、scrypt、PBKDF2などの低速ハッシュ関数)を使用していることを示唆しています、それを修正して、すべての16,000個のパスワードをクラックするよりもおそらく簡単です。セキュリティ用語に注意が向けられていないことを示しても、16,000のパスワードを解読するのに必要なロックスターハッカーのスキルと密接な関係はありません。

  • どのようなシステムでも、これらのパスワード保護は失敗した試行に対する遅延メカニズム(ブルートフォース攻撃を可能にする)を備えていないように見えるため、内部データベースにアクセスしてロック/遅延メカニズムをバイパスするか、そのような保護を備えていません彼らのシステムで。

ハッカーにとって天国なので、あなたの会社が人々のお金を管理したり、デリケートな医療プロセスを運営したり、人々の生活に関わることは何もないことを本当に望みます。あなたの会社名はここからは良く聞こえないので匿名のままにしてください。

ITのVPに関しては、彼が冗談を言っていたことを本当に望んでいますが、それは22のキャッチです。ただ不正直であり、それは同じくらい悪いです。

1
Eran Medan

Rainbow tables のセットを使用すると、会社のすべてのパスワードが解読された可能性があります。レインボーテーブルは、ブルートフォース方式よりもはるかに高速にパスワードを解読するために使用される、パスワード解読の試みの前に作成された事前計算済みハッシュのセットです。 rcrackiは、あなたの質問にリストされているツールの1つで、まさにそれを行います。 hashcatとJtRはブルートフォースツールですが、Rainbowテーブルの作成にも使用できます。

したがって、彼の言うことは完全に可能であることに疑いの余地はありません。

ちなみに、最近は8文字のパスワードでは不十分です。少なくとも9文字を使用してください。

0
GdD