teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

計算間違いを修正しました。論旨に変更はありません。

2021/02/10 10:30

投稿

ockeghem
ockeghem

スコア11710

answer CHANGED
@@ -4,6 +4,6 @@
4
4
  [おすすめのパスワード管理ソフトは? | Bizコンパス -ITによるビジネス課題解決事例満載!](https://www.bizcompass.jp/original/re-management-121-8.html)より引用
5
5
 
6
6
  maisumakunさんから『攻撃者は「クライアントが送信するハッシュ値」を総当りするところからスタートできる』という指摘がありますが、現実にはこれは困難です。
7
- なぜかというと、上記のようにSHA-256ハッシュをサーバーに送信する例で考えると、すべてのハッシュ値のとり得る値は 2^256 で 約 1.16e+77 通りあります。これに対して8桁英数字の総数は 62^8 で約2.81e14 で、1万回ストレッチすると、2.81e16回のハッシュ計算を要することになりますから、**ハッシュ値での総当りは現実性がなく、結局パスワードから総当りした方がはるかに効率がよい**ことになります。
7
+ なぜかというと、上記のようにSHA-256ハッシュをサーバーに送信する例で考えると、すべてのハッシュ値のとり得る値は 2^256 で 約 1.16e+77 通りあります。これに対して8桁英数字の総数は 62^8 で約2.81e14 で、1万回ストレッチすると、2.81e18回のハッシュ計算を要することになりますから、**ハッシュ値での総当りは現実性がなく、結局パスワードから総当りした方がはるかに効率がよい**ことになります。
8
8
 
9
9
  問題は、そのような方式の実現ノウハウが十分に共有されておらず、また信頼できるライブラリがない(知られていない)ことだと思います。なので、結論としては、サーバーサイドでストレッチした方が無難ということになります。