Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.3. ワンタイムパスワード

重要
OTP 認証の IdM ソリューションは、Red Hat Enterprise Linux 7.1 以降を実行しているクライアントでのみサポートされます。
ワンタイムパスワード(OTP)は認証セッションを 1 つだけ有効で、使用後に無効になります。従来の静的パスワードとは異なり、認証トークンが生成した OTP は変更を維持します。OTP は、2 要素認証の一部として使用されます。
  1. ユーザーは、従来のパスワードで認証します。
  2. ユーザーは、認識された OTP トークンによって生成された OTP コードを提供します。
2 要素認証は、従来のパスワードだけを使用した認証よりも安全であると考えられます。潜在的な侵入者が、ログイン時に OTP をインターセプトする場合でも、傍受された OTP は、正常な認証にのみ使用できるため、その時点ですでに無効になっています。
警告
現在、以下のセキュリティーとその他の制限は、IdM の OTP サポートに関連しています。
  • 最も重要なセキュリティー制限は、システム全体で攻撃を再生する潜在的な脆弱性です。レプリケーションは非同期で、OTP コードはレプリケーション期間中に再利用できます。ユーザーは、同時に 2 つのサーバーに同時にログインできる場合があります。ただし、この脆弱性は通常、包括的な暗号化により悪用は困難です。
  • OTP 認証に対応していないクライアントを使用して TGT(Ticket-Granting Ticket)を取得できません。これは、mod_auth_kerb モジュールまたは Generic Security Services API(GSSAPI)を使用した認証などの特定のユースケースに影響する可能性があります。
  • FIPS モードが有効な場合は、IdM ソリューションでパスワード + OTP を使用することはできません。

22.3.1. IdM での OTP 認証の仕組み

22.3.1.1. IdM でサポートされる OTP トークン

ソフトウェアトークンおよびハードウェアトークン

IdM は、ソフトウェアトークンとハードウェアトークンの両方をサポートします。

ユーザー管理トークンおよび管理者管理のトークン

ユーザーは独自のトークンを管理でき、管理者はトークンを管理できます。
ユーザー管理のトークン
Identity Management では、ユーザー管理のトークンを完全に制御できます。トークンの作成、編集、または削除が可能です。
管理者管理のトークン
管理者は、管理者管理のトークンをユーザーのアカウントに追加します。ユーザー自体は、このようなトークンに対する読み取り専用アクセスがあります。トークンを管理または変更するパーミッションがなく、トークンを一切設定する必要はありません。
現在、アクティブなトークンのみの場合、ユーザーはトークンを削除または非アクティブ化できません。管理者として、最後にアクティブなトークンを削除または非アクティブにすることはできませんが、別のユーザーが最後にアクティブなトークンを削除または非アクティブにすることはできません。

サポート対象 OTP アルゴリズム

Identity Management は、以下にある、2 つの標準 OTP メカニズムに対応しています。
  • HMAC ベースのワンタイムパスワード (HOTP) アルゴリズムは、カウンターに基づいています。HMAC は、Hashed Message Authentication Code (ハッシュメッセージ認証コード) を表しています。
  • 時間ベースのワンタイムパスワード (TOTP) アルゴリズムは、時間ベースの移動要素に対応する HOTP の拡張機能です。

22.3.1.2. 利用可能な OTP 認証方法

OTP 認証を有効にすると、以下の認証方法を選択できます。
2 要素認証(パスワード + OTP)
この方法では、標準のパスワードと OTP コードの両方を入力する必要があります。
Password
この方法では、標準のパスワードでのみ認証を行うオプションがあります。
RADIUS プロキシーサーバー認証
OTP 検証に RADIUS サーバーを設定する方法は、「プロプライエタリー OTP ソリューションからの移行」 を参照してください。

グローバルおよびユーザー固有の認証方法

これらの認証方法は、グローバルまたは個別ユーザーのいずれかに設定できます。
  • デフォルトでは、ユーザー固有の認証方法の設定は、グローバル設定よりも優先されます。ユーザーに認証方法が設定されていない場合、グローバルに定義されたメソッドが適用されます。
  • 任意のユーザーのユーザーごとの認証方法設定を無効にすることができます。これにより、IdM はユーザーごとの設定を無視し、常にユーザーにグローバル設定を適用します。

