第24章 認証および相互運用性
AD ユーザーの解決に時間がかかる場合に、IdM LDAP サーバーが応答しなくなることがなくなりました。
System Security Services Daemon (SSSD) が Identity Management (IdM) サーバー上の信頼できる Active Directory (AD) ドメインからユーザーを解決するのに長い時間がかかると、IdM LDAP サーバーが独自のワーカースレッドを使い果たすことがありました。その結果、IdM LDAP サーバーは、SSSD クライアントまたは他の LDAP クライアントからのさらなるリクエストに応答できなくなりました。この更新により、IdM サーバー上の SSSD に新しい API が追加され、ID リクエストのタイムアウトが可能になります。また、IdM LDAP 拡張 ID 操作プラグインとスキーマ互換性プラグインがこの API をサポートし、時間がかかりすぎるリクエストをキャンセルできるようになりました。その結果、IdM LDAP サーバーは前述の状況から回復し、さらなるリクエストに応答し続けることができます。(BZ#1415162、BZ#1473571、BZ#1473577)
/etc/krb5.conf.d/
内のアプリケーション設定スニペットが既存の設定で自動的に読み取られるようになりました
以前は、Kerberos は、
/etc/krb5.conf.d/
ディレクトリーのサポートを既存の設定に自動的に追加しませんでした。その結果、ユーザーがディレクトリーの include ステートメントを手動で追加しない限り、/etc/krb5.conf.d/
内のアプリケーション設定スニペットは読み取られませんでした。この更新により、既存の設定が変更され、/etc/krb5.conf.d/
を指す適切な includeir
行が含まれます。その結果、アプリケーションは /etc/krb5.conf.d
内の設定スニペットに依存できます。
この更新後に
includedir
行を手動で削除した場合、後続の更新ではこの行は再度追加されないことに注意してください。(BZ#1431198)
pam_mkhomedir は /
の下にホームディレクトリーを作成できるようになりました
以前は、pam_mkhomedir モジュールは
/
ディレクトリーの下にサブディレクトリーを作成できませんでした。その結果、/
の下の存在しないディレクトリーにホームディレクトリーがあるユーザーがログインしようとすると、次のエラーが発生して失敗しました。
Unable to create and initialize directory '/<directory_path>'.
この更新により、前述の問題が修正され、pam_mkhomedir はこの状況でもホームディレクトリーを作成できるようになりました。
この更新プログラムを適用した後でも、SELinux は pam_mkhomedir によるホームディレクトリーの作成を妨げる可能性があることに注意してください。これは SELinux の想定される動作です。pam_mkhomedir にホームディレクトリーの作成を許可するには、カスタム SELinux モジュールを使用して SELinux ポリシーを変更します。これにより、正しい SELinux コンテキストで必要なパスを作成できるようになります。(BZ#1509338)
RODC の使用時に keytab ファイル内の KVNO に依存する Kerberos 操作が失敗しなくなりました
adcli
ユーティリティーは、読み取り専用ドメインコントローラー (RODC) 上の Kerberos キーを更新するときにキーバージョン番号 (KVNO) を適切に処理しませんでした。その結果、一致する KVNO を持つキーが keytab ファイル内に見つからなかったため、Kerberos チケットの検証などの一部の操作が失敗しました。今回の更新により、adcli
は RODC が使用されているかどうかを検出し、それに応じて KVNO を処理します。その結果、keytab ファイルには正しい KVNO が含まれており、この動作に依存するすべての Kerberos 操作は期待どおりに機能します。(BZ#1471021)
krb5 は、 単一レルム KDC 環境での PKINIT 設定ミスに関するエラーを適切に表示します。
以前は、Kerberos の初期認証用の公開キー暗号化 (PKINIT) が誤って設定された場合、krb5 パッケージは誤った設定を管理者に報告しませんでした。たとえば、この問題は、非推奨の pkinit_kdc_ocsp オプションが
/etc/krb5.conf
ファイルで指定されたときに発生しました。今回の更新により、Kerberos キー配布センター (KDC) でレルムが 1 つだけ指定されている場合、krb5 は PKINIT 初期化エラーを引き起こすようになりました。その結果、単一レルム KDC は PKINIT 設定ミスを適切に報告します。(BZ#1460089)
Certificate System が ROLE_ASSUME
監査イベントを誤って記録しなくなりました
以前は、ユーザーに特権アクセスがない場合でも、Certificate System は特定の操作に対して
ROLE_ASSUME
監査イベントを誤って生成していました。その結果、イベントが誤って記録されました。この問題は修正され、前述のシナリオでは ROLE_ASSUME
イベントが記録されなくなりました。(BZ#1461524)
CERT_STATUS_CHANGE_REQUEST_PROCESSED
監査ログイベントの属性を更新しました
以前は、ログファイルの
CERT_STATUS_CHANGE_REQUEST_PROCESSED
監査イベントには次の属性が含まれていました。
ReqID
- リクエスター IDSubjectID
- 証明書のサブジェクト ID
他の監査イベントとの整合性を保つために、属性が変更され、次の情報が含まれるようになりました。
ReqID
- リクエスト IDSubjectID
- リクエスター ID (BZ# 1461217)
署名付き監査ログの検証が正しく機能するようになりました
以前は、ログシステムの不適切な初期化と検証ツールによる誤った署名計算が原因で、署名付き監査ログの検証が最初のログエントリーとログローテーション後に失敗することがありました。この更新により、ログシステムと検証ツールが修正されました。その結果、署名付き監査ログの検証は、前述のシナリオで正しく機能するようになりました。(BZ#1404794)
Certificate System がバナーファイルを検証するようになりました
Certificate System の以前のバージョンでは、設定可能なアクセスバナー (すべての安全なセッションの開始時に PKI コンソールに表示されるカスタムメッセージ) が導入されました。このバナーの内容は検証されていないため、メッセージに無効な UTF-8 文字が含まれている場合、JAXBUnmarshalException エラーが発生する可能性があります。この更新により、バナーファイルの内容はサーバーの起動時とクライアントのリクエストの両方で検証されます。サーバーの起動時にファイルに無効な UTF-8 文字が含まれていることが判明した場合、サーバーは起動しません。クライアントがバナーを要求したときに無効な文字が見つかった場合、サーバーはエラーメッセージを返し、バナーはクライアントに送信されません。(BZ#1446579)
TPS サブシステムは、HSM で対称キーの変更を実行するときに失敗しなくなりました。
以前は、ハードウェアセキュリティーモジュール (HSM) トークンのマスターキーを使用して対称キーの変更を実行しようとすると、Certificate System トークン処理システム (TPS) サブシステムによって報告されるエラーが発生して失敗しました。この更新により、HSM 上のマスターキーを使用して新しいキーセットを計算する方法が修正され、マスターが HSM 上に存在する場合に TPS がトークンキーセットを正常にアップグレードできるようになります。この修正は現在、G&D SmartCafe 6.0 HSM で検証されています。(BZ#1465142)
Certificate System CA は、CN コンポーネントなしでサブジェクト DN を処理するときにエラーを表示しなくなりました
以前は、実装では Certificate Management over CMS (CMC) のサブジェクト識別名 (DN) に CN が存在することが期待されていたため、共通名 (CN) コンポーネントが欠落している受信リクエストにより認証局 (CA) で NullPointerException が発生していました。この更新により、CA は CN コンポーネントなしでサブジェクト DN を処理できるようになり、例外がスローされなくなります。(BZ#1474658)
ターゲットファイルが見つからない場合でも、pki-server-upgrade ユーティリティーが失敗しなくなりました
pki-server-upgrade ユーティリティーのバグにより、存在しないファイルを見つけようとしました。その結果、アップグレードプロセスが完了せず、PKI デプロイメントが無効な状態のままになる可能性があります。今回の更新により、ターゲットファイルが見つからない場合を正しく処理できるように pki-server-upgrade が変更され、PKI アップグレードが正しく機能するようになりました。(BZ#1479663)
Certificate System の CA キーのレプリケーションが正しく機能するようになりました。
キーのラップ解除関数の 1 つに対する以前の更新では、呼び出しサイトで提供されていないキー使用パラメーターの要件が導入され、軽量の認証局 (CA) キーのレプリケーションが失敗する原因となりました。このバグは、キー使用パラメーターを提供するように呼び出しサイトを変更することで修正され、軽量 CA キーレプリケーションが期待どおりに機能するようになりました。(BZ#1484359)
Certificate System が PKCS #12 ファイルのインポートに失敗しなくなりました
ネットワークセキュリティーサービス (NSS) での PKCS #12 パスワードエンコーディングへの以前の変更により、Certificate System が PKCS #12 ファイルのインポートに失敗しました。その結果、認証局 (CA) クローンのインストールを完了できませんでした。この更新により、PKI は失敗した PKCS #12 復号化を別のパスワードエンコーディングで再試行するようになり、新旧両方のバージョンの NSS で生成された PKCS #12 ファイルをインポートできるようになり、CA クローンのインストールが成功します。(BZ#1486225)
TPS ユーザーインターフェイスにトークンタイプと生成元フィールドが表示されるようになりました。
以前は、tps-cert-find および tps-cert-show トークン処理システム (TPS) ユーザーインターフェイスユーティリティーでは、従来の TPS インターフェイスに存在していたトークンタイプと生成元フィールドが表示されませんでした。インターフェイスが更新され、不足している情報が表示されるようになりました。(BZ#1491052)
Certificate System が CA 証明書の有効期限よりも後の有効期限を持つ証明書を発行しました
以前は、外部認証局 (CA) の証明書に署名するときに、Certificate System は
ValidityConstraint
プラグインを使用していました。その結果、発行元 CA の有効期限よりも後の有効期限を持つ証明書を発行することが可能でした。この更新プログラムにより、CAValidityConstraint
プラグインがレジストリーに追加され、登録プロファイルで使用できるようになります。さらに、caCMCcaCert
プロファイルの ValidityConstraint
プラグインは、制限を効果的に設定する CAValidityConstraint
プラグインに置き換えられました。その結果、発行 CA よりも後の有効期限を持つ証明書の発行は許可されなくなりました。(BZ#1518096)
SKI 拡張子のない CA 証明書によって発行エラーが発生しなくなりました
Certificate System の以前の更新では、発行者キー識別子を生成するフォールバック手順が誤って削除されました。その結果、CA 署名証明書にサブジェクトキー識別子 (SKI) 拡張セットが設定されていない場合、認証局 (CA) は証明書を発行できませんでした。今回の更新により、不足していた手順が再度追加されました。その結果、CA 署名証明書に SKI 拡張子が含まれていない場合でも、証明書の発行が失敗することがなくなりました。(BZ#1499054)
Certificate System は CMC 要求監査イベントにユーザー名を正しく記録します
以前は、Certificate System が CMS (CMC) 経由の証明書管理リクエストを受信すると、サーバーは
SubjectID
フィールドが $NonRoleUser$ に設定された監査イベントを記録していました。その結果、管理者は誰がリクエストを発行したかを確認できませんでした。この更新により問題が修正され、Certificate System は前述のシナリオでユーザー名を正しく記録するようになりました。(BZ#1506819)
Directory Server の単純な単語チェックのパスワードポリシーが期待どおりに機能するようになりました。
以前は、userPassword 属性を、passwordTokenMin 設定によって制限されている同じ長さの属性とまったく同じ値に設定すると、Directory Server は誤ってパスワード更新操作を許可していました。今回の更新により、単純な単語チェックのパスワードポリシー機能により、ユーザー属性値全体が全体として正しく検証されるようになり、上記の問題は発生しなくなります。(BZ#1517788)
pkidestroy
ユーティリティーは、pki-tomcatd-nuxwdog
サービスによって開始されたインスタンスを完全に削除するようになりました。
以前は、
pkidestroy
ユーティリティーは、開始メカニズムとして pki-tomcatd-nuxwdog
サービスを使用する Certificate System インスタンスを削除しませんでした。その結果、管理者は pkidestroy
を使用してインスタンスを完全に削除する前に、pki-tomcatd-nuxwdog
を watchdog なしのサービスに移行する必要がありました。ユーティリティーが更新され、前述のシナリオでインスタンスが正しく削除されました。
pkidestroy
を実行する前にパスワードファイルを手動で削除した場合、ユーティリティーはセキュリティードメインを更新するためにパスワードを要求することに注意してください。(BZ#1498957)
Certificate System デプロイメントアーカイブファイルにプレーンテキストのパスワードが含まれなくなりました
以前は、
DEFAULT
セクションにパスワードを含む設定ファイルを pkispawn
ユーティリティーに渡して新しい Certificate System インスタンスを作成すると、そのパスワードはアーカイブされたデプロイメントファイルに表示されていました。このファイルには誰でも読み取り可能なアクセス許可がありますが、デフォルトでは、Certificate Server インスタンスユーザー (pkiuser
) のみがアクセスできるディレクトリー内に含まれています。今回の更新により、このファイルに対するアクセス許可は証明書サーバーインスタンスユーザーに制限され、pkispawn
はアーカイブされたデプロイメントファイル内のパスワードをマスクするようになりました。
既存のインストールのパスワードへのアクセスを制限するには、
/etc/sysconfig/pki/tomcat/<instance_name>/<subsystem>/deployment.cfg
ファイルからパスワードを手動で削除し、ファイルの権限を 600 に設定します。(BZ#1532759)
targetfilter
キーワードを含む ACI は正しく動作します
以前は、ディレクトリーサーバーのアクセス制御命令 (ACI) で targetfilter キーワードが使用されていた場合、コードがテンプレートエントリーに対して実行される前に、
getEffective
権限制御を含む検索が返されました。その結果、GetEffectireRights()
関数はエントリーの作成時に権限を判断できず、ACI の検証時に偽陰性の結果を返しました。今回の更新により、Directory Server は、提供された getEffective
属性に基づいてテンプレートエントリーを作成し、このテンプレートエントリーへのアクセスを検証します。その結果、前述のシナリオの ACI は正しく動作します。(BZ#1459946)
スコープが 1 に設定された Directory Server の検索が修正されました
Directory Server のバグにより、スコープを 1 に設定した検索では、フィルターに一致した子エントリーのみではなく、すべての子エントリーが返されました。今回の更新でこの問題が修正されています。その結果、スコープ 1 での検索では、フィルターに一致するエントリーのみが返されます。(BZ#1511462)
TLS データを非 LDAPS ポートに送信するときのエラーメッセージをクリアする
以前は、Directory Server は、
LDAPMessage
データ型としてプレーンテキストを使用するように設定されたポートに送信される TLS プロトコルハンドシェイクをデコードしました。ただし、デコードは失敗し、サーバーは誤解を招く BER が 3 バイトであると報告しましたが、実際には < より大きな > エラーでした。今回の更新により、Directory Server は TLS データがプレーンテキスト用に設定されたポートに送信されたかどうかを検出し、次のエラーメッセージをクライアントに返します。
Incoming BER Element may be misformed. This may indicate an attempt to use TLS on a plaintext port, IE ldaps://localhost:389. Check your client LDAP_URI settings.
その結果、新しいエラーメッセージは、不適切なクライアント設定が問題の原因であることを示します。(BZ#1445188)
Directory Server は、cleanallruv タスクを実行していない場合にエラーをログに記録しなくなりました
cleanallruv タスクを実行せずに既存のレプリケーショントポロジーからレプリカサーバーを削除した後、Directory Server は以前、参照エントリーを置換できないというエラーをログに記録していました。この更新により、重複した紹介のチェックが追加され、削除されます。その結果、エラーはログに記録されなくなりました。(BZ#1434335)
多数の CoS テンプレートを使用しても、仮想属性の処理時間が遅くなることはなくなりました
バグにより、Directory Server で多数のサービスクラス (CoS) テンプレートを使用すると、仮想属性の処理時間が増加しました。この更新により、CoS ストレージの構造が改善されました。その結果、多数の CoS テンプレートを使用しても、仮想属性の処理時間が増加することはなくなりました。(BZ#1523183)
Directory Server は、オンライン初期化中にバインドを正しく処理するようになりました。
ある Directory Server マスターから別の Directory Server マスターへのオンライン初期化中に、変更を受信するマスターは一時的に参照モードに設定されます。このモードでは、サーバーは紹介のみを返します。以前は、Directory Server がこれらのバインド参照を誤って生成していました。その結果、前述のシナリオではサーバーが予期せず終了する可能性があります。この更新により、サーバーはバインド紹介を正しく生成するようになりました。その結果、サーバーはオンライン初期化中にバインドを正しく処理できるようになりました。(BZ#1483681)
dirsrv@.service
メタターゲットが multi-user.target
にリンクされるようになりました。
以前は、
dirsrv@.service
メタターゲットの systemd ファイルで Wants パラメーターが dirsrv.target に設定されていました。dirsrv@.service
を有効にすると、dirsrv.target
に対するサービスは正しく有効になりましたが、dirsrv.target
は有効になりませんでした。その結果、システムの起動時に Directory Server が起動しませんでした。この更新により、dirsrv@.service メタターゲットが multi-user.target
にリンクされるようになりました。その結果、dirsrv@.service
を有効にすると、システムの起動時に Directory Server が自動的に起動します。(BZ#1476207)
memberOf
プラグインは、memberOf
属性のすべての更新試行をログに記録するようになりました。
特定の状況では、Directory Server はユーザーエントリーの memberOf 属性の更新に失敗します。この場合、
memberOf
プラグインはエラーメッセージをログに記録し、更新を強制します。Directory Server の以前のバージョンでは、2 回目の試行が成功してもログに記録されませんでした。その結果、失敗した試行のみがログに記録されたため、ログエントリーは誤解を招くものでした。この更新により、memberOf
プラグインは、最初の試行が失敗した場合にも、成功した更新をログに記録します。その結果、プラグインは最初の失敗とその後の成功した再試行もログに記録するようになりました。(BZ#1533571)
Directory Server のパスワードポリシーが正しく機能するようになりました。
以前は、サブツリーおよびユーザーのパスワードポリシーは、グローバルパスワードポリシーと同じデフォルト値を使用していませんでした。その結果、Directory Server は特定の構文チェックを誤ってスキップしていました。このバグは修正されています。その結果、パスワードポリシー機能は、グローバル設定、サブツリー、およびユーザーポリシーに対して同様に機能します。(BZ#1465600)
Directory Server のバッファーオーバーフローが修正されました
以前は、インデックスが作成されるように属性を設定し、大きなバイナリー値を含むエントリーをこの属性にインポートすると、サーバーはバッファーオーバーフローにより予期せず終了していました。バッファーが修正されました。その結果、サーバーは前述のシナリオで期待どおりに動作します。(BZ#1498980)
Directory Server は、猶予ログイン中にパスワードの期限切れ制御を送信するようになりました。
以前は、期限切れのパスワードに猶予ログインが残っている場合、Directory Server は期限切れのパスワード制御を送信しませんでした。その結果、クライアントは、パスワードの有効期限が切れたことや、猶予ログインの残り回数をユーザーに伝えることができませんでした。この問題が修正されました。その結果、クライアントは、パスワードの有効期限が切れているかどうか、および猶予ログインが何回残っているかをユーザーに通知できるようになりました。(BZ#1464505)
不要なグローバルロックが Directory Server から削除されました
以前は、memberOf プラグインが有効になっており、ユーザーとグループが別のバックエンドに保存されている場合、デッドロックが発生する可能性がありました。不要なグローバルロックが削除されたため、前述のシナリオでデッドロックは発生しなくなります。(BZ#1501058)
TLS クライアント認証と FIPS モードが有効になっている場合、レプリケーションが正しく動作するようになりました。
以前は、連邦情報処理標準 (FIPS) モードが有効になっている Directory Server レプリケーション環境で TLS クライアント認証を使用した場合、内部ネットワークセキュリティーサービス (NSS) データベーストークンは、FIPS モードが無効になっているシステム上のトークンとは異なりました。その結果、レプリケーションが失敗しました。この問題は修正され、その結果、FIPS モードが有効な場合、TLS クライアント認証を使用したレプリケーションアグリーメントが正しく機能するようになりました。(BZ#1464463)
Directory Server は、仮想属性が機能するかどうかを正しく設定するようになりました。
Directory Server の pwdpolicysubentry サブツリーのパスワードポリシー属性には、動作可能としてフラグが設定されています。ただし、Directory Server の以前のバージョンでは、このフラグは、処理される次の仮想属性に誤って適用されていました。その結果、検索結果はクライアントには表示されませんでした。今回の更新により、サーバーは次の仮想属性とサービスクラス (CoS) を処理する前に属性をリセットするようになりました。その結果、期待された仮想属性と CoS がクライアントに返されるようになりました。(BZ#1453155)
レプリケーションが有効で変更ログファイルが存在する場合、バックアップが成功するようになりました。
以前は、レプリケーションが有効で変更ログファイルが存在する場合、このマスターサーバーでのバックアップの実行は失敗していました。この更新により、ファイルを正しくコピーするための内部オプションが設定されます。その結果、前述のシナリオでバックアップの作成が成功するようになりました。(BZ#1476322)
Certificate System は失効理由を正しく更新します
以前は、ユーザーがスマートカードトークンを一時的に紛失した場合、Certificate System トークン処理システム (TPS) の管理者が証明書のステータスを on hold から permanently lost または damaged に変更することがありました。ただし、新しい失効理由は CA に反映されませんでした。この更新により、証明書のステータスを on hold から revoked に直接変更できるようになりました。その結果、取り消し理由が正しく更新されます。(BZ#1500474)
Certificate System クローンのインストールプロセスでの競合状態が修正されました。
特定の状況では、セキュリティードメインセッションオブジェクトの LDAP レプリケーションと、ログインが行われたクローン以外のクローンに対する認証された操作の実行との間で競合状態が発生しました。その結果、Certificate System のインストールのクローン作成が失敗しました。今回の更新により、クローンのインストールプロセスは、セキュリティードメインのログインが完了するまで待機してから、セキュリティードメインセッションオブジェクトを他のクローンにレプリケートできるようになりました。その結果、クローンのインストールは失敗しなくなりました。(BZ#1402280)
Certificate System はデフォルトで強力な暗号を使用するようになりました
この更新により、有効な暗号のリストが変更されました。デフォルトでは、連邦情報処理標準 (FIPS) に準拠した強力な暗号のみが Certificate System で有効になります。
デフォルトで有効になっている RSA 暗号:
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
インストールおよび設定中に
pkispawn
ユーティリティーが LDAP サーバーに接続できるようにするには、TLS_RSA_WITH_AES_128_CBC_SHA
および TLS_RSA_WITH_AES_256_CBC_SHA
暗号を有効にする必要があることに注意してください。
デフォルトで有効になっている ECC 暗号:
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
さらに、
/var/lib/pki/<instance_name>/conf/server.xml
ファイル内の sslVersionRangeStream パラメーターと sslVersionRangeDatagram パラメーターのデフォルト範囲では、TLS 1.1 および TLS 1.2 暗号のみが使用されるようになりました。(BZ#1539125)
pkispawn
ユーティリティーで誤ったエラーが表示されなくなりました
以前は、Certificate System の正常なインストール中に、
pkispawn
ユーティリティーによって一時証明書の削除に関連するエラーが誤って表示されていました。この問題は修正され、インストールが成功するとエラーメッセージは表示されなくなりました。(BZ#1520277)
Certificate System プロファイル設定更新メソッドがバックスラッシュを正しく処理するようになりました。
以前は、ユーザーがプロファイルを更新すると、Certificate System のパーサーが設定からバックスラッシュ文字を削除していました。その結果、影響を受けるプロファイル設定を正しくインポートできず、証明書の発行が失敗するか、システムが間違った証明書を発行しました。Certificate System は、バックスラッシュを正しく処理するパーサーを使用するようになりました。その結果、プロファイル設定の更新により設定が正しくインポートされます。(BZ#1541853)