Sertifikat TLS dan SSL

184

(Tulisan pertama untuk bahan ajar dan diskusi mata kuliah Jejaring Sosial dan Konten Kreatif di Universitas Gunadarma)

Artikel ini menjelaskan tentang TLS dan gunanya untuk mengamankan komunikasi data via internet (misalnya mengirim password dan data kartu kredit) serta membuktikan keabsahan pemilik sebuah situs web.

TLS dan SSL

Ketika kita mengakses situs web, entah itu mesin pencari, perbankan, atau e-commerce, tentu saja di balik layar terjadi pengiriman dan penerimaan data lewat internet. Data itu melewati jaringan yang berisi banyak komputer untuk mencapai tujuannya. Sebelum diterapkannya sistem pengamanan data modern, semua komputer itu bisa membaca data kita, karena datanya tidak terenkripsi.

Banyak data yang kita kirim/terima via internet bersifat sensitif dan berharga: password, informasi finansial, data kartu kredit, dan lain-lain.

Untuk melindungi data kita, para ahli IT menciptakan protokol khusus untuk mengirim dan menerima data via internet: Transport Layer Security (TLS), yang merupakan penerus dari Secure Sockets Layer (SSL). Mungkin beberapa dari kita yang kurang familiar dengan istilah IT tidak pernah mendengar istilah TLS atau SSL, nah, bagaimana dengan HTTPS?

TLS adalah protokol yang menciptakan sesi terenkripsi antara dua komputer di internet. Tidak ada apapun di antara keduanya yang bisa mendekripsi dan membaca data yang dikirim di antara dua komputer itu. TLS/SSL memampukan pengguna internet untuk mengirim data sensitif ketika menggunakan protokol HTTPS. Secara sederhana, HTTPS adalah HTTP yang menggunakan TLS. Teknologi ini ideal untuk layanan sensitif misalnya perbankan, pengiriman email, dan otentikasi akun. Dengan adanya HTTPS/TLS, data kita aman dari hacker.

pembentukan sesi TLS

Ilustrasi pembentukan sesi TLS ketika kita hendak mengakses layanan web tertentu (sumber: ProtonMail)

Penjelasan ilustrasi di atas:

  1. Anda mau mengunjungi situs web, misalnya Google.com. By default, peramban modern akan mengusahakan koneksi dengan HTTPS
  2. Server Google mengirimkan sertifikat kunci publiknya kepada Anda via peramban. Peramban memastikan keabsahannya.
  3. Peramban mengirimkan kunci sesi yang telah dienkripsi menggunakan kunci publik server tujuan. (Akan sangat berbahaya jika tidak dienkripsi!)
  4. Server mendekripsi kunci sesi dengan kunci privat yang dimiliki server itu, lalu menggunakannya selama sesi berlangsung

Teknologi TLS mengimplementasikan kritopgrafi kunci asimetris, yang terdiri atas kunci privat dan kunci publik, bisa dengan algoritma RSA atau ECC. Apapun yang dienkripsi menggunakan kunci privat hanya dapat dibuka menggunakan kunci publik, dan sebaliknya. Dalam hal ini, kunci publik komputer tujuan digunakan oleh klien untuk mengenkripsi data, salah satunya session key.

Muncul satu masalah: Bagaimana cara kita mengetahui validitas kunci publik?

Apa Itu Sertifikat TLS/SSL?

Sertifikat digital, dalam hal ini sertifikat kunci publik, adalah dokumen digital yang membuktikan kepemilikan kunci publik. Sertifikat ini diterbitkan oleh Certificate Authority (CA). CA menandatangani sertifikat ini secara digital dan menjelaskan bahwa kunci tersebut benar milik pemilik domain yang merupakan subyek sertifikat.

Sertifikat TLS biasanya memuat informasi berikut:

  • Nama domain subyek
  • Organisasi subyek
  • Nama CA
  • Nama domain tambahan, misalnya subdomain (jika ada)
  • Tanggal penerbitan sertifikat
  • Tanggal kedaluwarsa
  • Kunci publik
  • Tanda tangan digital milik CA

Ketika pengguna mencoba mengakses komputer lain, misalnya server Google atau e-banking, server itu akan mengirimkan sertifikat TLS-nya ke pengguna. Pengguna lalu memverifikasi sertifikat itu dengan sertifikat CA yang ada pada komputernya. Dalam hal ini, peramban seperti Firefox atau Chrome yang akan melakukannya untuk kita.

CA bukanlah pihak sembarangan; mereka harus memiliki power of authority. Ada beberapa contoh CA di Wikipedia: Let's Encrypt, IdenTrust, DigiCert, GlobalSign, dan Sectigo, serta masih banyak lagi.

my cert

Sertifikat yang ditampilkan oleh Firefox untuk blog ini (terpotong)

Gambar di bawah adalah ketika peramban memberikan peringatan karena validitas sertifikat sebuah situs web tidak dapat dibuktikan:

ssl error

Ini bisa terjadi karena kesalahan pengaturan di server atau tindakan penyerangan.

Banyak CA juga menawarkan Extended Validation (EV) yang tidak hanya membuktikan kendali domain, namun juga detail pemilik, misalnya nama perusahaan dan jenis usaha. Misalnya milik bank BCA:

cert BCA

cert BCA detail

Jadi, kalau mau memastikan apakah situs yang sedang kalian akses itu benar-benar asli dan bukan phising, kalian bisa cek sertifikat TLS-nya di browser/peramban. Contoh, ada banyak situs web bank tipu-tipu di internet. Waspada!

Referensi

Komentar