複数の認証方法の統合

複数のメソッドを一度に設定した場合には、いずれかのメソッドが認証に成功するには十分です。たとえば、以下のようになります。
  • 2 要素とパスワード認証の両方を設定する場合、ユーザーはパスワード(最初の要素)を指定する必要があり、コマンドラインを使用する場合は OTP(2 番目の要素)を指定することもできます。
    First Factor:
    Second Factor (optional):
  • Web UI では、ユーザーが引き続き両方の要素を提供する必要があります。
注記
個々のホストまたはサービスが、OTP などの特定の認証方法を必要とするように設定できます。最初の要素のみを使用してこのようなホストまたはサービスへの認証を試みると、アクセスは拒否されます。「ユーザー認証方法に基づくサービスおよびホストへのアクセス制限」 を参照してください。
ただし、RADIUS およびその他の認証方法が設定されている場合には、マイナーな例外が存在します。
  • Kerberos は常に RADIUS を使用しますが、LDAP は使用しません。LDAP は、パスワードと 2 要素認証メソッドのみを認識します。
  • 外部の 2 要素認証プロバイダーを使用する場合、アプリケーションからの Kerberos を使用します。ユーザーがパスワードでのみ認証できるようにするには、LDAP を使用します。アプリケーションは Apache モジュールと SSSD を活用し、Kerberos または LDAP のいずれかを設定できます。

22.3.1.3. GNOME キーリングサービスのサポート

IdM は、GNOME Keyring サービスと OTP 認証を統合します。GNOME Keyring 統合では、ユーザーが 1 番目と 2 番目の要素を個別に入力する必要があることに注意してください。
First factor: static_password
Second factor: one-time_password

22.3.1.4. OTP によるオフライン認証

IdM は、オフライン OTP 認証に対応します。ただし、オフラインでログインできるようにするには、静的パスワードと OTP を別々に入力し、システムのオンライン時に最初に認証する必要があります。
First factor: static_password
Second factor: one-time_password
オンラインでログインする際にこのように両方のパスワードを個別に入力すると、中央認証サーバーが利用できない場合でも、ユーザーは認証できるようになります。IdM は、ユーザーがオフラインで認証される時に、従来のファクターの静的パスワードのみを要求することに注意してください。
IdM は、First factor プロンプトの 1 つの文字列に、静的パスワードと OTP の両方を入力することにも対応してい ます。ただし、これはオフラインの OTP 認証と互換性がありません。ユーザーが単一のプロンプトで両方の要素に入ると、認証時に IdM が必ず中央認証サーバーと通信する必要があります。そのため、システムがオンラインである必要があります。
重要
ラップトップなど、オフラインで動作するデバイスで OTP 認証を使用する場合は、オフラインの認証を使用できるように、Red Hat は、静的なパスワードを個別に入力し、OTP を個別に入力することが推奨します。それ以外の場合は、IdM では、システムがオフラインになった後にログインできません。
OTP のオフライン認証の利点を、静的パスワードと OTP パスワードを個別に入力する以外に、次の条件を満たしていることを確認してください。
  • /etc/sssd/sssd.conf ファイルの cache_credentials オプションは True に設定され、最初のファクターパスワードのキャッシュが可能になります。
  • first-factor 静的パスワードは、/etc/sssd/sssd.conf で設定した cache_credentials_minimal_first_factor_length オプションで定義されたパスワード長要件を満たします。デフォルトの最小長は 8 文字です。オプションの詳細は、sssd.conf(5) の man ページを参照してください。
krb5_store_password_if_offline オプションが /etc/sssd/sssd.conftrue に設定されている場合でも、システムで OTP がすでに無効になるため、SSSD は Kerberos ticket-granting Ticket(TGT)を更新しません。この状況で TGT を取得するには、両方の要素を使用してユーザーが再度認証する必要があります。