So codieren Sie AES-verschlüsselte Dateien mit AWS Elastic Transcoder

675
Martijn

Ich möchte meine verschlüsselten Videos in S3 hochladen und sie mit Elastic Transcoder transcodieren. Das mache ich gerade und arbeite überhaupt nicht. Ich verwende opensslmeine Videodateien. Die Befehle, die ich verwende, sind:

PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16) openssl enc -aes-256-cbc -pass pass:$PASSWORD -p -in VIDEO.mkv -out VIDEO.enc.mkv 

Dieses Echo ist mein Salz, Schlüssel und IV in hex:

salt=BBE61C94DD1B3395 key=03A4C8AB06A09C924947FC865415FE58E1AFC6C998FA7CA8B9DE8E5C232CE0E9 iv =9325C43C36A7868957613EF80FEED569 

Dann lade ich diese verschlüsselte Datei mit dem aws s3Befehlszeilenprogramm in S3 hoch.

AWS Elastic Transcoder sagt mir:

Decryption Key: The Base64 encoded encrypted key that you want Elastic Transcoder to use to decrypt the input. Decryption Key MD5: The Base64 encoded MD5 digest of the encrypted key that you want Elastic Transcoder to use for a key checksum. Decryption Initialization Vector: The Base64 encoded initialization vector that you want Elastic Transcoder to use to decrypt the input. 

Dann mache ich:

OUTPUT=$(echo '[KEY]' | xxd -r -p | base64 -i -) aws kms encrypt --plaintext $OUTPUT --key-id [MY KEY] 

Dies gibt ein zurück, CiphertextBlobdas ich dann in mein einfügen kann Decryption Parameters -> Decryption Key.

Für das Decryption Key MD5mache ich:

echo '[KEY]' | xxd -r -p | md5 | base64 -i - 

Und ich füge das bei ein Decryption Parameters -> Decryption Key MD5.

Die IV wird gemacht von:

echo '[IV]' | xxd -r -p | base64 -i - 

Was ich dann anbringe Decryption Parameters -> Decryption Initialization Vector.

Nachdem Sie alle diese Schritte ausgeführt und den Job erstellt haben, gibt AWS diesen Fehler zurück:

The MD5 hash of the base64-decoded value for ''Encryption:Key'' must equal the base64-decoded value for ''Encryption:KeyMd5''. (Service: AmazonElasticTranscoder; Status Code: 400; Error Code: ValidationException; Request ID: xxxx) 

Versionen

openssl version OpenSSL 0.9.8zg 14 July 2015  aws --version aws-cli/1.9.2 Python/2.7.10 Darwin/15.0.0 botocore/1.3.2  xxd -v xxd V1.10 27oct98 by Juergen Weigert  md5 -x MD5 test suite: MD5 ("") = d41d8cd98f00b204e9800998ecf8427e - verified correct MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 - verified correct MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 - verified correct MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 - verified correct MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b - verified correct MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f - verified correct MD5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 57edf4a22be3c955ac49da2e2107b67a - verified correct MD5 ("MD5 has not yet (2001-09-03) been broken, but sufficient attacks have been made that its security is in some doubt") = b50663f41d44d92171cb9976bc118538 - verified correct  base64 -h  base64: invalid option -- h Usage: base64 [-dhvD] [-b num] [-i in_file] [-o out_file] -h, --help display this message -D, --decode decodes input -b, --break break encoded string into num character lines -i, --input input file (default: "-" for stdin) -o, --output output file (default: "-" for stdout) 

TL; DR

Ich möchte eine clientseitige, verschlüsselte Datei aus S3 mit Elastic Transcoder transcodieren, aber ich kann die Schlüssel nicht zum Laufen bringen.

1

0 Antworten auf die Frage