GNU/Linux >> Belajar Linux >  >> Ubuntu

TLS vs SSL:Apa Bedanya?

Pendahuluan

TLS (Transport Layer Security) dan SSL (Secure Sockets Layer) sering disebutkan ketika berbicara tentang keamanan Internet dan Situs Web. Untuk membuat masalah semakin membingungkan bagi orang awam, istilah ini sering digunakan secara bergantian.

Namun bagaimana sebenarnya TLS dan SSL bekerja, dan apakah ada perbedaan yang harus Anda ketahui?

Dalam tutorial ini, kami akan menjelaskan protokol keamanan TLS dan SSL, perbedaan di antara keduanya, dan mana yang harus Anda gunakan.

TLS vs SSL

Baik TLS maupun SSL berfungsi sebagai protokol kriptografi yang digunakan untuk mengenkripsi data antara server web dan pengguna.

Versi asli SSL dikembangkan oleh Netscape pada tahun 1994 tetapi tidak pernah dirilis secara resmi karena kelemahan keamanan yang mudah dieksploitasi. Versi 2.0 yang ditingkatkan dirilis pada Februari 1995, tetapi memiliki kelemahan serius sendiri, yang akan ditambal oleh SSL 3.0 hanya setahun kemudian.

TLS dikandung oleh Consensus Development sebagai peningkatan dari SSL 3.0. Ini dirilis pada tahun 1999 dan akan digantikan pada tahun 2006 oleh TLS 1.1, yang menambahkan perlindungan terhadap CBC (Cipher Block Chaining). Pada tahun 2008, TLS 1.2 menambahkan serangkaian peningkatan lebih lanjut, dengan versi terbaru adalah TLS 1.3, dirilis pada tahun 2018.

Meskipun TLS dan SSL pada dasarnya serupa, mengingat TLS 1.0 didasarkan pada SSL 3.0, masih ada perbedaan dalam cara kerjanya:

SSL TLS
Suite Cipher Menawarkan dukungan untuk suite sandi Fortezza. Menawarkan dukungan untuk RC4, Triple DES, AES, IDEA.
Pesan Peringatan Pesan peringatan “Tidak ada sertifikat”. Pesan peringatan yang berbeda tergantung pada situasinya.
Protokol Rekam Menggunakan MAC (Kode Otentikasi Pesan). Menggunakan HMAC (Kode Otentikasi Pesan Berbasis Hash).
Proses Jabat Tangan Perhitungan hash termasuk master secret dan pad. Hash dihitung melalui pesan handshake.
Otentikasi Pesan Metode ad-hoc untuk menggabungkan detail kunci dan data aplikasi. Detail utama yang berdampingan dan data aplikasi melalui HMAC.

Masalah Jabat Tangan

Sebuah “jabat tangan” mengacu pada bagian dari proses komunikasi antara server web dan pengguna yang membuat koneksi aman dan menentukan jenis enkripsi yang digunakan.

Secara umum, proses handshake SSL dan TLS mengikuti langkah-langkah berikut:

1. Sistem pengguna akhir meminta sambungan aman dan menerima daftar cipher suit, toolkit algoritmik yang digunakan untuk mengenkripsi data, dari server. Sistem membandingkannya dengan daftar cipher suit-nya sendiri dan memilih salah satu yang dapat digunakan baik oleh server maupun olehnya.

2. Sertifikat menyediakan sertifikat digital sebagai bukti identitas. Mesin pengguna menerima sertifikat dan mengonfirmasi keasliannya.

3. Menggunakan kunci publik server, sistem pengguna akhir dan server menyetujui kunci sesi mereka gunakan untuk mengenkripsi data.

Catatan: Sesuai dengan namanya, session key hanya digunakan untuk satu sesi komunikasi saja. Jika koneksi antara pengguna dan server terputus karena alasan apa pun, kunci sesi baru akan dibuat setelah komunikasi dipulihkan.

Saat melakukan jabat tangan, SSL menggunakan port untuk membuat koneksi (secara default, ini adalah port 443). TLS, di sisi lain, memulai langkah pertama jabat tangan (meminta koneksi aman) melalui saluran tidak aman, dan beralih ke port 443 setelah jabat tangan dimulai.

Bagaimana TLS dan SSL Bekerja untuk Mengamankan Data?

Seperti yang telah kita bahas di atas, proses jabat tangan melibatkan server yang mengirimkan sertifikat digital dan kunci publik ke sistem pengguna akhir untuk membuat koneksi yang aman. Memasang sertifikat SSL/sertifikat TLS mengotentikasi server web dan menyediakan kunci publik dan pribadi yang digunakan selama jabat tangan.

Tanpa sertifikat, pengguna yang mencoba mengakses server web menerima “koneksi Anda tidak pribadi” pesan eror. Ini memberi sinyal kepada pengguna bahwa data mereka mungkin terekspos dan kemungkinan akan menyebabkan mereka meninggalkan situs web Anda.

Haruskah Anda Menggunakan TLS atau SSL?

Saat ini, SSL dan versi TLS sebelumnya dianggap usang. SSL 2.0 dan 3.0 tidak digunakan lagi oleh IETF pada tahun 2015, sedangkan TLS 1.0 dan 1.1 tidak digunakan lagi pada awal tahun 2020 dan saat ini sedang dihapus dari browser versi baru.

