このセクションでは、NSX Advanced Load Balancer でデータの暗号化と復号化に使用できる DataScript について説明します。
機能 |
説明 |
---|---|
コンテンツを復号化します |
|
コンテンツを暗号化します |
avi.crypto.decrypt
機能 |
avi.crypto.decrypt( ciphertext, key [, iv [, algo]] )) |
説明 |
DataScript は、データの暗号化と復号化に使用できます。サポートされている復号アルゴリズムは AES および 3DES です。AES 復号化では、AES128、AES192、および AES256 がサポートされ、それぞれ 128 ビット、192 ビット、256 ビットのキー長が必要です。3DES では、168 ビットから 192 ビットまでのキー長 (3X56) が必要です。キー文字列を介した正しいキー長は、使用されているメソッドに関係なく必須です。 CBC (Cipher Block Chaining) モードのみがサポートされます。デフォルトの復号アルゴリズムは AES256 が使用され、デフォルトの IV は 0123456789012345 で、デフォルト モードは CBC です。 |
イベント |
HTTP_REQ HTTP_RESP |
パラメータ |
ciphertext は、復号化する暗号化されたテキストまたは文字列です。 key は、暗号化に使用するプライベート キーである文字列です。 iv は文字列で、初期化ベクトルです。 algo は復号アルゴリズムで、次のいずれかになります。
|
戻り値 |
復号化された文字列。 |
例 |
HTTP 応答イベント中にヘッダーを確認し、その値を暗号化します。 if avi.http.get_header("User") encrypt = avi.crypto.encrypt(avi.http.get_header("User"), key) avi.http.replace_header("User", encrypt) end HTTP 要求イベント中にヘッダーを確認し、その値を復号化します。 if avi.http.get_header("User") decrypt = avi.crypto.decrypt(avi.http.get_header("User"), key) avi.http.replace_header("User", decrypt) end |
avi.crypto.encrypt
機能 |
avi.crypto.encrypt( plaintext, key [, iv [, algo]] ) |
説明 |
DataScript には、任意のデータを暗号化する機能があります。これは、検証トークンを組み込むことで、サーバの Cookie の値を暗号化したり、カスタムのクロスサイト スクリプティングの回避を作成したりする場合に役立ちます。サポートされている暗号化アルゴリズムは AES および 3DES です。 AES 暗号化では、AES128、AES192、および AES256 がサポートされ、それぞれ 128、192、および 256 ビットのキー長が必要です。3DES では、168 ビットから 192 ビットまでのキー長 (3X56) が必要です。使用する暗号化アルゴリズムにかかわらず、キー文字列を介した対応する正しいキー長が必須です。 CBC (Cipher Block Chaining) モードのみがサポートされます。デフォルトの暗号化アルゴリズムは AES256 が使用され、デフォルトの IV 値は 0123456789012345 で、デフォルト モードは CBC です。 |
イベント |
HTTP_REQ HTTP_RESP |
パラメータ |
plaintext は、暗号化するテキストまたは文字列です。 key は、暗号化に使用するプライベート キーである文字列です。 iv は文字列で、初期化ベクトルです。 algo は暗号化アルゴリズム暗号です。avi.CIPHER_AES と avi.CIPHER_3DES から選択します。 |
戻り値 |
暗号化された文字列。 |
例 |
CBC モードで AES256 を使用して暗号化されたトークンを送信し、HTTP 応答のヘッダーにデフォルトの IV が含まれます。 path = avi.http.get_path() if path == "/app_1/" then -- use AES256 default encryption key = "01234567890123456789012345678901" value = "The quick brown fox jumps over the lazy dog." encrypted_value = avi.crypto.encrypt(value, key) avi.http.add_header("X-Token", encrypted_value) end |