このセクションでは、NSX Advanced Load Balancer でデータの暗号化と復号化に使用できる DataScript について説明します。

機能

説明

avi.crypto.decrypt

コンテンツを復号化します

avi.crypto.encrypt

コンテンツを暗号化します

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 は復号アルゴリズムで、次のいずれかになります。

  • avi.CIPHER_AES。

  • avi.CIPHER_3DES。

戻り値

復号化された文字列。

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