Citrix ADC

OTP 暗号化ツール

Citrix ADCリリース13.0ビルド41.20以降、OTPシークレットデータはプレーンテキストではなく暗号化された形式で保存され、セキュリティが強化されます。暗号化された形式でのOTPシークレットの保存は自動的に行われ、手動による介入は必要ありません。

以前は、Citrix ADCアプライアンスは、OTPシークレットをプレーンテキストとしてアクティブディレクトリに保存していました。OTP シークレットをプレーンテキスト形式で保存すると、悪意のある攻撃者や管理者が、他のユーザーの共有シークレットを表示してデータを悪用する可能性があるため、セキュリティ上の脅威が発生しました。

OTP 暗号化ツールには、次の利点があります。

  • 古いフォーマット(プレーンテキスト)を使用している古いデバイスであっても、データが失われることはありません。
  • 古いCitrix Gateway バージョンとの下位互換性サポートは、新しいデバイスとともに、既存のデバイスを統合して操作するのに役立ちます。
  • OTP暗号化ツールは、管理者が一度にすべてのユーザーのすべてのOTP秘密データを移行するのに役立ちます。

:OTP暗号化ツールは、KBA登録または電子メール登録データを暗号化または復号化しません。

OTP暗号化ツールの使用

OTP 暗号化ツールは、次の目的で使用できます。

  • 暗号化。OTPシークレットを暗号化された形式で格納します。このツールは、Citrix ADCに登録されているデバイスのOTPデータを抽出し、プレーンテキスト形式のOTPデータを暗号化形式に変換します。
  • 復号化。OTP シークレットをプレーンテキスト形式に戻します。
  • 証明書を更新します。管理者は、いつでも新しい証明書に証明書を更新できます。管理者は、ツールを使用して新しい証明書を入力し、すべてのエントリを新しい証明書データで更新できます。証明書パスは、絶対パスまたは相対パスのいずれかである必要があります。

重要

  • OTP暗号化ツールを使用するには、Citrix ADCアプライアンスで暗号化パラメータを有効にする必要があります。
  • ビルド41.20より前にCitrix ADCに登録されているデバイスの場合は、次の手順を実行する必要があります。
    • 13.0 Citrix ADC アプライアンスを13.0 ビルド 41.20 にアップグレードします。
    • アプライアンスで暗号化パラメータ を有効にします。
    • OTP シークレット移行ツールを使用して、OTP シークレットデータをプレーンテキスト形式から暗号化形式に移行します。

プレーンテキスト形式の OTP シークレットデータ

例:

#@devicename=<16 or more bytes>&tag=<64bytes>&,

ご覧のように、古いフォーマットの開始パターンは常に「#@” で、終了パターンは常に「&” です。「devicename=」とエンドパターンの間のすべてのデータは、ユーザーOTPデータを構成します。

暗号化された形式の OTP 秘密データ

OTP データの新しい暗号化形式は、次の形式です。

例:

    {
         "otpdata”: {
         “devices”: {
                        “device1”: “value1”,
                        “device2”: “value2”, …
                    }
            }
    }

ここで、値1は、子供+ IV +暗号データのbase64でエンコードされた値です

暗号データは次のように構成されています。

    {
      secret:<16-byte secret>,
      tag : <64-byte tag value>
      alg: <algorithm used> (not mandatory, default is sha1, specify the algorithm only if it is not default)
    }
  • 「デバイス」では、各名前に対して価値があります。値は、ベース64エンコード(子供).ベース64エンコード(IV).ベース64エンコード(暗号データ)です。
  • 標準のAESアルゴリズムでは、IVは常に最初の16バイトまたは32バイトの暗号データとして送信されます。同じモデルに従うことができます。
  • IVは、キーは同じままですが、デバイスごとに異なります。

OTP 暗号化ツールのセットアップ

OTP 暗号化ツールは、ディレクトリ\var\netscaler\otptoolにあります。Citrix ADCソースからコードをダウンロードし、必要なAD資格情報を使用してツールを実行する必要があります。

  • OTP 暗号化ツールを使用するための前提条件:
    • このツールが実行されている環境にpython 3.5以降のバージョンをインストールします。
    • pip3 以降のバージョンをインストールします。
  • 次のコマンドを実行します。
    • pipのインストール要件.txtです。要件を自動的にインストール
    • python のメイン.py。OTP 暗号化ツールを起動します。OTP シークレットデータの移行の必要性に従って、必要な引数を指定する必要があります。
  • このツールは、シェルプロンプトから\var\netscaler\otptoolで見つかります。
  • 必要な AD 認証情報を使用してツールを実行します。

OTP 暗号化ツールインターフェイス

