0

現在、ssh 2 要素認証プラグインを扱っています。

次のように使用できます。

$ ssh localhost
password: [ssh password]
Name: [あなたの名前]
OTPCode: [あなたのコード]

sqlite db にユーザー名と OTP シークレットのリストがあります。

sqlite db がリークすると危険です。ユーザー名をハッシュしてニックネームを追加して、どれがどれであるかを区別する必要があります。この設計は問題を引き起こしますか、それとも必要ですか?

4

1 に答える 1

0

正直に言うと、誰かが秘密を含む平文のデータベースを手に入れたとしても、ハッシュ化/難読化されたユーザー名についてあまり気にすることはありません。彼らはすでに秘密の情報を持っています。

攻撃者は、データベースからすべてのシークレットに対してすべての OTP を現実的に生成し、任意のユーザー名に対してそれらすべてを試すことができます。さらに、過去にユーザー名をスニッフィングし、いつ認証したか (TOTP の場合) を知っている場合、そのウィンドウのデータベース内のすべてのシークレットのすべての OTP を作成し、そのユーザーに対応するシークレットを確認できます。

基本的に、トークンの共有秘密を失った場合、対応するユーザー名を失う心配はほとんどありません。

データベースをロックダウンすることに集中するか、マシンから認証メカニズムを取り除くことをお勧めします。

于 2013-11-28T20:17:11.510 に答える