it-swarm-id.com

Cipher SSL / TLS mana yang dapat dianggap aman?

The situs web OpenSSL menyediakan daftar panjang cipher yang berbeda yang tersedia untuk SSL dan TLS. Pertanyaan saya adalah, cipher mana yang dapat dianggap aman saat ini. Saya terutama tertarik pada HTTPS, jika ini penting, meskipun saya rasa tidak. Saya mengetahui Rekomendasi Apache untuk menggunakan SSLCipherSuite HIGH:MEDIUM dan setuju bahwa ini adalah praktik terbaik.

Apa yang saya cari adalah standar resmi atau makalah terbaru dari sumber yang diterima dan diakui seperti organisasi keamanan yang sangat tahu. Jika ada kertas seperti itu termasuk perkiraan berapa lama cipher tertentu dengan panjang kunci tertentu akan dianggap aman, ini akan lebih baik. Apakah hal semacam itu ada?

33
Demento

Suite sandi dengan "NULL" tidak menawarkan enkripsi data, hanya pemeriksaan integritas. Ini berarti "tidak aman" untuk sebagian besar penggunaan.

Suite sandi dengan "EXPORT" pada dasarnya lemah. Mereka dienkripsi , tetapi hanya dengan kunci yang cukup kecil untuk dipecahkan bahkan dengan perangkat keras amatir (katakanlah, PC rumahan dasar - enkripsi simetris bergantung pada 40- tombol bit). Suite-suite ini ditetapkan untuk mematuhi aturan ekspor AS tentang sistem kriptografi, aturan yang cukup ketat sebelum tahun 2000. Saat ini, pembatasan ini telah dicabut dan ada sedikit gunanya mendukung suites cipher "EXPORT".

Cipher suites dengan "DES" (bukan "3DES ") mengandalkan enkripsi simetris pada DES , cipher blok lama yang menggunakan kunci 56-bit ( secara teknis , ia menggunakan kunci 64-bit, tetapi mengabaikan 8 bit tersebut, sehingga ukuran kunci efektifnya adalah 56 bit). Kunci 56-bit dapat dipecahkan, meskipun tidak dalam lima menit dengan PC. Deep crack adalah mesin tujuan khusus yang dibangun pada tahun 1998 dengan harga sekitar $ 250.000, dan dapat memecahkan kunci 56-bit DES dalam rata-rata 4,5 hari. Teknologi telah mengalami kemajuan, dan ini dapat direproduksi dengan beberapa lusinan FPGA . Masih bukan perangkat keras Walmart, tetapi terjangkau oleh banyak orang.

Semua suite sandi lainnya yang didukung oleh OpenSSL tidak lemah; jika Anda memiliki masalah dengan mereka, itu tidak akan disebabkan oleh kelemahan kriptografi dalam algoritma itu sendiri. Anda mungkin ingin menghindari suite sandi yang menampilkan "MD5 ", bukan karena kelemahan yang diketahui sebenarnya, tetapi untuk hubungan masyarakat. MD5 , sebagai fungsi hash," rusak "karena kita dapat secara efisien menemukan banyak tabrakan untuk fungsi itu. Ini bukan masalah untuk MD5 seperti yang digunakan dalam SSL, namun, itu sudah cukup untuk MD5 memiliki reputasi buruk, dan Anda lebih baik menghindarinya.

Perhatikan bahwa cipher suite tidak memberlakukan apa pun pada ukuran kunci server (kunci publik dalam sertifikat server), yang harus cukup besar untuk memberikan ketahanan yang memadai (untuk RSA atau DSS, gunakan setidaknya 1024 bit, 1536 bit) menjadi lebih baik - tetapi jangan terlalu menekannya, karena overhead komputasi meningkat tajam dengan ukuran kunci).


