Otp暗号化ル
Citrix ADCリリース13.0ビルド41.20以降,OTPシークレットデータは,セキュリティを強化するためにプレーンテキストではなく暗号化された形式で保存されます。Otpシ,クレットの暗号化形式での保存は自動的に行われ,手動による介入は不要です。
以前は,Citrix ADCアプライアンスはOTPシークレットをプレーンテキストとしてアクティブディレクトリに保存していました。OTPシークレットをプレーンテキスト形式で保存すると,悪意のある攻撃者や管理者が他のユーザーの共有シークレットを表示してデータを悪用できるため,セキュリティ上の脅威となります。
Otp暗号化ルには次の利点があります。
- 古い形式(プレーンテキスト)を使用している古いデバイスがあっても,データが失われることはありません。
- 古いバージョンのCitrix网关との下位互換性サポートにより,既存のデバイスと新しいデバイスの統合とサポートに役立ちます。
- 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或更多字节>&tag=<64字节>&,
ご覧のとおり,古いフォ,マットの開始パタ,ンは常に“#@”で,終了パタ,ンは常に“&”です。"设备名称= "と終了パターンの間にあるすべてのデータは,ユーザOTPデータを構成します。
暗号化された形式のotpシクレットデタ
Otpデ,タの新しい暗号化形式は,次の形式になります。
例:
{" otpdata ":{"设备":{“device1”:“value1”、“device2”:“value2 ”, ... } } }
ここで,value1は,キッド+ IV +暗号デ,タのbase64エンコ,ドされた値です。
暗号デ,タは次のように構成されています。
{secret:<16字节的秘密>,tag:< 64字节的标签值> alg: <使用的算法>(不是强制的,默认是sha1,只有当它不是默认时才指定算法)}
- “デバ▪▪ス”では,それぞれの名前に対して価値があります。値はbase64encode (kid) .base64encode (IV) .base64encode(暗号デ,タ)です。
- 標準のAESアルゴリズムでは,IVは常に最初の16バイト,つまり32バイトの暗号データとして送信されます。同じモデルに従うことができます。
- キは同じですが,ivはデバスごとに異なります。
Otp暗号化ルのセットアップ
注:
OTP暗号化ツールを実行するには,Citrix ADCアプライアンスではなく,Python環境の代替プラットフォームを使用することをお勧めします。
Otp暗号化ルはディレクトリ\ var \ netscaler \ otptool
にあります。Citrix ADCソースからコードをダウンロードし、必要なAD資格情報を使用してツールを実行する必要があります。
- Otp暗号化ルを使用するための前提条件は次のとおりです。
- このルを実行している環境にpython 3.5以降のバジョンを。
- Pip3以降のバジョンをンストルします。
- 次のコマンドを実行します:
- PIP要求。txtを@ @ンスト@ @ルします。要件を自動的に▪▪ンスト▪▪ルします。
- python main.py。Otp暗号化ルを起動します。Otpシ,クレットデ,タの移行の必要性に応じて,必要な引数を指定する必要があります。
- このルは,シェルプロンプトから
\ var \ netscaler \ otptool
に配置できます。 - 必要なAD認証情報を使用してルを実行します。
Otp暗号化
次の図に,otp暗号化。インターフェイスには,暗号化/復号化/証明書のアップグレード用に定義する必要のあるすべての引数が含まれています。また,各引数の簡単な説明も取り込まれます。
オペレ,ション引数
暗号化,復号化,または証明書のアップグレードにOTP暗号化ツールを使用するには,操作引数を定義する必要があります。
次の表は,OTP暗号化ツールおよび対応する操作引数の値を使用できるシナリオの一部をまとめたものです。
シナリオ | 演算引数の値とその他の引数 |
---|---|
プレンテキストotpシクレットを同じ属性で暗号化された形式に変換する | 操作引数の値に0を入力し,ソス属性とタゲット属性に同じ値を指定します。例:python3 main.py -主机192.0.2.1 -端口636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute unixhomedirectory -operation 0 -cert_path aaatm_wild_all.cert . cn=users,dc=aaa,dc=local |
プレンテキストotpシクレットを別の属性で暗号化された形式に変換する | 操作引数の値に0を入力し,ソス属性とタゲット属性に対応する値を指定します。例:python3 main.py -主机192.0.2.1 -端口636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 0 -cert_path aaatm_wild_all.cert . cn |
暗号化されたエントリをプレ,ンテキストに変換し直す | 操作引数の値に1を入力し,ソス属性とタゲット属性に対応する値を指定します。例:python3 main.py -主机192.0.2.1 -端口636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1 -cert_path aaatm_wild_all.cert . cn |
証明書を新しい証明書に更新する | 操作引数の値に2を入力し,対応する引数に以前の証明書と新しい証明書の詳細をすべて入力します。例:python3 main.py -主机192.0.2.1 -端口636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -operation 2 -cert_path aaatm_wild_all. py -Host 192.0.2.1 -Port 636 -username ldapbind_user@aaa.localCert -new_cert_path aaatm_wild_all_新 |
Cert_path引数
CERT_PATH引数は,Citrix ADCでデータの暗号化に使用される証明書を含むファイルです。ユ,ザ,は,暗号化、 **復号化, **および更新証明書の3の操作すべてに対してこの引数を指定する必要があります。
CERT_PATH引数ファイルには,証明書と関連する秘密キーの両方をPEMまたはCERT形式で含める必要があります(可以はサポートされていません)。
たとえば,证书。Certファescルと证书。关键ファイルが証明書ファイルとその秘密鍵に対応している場合,UNIXライクなシステムでは,次のコマンドでcert_pathフラグの値として使用できるファイルcertkey.merged
を作成します。
$ cat证书。cert证书。> certkey。合并$
証明書に関する注意点
- ユーザーは,ユーザーデータの暗号化のためにCitrix ADCアプライアンスでグローバルにバインドされているのと同じ証明書を提供する必要があります。
- 証明書には,Base64でエンコードされたパブリック証明書とそれに対応するRSA秘密鍵を同じファイルに含める必要があります。
- 証明書の形式はpemまたはcertのいずれかである必要があります。証明書はx509形式に準拠している必要があります。
- パスワ,ドで保護された証明書形式および.pfxファルは,このルでは受け入れられません。ユ,ザ,は,ツールに証明書を提供する前に、PFX証明書を.certに変換する必要があります。
検索フィルタ引数
SEARCH_FILTER引数は,广告ドメインまたはユーザーをフィルタリングするために使用されます。この検索フィルタ,の形式は,Citrixadcアプラaapl / aapl / aapl / aapl / aapl / aapl / aapl / aapl / aapl / aapl / aapl / aapl。
Citrix ADCアプラeconpアンスでの暗号化オプションの有効化
プレーンテキスト形式を暗号化するには,Citrix ADCアプライアンスで暗号化オプションを有効にする必要があります。
CLIを使用してOTP暗号化データを有効にするには,コマンドプロンプトで次のように入力します。
set aaa otpparameter [-encryption (ON | OFF)]
例:
设置aaa otpparameter -encryption ON
Otp暗号化ルの使用例
Otp暗号化ルは,次のユスに使用できます。
Citrix ADCアプラ▪▪アンスバ▪▪ジョン13.0ビルド41.20に新しいデバ▪▪スを登録する
新しいデバイスをCitrix ADCアプライアンスバージョン13.0ビルド41. xに登録し,暗号化オプションが有効になっている場合,OTPデータは暗号化された形式で保存されます。手動による介入を避けることができます。
暗号化オプションが有効になっていない場合,otpデ,タはプレ,ンテキスト形式で保存されます。
13.0 build 41.20より前に登録されたデバスのOTPデタを移行する
41.20 13.0ビルドより前にCitrix ADCアプライアンスに登録されているデバイスのOTPシークレットデータを暗号化するには,次の手順を実行する必要があります。
- 変換ルを使用して,otpデ。
- Citrix ADCアプラアンスで"暗号化"パラメタを有効にします。
- Cliを使用して暗号化オプションを有効にするには、次の手順を実行します。
设置aaa otpparameter -encryption ON
- GUIを使用して暗号化オプションを有効にするには,次の手順を実行します。
- [セキュリティ]> [aaa -アプリケ.ショントラフィック]に移動し,[**認証設定]セクションで[認証Aaa otpパラメタの変更**]
- [Aaa otpパラメタの設定]ペ,ジで,[Otpシ,クレット暗号化]を選択し,[好吧]をクリックします。
- 有効なAD資格情報を使用してログescンします。
- 必要な場合は,さらにデバaaplスを登録します(オプション)。
- Cliを使用して暗号化オプションを有効にするには、次の手順を実行します。
暗号化されたデ,タを古い証明書から新しい証明書に移行する
管理者が証明書を新しい証明書に更新する場合,ツールには新しい証明書データエントリを更新するオプションが用意されています。
Cliを使用して証明書を新しい証明書に更新するには
コマンドプロンプトで入力します。
例:
python3 main.py -主机192.0.2.1 -端口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. shCert -new_cert_path aaatm_wild_all_新
注
- 証明書には秘密鍵と公開鍵の両方が必要です。
- 現在,この機能はotpに対してのみ提供されています。
アプライアンスを暗号化して13.0构建41.20にアップグレードした後に登録されたデバイスの再暗号化または新しい証明書への移行
管理者は,証明書ですでに暗号化されているデバイスでこのツールを使用し,その証明書を新しい証明書で更新できます。
暗号化されたデ,タをプレ,ンテキスト形式に変換し直す
管理者はotpシ,クレットを復号化して,元のプレ,ンテキスト形式に戻すことができます。Otp暗号化ルは、すべてのユーザーをスキャンして暗号化形式の OTP シークレットを探し、復号化された形式に変換します。
Cliを使用して証明書を新しい証明書に更新するには
コマンドプロンプトで入力します。
例:
python3 main.py -主机192.0.2.1 -端口636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1
トラブルシュ,ティング
このルは,次のログファルを生成します。
- app.log。すべての主要な実行ステップと,エラ,警告,および失敗に関する情報を記録します。
- unmodified_users.txt。プレ,ンテキスト形式から暗号化形式にアップグレ,ドされなかったユ,ザdnの一覧が含まれます。これらのログは,形式のエラ,として生成されるか,他の理由が原因である可能性があります。