OTP共有秘密の一方向暗号化を使用する方法はありますか。
実際はありません。リバーシブルな暗号化メカニズムを使用することもできますが、多分多くの点はありません。
ネットワーク上で完全なハッシュされていないHMACキーを送信することによってクライアントが認証された場合(通常はパスワードベースの認証の仕組みですが、リプレイ攻撃に対して脆弱です)、サーバー上でHMACキーをハッシュするだけです。まさにHOTP/TOTPが回避するように設計されています。
なぜ私たちはパスワード(塩+ハッシュ)を保存する前にパスワードに一方向関数を適用するのですか?
これは実際には良い質問です。
私は、UNIXオペレーティングシステムの初期のバージョンではすべてのパスワード情報を 'world-readable'の/etc/passwd
ファイルに保存していると考えているから、何らかの方法で難読化する必要があり、salt +彼らが選んだ方法だった。
最近では、パスワードファイルを自由に利用できるようにはなっていないため、おそらくハッシュする必要はありません。
しかし、パスワードが一般に人間によって選択されるため、難読化する別の理由があります。そのため、便宜上、複数のシステムで同じパスワードを選択することがよくあります。私は、HMAC鍵についても同じことは疑うが、これは暗号的に強力なメカニズムを使って(うまくいけば)選択されている。
現在、パスワードをハッシュする主な理由は、システムのセキュリティをあまり高めるものではなく、他のシステムのユーザーのセキュリティを損なう危険性を減らすためです。システムが侵害された場合。
攻撃者がシステムからプレーンテキストのパスワードを読み取ることができる場合は、攻撃者がシステム上の他のすべてを読み取る可能性があるため、おそらくあまり役に立ちません。
しかし、同じパスワードが別のシステムでも使用されている場合は、攻撃者にそのシステムを侵害する可能性があります。
人間が複数のシステムで同じパスワードを使用しないと信じられている人は、おそらくハッシュする必要はないでしょうが、それが起こる可能性が高いと想定するのはやや楽観的です。:-)
出典
2013-04-15 16:45:16
Aya
秘密のハッシュを行う場合、効果的にハッシュ(秘密)が新しい秘密になります。 –
はい、攻撃者がサーバーデータベースからハッシュ(シークレット)を読み取った場合、ハッシュはOTPを生成するのに十分ではないため、ユーザーを偽装することはできません。ハッシュされたパスワードのシナリオと同様に、サーバは、供給されたパスワードが正しいかどうかを知ることができますが、パスワードそのものについては知識がありません。 – Paul