NIST , organisasi federal AS yang dapat diterima dan dikenal sebagai organisasi keamanan apa pun dapat, telah menerbitkan beberapa rekomendasi (lihat khususnya tabel di halaman 22 dan 23); ini dari 2005 tetapi masih berlaku sampai hari ini. Perhatikan bahwa NIST beroperasi dengan dasar "disetujui/tidak disetujui": mereka tidak mengklaim dengan cara apa pun bahwa algoritma yang "tidak disetujui" lemah dengan cara apa pun; hanya bahwa mereka, sebagai organisasi, tidak menjamin mereka.

37
Thomas Pornin

Sudahkah Anda membaca SSL dan TLS: Merancang dan Membangun Sistem Aman , oleh Eric Rescorla? Ini adalah klasik yang diterima pada SSL, ditulis oleh salah satu kontributor terkemuka untuk kelompok kerja standar IETF pada SSL. Saya berharap bahwa itu mungkin berisi pernyataan yang cocok tentang kekuatan berbagai ciphersuites SSL.

Jika itu tidak memenuhi kebutuhan Anda, Anda mungkin berjalan-jalan ke perpustakaan ramah Anda dan memeriksa semua buku teks kriptografi dan keamanan yang mereka miliki dan membaca bagian yang ditulis pada SSL/TLS.

Pada dasarnya, jika Anda mencari referensi untuk mendokumentasikan fakta-fakta yang sudah diketahui oleh setiap pakar keamanan, maka Anda mungkin perlu melakukan kerja keras sendiri untuk menemukan kutipan terbaik.

4
D.W.

Beberapa tambahan kecil untuk jawaban Thomas Pornin: sementara NIST SP800-52 tetap resmi (jika agak ketinggalan zaman) untuk TLS secara umum, untuk ukuran kunci secara khusus digantikan oleh SP800-57: part1 mencakup ukuran kunci dan masa hidup secara umum, direvisi hanya bertahan tahun 2012; part3 mencakup beberapa aplikasi spesifik termasuk TLS yang dikeluarkan tahun 2010. Singkatnya, mereka mencoba meminta RSA DSA dan DH 2048 bit dan ECC 224 bit pada 2011 tetapi ada terlalu banyak pushback jadi sekarang ini 2014 - segera hadir! (DSA pada 2048 atau 3072 bit ditentukan oleh FIPS 186-3 pada tahun 2009, tapi saya belum melihat banyak implementasi. Bahkan openssl melakukannya dengan agak canggung.) Www.CABforum.org setuju dengan RSA 2048 pada tahun 2014, sementara Anda tidak harus mendapatkan sertifikat Anda dari CA "resmi", melakukan praktik "standar" yang tampak kurang umum cenderung membuat Anda diperlakukan dengan skeptis. FWIW NIST saat ini mengatakan kekuatan itu (Z_n 2048, ECC 224, symmetric 112) "dapat diterima" hingga tahun 2030, setelah itu diperlukan 3072/256/128, bahkan jika itu ternyata salah, jika Anda pergi bersama mereka, Anda memiliki alasan yang sama bagusnya dengan yang dapat Anda temukan, dan Anda pasti akan memiliki banyak perusahaan yang bagus. Terakhir, csrc.nist.gov adalah URL awal yang lebih baik untuk cybsersecurity (NIST secara keseluruhan melakukan beberapa hal lain).

3
Dave Thompson

Mengejar rekomendasi resmi mungkin merupakan tugas yang menakutkan bagi sebagian besar pengguna.

Cara tercepat untuk mendapatkan daftar sandi modern terkini adalah dengan memeriksa secara berkala Mozilla SSL Configuration Generator .

Pada Agustus 2016, daftar (dipesan) adalah:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256

Selain menerapkan cipher ini, pastikan untuk:

  • atur versi TLS ke 1.2 (atau lebih tinggi)
  • gunakan kurva aman (sebagaimana didefinisikan pada safecurves.cr.yp.to ).

Catatan: Semua cipher ini kompatibel dengan TLS1.3 (yang akan datang).

2
ATo