私は私のルーターのhtmlでこのパラメーターに気づきました:
form.addParameter('Password', base64encode(SHA256(Password.value)));
したがって、パスワードpassw
を入力すると、sslstrip
を介してこれを取得します。
2018-09-25 21:13:31,605 POST Data (192.168.1.1):
Username=acc&Password=ZTQ1ZDkwOTU3ZWVjNzM4NzcyNmM2YTFiMTc0ZGE3YjU2NmEyNGZmNGNiMDYwZGNiY2RmZWJiOTMxYTkzZmZlMw%3D%3D
このハッシュはブルートフォース/辞書を介して簡単に解読できますか?私はまだ初心者ですが、私には二重暗号化のように見えます。また、このパスワードを解読するよりも速く取得する方法はありますか?
これは、base64無塩sha256ハッシュです。これは二重の暗号化ではなく、単に不要なエンコーディングです。
無塩ハッシュは、Googleでハッシュを検索するだけで簡単で、おそらく結果を見つけることができることを意味します。
私は RLでデコードし、次にbase64からデコードしました 、次に オンラインハッシュデータベース に渡しました。
結果は:
Hash Type Result
e45d90957eec7387726c6a1b174da7b566a24ff4cb060dcbcdfebb931a93ffe3 sha256 passw
これは無塩ハッシュであるため、簡単に検索できます。すべてのエンコーディングは、セキュリティコントロールではなく、ログインサービスにとって便利です。
塩では、見上げるだけではできないため、総当たりする必要があります。ソルトを知っている場合、成功はパスワードと使用するワードリストに依存します。単語リストをブルートフォーシングでより効率的にする方法はいくつかありますが、最終的には時間の関数です。
これは、次の理由により簡単に破ることができます。
Base64は暗号化ではなく、エンコードスキームです。 Base64のデコードは簡単です。
SHA256は、データを検証するために設計された暗号化アルゴリズムであり、高速になるように設計されています。つまり、複数のGPUを備えた特殊なコンピューターは、SHA256でハッシュされたパスワードを信じられないほどの速度でチェックできます。執筆時のパスワードクラッキングSHA256の記録は、25 GPUによって設定された21.4 GH/s(毎秒210億ハッシュ)です。パスワードを安全にハッシュすることを目的とした場合、SHA256は適切な選択ではありません。主要な派生関数は、進むべき道です。 SHA256はパスワードハッシュには弱いですが、データ/メッセージの検証には最適です。
無塩ハッシュを使用することは非常に悪いことであり、sha256は理想的なハッシュ関数ではないことに誰もが同意します。ただし、この知識は、パスワードの保存ではなく、送信に関連しています。
ターゲットデバイスでパスワードを検証する方法がわかりません。
データがその後パスワードストレッチ機能を介して渡され、ターゲットデバイスでソルト化およびハッシュ化される(安全でしょう)か、または格納されているリテラル値と単に比較される(安全でない)ことがわかっています。
質問に示されているように、ルーターとの通信が常にHTTPS経由で行われている場合、これは転送中のデータの保護に何も追加せず、冗長です。通信がHTTPを介して行われた場合、それは一部の非常にささいな攻撃(たとえば、単純なリプレイ攻撃ではない)を防止すると主張できます。