暗号化っていうのは
「情報の正しさを照合できる」
っていう技術
なので
っていうのは嘘で
が正しい
平文を暗号化してサーバに保存している場合は、結局は鍵をサーバに預けているので、信頼情報がユーザの手を離れてしまっている
って言われても家の鍵を大家に預けているのと同じ状態で家の中に100億円置いてるような人だと信用に足らない
じゃぁ例えばユーザにその鍵を預けておいて、認証の度に渡すようにしよう!なんていうことをやっても
鍵はデジタル情報だから簡単にコピー可能(追跡不可能)なので一度でも渡したら信用価値はゼロになる
ちなみにこれはハッシュ化でも同じ話で、ハッシュ値をサーバに保存していても平文を送りつけてハッシュ値をサーバで計算していたら意味が無い
ユーザ側でハッシュ値を計算して送りつける方法なら多少は意味があるけれど、結局は鍵がハッシュ値に変わっただけなので通信傍受されたらダメ
なのでダイジェスト認証っていう仕組みを使うので興味がある人は調べて欲しい
ということで、暗号化をしても結局は鍵の扱いに困ることになる
ログインで知りたいのはパスワードそのものではなくて「パスワードを知っているかどうか」だけ
なので、ハッシュ化を使って「パスワードを知っていたらハッシュ値も当然知ってるよね・・・?」っていう感じの認証を行う
ここで大事なのはハッシュ化っていうのは秘匿情報はユーザの側にあってサーバ側に渡していない、ということ
なのでプログラムをこねくり回しても原理的には元のパスワードは分からないしそれが基本
そこに「でも単純なパスワード使ってる人がいるかも?」「使い回している人がいるかも?」っていう悪知恵で攻撃してくる人がいるので
あと、秘匿情報がユーザ側にある、といってもどうせスマホとかPCに保存されているのでそっちをクラックされると漏洩する
なので基本的に鍵は脳内に保存した文字列か生体認証、もしくはデバイス認証を使う
この辺はパスワードマネージャーを使っていてもマスターパスワードが必要になるのと同じ
ここまでがセキュリティ講習の1日目の午前中の話
(^^)https://www.irasutoya.com/2014/09/blog-post_865.html?m=1