次の図は、OTP 暗号化ツールのインターフェイスの例を示しています。インターフェイスには、暗号化/復号化/証明書のアップグレード用に定義する必要があるすべての引数が含まれています。また、各引数の簡単な説明も取得されます。

操作引数

暗号化、復号化、または証明書のアップグレードに OTP 暗号化ツールを使用するには、OPERATION 引数を定義する必要があります。

次の表は、OTP 暗号化ツールおよび対応する OPERATION 引数値を使用できるシナリオのいくつかをまとめたものです。

シナリオ 操作引数値およびその他の引数
平文OTPシークレットを同じ属性の暗号化形式に変換する OPERATION 引数値を 0 として入力し、ソース属性とターゲット属性に同じ値を指定します。例: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute unixhomedirectory -operation 0
プレーンテキストOTPシークレットを別の属性の暗号化形式に変換する OPERATION 引数値を 0 として入力し、ソース属性とターゲット属性に対応する値を指定します。例: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 0
暗号化されたエントリをプレーンテキストに変換する OPERATION 引数値を 1 として入力し、ソース属性とターゲット属性に対応する値を指定します。例: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1
証明書を新しい証明書に更新する OPERATION 引数の値を 2 として入力し、以前のすべての証明書と新しい証明書の詳細を対応する引数に入力します。例: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

Citrix ADCアプライアンスでの暗号化オプションの有効化

プレーンテキスト形式を暗号化するには、Citrix ADCアプライアンスで暗号化オプションを有効にする必要があります。

CLI を使用して OTP 暗号化データを有効にするには、コマンドプロンプトで次のように入力します。

set aaa otpparameter [-encryption ( ON | OFF )]

例:

set aaa otpparameter -encryption ON

OTP 暗号化ツールの使用例

OTP暗号化ツールは、以下の用途に使用できます。

Citrix ADCアプライアンスのバージョン13.0ビルド41.20に新しいデバイスを登録する

Citrix ADCアプライアンスのバージョン13.0ビルド41.xに新しいデバイスを登録し、暗号化オプションが有効になっている場合、OTPデータは暗号化された形式で保存されます。手動による介入を避けることができます。

暗号化オプションが有効になっていない場合、OTP データはプレーンテキスト形式で保存されます。

13.0 ビルド 41.20 より前に登録されたデバイスの OTP データを移行します

13.0ビルド41.20より前のCitrix ADCアプライアンスに登録されているデバイスのOTPシークレットデータを暗号化するには、以下を実行する必要があります。

  • 変換ツールを使用して、OTP データをプレーンテキスト形式から暗号化された形式に移行します。
  • Citrix ADCアプライアンスで「暗号化」パラメータを有効にします。
    • CLI を使用して暗号化オプションを有効にするには、次の手順を実行します。
      • set aaa otpparameter -encryption ON
    • GUI を使用して暗号化オプションを有効にするには、次の手順を実行します。
      • [セキュリティ] > [AAA — アプリケーショントラフィック] に移動し、[認証 **設定] セクションの [認証 AAA OTP パラメータの変更**] をクリックします。
      • [AAA OTP パラメータの設定] ページで、[OTP シークレット暗号化] を選択し、[OK] をクリックします。
    • 有効な AD 資格情報を使用してログインします。
    • 必要な場合は、追加のデバイスを登録します(オプション)。

古い証明書から新しい証明書に暗号化されたデータを移行する

管理者が証明書を新しい証明書に更新する場合は、新しい証明書データエントリを更新するオプションが提供されます。

CLI を使用して証明書を新しい証明書に更新するには

コマンドプロンプトで、次のように入力します。

例:

python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

  • 証明書には、秘密キーと公開キーの両方が含まれている必要があります。
  • 現在、機能は OTP に対してのみ提供されています。

アプライアンスを暗号化して 13.0 ビルド 41.20 にアップグレードした後、登録されたデバイスの再暗号化または新しい証明書への移行

管理者は、証明書ですでに暗号化されているデバイス上でツールを使用でき、新しい証明書でその証明書を更新できます。

暗号化されたデータをプレーンテキスト形式に戻す

管理者は、OTPシークレットを復号化し、元のプレーンテキスト形式に戻すことができます。OTP暗号化ツールは、暗号化された形式でOTP秘密のすべてのユーザーをスキャンし、復号化された形式に変換します。

CLI を使用して証明書を新しい証明書に更新するには

コマンドプロンプトで、次のように入力します。

例: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1

トラブルシューティング

このツールは、次のログファイルを生成します。

  • app.log。実行のすべての主要なステップと、エラー、警告、および失敗に関する情報をログに記録します。
  • 変更されない.users.txt。プレーンテキストから暗号化された形式にアップグレードされなかったユーザー DN のリストが含まれます。これらのログは、フォーマットでエラーとして生成されるか、またはその他の理由によるものである可能性があります。