- Di tengah persaingan browser antara Netscape dan Microsoft pada pertengahan 1990-an, protokol SSL pun lahir
- SSL 2 memiliki kelemahan kriptografis dan praktis, dan berdasarkan hal itu Microsoft memperkenalkan protokol PCT
- Sebagai respons, Netscape mengembangkan SSL 3.0 untuk mencoba merebut inisiatif
- Industri dan komunitas berharap kompatibilitas antarbrowser tetap terjaga, lalu menyerahkan peran standardisasi kepada IETF
- Dalam proses ini, nama protokol diubah menjadi TLS 1.0 dan terus digunakan hingga sekarang
Latar belakang: persaingan browser dan lahirnya protokol keamanan
- Pada pertengahan 1990-an, Netscape dan Microsoft membentuk persaingan yang sangat sengit di pasar browser
- Dalam proses persaingan itu, Netscape mengembangkan protokol SSL
SSL 2 dan masalahnya
- Versi pertama SSL tidak dirilis karena segera dipatahkan akibat kelemahan kriptografis
- SSL 2 yang benar-benar didistribusikan digunakan selama beberapa tahun, tetapi memiliki berbagai kelemahan kriptografis dan praktis
- Kelemahan ini bukan ancaman fatal yang langsung mendesak, tetapi kebutuhan untuk memperbaikinya terus dibahas
Respons Microsoft: protokol PCT
- Di tengah persaingan yang makin tajam, Microsoft menambahkan fitur buatannya sendiri ke SSL 2 dan memperkenalkan protokol bernama PCT
- PCT hanya didukung di Internet Explorer(IE) dan IIS
Strategi baru Netscape: SSL 3.0
- Netscape juga ingin memperbaiki masalah SSL 2, tetapi tidak ingin Microsoft mengambil kendali
- Karena itu, mereka mengembangkan SSL 3.0 dan mendorong perubahan yang jelas berbeda dari sebelumnya
Negosiasi standardisasi di industri browser
- Pelaku industri dan anggota komunitas tidak ingin protokol terbelah dua (mencegah terjadinya fork)
- Di Consensus Development(tempat penulis bekerja), diselenggarakan pertemuan perwakilan Netscape dan Microsoft
- Pertemuan ini dihadiri Bruce Schneier(sebelum menjadi terkenal), Paul Kocher(perancang SSL 3), Barbara Fox(perwakilan Microsoft), dan lainnya
Standardisasi IETF dan perubahan nama
- Baik Netscape maupun Microsoft sama-sama sepakat bahwa IETF(Internet Engineering Task Force) akan memimpin proses standardisasi protokol
- Penulis bertanggung jawab mengedit dokumen standar IETF(RFC)
- Sebagai bagian dari kompromi politik, perlu dilakukan beberapa perubahan pada SSL 3.0 sekaligus memberi nama baru (untuk menghindari kesan bahwa IETF sekadar ‘menyetujui begitu saja’ protokol yang sudah ada)
- Hasilnya, lahirlah nama TLS 1.0, yang pada praktiknya merupakan protokol setara SSL 3.1
Penutup
- Jika melihatnya kembali sekarang, seluruh proses diskusi tentang penamaan dan standardisasi ini terasa agak menggelikan
1 komentar
Opini Hacker News
Penjelasan tentang situasi yang membingungkan karena hanya dari nomor versi sulit memahami seberapa besar perbedaan antarprotokol. SSLv2 adalah versi SSL pertama yang digunakan luas, tetapi memiliki banyak masalah. SSLv3 adalah protokol yang hampir sepenuhnya dibuat ulang. TLS 1.0 sangat mirip dengan SSLv3, tetapi mengalami beberapa revisi kecil dalam proses standardisasi IETF. TLS 1.1 adalah revisi kecil dari TLS 1.0 untuk memperbaiki masalah pada cara penggunaan block cipher. TLS 1.2 adalah versi dengan revisi menengah yang mengikuti perkembangan kriptografi: dukungan hash terbaru ditambahkan untuk menanggapi kelemahan MD5 dan SHA-1, serta dukungan AEAD cipher suite seperti AES-GCM. TLS 1.3 adalah protokol yang sebagian besar dibuat ulang, tetapi tetap mengadopsi beberapa karakteristik TLS 1.2 ke bawah. Setiap protokol dirancang dengan negosiasi versi otomatis agar klien dan server bisa di-upgrade secara independen tanpa kehilangan konektivitas
Mengingat Microsoft saat itu adalah perusahaan yang benar-benar berbeda dari sekarang, rasanya menurut standar masa kini pun tidak aneh. Saat itu 'M$' mengerahkan segala cara untuk menahan teknologi internet open source, dan sikap ini berlanjut hingga awal 2010-an. Ada pendapat bahwa Java Applets ikut gagal berkembang dan tersingkir dari pasar karena hal ini. Perkembangan JavaScript dan CSS juga terasa lambat selama bertahun-tahun. Di perusahaan, saya didorong untuk memaksakan dukungan teknologi terbaru IE, tetapi saya memilih Mozilla 3.0; setelah memperbaiki bug JS, saya memakai Mozilla untuk pengembangan SPA enterprise. Bahkan di perusahaan Fortune 500, penggunaan Mozilla/Firefox untuk aplikasi internal kemudian meluas, dan saya ingat itu sebagai pilihan yang tepat
Ada pendapat bahwa nama versi berikutnya boleh saja dikembalikan lagi menjadi SSL. Alasannya, sampai sekarang hampir semua orang masih memakai istilah 'SSL', jadi tidak masalah jika tetap digunakan
Disebutkan juga bahwa nama "TLS" sendiri sudah dipakai di berbagai tempat. Memperbarui konfigurasi dan function signature adalah pekerjaan yang sangat merepotkan, jadi ini juga jadi bahan pertimbangan
Ditekankan bahwa opini seperti ini tidak ingin memberi ide kepada siapa pun
Saat memberi tahu seseorang agar membuat akses ke situs web menjadi aman, yaitu ketika memakai istilah TLS/SSL, saya biasanya bertanya istilah apa yang mereka gunakan. Ditambahkan juga rasa penasaran berapa usia mereka dan apakah mereka sudah bekerja sebelum 1999. Saya juga memberi tahu bahwa jawaban saya akan segera saya tambahkan
Saya menjawab SSL (usia 27). Sementara itu, di kode saya memakai
tls, dan dalam dokumentasi saya lebih suka menulis SSL/TLS untuk menghindari kebingunganBanyak orang cenderung memakai istilah SSL karena mereka mengimplementasikan komunikasi aman dengan library yang namanya mengandung ssl, seperti OpenSSL. Selain OpenSSL, ada juga library seperti BoringSSL, LibreSSL, wolfSSL. Library yang memakai nama TLS kurang terkenal. Contohnya GnuTLS, mbedTLS, s2n-tls, RustTLS
Alasan utama menggunakan istilah SSL adalah karena istilah itu terasa lebih mudah dipahami. Secara teknis yang benar adalah TLS (sebenarnya tidak ada yang lagi memakai SSL 3.0), tetapi karena istilah SSL masih tersisa di library-library utama, istilah itu tetap dipakai. Saya sendiri memakainya karena terbiasa; di masa crypto wars tahun 90-an saya belajar nama SSL, dan saya ingat saat itu untuk mendapatkan enkripsi SSL yang benar harus mengunduh Netscape versi "US only" secara ilegal
Saya biasanya mengatakan "https". Saya suka itu karena bahkan orang awam pun sering setidaknya kira-kira memahami maksudnya
Saya baru sadar untuk pertama kalinya bahwa selama ini saya secara tidak sadar tidak benar-benar membedakan istilah SSL dan TLS. Rasanya aneh mengetahui alasan sebenarnya setelah 20 tahun
Saya pikir "Transport Layer Security" jelas merupakan nama yang lebih baik. Saya juga lebih suka istilah TLS. Mengucapkan bunyi S dua kali berturut-turut terdengar seperti ular, dan itu terasa lucu
Tetapi TLS juga sudah lama dipakai luas untuk istilah "Thread Local Storage". Transport Layer Security resmi dipakai sejak 1999, tetapi Thread Local Storage sudah ada sebelum 1996 di lingkungan pengembangan MS atau IBM. Di industri Unix juga ada kecenderungan lebih menyukai istilah thread-specific data sejak pthread muncul pada 1995. Mungkin pengaruh dokumen Itanium ABI tahun 2001 juga membuat "TLS" makin menyebar luas, dan Sun Microsystems mungkin juga sudah memakainya lebih dulu. Jika ada yang punya manual OS/2, silakan berbagi referensi
Menurut saya justru SSL adalah nama yang lebih cocok. Secara teori TLS seharusnya menjadi mekanisme keamanan umum yang bisa berjalan di banyak layer, misalnya juga bisa dipadukan dengan IPSec, tetapi dalam praktiknya kebanyakan hanya dipakai untuk soket TCP. Variasi UDP-nya adalah DTLS, dan QUIC juga ada, tetapi itu bukan bagian dari TLS sendiri. Belakangan ada juga Linux kernel TLS dan infrastruktur khusus Windows, tetapi itu tidak semudah sekadar menyalakan flag soket. Dan jujur saja, bunyi S yang terdengar seperti 'ular' itu justru keren
"SSL" lebih mudah diucapkan daripada "TLS". Saat mengucapkan S-S-L, lidah hampir tidak perlu berpindah posisi, jadi terasa cepat dan alami
Akan cocok kalau Kaa dari The Jungle Book membahas keamanan TCP sambil bicara tentang nama S~S~L. Bahkan rasanya lucu juga kalau ditambah satu bunyi S lagi jadi SSSL
Orang-orang yang membedakan TLS dan SSL secara ketat biasanya ingin terlihat paham betul perbedaan keduanya, atau memang suka berbicara seperti itu. Perbedaannya sendiri mirip .doc dan .docx: pada dasarnya berbeda, tetapi bagi pengguna umum hampir kompatibel sepenuhnya. Kebanyakan orang hanya peduli HTTPS berjalan baik, bukan struktur internal atau cara kerjanya
Tautan terkait: artikel tahun 1996 berjudul 'Randomness and the Netscape Browser' (Dr. Dobb's Journal) dibagikan https://people.eecs.berkeley.edu/~daw/papers/ddj-netscape.html. Karena tulisan itu dari 1996, nuansa bahasanya sangat berbeda dari makalah atau artikel modern; terasa tua
Ada pertanyaan apakah TLS 1.0 sebenarnya memiliki banyak peningkatan dibanding SSL 3.0. Di artikel tampaknya hanya digambarkan sebagai "penyesuaian kecil untuk membedakannya", jadi hal itu dipertanyakan
Di internet masih ada lebih dari 300 ribu layanan yang mendukung SSLv2. Tautan: https://shodan.io/search/report/… grafik tren: https://trends.shodan.io/search?query=ssl.version%3Asslv2#overview. Angkanya sudah turun banyak selama beberapa tahun, tetapi tampaknya masih butuh waktu sampai benar-benar hilang