本文へスキップ
このページは機械翻訳されたものです。不正確な箇所が含まれる可能性があります。英語の原文を読む

ワンタイムパスワード(OTP)

ワンタイムパスワード(OTP)は、二要素認証(2FA)に使われる一時的なコードです。KeePassiumは、現代のWebで最も広く使われている方式である時間ベースのワンタイムパスワードを保存・生成できます。

OTPをデータベースに保存しておけば、安全でポータブル、かつ特定のベンダーに依存しない管理方法として便利です。

OTPの仕組み

このセクションでは、時間ベースのOTPの仕組みを簡単に説明します。

初回設定の際、オンラインサービスとクライアントアプリ(KeePassiumなど)は_シークレット_を交換します。これはサーバーがランダムに生成した短い文字列で、QRコードを通じてクライアントに送られます。サーバーとクライアントの両方がこのシークレットを保存すると、初回設定は完了です。

日常の利用では、サーバーにサインインするたびに、サーバーとKeePassiumの両方が次の手順を実行します。

  • 1970年1月1日からの経過時間を数えます。ただし1秒単位ではなく、30秒などのより長い時間間隔で数えます。つまり、基準日からの「30秒」の回数(カウント)を計算します。
  • この回数を、_シークレット_の値によって制御される暗号アルゴリズムで処理します。
  • 結果を入力しやすいように6〜8桁に短縮します。

INFO

時間間隔、暗号アルゴリズム、コードの桁数はいずれも、OTP設定の一部として指定できるパラメータです。完全な仕様はRFC6238で確認できます。

最後に、生成されたOTPをサインインフォームに入力すると、サーバーは受け取ったコードをローカルで生成したコードと比較します。両者が一致すれば、検証の際にシークレットそのものをやり取りしていなくても、クライアントがシークレットを知っているという強力な証明になります。

OTPの設定

KeePassiumでOTPを設定する方法は2つあります。QRコードをスキャンする方法と、秘密鍵を手動で入力する方法です。

QRコードを使う

最も簡単で素早い方法です。

  • エントリー編集画面を開きます
  • 上部の + をタップし、ワンタイムパスワードQRコードを読み取る を選択します
  • 対象のWebサイトに表示されたQRコードにカメラを向けます。
    • 写真からQRコードを読み込むこともできます。

設定は、otpという名前のカスタムフィールドにotpauth URI(2FA用QRコードの事実上の標準形式)として保存されます。

サンプルQRコード
OTP設定を含むサンプルQRコード

OTP設定がotpauth://で始まるURLとして提供されている場合も、KeePassiumで扱えます。

  • デバイスの設定を開き、一般自動入力とパスワード に進みます
  • 確認コードを設定するアプリ の項目をKeePassiumに変更します

これで、OTP設定リンクをタップしたときや、カメラアプリでOTPのQRコードをスキャンしたときに、KeePassiumが自動的に起動します。あとは画面の案内に従って、OTP設定を目的のエントリーに読み込むだけです。

秘密鍵を使う

QRコードをスキャンできない場合は、秘密鍵を使った手動設定が便利です。

スクリーンショット:バーコードをスキャンできない場合
  • Webサイトで、秘密鍵を手動で入力するオプションを選択します
  • 秘密鍵をクリップボードにコピーします
  • KeePassiumでエントリー編集画面を開き、上部の + をタップ → ワンタイムパスワード手動で入力 を選択します
  • 秘密鍵をペーストして 完了 をタップします

TIP

スペースや大文字・小文字は区別されません。Abca B Cは同じコードです。

Steam用OTP

ValveのSteamサービスには独自のTOTP形式があります。KeePassiumはSteam形式のTOTPコードも生成できます。

データベース内のSteamのエントリーを開き、次の2つのカスタムフィールドを作成します。

  • TOTP Settings — 値は30;S(30は更新間隔、SはSteam固有の形式でTOTPコードを生成するという意味)
  • TOTP Seed — 秘密鍵(Base32形式)

Steamの秘密鍵の抽出はValveが公式にサポートしているものではありませんが、可能です。その手順は本ドキュメントの範囲外です。

OTPの使い方

設定が完了すると、OTPコードはエントリー一覧とエントリー表示画面の両方に表示されます。

スクリーンショット
エントリー一覧でのOTP

エントリー一覧では、OTPコードは通常 時計 ボタンの裏に隠れています。ボタンをタップするとOTPが表示され、クリップボードにコピーされます。

OTPの有効期限が近づくと、色が点滅し始めます。サーバーに確実に受け付けてもらうため、次のコードが表示されるのを待った方がよい場合もあります。

エントリー表示画面では、OTPコードが直接表示されます。コードの下の小さな線は、コードが更新されるまでの残り時間を示しています。OTP設定データのフィールドは表示画面では隠されています。このフィールドにアクセスするには、エントリーの編集を開始してください。

スクリーンショット
エントリー表示画面でのOTP

互換性

KeePassiumで設定したOTPコードは、KeePassXCおよびほとんどのモバイルアプリと互換性があります。逆も同様で、他のアプリで設定したコードはKeePassiumでも動作します。

例外として、KeePassでは他のアプリで設定されたOTPを認識するためにKeePassOTPプラグインが必要です。

トラブルシューティング

OTP設定ボタンが見つからない

データベースファイルが、カスタムエントリーフィールドに対応していない古い形式を使用しています。解決策として、データベースをKDBX形式にアップグレードしてください。

生成されたOTPコードが無効になる

  • デバイスのシステム時刻が正しいことを確認してください。30秒のずれでも、生成されるコードが無効になることがあります。
  • 入力した秘密鍵に誤字がないか確認してください。スペースや大文字・小文字は区別されません。