「オープン認証イニシアチブ」の版間の差分
ナビゲーションに移動
検索に移動
Kusanaginoturugi (トーク | 投稿記録) (リンクを追加、カテゴリの変更) |
Kusanaginoturugi (トーク | 投稿記録) (二要素認証に用語を統一) |
||
(同じ利用者による、間の12版が非表示) | |||
3行目: | 3行目: | ||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|U2F}} |
{{Related|U2F}} |
||
− | {{Related| |
+ | {{Related|保存データ暗号化}} |
{{Related|Google Authenticator}} |
{{Related|Google Authenticator}} |
||
− | {{Related| |
+ | {{Related|アイデンティティ管理}} |
{{Related|Yubikey}} |
{{Related|Yubikey}} |
||
{{Related|pam_oath}} |
{{Related|pam_oath}} |
||
11行目: | 11行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
+ | [[Wikipedia:Initiative for Open Authentication|オープン認証イニシアチブ]] (OATH)は、強力な認証の採用を促進するために、オープンスタンダードを使用したオープンなリファレンスアーキテクチャを開発するための業界全体の協力体制です。Google Authenticator やその他の一般的な二要素認証アプリケーションが使用する標準を公開しています。 |
||
− | The [[Wikipedia:Initiative for Open Authentication|Initiative for Open Authentication]] (OATH) is an industry-wide collaboration to develop an open reference architecture using open standards to promote the adoption of strong authentication. They publish the standard which Google Authenticator and other common 2-factor applications use. |
||
− | == |
+ | == インストール == |
+ | 以下のパッケージは、OATH 資格情報の生成、転送、および検証に使用できます。 |
||
− | The following packages can be used to generate, transfer, and validate OATH credentials: |
||
+ | * {{Pkg|oath-toolkit}} - 資格情報を受け取り、コードを生成します。ユーザー認証用の PAM モジュールが含まれています。詳細は [[pam_oath]] を参照してください。 |
||
− | * {{Pkg|oath-toolkit}} - Takes credentials and generates codes. Includes a PAM module for user authentication. |
||
− | * {{Pkg|libpam-google-authenticator}} - |
+ | * {{Pkg|libpam-google-authenticator}} - 新しい資格情報を生成するクライアントプログラム {{ic|google-authenticator}} と、ユーザー認証用の PAM モジュールを提供します。詳細は [[Google Authenticator]] を参照してください。 |
− | * {{Pkg|pass-otp}} - |
+ | * {{Pkg|pass-otp}} - {{Pkg|pass}} に OATH サポートを追加します。 |
− | * {{Pkg|zbar}} - |
+ | * {{Pkg|zbar}} - QR コードをデコードします。 |
− | * {{Pkg|qrencode}} - |
+ | * {{Pkg|qrencode}} - QR コードをエンコードします。 |
− | == |
+ | == 標準 == |
+ | OATH は、Arch ユーザーにとって重要な 2 つの標準を作成しました。どちらも任意の長さの Base32 エンコードされた共有シークレットに基づいています。 |
||
− | OATH has created two standards of significance to an Arch user, both based on a Base32-encoded shared secret of arbitrary length: |
||
+ | ; HOTP: HMAC(ハッシュベースのメッセージ認証コード)ワンタイムパスワード([[Wikipedia:HMAC-based_One-time_Password_algorithm|HOTP]])。パスワードが生成されるたびにカウンターが増加します。この値はシークレットキーと連結され、6~10 桁のコードを生成するためにハッシュされます。認証側も同様に処理しますが、コードが正常に認証されるとカウンターを増加させます。カウンターの非同期化を処理するために、認証側は現在のカウンター状態を超えて、さらに複数(30~100)の値をチェックすることができます。 |
||
− | ; HOTP: HMAC (Hash-based message authentication code) One-time Password ([[Wikipedia:HMAC-based_One-time_Password_algorithm|HOTP]]). Every time a password is generated, a counter is incremented. This value is concatenated with a secret key, and then hashed to generate a 6-10 digit code. The authenticating party does the same, except it increments a counter when a code is successfully authenticated. To handle desynchronization of the counter, the authenticating party can also check several (30-100) additional values beyond its current counter state. |
||
+ | ; TOTP: 時間ベースのワンタイムパスワード([[Wikipedia:Time-based_One-time_Password_algorithm|TOTP]])。HOTP と非常によく似ていますが、カウンターの代わりに現在の時間を使用します。これにより、非同期化の問題が解決され、攻撃者が OTP を記録して後で使用する可能性が排除されます。 |
||
− | ; TOTP: Time-based one-time-password ([[Wikipedia:Time-based_One-time_Password_algorithm|TOTP]]), which works much like HOTP except it uses the current time instead of a counter. This solves the desynchronization problem, and eliminates the possibility of an adversary recording OTPs for use later. |
||
− | == URI |
+ | == URI 資格情報フォーマット == |
− | + | 資格情報は通常、QR エンコードされた [https://github.com/google/google-authenticator/wiki/Key-Uri-Format URI フォーマット]で共有されます。すべてのフィールドは URI エンコードされた文字列でなければなりません。 |
|
otpauth://TYPE/LABEL?PARAMETERS |
otpauth://TYPE/LABEL?PARAMETERS |
||
+ | {{warning|URI フォーマットされた資格情報およびそれから生成された QR コードには、有効なワンタイムパスワードを生成するために必要なすべての情報が含まれています。他のパスワードと同様に、これを保護してください。}} |
||
− | {{warning|A URI formatted credential, and any QR code generated from it, contains all information required to generate valid one-time passwords. Protect it as you would any other password.}} |
||
− | ; TYPE: {{ic|totp}} |
+ | ; TYPE: {{ic|totp}} または {{ic|hotp}} |
− | ; LABEL: |
+ | ; LABEL: キーが関連付けられているアカウントを識別し、オプションで発行者の文字列をプレフィックスとして追加します。例: {{ic|Arch%20Wiki@archlinux.org}} |
− | ; PARAMETERS: |
+ | ; PARAMETERS: 標準の URI パラメータ形式を取ります - {{ic|1=?name=value&name=value...}} |
− | * {{ic|secret}} - |
+ | * {{ic|secret}} - 必須; これは Base32 でエンコードされた共有シークレットです。 |
+ | * {{ic|issuer}} - アカウントが関連付けられているプロバイダまたはサービスを示します。これがない場合、ラベルの発行者プレフィックスが使用されます。両方が存在する場合、それらは一致している必要があります。 |
||
− | * {{ic|issuer}} - Indicates the provider or service the account is associated with. If this is absent, the issuer prefix of the label will be used. If both are present, they should be equal. |
||
− | * {{ic|algorithm}} - {{ic|SHA1}} |
+ | * {{ic|algorithm}} - デフォルトでは {{ic|SHA1}}。{{ic|SHA256}} または {{ic|SHA512}} も使用できます。 |
+ | * {{ic|digits}} - パスコードの長さを指定します。デフォルトは 6 ですが、8 に設定することもできます。 |
||
− | * {{ic|digits}} - How long passcodes should be. Default is 6, can be 8. |
||
+ | * {{ic|counter}} - HOTP を使用する場合に必要です。初期カウンター値。 |
||
− | * {{ic|counter}} - Required if using HOTP. Initial counter value. |
||
+ | * {{ic|period}} - TOTP を使用する場合はオプションです。コードの有効期限を設定します。デフォルトは 30 秒です。 |
||
− | * {{ic|period}} - Optional if using TOTP. Sets how long a code is valid, 30 seconds by default. |
||
+ | 以下は例です: |
||
− | Here is an example: |
||
otpauth://totp/Example%20Company:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example%20Company |
otpauth://totp/Example%20Company:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example%20Company |
||
− | |type| issuer prefix | account | secret | issuer |
+ | |type| issuer prefix | account | secret | issuer | |
− | | label | parameters |
+ | | label | parameters | |
− | == |
+ | == ヒントとコツ == |
− | === |
+ | === QR コードをデコードする === |
+ | これは {{Pkg|zbar}} のツールを使用して実行できます。PNG ファイルをデコードするには以下のコマンドを使用します: |
||
− | This can be accomplished with tools from {{Pkg|zbar}}. Decode a PNG file: |
||
$ zbarimg my_qr_code.png --quiet --raw |
$ zbarimg my_qr_code.png --quiet --raw |
||
+ | カメラから画像をデコードするには以下のコマンドを使用します: |
||
− | Decode images from a camera: |
||
$ zbarcam /dev/video0 |
$ zbarcam /dev/video0 |
||
− | === |
+ | === QR コードを作成する === |
− | + | この場合、{{Pkg|qrencode}} パッケージが便利です。 |
|
+ | URI をエンコードして、PNG として保存するには以下のコマンドを使用します: |
||
− | Encode a URI, save it as a PNG: |
||
$ qrencode -o my_code.png 'MY_URI' |
$ qrencode -o my_code.png 'MY_URI' |
||
+ | URI をエンコードして、QR コードをターミナルに表示するには以下のコマンドを使用します: |
||
− | Encode a URI, print a QR code to the terminal: |
||
$ qrencode -t ansiutf8 'MY_URI' |
$ qrencode -t ansiutf8 'MY_URI' |
||
− | === |
+ | === キーを生成する === |
+ | 適切な形式でキーを生成するには、次のようなコマンドを使用できます: |
||
− | To generate your own key in the proper format, you can use something like the following: |
||
$ head -c 16 /dev/urandom | base32 --wrap 0 |
$ head -c 16 /dev/urandom | base32 --wrap 0 |
||
+ | === コマンドラインから OTP を生成する === |
||
− | === Generate OTPs from the command line === |
||
− | + | {{Pkg|oath-toolkit}} の {{man|1|oathtool}} を使用します: |
|
$ oathtool --base32 --totp KEY |
$ oathtool --base32 --totp KEY |
||
+ | [[pass]] や [[KeePass]] など、多くのパスワードマネージャーもこれらのコードを生成するサポートを提供しています。 |
||
− | Many password managers, including [[pass]] and [[KeePass]] also offer support for generating these codes. |
||
+ | === PAM を使用した Linux ユーザー認証 === |
||
− | === Linux User authentication with PAM === |
||
− | + | [[pam_oath]] または [[Google Authenticator]] を参照してください。 |
|
− | == |
+ | == 参照 == |
− | * [https://openauthentication.org/specifications-technical-resources/ |
+ | * [https://openauthentication.org/specifications-technical-resources/ 標準仕様] |
− | * [https://github.com/google/google-authenticator/wiki/Key-Uri-Format URI |
+ | * [https://github.com/google/google-authenticator/wiki/Key-Uri-Format URI フォーマットリファレンス] |
+ | * [https://zxing.org/w/decode.jspx QR およびバーコードデコーダー] - 実際の資格情報はここに入力しないでください。 |
||
− | * [https://rootprojects.org/authenticator/ QR code tester] - Do not enter actual credentials here. |
||
+ | * [https://web.archive.org/web/20210127122609/https://rootprojects.org/authenticator/ QR コードテスター (archive.org)] - 実際の資格情報はここに入力しないでください。 |
||
+ | |||
+ | {{TranslationStatus|Initiative for Open Authentication|2024-08-16|809036}} |
2024年9月5日 (木) 21:06時点における最新版
オープン認証イニシアチブ (OATH)は、強力な認証の採用を促進するために、オープンスタンダードを使用したオープンなリファレンスアーキテクチャを開発するための業界全体の協力体制です。Google Authenticator やその他の一般的な二要素認証アプリケーションが使用する標準を公開しています。
目次
インストール
以下のパッケージは、OATH 資格情報の生成、転送、および検証に使用できます。
- oath-toolkit - 資格情報を受け取り、コードを生成します。ユーザー認証用の PAM モジュールが含まれています。詳細は pam_oath を参照してください。
- libpam-google-authenticator - 新しい資格情報を生成するクライアントプログラム
google-authenticator
と、ユーザー認証用の PAM モジュールを提供します。詳細は Google Authenticator を参照してください。 - pass-otp - pass に OATH サポートを追加します。
- zbar - QR コードをデコードします。
- qrencode - QR コードをエンコードします。
標準
OATH は、Arch ユーザーにとって重要な 2 つの標準を作成しました。どちらも任意の長さの Base32 エンコードされた共有シークレットに基づいています。
- HOTP
- HMAC(ハッシュベースのメッセージ認証コード)ワンタイムパスワード(HOTP)。パスワードが生成されるたびにカウンターが増加します。この値はシークレットキーと連結され、6~10 桁のコードを生成するためにハッシュされます。認証側も同様に処理しますが、コードが正常に認証されるとカウンターを増加させます。カウンターの非同期化を処理するために、認証側は現在のカウンター状態を超えて、さらに複数(30~100)の値をチェックすることができます。
- TOTP
- 時間ベースのワンタイムパスワード(TOTP)。HOTP と非常によく似ていますが、カウンターの代わりに現在の時間を使用します。これにより、非同期化の問題が解決され、攻撃者が OTP を記録して後で使用する可能性が排除されます。
URI 資格情報フォーマット
資格情報は通常、QR エンコードされた URI フォーマットで共有されます。すべてのフィールドは URI エンコードされた文字列でなければなりません。
otpauth://TYPE/LABEL?PARAMETERS
- TYPE
totp
またはhotp
- LABEL
- キーが関連付けられているアカウントを識別し、オプションで発行者の文字列をプレフィックスとして追加します。例:
Arch%20Wiki@archlinux.org
- PARAMETERS
- 標準の URI パラメータ形式を取ります -
?name=value&name=value...
secret
- 必須; これは Base32 でエンコードされた共有シークレットです。issuer
- アカウントが関連付けられているプロバイダまたはサービスを示します。これがない場合、ラベルの発行者プレフィックスが使用されます。両方が存在する場合、それらは一致している必要があります。algorithm
- デフォルトではSHA1
。SHA256
またはSHA512
も使用できます。digits
- パスコードの長さを指定します。デフォルトは 6 ですが、8 に設定することもできます。counter
- HOTP を使用する場合に必要です。初期カウンター値。period
- TOTP を使用する場合はオプションです。コードの有効期限を設定します。デフォルトは 30 秒です。
以下は例です:
otpauth://totp/Example%20Company:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example%20Company |type| issuer prefix | account | secret | issuer | | label | parameters |
ヒントとコツ
QR コードをデコードする
これは zbar のツールを使用して実行できます。PNG ファイルをデコードするには以下のコマンドを使用します:
$ zbarimg my_qr_code.png --quiet --raw
カメラから画像をデコードするには以下のコマンドを使用します:
$ zbarcam /dev/video0
QR コードを作成する
この場合、qrencode パッケージが便利です。
URI をエンコードして、PNG として保存するには以下のコマンドを使用します:
$ qrencode -o my_code.png 'MY_URI'
URI をエンコードして、QR コードをターミナルに表示するには以下のコマンドを使用します:
$ qrencode -t ansiutf8 'MY_URI'
キーを生成する
適切な形式でキーを生成するには、次のようなコマンドを使用できます:
$ head -c 16 /dev/urandom | base32 --wrap 0
コマンドラインから OTP を生成する
oath-toolkit の oathtool(1) を使用します:
$ oathtool --base32 --totp KEY
pass や KeePass など、多くのパスワードマネージャーもこれらのコードを生成するサポートを提供しています。
PAM を使用した Linux ユーザー認証
pam_oath または Google Authenticator を参照してください。
参照
- 標準仕様
- URI フォーマットリファレンス
- QR およびバーコードデコーダー - 実際の資格情報はここに入力しないでください。
- QR コードテスター (archive.org) - 実際の資格情報はここに入力しないでください。