Shammer's Philosophy

My private adversaria

Challenge Handshake Authentication Protocol

認証プロトコルの一つで、CHAPという略称でよく見かける。詳細を把握していなかったが、ちょっと調べる機会があったので流れをメモ。

  1. サーバーで適当なデータ(予測不能なデータ)を作成しクライアントに送る
  2. クライアントは、このデータに自分のパスワードでハッシュをかけてサーバーに送り返す
  3. サーバーは事前に登録されているクライアントのパスワードを使用し、先に作成していた適当なデータに対してハッシュをかける
  4. クライアントから送り返されたハッシュと自らハッシュしたデータを比較し一致すれば正しいクライアントと認識

この方法だとユーザーのパスワードがネットワークに流れることはない。ハッシュの重複がなければ結構使えるのではないだろうか。ただ、時代的にもうパスワードは古い気がする。自分の慣れたパスワードは、何度かの強制パスワード変更で使用できなくなり、このサイトはXX代目のパスワードだったっけな、とか何回か繰り返してアカウントロックされてしまうってことも。かと言って、ブラウザなどのパスワード保存機能を使用すればパスワードの意味も半減してしまう気もする。そろそろ新しい何かが出ないだろうか。なぜMac指紋認証に対応しないのだろうか。KeyChain Accessを使用するにはパスワードでなく指紋認証が必要、とかなれば、これによるパスワード保存機能を使用することに対する懸念も払拭できるのだが。とか言っても既にこの保存機能に頼ってしまっていることも多々あるのだが。