如何从 AWS 加密 CLI 获取初始化向量 (IV)?
How to get the Initialization Vector (IV) from the AWS Encryption CLI?
我正在使用 AWS 加密 CLI 使用如下命令加密文件:
aws-encryption-cli --encrypt --input test.mp4 --master-keys key=arn:aws:kms:us-west-2:123456789012:key/exmaple-key-id --output . --metadata-output -
从命令的输出中,我可以清楚地看到它使用了强度为 12 的初始化向量 (IV),这很好,但我如何实际查看 IV?为了将加密的文件传递给其他服务,例如 AWS Elastic Transcoder,它会在其中自行解密,我需要真正知道用于加密文件的 IV 是什么。
{
"header": {
"algorithm": "AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384",
"content_type": 2,
"encrypted_data_keys": [{
"encrypted_data_key": "...............",
"key_provider": {
"key_info": "............",
"provider_id": "..........."
}
}],
"encryption_context": {
"aws-crypto-public-key": "..............."
},
"frame_length": 4096,
"header_iv_length": 12,
"message_id": "..........",
"type": 128,
"version": "1.0"
},
"input": "/home/test.mp4",
"mode": "encrypt",
"output": "/home/test.mp4.encrypted"
}
很遗憾,您将无法使用 AWS 加密 SDK CLI 来加密供 Amazon Elastic Transcoder 使用的数据。
AWS 加密 SDK 的主要优势之一是消息格式[1],它将有关加密消息的所有必要信息打包到一个二进制 blob 中,并提供一种更具可扩展性的方式来处理大型消息。不建议从该 blob 中提取数据原语,即使您这样做了,它们也可能会或可能不会直接与另一个系统兼容,具体取决于您使用 AWS 加密 SDK 的方式以及其他系统的期望。
对于 Elastic Transcoder,他们希望原始密文使用指定的 AES 模式加密[2]。这与 AWS 加密 SDK 格式不兼容。
[1] https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/message-format.html
我正在使用 AWS 加密 CLI 使用如下命令加密文件:
aws-encryption-cli --encrypt --input test.mp4 --master-keys key=arn:aws:kms:us-west-2:123456789012:key/exmaple-key-id --output . --metadata-output -
从命令的输出中,我可以清楚地看到它使用了强度为 12 的初始化向量 (IV),这很好,但我如何实际查看 IV?为了将加密的文件传递给其他服务,例如 AWS Elastic Transcoder,它会在其中自行解密,我需要真正知道用于加密文件的 IV 是什么。
{
"header": {
"algorithm": "AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384",
"content_type": 2,
"encrypted_data_keys": [{
"encrypted_data_key": "...............",
"key_provider": {
"key_info": "............",
"provider_id": "..........."
}
}],
"encryption_context": {
"aws-crypto-public-key": "..............."
},
"frame_length": 4096,
"header_iv_length": 12,
"message_id": "..........",
"type": 128,
"version": "1.0"
},
"input": "/home/test.mp4",
"mode": "encrypt",
"output": "/home/test.mp4.encrypted"
}
很遗憾,您将无法使用 AWS 加密 SDK CLI 来加密供 Amazon Elastic Transcoder 使用的数据。
AWS 加密 SDK 的主要优势之一是消息格式[1],它将有关加密消息的所有必要信息打包到一个二进制 blob 中,并提供一种更具可扩展性的方式来处理大型消息。不建议从该 blob 中提取数据原语,即使您这样做了,它们也可能会或可能不会直接与另一个系统兼容,具体取决于您使用 AWS 加密 SDK 的方式以及其他系统的期望。
对于 Elastic Transcoder,他们希望原始密文使用指定的 AES 模式加密[2]。这与 AWS 加密 SDK 格式不兼容。
[1] https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/message-format.html