1 poin oleh GN⁺ 2025-06-16 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-06-16
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

    • Jika mengingat masa itu, menurut saya julukan 'M$' masih cocok sampai sekarang
  • 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 kebingungan

      1. Saya mengatakan SSL. Dulu saya bahkan lama tidak tahu bahwa TLS itu "hal yang sama", dan setelah tahu pun 9 dari 10 kali saya tetap bilang SSL. 2. Usia 38 (bekerja sejak 2011, tetapi sudah melakukan network programming sejak 2004~2005). Barusan saya melihat layar kode yang sedang saya kerjakan, dan nama fungsi juga masih berisi SSL seperti sslCertNotBefore. Mungkin karena pada umumnya programmer tidak berurusan langsung dengan TLS. Kode saya juga harus mem-parsing informasi sertifikat dari HTTPS, jadi pekerjaannya cukup merepotkan. Berkat semuanya sudah otomatis dan diabstraksikan, ini bisa dilakukan tanpa kesalahan, tetapi di sisi lain hal itu bisa menghambat pemahaman mendalam tentang cara kerja TLS
    • Banyak 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

    • Perasaan yang sama. Saya sudah 15 tahun bekerja di industri ini, dan baru sekarang merasa sadar bahwa SSL dan TLS pada dasarnya adalah hal yang sama
  • 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

    • Jenis publikasi yang dibaca, yaitu target dan formatnya, tetap beragam seperti pada 1996. Tempat seperti LWN masih menulis dengan gaya serupa sampai sekarang, hanya sedikit kurang kaku https://lwn.net/
  • 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

    • Memang benar ada banyak perubahan dan peningkatan yang signifikan secara praktik. Hanya saja, itu bukan redesign total seperti pada SSL 3.0
  • 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

    • Kalau begitu, jadi penasaran berapa banyak klien yang benar-benar masih berbasis SSLv2. Sejauh yang saya tahu, software/library modern sudah tidak lagi memiliki dukungan yang berarti untuk itu