コンテンツにスキップ

「オープン認証イニシアチブ」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
55行目: 55行目:
| label | parameters |
| label | parameters |


== Tips and tricks ==
== ヒントとコツ ==


=== Decode QR codes ===
=== 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


=== Create QR codes ===
=== QR コードを作成する ===


The {{Pkg|qrencode}} package is useful here.
この場合、{{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'


=== Generate keys ===
=== キーを生成する ===


適切な形式でキーを生成するには、次のようなコマンドを使用できます:
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}} を使用します:
Use {{man|1|oathtool}} from {{Pkg|oath-toolkit}}:


$ 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 ===


See either [[pam_oath]] or [[Google Authenticator]].
[[pam_oath]] または [[Google Authenticator]] を参照してください。


== See also ==
== See also ==

2024年8月16日 (金) 19:10時点における版

オープン認証イニシアチブ (OATH)は、強力な認証の採用を促進するために、オープンスタンダードを使用したオープンなリファレンスアーキテクチャを開発するための業界全体の協力体制です。Google Authenticator やその他の一般的な2要素認証アプリケーションが使用する標準を公開しています。

インストール

以下のパッケージは、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
警告 URI フォーマットされた資格情報およびそれから生成された QR コードには、有効なワンタイムパスワードを生成するために必要なすべての情報が含まれています。他のパスワードと同様に、これを保護してください。
TYPE
totp または hotp
LABEL
キーが関連付けられているアカウントを識別し、オプションで発行者の文字列をプレフィックスとして追加します。例: Arch%20Wiki@archlinux.org
PARAMETERS
標準の URI パラメータ形式を取ります - ?name=value&name=value...
  • secret - 必須; これは Base32 でエンコードされた共有シークレットです。
  • issuer - アカウントが関連付けられているプロバイダまたはサービスを示します。これがない場合、ラベルの発行者プレフィックスが使用されます。両方が存在する場合、それらは一致している必要があります。
  • algorithm - デフォルトでは SHA1SHA256 または 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-toolkitoathtool(1) を使用します:

$ oathtool --base32 --totp KEY

passKeePass など、多くのパスワードマネージャーもこれらのコードを生成するサポートを提供しています。

PAM を使用した Linux ユーザー認証

pam_oath または Google Authenticator を参照してください。

See also