[[はてなフォトライフAtomAPI]]

*失 言 小 町* 2006/03/24 はてなはパスワードを生データで管理してる?から色々と. 何故誰もWSSE認証の話をしてないの? 仕様書に従ってるからそうなってんじゃないのかと思ったら, 案の定そうだった.

キーワードについて

まず, キーワードに突っ込み.

WSSE認証はHTTPのX-WSSEヘッダを用いて認証用文字列を送信する認証手段です。WSSE認証用文字列にはユーザー名とパスワードが含まれます。このとき、パスワードはSHA1アルゴリズムによって暗号化されたダイジェストとして送信されるため、HTTP基本認証などに比べてセキュアな認証が可能です。

  • SHA1アルゴリズムによって暗号化ってのは微妙な表現.
  • パスワードだけをハッシュ関数に突っ込んでるんなら, 盗聴してパスワードのハッシュ値が取れるんで, 使いまわし可能.
  • ということで, パスワード以外に色々ハッシュ関数に突っ込んでる.
  • 実際には, その下に書いてある通り, NonceとCreatedTimeを連結して突っ込んでる.

WSSE認証と安全性について

仕様書周りをキーワードから辿って色々見た.

素のHTTP通信でWSSE認証だと共有されている生passwordをSHA1に突っ込むことになる. ということは, WSSE認証の仕様が悪いンじゃなかろうかねぇ? サーバ側で生パスワードを保存したくないのなら, パスワードのハッシュ値をもう一度パスワードと思ってやれば良いかと思ったけれども, (1) そんなことはWSSE認証の仕様書には書いてありません. (2) そもそもパスワードのハッシュ値が新しいパスワードなんで意味無いです. という理由で没.

(2)は一応意味が無いことは無く, 複数のサービスで同じパスワードを使っている場合に意味が出てきます. 現実世界では, そういうダメなユーザ(俺含む)の例が多いので, 考えることは有益.→id:koseki:20060330及びそのコメント欄で.

ということで, *失 言 小 町* 2006/03/24 はてなはパスワードを生データで管理してる?に書いてある, パスワードはハッシュ値で管理する(クラック被害や内部犯に盗まれても元のパスワードは分からないように)はWSSE認証を使っている限り無理ですね.
sshi.Continual 2006/03/29 「はてなはパスワードを生データで管理してる?」のはそんなに駄目なのか?…ええっと、安全じゃない通信路(インターネット)に生のパスワードを流さずに済むダイジェスト系の認証を使おうとしたら、サーバ側には生パスワードがなきゃ無理だよね?認証する通信路の安全性の話に全く触れずに、パスワードの保存の仕組みだけを取りあげるのは何かおかしな話な気がする。勘違いがあったらご指摘ください。についてはどうかなぁ. 先に書いた(2)の理由によりサーバ側がパスワードのハッシュ値を保存しても意味が無さそう. ハッシュ関数に特殊な性質があると上手くいきそうな気もするので, ハッシュ関数というかPairing周りでありそうな気もしてきた.
認証やっている人に突っ込んでもらうのが一番か. ゼロ知識系の人に任せた.