web-dev-qa-db-ja.com

オープンフォーラムで誤ってYubiKeyパスワードを入力するリスクと軽減策は何ですか?

私のラップトップにYubiKeyがあり(テスト用)、誤って自分のYubiKeyパスワードをインターネットにブロードキャストしています。これは単なるテストキーであり、価値のあるものにはアクセスできないため、いくつかのサンプルOTPキーを次に示します。

ccccccbhknbgunfejcduuficrglhbckgbbugjegrbbbj

ccccccbhknbgncbjurrufidrvjvjnbglduvnjtccjhif

私の理解では、デフォルトの構成では、先頭の文字は種類:ccccccbhknbgの識別子(一意のID)です。これがエンコードされた値なのか、それとも生のASCII値なのか、わかりません。

  • これらのパスワードをインターネットで送信するリスクは何ですか?プライバシーが失われましたか?

  • YubiKeyクラウドに接続されているか、スタンドアロン構成の一部であるかは重要ですか?

  • これからどのように回復できますか?識別子を再生成できますか?パスワードを無効にするにはどうすればよいですか?

22

YubiKeyが何をするかについていくつかの説明があります ここ 。基本的に、YubiKeyが「タイプ」するパスワード(コンピューターの観点からは、キーボード)は、静的パスワードまたはワンタイムパスワードのいずれかです。それが静的パスワードである場合は、それを明らかにしただけであり、非常に申し訳ない(そしてそのパスワードをすぐに変更する)ときです。

YubiKeyが生成するワンタイムパスワードは次のようになります [〜#〜] hotp [〜#〜] 。 HOTPの暗号化では、HOTPで生成された1つまたは複数のワンタイムパスワードから「マスターシークレット」を再計算することは、計算上不可能です。さらに、各パスワードは内部的にカウンターから計算されます。 YubiKeyとサーバーはどちらも同じカウンターを維持し、サーバーは同期の限られた不足を許容します。つまり、サーバーの現在のカウンターの値がnで、認証の試行としてパスワードを受け取ると、内部的に値のパスワードが生成されますn + 1n + 2、...たとえば、最大n + 1(構成可能)。 (たとえば)パスワードn + 17との一致が見つかった場合、アクセスが許可され、サーバーのカウンターがn + 17に設定されます。それ以外の場合、接続は拒否され、サーバーのカウンターは変更されません。

したがって、誤って「インターネット」で公開したものis対応するサーバーへのアクセスを許可するパスワード。その認証は、そのサーバーでの次の認証まで、サーバーのカウンターがさらに更新されるためです。カウンター値。ある方法では、カウンタ値kでOTPを使用すると、値j <kですべてのOTP値が無効になります。これは、次の回復手順につながります。OTP値を公開した場合は、サーバーにすばやく接続して、公開された値を無効にします。その後は、無視してかまいません。無効になった後は無害です。

注:サーバーで認証せずにキーを使用して多数の「空白」のパスワードを繰り返し生成すると、YubiKeyがそれと同期しなくなる可能性がありますサーバーの-サーバーが現在受け入れているものをはるかに超えるカウンター値を使用するキー。3歳のYubiKeyで遊ばせないでください!同様の状況で、赤外線カーキーの場合、カウンター同期はRFIDを介して強制されますエンジンを始動したとき。)

18
Thomas Pornin

YubiKeyは、生成された長いOTPであるYuibco OTPをサポートします。

OTPは2つの主要な部分で構成されています。最初の12文字は一定のままで、YubiKeyトークン自体のパブリックIDを表します。

残りの32文字は、生成された各OTPの一意のパスコードを構成します。パスコードは、YubiKeyセッションと生成されたOTPの両方のカウンターを含む、多数のランダムソースから生成されます。 YubiKeyが検証されると、セッションとOTPカウンターの値が最後に送信された値と比較されます。カウンターが少ない場合、以前に使用された値のOTPは拒否されます。 OTPをコピーしても、別のユーザーがYubiKeyを偽装することはできません。カウンター値により、検証サーバーは、どのOTPが既に使用されているかを知ることができます。

YubiKey OTPについて詳しく読む ここ

5
Yubi_David

大丈夫だよ。 「ユーザー名」タイプの識別子のみを失った。

Thomasは、サーバーがチェックする100個のパスワードを生成する部分については、あまり正確ではありません。

2番目の部分である「OTP」は暗号化されています。サーバーは、AESキーを使用してOTPを復号化します。復号化されたコンテンツにはカウンターがあります。カウンターがサーバーが認証した最後のカウンター以下の場合、それはリプレイ攻撃です。

新しいAESキーを作成したい場合は、yubicoにアップロードできますが、同じ稼働時間の保証はないとのことです。ただし、いくつかのOTPを吐き出しても、妥協はありません。

2
Dustin Graham

Yubikey OTPトークン文字列は、生データの16進数文字列を小文字のアルファ(ラテン)文字の特別なサブセットにエンコードすることによって生成されます。たとえば、cは、たまたま16進ニブル(数字)のエンコードです0

デフォルトでは、「Vanilla」YubikeyからのOTPトークンの最初の12文字(6バイト)が、デフォルトの構成とキーでシリアル番号になります。だからあなたはそれを漏らしました:14***93、そうではありませんか?

残りはAES-128暗号化データ(カウンター、ランダムnonceなど)なので、心配する必要はありません。

エンコーディングはYubico modhexと呼ばれ、さまざまなキーボードレイアウトでのキーボードスキャンコードのあいまいさを防止するように設計されています(QWERTY vs AZERTY):

0123456789abcdef
cbdefghijklnrtuv

オンライン demo および converter もあります。

1
mykhal