Pertanyaan Perbedaan antara SSL dan TLS dan penggunaannya di Java


Saya mencoba untuk membuat koneksi SSL atau TLS antara klien Java dan server yang saya siapkan.

Saya telah menggunakan SSLContext.getInstance("SSL") untuk membangun SSLContext, dan itu berhasil.

Saya ingin tahu apa tujuan dari protocol parameter dalam SSLContext.getInstance(String protocol).

Secara khusus, apa yang berubah antara menggunakan SSLContext.getInstance("SSL") dan SSLContext.getInstance("TLS"), atau kemungkinan nilai lainnya?


32
2017-10-30 08:31


asal


Jawaban:


Ini dia jawaban yang agak rinci yang saya tulis beberapa waktu lalu menggambarkan perbedaan antara SSL dan TLS. Singkatnya, TLS adalah penerus SSL, dan TLS 1.0 dapat dianggap sebagai "SSL 3.1".

Jika Anda melihat Panduan Referensi JSSE, di bagian SSLContext, ia mengatakan:

Metode statis ini masing-masing mengembalikan contoh yang mengimplementasikan setidaknya   protokol soket aman yang diminta. Instance yang dikembalikan mungkin   mengimplementasikan protokol lain juga. Misalnya, getInstance ("TLSv1") dapat   kembalikan instance yang menerapkan "TLSv1", "TLSv1.1", dan "TLSv1.2".

Ini juga disebutkan dalam Nama Standar dokumen.

Khususnya, jika Anda memeriksa kode sumber Oracle / OpenJDK 7 untuk SSLContextImpl, Anda akan menemukan semua itu SSLContexts mendukung semua protokol (dari SSLv3 menggunakan Klien SSLv2 Halo ke TLS 1.2). Yang berbeda adalah protokol mana yang diaktifkan secara default. Selain itu, Anda tidak boleh mengandalkan ini secara umum, karena implementasi Java lainnya (misalnya IBM JRE) dapat berperilaku berbeda.

Jika Anda ingin satu set protokol tertentu yang akan digunakan untuk koneksi, Anda harus menggunakan SSLSocket atau SSLEngine's setEnabledProtocols metode. Jika tidak, ia akan menggunakan nilai default, seperti yang dijelaskan dalam Dokumentasi penyedia.


28
2017-10-30 12:02



Protokol digunakan untuk berkomunikasi antara server dan klien. Begitu SSLContext(String protocol) mengembalikan instance protokol dan kemudian menggunakan server atau klien tersebut berkomunikasi satu sama lain untuk tingkat keamanan.

Untuk referensi lebih lihat tautan ini. http://www.herongyang.com/JDK/SSL-java-net-ssl-SSLContext-Class-Test.html


0
2017-10-30 09:23