Sandi enkripsi mana yang digunakan saat menggunakan zip -e?
Saya mencari cara lintas platform untuk mengenkripsi kredensial yang perlu saya kirim ke klien.
Saya tahu arsip zip terenkripsi membocorkan metadata dan dapat dirusak, tetapi seberapa kuat kode enkripsi itu?
zip -ejr "/path/to/folder.zip" "/path/to/folder"
Jawaban
format zip dapat menggunakan metode enkripsi lama yang lemah, dan enkripsi AES (128, 192 atau 256 bit kunci).
Anda dapat membaca Spesifikasi Enkripsi AES untuk detailnya.
Klien zip baris perintah hampir pasti menggunakan enkripsi zip tradisional, yang tidak ingin Anda gunakan.
Saya menyukai solusinya, ketika menargetkan pengguna non-teknis yang mengirim file yang dienkripsi AES, karena:
- Umumnya pengguna telah menggunakan file zip di masa lalu, dan sudah terbiasa dengannya. Anda tidak "bersikeras menggunakan format yang aneh".
- Anda dapat memaksa enkripsi aman (AES) di pihak Anda (ini bisa menjadi masalah jika mereka juga perlu mengirimi Anda kembali zip terenkripsi).
- Jika mereka menggunakan klien tanpa dukungan enkripsi AES, pesan kesalahan dengan jelas akan mengatakan "Anda memerlukan versi yang lebih baru untuk membuka file zip format XY". Ini mengarahkan pengguna ke masalah dengan perangkat lunak mereka, bukan pengirimnya.
Sebagai cara untuk membuat file zip menggunakan enkripsi AES, Anda dapat menggunakan 7-zip ( Anda menginginkan setidaknya versi 19.00 ), dari baris perintah yang akan menjadi:
7z a -p -mem = aes256 -tzip "/path/to/folder.zip" "/ jalur / ke / folder"
Anda dapat membuat skrip shell sederhana untuk itu:
#!/bin/sh
7z a -p -mem=aes256 -tzip "$@"
Batasan:
Jelas, Anda akan membocorkan metadata seperti nama file, ukuran file (sebelum dan sesudah kompresi), cap waktu ... Jika satu-satunya perhatian Anda adalah membagikan beberapa kredensial, saya akan merekomendasikan untuk tidak mengompresi konten (metode penyimpanan), untuk menghindari BEAST seperti kebocoran informasi, tetapi masalah ini tampaknya tidak terlalu bermasalah. Anda masih harus membagikan kata sandi zip dengan aman kepada pelanggan. Dan saya tidak akan terkejut jika mereka kemudian menyimpan file yang diekstrak dengan kredensial teks biasa di desktop mereka.
Anda menulis: "Saya mencari cara lintas platform untuk mengenkripsi kredensial yang perlu saya kirim ke klien."
Anda tidak mendefinisikan apa yang Anda maksud dengan "lintas platform". Solusi terbaik Anda adalah * tidak menggunakan zip .
Jika "cross platform" berarti "Windows dan Mac", maka solusi terbaik Anda adalah menggunakan enkripsi Microsoft Word atau Adobe Acrobat. Kedua sistem menggunakan AES dalam inkarnasi terbarunya.
Jika "cross platform" berarti "Windows, Mac, dan Linux", gunakan Acrobat.
Dalam kedua kasus tersebut, Anda perlu menukar kunci enkripsi dengan entropi tinggi untuk dokumen tersebut dengan klien Anda. Artinya, Anda perlu menukar kata sandi untuk menukar kunci enkripsi Anda. Tentu saja, jika Anda bisa melakukannya, Anda mungkin juga mengirimkan kredensial sendiri menggunakan mekanisme out-of-band ini, bukan?
Jadi yang benar - benar ingin Anda lakukan adalah menggunakan kriptografi kunci publik. Artinya, Anda mungkin sebaiknya meminta klien Anda menjalankan sertifikat S / MIME dan mengirim email terenkripsi klien Anda menggunakan Apple Mail atau Microsoft Outlook atau Thunderbird atau pendekatan lintas platform lainnya untuk menggunakan S / MIME. Anda akan menemukan detailnya di NIST SP800-177, "Email yang Dapat Dipercaya."
Orang lain akan menyarankan agar Anda menggunakan PGP. Saya tidak akan, karena terlalu sulit untuk digunakan. Tetapi jika Anda ingin menggunakan PGP, cobalah!
Jika semua ini terdengar terlalu merepotkan, Anda dapat menggunakan teknologi rendah dan memasukkan kredensial ke dalam amplop, menandatangani nama Anda di bagian belakang amplop, memasukkannya ke dalam amplop kedua, dan mengirimkannya ke klien Anda melalui surat pos .