Saat memilih di antara keduanya, TLS adalah pilihan yang jelas. Ini tidak hanya berfungsi sebagai peningkatan ke SSL, tetapi juga berkinerja jauh lebih baik.

Catatan: Versi browser web yang lebih baru telah berhenti mendukung SSL dan mendorong pemilik situs web untuk pindah ke TLS. Misalnya, Google Chrome mulai menampilkan ERR_SSL_OBSOLETE_VERSION peringatan pada situs web yang masih menggunakan SSL.

Bagaimana Cara Memeriksa Protokol TLS/SSL Mana yang Diaktifkan?

Jika Anda tidak yakin apakah server web menggunakan versi TLS/SSL yang sudah usang, Anda dapat memeriksanya dengan cepat menggunakan browser web.

Di Google Chrome dan Microsoft Edge, klik kanan di area kosong laman web dan klik Periksa . Dalam Periksa jendela, di bawah Keamanan tab, temukan ikhtisar sertifikat digital situs web.

Menggunakan Firefox, klik kanan halaman dan klik Lihat Info Halaman . Anda akan menemukan detail sertifikat digital di bawah Keamanan tab.

Atau, gunakan alat pemeriksa TLS/SSL online.

Bagaimana Cara Menonaktifkan TLS dan SSL Versi Lama?

TLS 1.3 adalah protokol kriptografi terbaru dan teraman yang digunakan untuk membangun komunikasi yang aman antara sistem pengguna dan server web. Versi TLS dan SSL yang tidak digunakan lagi menimbulkan risiko keamanan karena kerentanan keamanan. Untuk alasan keamanan, nonaktifkan SSL versi 2 dan 3, serta TLS versi 1.0 dan 1.1 di server langsung.

Satu-satunya protokol yang diizinkan di server web adalah TLS 1.2 dan TLS 1.3.

Langkah-langkah untuk menonaktifkan SSL 2.0 atau 3.0, atau TLS 1.0 bergantung pada apakah server menggunakan Apache, NGINX, atau Tomcat.

Apache

Untuk menonaktifkan SSL 2 dan 3, serta TLS 1.0 dan 1.1 di server Apache, ikuti langkah-langkah di bawah ini.

1. Cari file konfigurasi Apache. Lokasi file default tergantung pada sistem Anda:

  • Pada sistem berbasis Debian/Ubuntu, lokasi file default adalah /etc/apache2/apache2.conf
  • Pada sistem berbasis Debian/Ubuntu yang dikonfigurasi dalam virtual host, lokasi file default adalah /etc/apache2/sites-enabled/
  • Pada sistem berbasis Red Hat/CentOS, lokasi file default adalah /etc/httpd/conf/httpd.conf
  • Pada sistem berbasis Red Hat/CentOS yang dikonfigurasi dalam host virtual, lokasi file default adalah /etc/httpd/sites-enabled/

2. Buka file konfigurasi dan temukan SSLProtocol entri.

3. Edit entri untuk menonaktifkan SSL 2.0, SSL 3.0, TLS 1.0, dan TLS 1.1:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

4. Mulai ulang layanan Apache agar perubahan diterapkan:

service apache2 restart

atau

service httpd restart

Catatan: Bergantung pada konfigurasi server, Anda mungkin perlu membuat perubahan ini di banyak tempat, tidak hanya di file konfigurasi default.

NGINX

Untuk menonaktifkan SSL 2 dan 3, serta TLS 1.0 dan 1.1 di server NGINX, ikuti langkah-langkah di bawah ini.

1. Temukan file konfigurasi NGINX. Lokasi default file konfigurasi global adalah /etc/nginx/nginx.conf , tetapi mungkin ada konfigurasi blok server individual di /etc/nginx/sites-enabled/ .

2. Edit file konfigurasi untuk mengaktifkan TLS 1.2:

ssl_protocols TLSv1.2;

3. Mulai ulang layanan NGINX:

service nginx restart

Catatan: Pelajari cara memasang sertifikat SSL di NGINX.

Tomcat

Untuk menonaktifkan SSL 2 dan 3, serta TLS 1.0 dan 1.1 di server Tomcat, ikuti langkah-langkah di bawah ini.

1. Temukan file konfigurasi Tomcat. Lokasi default adalah TOMCAT_HOME/conf/server.xml .

2. Edit file konfigurasi untuk mengaktifkan TLS 1.2.

  • Untuk Tomcat 5 dan 6 (sebelum 6.0.38):
sslProtocols = "TLSv1.2"
  • Untuk Tomcat 6 dan 7 (6.0.38 atau yang lebih baru), edit baris berikut:
sslEnabledProtocols = "TLSv1.2"

3. Mulai ulang layanan Tomcat agar perubahan diterapkan.


Ubuntu
  1. Linux vs. Unix:Apa bedanya?

  2. Server Ubuntu vs Desktop:Apa Perbedaannya?

  3. Perbedaan Antara Lubuntu Dan Lxde?

  1. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  2. Apa Perbedaan Antara Metode Tasksel Dan Normal?

  3. Hosting Cloud vs. Hosting VPS:Apa Bedanya?

  1. Kontainer vs Mesin Virtual (VM):Apa Bedanya?

  2. Perintah Docker CMD vs. Entrypoint:Apa Perbedaannya?

  3. Perbedaan antara Cari/di mana/yang mana?