鳩丸ぐろっさり (用語集)

bakera.jp > 鳩丸ぐろっさり (用語集) > OTP

用語「OTP」について

OTP (おーてぃーぴー)

One Time Password の略で、「一度きりのパスワード」という程度の意味です。

パスワードをそのままネット上にながすと、パケット盗聴などで盗まれてしまう可能性があります。しかし、そのパスワードが一度きりの使い捨てのものであれば、盗まれても問題ないわけです。

たとえば、パスワードを送る側と受け取る側とで、あらかじめ「現在の秒数の数だけ、パスワードの文字をひとつ後ろにずらす」などというルールを決めておきます。本来のパスワードが "abc123" だとすると、時刻の秒部分が "1" であるときには "bcd234" を送ることで認証されます。1秒経つと、"cde345" を送る必要が出てきます。

このとき、誰かが "bcd234" を盗聴したとします。その後、その人が "bcd234" を送ったとしても、時間が経っているのでそのパスワードではログインできません。

もちろん、実際にはこんなシンプルな取り決めではなく、もっと複雑なパスワード生成規則を決めることになります。また、時間に基づいて生成するのではなく、サーバ側から「チャレンジ」と呼ばれるキーを送って、それを元にして生成したレスポンスを返す方法もあります (チャレンジ・レスポンス方式)。この場合、送られるチャレンジは毎回違うものになりますので、前回のチャレンジとそれに対して送られたレスポンスを盗聴できていても、今回のチャレンジに対するレスポンスは分かりません。

たとえば APOP の場合、サーバに繋ぐと +OK POP3 server ready <1896.697170952@example.com> などという応答がかえってきます。この <> に囲まれた部分が「チャレンジ」です。クライアントは、このチャレンジにパスワードを連結した文字列の MD5 ハッシュを求めてサーバに送ります。

最近の日記

関わった本など