17.4. strict モード


fips-mode オプションがあります。fips 機能が有効になっている場合、これは自動的に non-strict に設定されます。これは、BCFIPS が "非承認モード" で実行されることを意味します。よりセキュアな代替方法として、--features=fips --fips-mode=strict を使用できます。この場合、BouncyCastle FIPS は "承認モード" を使用します。このオプションを使用すると、暗号化とセキュリティーアルゴリズムに対するセキュリティー要件が厳しくなります。

注記

strict モードでは、デフォルトのキーストアタイプ (およびデフォルトのトラストストアタイプ) は BCFKS です。別のキーストアタイプを使用する場合は、オプション --https-key-store-type を使用して適切なタイプを指定する必要があります。トラストストアを使用する場合も、同様のコマンドが必要になる場合があります。

サーバーを起動するときに、起動コマンドに TRACE レベルを含めることができます。以下に例を示します。

--log-level=INFO,org.keycloak.common.crypto.CryptoIntegration:TRACE
Copy to Clipboard Toggle word wrap

TRACE レベルを使用すると、次のような Approved Mode に関する注記が付いた KC プロバイダーが起動ログに含まれていることを確認できます。

KC(BCFIPS version 2.0 Approved Mode, FIPS-JVM: enabled) version 1.0 - class org.keycloak.crypto.fips.KeycloakFipsSecurityProvider,
Copy to Clipboard Toggle word wrap

17.4.1. strict モードでの暗号化の制限

  • 前のセクションで説明したように、strict モードは pkcs12 キーストアでは機能しない可能性があります。前述のように、別のキーストア (bcfks など) を使用する必要があります。また、strict モードを使用している場合、jks および pkcs12 キーストアは Red Hat build of Keycloak ではサポートされません。たとえば、管理コンソールの OIDC または SAML クライアントのキーストア、もしくはレルムキーの java-keystore プロバイダーのキーストアのインポートや生成などです。
  • ユーザーパスワードは、14 文字以上でなければなりません。Red Hat build of Keycloak は、デフォルトで PBKDF2 ベースのパスワードエンコーディングを使用します。BCFIPS 承認モードでは、PBKDF2 アルゴリズムを使用した 112 ビット (実質的には 14 文字) 以上のパスワードが必要です。それよりも短いパスワードを許可する場合は、SPI password-hashing のプロバイダー pbkdf2-sha512 のプロパティー max-padding-length を 14 に設定して、このアルゴリズムによって作成されたハッシュの検証時に追加のパディングを提供します。この設定は、以前に保存されたパスワードとの下位互換性もあります。たとえば、ユーザーのデータベースが非 FIPS 環境にあり、パスワードが短く、承認モードで BCFIPS を使用して Red Hat build of Keycloak でパスワードを検証する場合、そのパスワードは機能するはずです。したがって、サーバーの起動時に次のようなオプションを効果的に使用できます。
--spi-password-hashing-pbkdf2-sha512-max-padding-length=14
Copy to Clipboard Toggle word wrap
注記

上記のオプションを使用しても、FIPS 準拠は損なわれません。いずれにせよ、パスワードは長くすることが推奨されます。たとえば、最新のブラウザーで自動生成されるパスワードは 14 文字を超えるため、この要件に一致します。max-padding-length のオプションを省略する場合は、パスワードの長さが少なくとも 14 文字になるようにレルムにパスワードポリシーを設定できます。

注記

24 より古い Red Hat build of Keycloak から移行する場合、またはデフォルトのハッシュアルゴリズムをオーバーライドするようにパスワードポリシーを明示的に設定する場合は、一部のユーザーが pbkdf2-sha256 などの古いアルゴリズムを使用している可能性があります。この場合、パスワードが 14 文字より短い可能性があるため、古い pbkdf2-sha256 でハッシュされたパスワードを持つユーザーがログインできるように、--spi-password-hashing-pbkdf2-sha256-max-padding-length=14 オプションを追加することを検討してください。

  • 1024 ビットの RSA キーは機能しません (最小は 2048)。これは、Red Hat build of Keycloak レルム自体が使用するキー (管理コンソールの Keys のレルムキー) だけでなく、クライアントキーと IDP キーにもあてはまります。
  • HMAC SHA-XXX キーは、112 ビット (または 14 文字) 以上でなければなりません。たとえば、OIDC クライアントをクライアント認証 Signed Jwt with Client Secret (OIDC 表記では client-secret-jwt) で使用する場合、クライアントシークレットの長さは 14 文字以上である必要があります。優れたセキュリティーを確保するには、この要件が必ず満たされるように、Red Hat build of Keycloak サーバーによって生成されたクライアントシークレットを使用することを推奨します。
  • bc-fips バージョン 1.0.2.4 は、PKCS 1.5 RSA 暗号化の移行期間の終了に対応しています。したがって、アルゴリズム RSA1_5 を使用した JSON Web Encryption (JWE) は、デフォルトでは厳密モードでは許可されません (BC は現時点では下位互換性オプションとしてシステムプロパティー -Dorg.bouncycastle.rsa.allow_pkcs15_enc=true を提供)。RSA-OAEP および RSA-OAEP-256 は、以前と同様に引き続き利用可能です。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat