Keamanan Lapisan Transportasi
Artikel ini sedang dalam perbaikan. Untuk menghindari konflik penyuntingan, mohon jangan melakukan penyuntingan selama pesan ini ditampilkan. Halaman ini terakhir disunting oleh PinkDash (Kontrib • Log) 1666 hari 1142 menit lalu. |
Transport Layer Security (TLS), dan pendahulunya yang sudah usang, Secure Sockets Layer (SSL),[1] adalah protokol kriptografi yang dirancang untuk memberikan keamanan komunikasi melalui jaringan komputer.[2] Beberapa versi protokol menemukan penggunaan luas dalam aplikasi seperti browsing web, email, pesan instan, dan voice over IP (VoIP). Situs web dapat menggunakan TLS untuk mengamankan semua komunikasi antara server dan browser web mereka.
Protokol TLS bertujuan terutama untuk memberikan privasi dan integritas data antara dua atau lebih aplikasi komputer yang berkomunikasi.[2] Ketika diamankan oleh TLS, koneksi antara klien (misalnya, browser web) dan server (misalnya, wiki-indonesia.club) harus memiliki satu atau beberapa properti berikut:
- Koneksi bersifat pribadi (atau aman) karena kriptografi simetris digunakan untuk mengenkripsi data yang dikirimkan. Kunci untuk enkripsi simetris ini dihasilkan secara unik untuk setiap koneksi dan didasarkan pada rahasia bersama yang dinegosiasikan pada awal sesi. Server dan klien menegosiasikan perincian algoritma enkripsi dan kunci kriptografi mana yang digunakan sebelum byte pertama data ditransmisikan. Negosiasi rahasia bersama aman (rahasia yang dinegosiasikan tidak tersedia untuk penyadap dan tidak dapat diperoleh, bahkan oleh penyerang yang menempatkan diri di tengah-tengah koneksi) dan dapat diandalkan (tidak ada penyerang dapat memodifikasi komunikasi selama negosiasi tanpa menjadi terdeteksi).
- Identitas pihak yang berkomunikasi dapat diautentikasi menggunakan kunci kriptografi publik. Otentikasi ini dapat dibuat opsional, tetapi umumnya diperlukan untuk setidaknya salah satu pihak (biasanya server).
- Koneksi ini dapat diandalkan karena setiap pesan yang dikirim mencakup pemeriksaan integritas pesan menggunakan kode otentikasi pesan untuk mencegah kehilangan atau perubahan data yang tidak terdeteksi selama transmisi.[2]
Gambaran
Protokol ini menyediakan authentikasi akhir dan privasi komunikasi di Internet menggunakan cryptography. Dalam penggunaan umumnya, hanya server yang diauthentikasi (dalam hal ini, memiliki identitas yang jelas) selama dari sisi client tetap tidak terauthentikasi. Authentikasi dari kedua sisi (mutual authentikasi) memerlukan penyebaran PKI pada client-nya. Protocol ini mengizinkan aplikasi dari client atau server untuk berkomunikasi dengan didesain untuk mencegah eavesdropping, [[tampering]] dan message forgery.
Baik TLS dan SSL melibatkan beberapa langkah dasar:
- Negosiasi dengan ujung client atau server untuk dukungan algoritme.
- Public key, encryption-based-key, dan certificate-based authentication
- Enkripsi lalulintas symmetric-cipher-based
Sejarah dan pengembangan
Protokol | Diterbitkan | Status |
---|---|---|
SSL 1.0 | Unpublished| data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, #2C2C2C); vertical-align: middle; text-align: center; " class="table-na" | Unpublished | |
SSL 2.0 | 1995 | Dihentikan pada tahun 2011 (RFC 6176) |
SSL 3.0 | 1996 | Dihentikan pada tahun 2015 (RFC 7568) |
TLS 1.0 | 1999 | Dihentikan pada tahun 2020[3][4][5] |
TLS 1.1 | 2006 | Dihentikan pada tahun 2020[3][4][5] |
TLS 1.2 | 2008 | |
TLS 1.3 | 2018 |
Transport Layer Security Protocol (TLS) bersama dengan beberapa platform keamanan jaringan dasar lainnya, dikembangkan melalui inisiatif bersama yang dimulai pada Agustus 1986, di antara Badan Keamanan Nasional, Biro Standar Nasional, Badan Komunikasi Pertahanan, dan dua belas komunikasi dan komputer perusahaan yang memulai proyek khusus yang disebut Secure Data Network System (SDNS). Program ini dijelaskan pada bulan September 1987 di Konferensi Keamanan Komputer Nasional ke-10 dalam serangkaian makalah yang diterbitkan.
Program penelitian inovatif ini berfokus pada perancangan generasi berikutnya dari jaringan komunikasi komputer yang aman dan spesifikasi produk yang akan diimplementasikan untuk aplikasi pada jaringan publik dan swasta. Itu dimaksudkan untuk melengkapi standar internet OSI baru yang berkembang pesat baik dalam profil GOSIP pemerintah AS dan dalam upaya internet ITU-ISO JTC1 yang besar secara internasional. Awalnya dikenal sebagai protokol SP4, namanya diganti TLS dan kemudian diterbitkan pada tahun 1995 sebagai standar internasional ITU-T X.274 | ISO / IEC 10736: 1995.
Aplikasi dan penerapan
Dalam desain aplikasi, TLS biasanya diimplementasikan di atas protokol Transport Layer, mengenkripsi semua data protokol terkait protokol seperti HTTP, FTP, SMTP, NNTP dan XMPP.
Secara historis, TLS telah digunakan terutama dengan protokol transportasi yang andal seperti Transmission Control Protocol (TCP). Namun, itu juga telah diimplementasikan dengan protokol transportasi berorientasi datagram, seperti User Datagram Protocol (UDP) dan Datagram Congestion Control Protocol (DCCP), penggunaan yang telah distandarisasi secara independen menggunakan istilah Datagram Transport Layer Security (DTLS) .
Situs web
Penggunaan utama TLS adalah untuk mengamankan lalu lintas World Wide Web antara suatu situs web dan peramban web yang disandikan dengan protokol HTTP. Penggunaan TLS ini untuk mengamankan lalu lintas HTTP merupakan protokol HTTPS.[6]
Versi protokol |
Dukungan situs web[7] |
Keamanan[7][8] |
---|---|---|
SSL 2.0 | 1.6% | Tidak aman |
SSL 3.0 | 6.7% | Tidak aman[9] |
TLS 1.0 | 65.0% | Tergantung pada cipher[n 1] and client mitigations[n 2] |
TLS 1.1 | 75.1% | Tergantung pada cipher[n 1] dan mitigasi klien[n 2] |
TLS 1.2 | 96.0% | Tergantung pada cipher[n 1] dan mitigasi klien[n 2] |
TLS 1.3 | 18.4% | Aman |
- Catatan
- ^ a b c Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaciphers
- ^ a b c see § Web browsers dan § Attacks against TLS/SSL sections
Sertifikat digital
Sertifikat digital mengesahkan kepemilikan kunci publik oleh subjek bernama sertifikat, dan menunjukkan penggunaan yang diharapkan dari kunci tersebut. Ini memungkinkan orang lain (mengandalkan pihak) untuk mengandalkan tanda tangan atau pada pernyataan yang dibuat oleh kunci pribadi yang sesuai dengan kunci publik bersertifikat.
Otoritas sertifikat
TLS biasanya bergantung pada sekumpulan otoritas sertifikat pihak ketiga yang tepercaya untuk menetapkan keaslian sertifikat. Kepercayaan biasanya berlabuh dalam daftar sertifikat yang didistribusikan dengan perangkat lunak agen pengguna,[10] dan dapat dimodifikasi oleh pihak yang mengandalkan.
Menurut Netcraft, yang memantau sertifikat TLS aktif, otoritas sertifikat terkemuka pasar (CA) telah menjadi Symantec sejak awal survei mereka (atau VeriSign sebelum unit bisnis layanan otentikasi dibeli oleh Symantec). Pada 2015, Symantec menyumbang hanya di bawah sepertiga dari semua sertifikat dan 44% dari sertifikat yang valid yang digunakan oleh 1 juta situs tersibuk, sebagaimana dihitung oleh Netcraft.[11] Pada 2017, Symantec menjual bisnis TLS / SSL ke DigiCert.[12] Dalam laporan terbaru, ditunjukkan bahwa IdenTrust, DigiCert, dan Sectigo adalah 3 otoritas sertifikat teratas dalam hal pangsa pasar sejak Mei 2019.[13]
Sebagai konsekuensi dari pemilihan sertifikat X.509, otoritas sertifikat dan infrastruktur kunci publik diperlukan untuk memverifikasi hubungan antara sertifikat dan pemiliknya, serta untuk menghasilkan, menandatangani, dan mengelola validitas sertifikat. Meskipun ini bisa lebih mudah daripada memverifikasi identitas melalui jaringan kepercayaan, pengungkapan pengawasan massal 2013 membuatnya lebih dikenal luas bahwa otoritas sertifikat adalah titik lemah dari sudut pandang keamanan, yang memungkinkan serangan man-in-the-middle (MITM) jika otoritas sertifikat bekerja sama (atau dikompromikan).[14]
Algoritma
Pertukaran kunci atau perjanjian kunci
Sebelum klien dan server dapat mulai bertukar informasi yang dilindungi oleh TLS, mereka harus secara aman bertukar atau menyetujui kunci enkripsi dan cipher untuk digunakan saat mengenkripsi data. Di antara metode yang digunakan untuk pertukaran kunci / perjanjian adalah: kunci publik dan pribadi yang dihasilkan dengan RSA (dilambangkan TLS_RSA dalam protokol jabat tangan TLS), Diffie-Hellman (TLS_DH), ephemeral Diffie–Hellman (TLS_DHE), kurva elips Diffie-Hellman ( TLS_ECDH), kurva-elips epiferal Diffie-Hellman (TLS_ECDHE), Diffie-Hellman anonim (TLS_DH_anon), pre-shared key (TLS_PSK)[15] dan Secure Remote Password (TLS_SRP).[16]
Metode perjanjian kunci TLS_DH_anon dan TLS_ECDH_anon tidak mengotentikasi server atau pengguna dan karenanya jarang digunakan karena mereka rentan terhadap serangan man-in-the-middle. Hanya TLS_DHE dan TLS_ECDHE yang memberikan kerahasiaan ke depan.
Sertifikat kunci publik yang digunakan selama pertukaran / perjanjian juga bervariasi dalam ukuran kunci enkripsi publik / swasta yang digunakan selama pertukaran dan karenanya ketahanan keamanan yang diberikan. Pada Juli 2013, Google mengumumkan bahwa mereka tidak akan lagi menggunakan kunci publik 1024-bit dan akan beralih ke kunci 2048-bit untuk meningkatkan keamanan enkripsi TLS yang diberikannya kepada penggunanya karena kekuatan enkripsi terkait langsung dengan ukuran kunci.[17]
Standar
Standar primer
Versi TLS yang disetujui saat ini adalah versi 1.3, yang ditentukan dalam:
- RFC 8446: "Protokol Transport Layer Security (TLS) Versi 1.3".
Standar saat ini menggantikan versi sebelumnya, yang sekarang dianggap usang:
- RFC 2246: "Protokol TLS Versi 1.0".
- RFC 4346: "Protokol Transport Layer Security (TLS) Versi 1.1".
- RFC 5246: "Protokol Transport Layer Security (TLS) Versi 1.2".
Serta SSL 2.0 dan 3.0 yang tidak pernah distandarisasi, yang dianggap usang:
- Internet Draft (1995), SSL Versi 2.0
- RFC 6101: "Protokol Lapisan Soket Aman (SSL) Versi 3.0".
Extensi
RFC lain selanjutnya memperpanjang TLS.
Ekstensi ke TLS 1.0 meliputi:
- RFC 2595: "Menggunakan TLS dengan IMAP, POP3 dan ACAP". Menentukan ekstensi ke layanan IMAP, POP3, dan ACAP yang memungkinkan server dan klien menggunakan keamanan lapisan transport untuk menyediakan komunikasi pribadi yang diautentikasi melalui Internet.
- RFC 2712: "Penambahan Suites Kerberos Cipher ke Transport Layer Security (TLS)". Suite cipher 40-bit yang didefinisikan dalam memo ini hanya muncul untuk tujuan mendokumentasikan fakta bahwa kode-kode suite sandi tersebut telah ditetapkan.
- RFC 2817: "Memutakhirkan ke TLS dalam HTTP / 1.1", menjelaskan cara menggunakan mekanisme Upgrade dalam HTTP / 1.1 untuk memulai Transport Layer Security (TLS) melalui koneksi TCP yang ada. Ini memungkinkan lalu lintas HTTP yang tidak aman dan aman untuk berbagi port terkenal yang sama (dalam hal ini, http: di 80 daripada https: di 443).
- RFC 2818: "HTTP Over TLS", membedakan lalu lintas aman dari lalu lintas tidak aman dengan menggunakan 'port server' yang berbeda.
- RFC 3207: "Ekstensi Layanan SMTP untuk Mengamankan SMTP dari Keamanan Transport Layer". Menentukan ekstensi ke layanan SMTP yang memungkinkan server SMTP dan klien menggunakan keamanan lapisan transportasi untuk menyediakan komunikasi pribadi yang diautentikasi melalui Internet.
- RFC 3268: "AES Ciphersuites for TLS". Menambahkan cipher suites Standard Encryption Standard (AES) ke cipher simetris yang sudah ada sebelumnya.
- RFC 3546: "Ekstensi Transport Layer Security (TLS)", menambahkan mekanisme untuk menegosiasikan ekstensi protokol selama inisialisasi sesi dan mendefinisikan beberapa ekstensi. Dibuat usang oleh RFC 4366.
- RFC 3749: "Metode Kompresi Protokol Keamanan Lapisan Transportasi", menetapkan kerangka kerja untuk metode kompresi dan metode kompresi DEFLATE.
- RFC 3943: "Kompresi Protokol Transport Layer Security (TLS) Menggunakan Lempel-Ziv-Stac (LZS)".
- RFC 4132: "Penambahan Suites Camellia Cipher ke Transport Layer Security (TLS)".
- RFC 4162: "Penambahan SEED Cipher Suites ke Transport Layer Security (TLS) ".
- RFC 4217: "Mengamankan FTP dengan TLS ".
- RFC 4279: "Pre-Shared Key Ciphersuites untuk Transport Layer Security (TLS)", menambahkan tiga set suite cipher baru untuk protokol TLS untuk mendukung otentikasi berdasarkan kunci yang dibagikan sebelumnya.
Ekstensi ke TLS 1.1 meliputi:
- RFC 4347: "Datagram Transport Layer Security "menentukan varian TLS yang berfungsi di atas protokol datagram (seperti UDP).
- RFC 4366: "Ekstensi Transport Layer Security (TLS) "menjelaskan sekumpulan ekstensi spesifik dan mekanisme ekstensi umum.
- RFC 4492: "Elliptic Curve Cryptography (ECC) Cipher Suites untuk Transport Layer Security (TLS) ".
- RFC 4680: "Pesan Jabat Tangan TLS untuk Data Tambahan ".
- RFC 4681: "Ekstensi Pemetaan Pengguna TLS ".
- RFC 4785: "Ciphersuites Pra-Berbagi Kunci (PSK) dengan Enkripsi NULL untuk Transport Layer Security (TLS) ".
- RFC 5054: "Menggunakan Protokol Kata Sandi Jarak Jauh Aman (SRP) untuk Otentikasi TLS ". Mendefinisikan ciphersuites TLS-SRP.
- RFC 5077: "Transisi Sesi Transport Layer Security (TLS) tanpa Status Sisi Server ".
- RFC 5081: "Menggunakan Kunci OpenPGP untuk Otentikasi Transport Layer Security (TLS) ", usang oleh RFC 6091.
Ekstensi ke TLS 1.2 meliputi:
- RFC 5288: "Suite Cipher Suites Mode GES (GCM) untuk TLS ".
- RFC 5289: "Suites TLS Elliptic Curve Cipher Suites dengan SHA-256/384 dan AES Galois Counter Mode (GCM)".
- RFC 5746: "Perpanjangan Renegosiasi Indikasi Lapisan Transportasi (TLS)".
- RFC 5878: "Ekstensi Otorisasi Keamanan Lapisan Transportasi (TLS) ".
- RFC 5932: "Camellia Cipher Suites untuk TLS "
- RFC 6066: "Ekstensi Transport Layer Security (TLS): Definisi Ekstensi ", termasuk Indikasi Nama Server dan stapel OCSP.
- RFC 6091: "Menggunakan Kunci OpenPGP untuk Otentikasi Transport Layer Security (TLS) ".
- RFC 6176: "Melarang Secure Sockets Layer (SSL) Versi 2.0 ".
- RFC 6209: "Tambahan dari ARIA Cipher Suites ke Transport Layer Security (TLS) ".
- RFC 6347: "Datagram Transport Layer Security Versi 1.2 ".
- RFC 6367: "Penambahan Camellia Cipher Suites ke Transport Layer Security (TLS) ".
- RFC 6460: "Suite B Profil untuk Transport Layer Security (TLS) ".
- RFC 6655: "Suites Cipher AES-CCM untuk Transport Layer Security (TLS) ".
- RFC 7027: "Kurva Elliptic Curve Cryptography (ECC) untuk Transport Layer Security (TLS) ".
- RFC 7251: "Suite Cipher Elliptic Curve Cryptography (ECC) untuk TLS ".
- RFC 7301: "Extensi Transport Layer Security (TLS) Application-Layer Protocol Negotiation".
- RFC 7366: "Encrypt-then-MAC untuk Transport Layer Security (TLS) dan Datagram Transport Layer Security (DTLS) ".
- RFC 7465: "Suites Cipher RC4 terlarang ".
- RFC 7507: "Nilai TLS Fallback Signaling Cipher Suite (SCSV) untuk Mencegah Serangan Downgrade Protokol".
- RFC 7568: "Deprecating Secure Sockets Layer Versi 3.0 ".
- RFC 7627: "Transport Sesi Hash Lapisan Keamanan (TLS) dan Perpanjangan Master Secret ".
- RFC 7685: "Client Layer Security (TLS) ClientHello Padding Extension ".
Encapsulations of TLS include:
Refrensi
- ^ Langley, Adam; Pironti, Alfredo; Barnes, Richard; Thomson, Martin. "Deprecating Secure Sockets Layer Version 3.0". tools.ietf.org (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ a b c Rescorla <ekr@networkresonance.com>, Eric. "The Transport Layer Security (TLS) Protocol Version 1.2". tools.ietf.org (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ a b Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernama:2
- ^ a b "Here is what is new and changed in Firefox 74.0 Stable - gHacks Tech News". www.ghacks.net. Diakses tanggal 2020-03-10.
- ^ a b "TLS 1.0 and TLS 1.1 - Chrome Platform Status". chromestatus.com. Diakses tanggal 2020-03-10.
- ^ ""Http vs https"". www.instantssl.com. Diakses tanggal 2020-05-30.
- ^ a b As of August 3, 2019. "SSL Pulse: Survey of the SSL Implementation of the Most Popular Websites". Qualys. Diakses tanggal 2019-09-01.
- ^ ivanr. "RC4 in TLS is Broken: Now What?". Qualsys Security Labs. Diarsipkan dari versi asli tanggal 2013-08-27. Diakses tanggal 2013-07-30.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamapoodle_pdf
- ^ Rea, Scott (2013). "Alternatives to Certification Authorities for a Secure Web" (PDF). RSA Conference Asia Pacific. Diarsipkan dari versi asli (PDF) tanggal 7 October 2016. Diakses tanggal 7 September 2016.
- ^ "Counting SSL certificates". Netcraft News (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ Raymond, Art (2017-08-03). "Lehi's DigiCert swallows web security competitor in $1 billion deal". Deseret News (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ "Market share trends for SSL certificate authorities, May 2020". w3techs.com. Diakses tanggal 2020-05-30.
- ^ Schoen, Seth (2010-03-24). "New Research Suggests That Governments May Fake SSL Certificates". Electronic Frontier Foundation (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ Tschofenig, Hannes; Eronen, Pasi. "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)". tools.ietf.org (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ Perrin, Trevor; Wu, Tom; Mavrogiannopoulos, Nikos; Taylor, David. "Using the Secure Remote Password (SRP) Protocol for TLS Authentication". tools.ietf.org (dalam bahasa Inggris). Diakses tanggal 2020-05-30.
- ^ "Google updates SSL certificates to 2048-bit encryption". www.computing.co.uk (dalam bahasa Inggris). 2013-07-31. Diakses tanggal 2020-05-30.