SASL, atau Simple Authentication and Security Layer, adalah kerangka kerja otentikasi yang mendefinisikan dan menjelaskan proses menghubungkan mekanisme otentikasi ke protokol aplikasi. Ini adalah kerangka kerja standar Internet atau metode pelacakan untuk mengidentifikasi komputer jarak jauh.
Framework SASL memungkinkan penerapan mekanisme autentikasi pada server dan aplikasi yang menggunakan protokol IMAP, XMPP, ACAP, LDAP, dan SMTP. Ini menyediakan perpustakaan umum dan pengembang aplikasi dengan mekanisme pemeriksaan integritas data, enkripsi dan otentikasi yang benar dan andal.
Artikel ini memberi Anda pengantar SASL. Ini akan membahas fitur dan spesifikasi SASL dan bagaimana framework ini bekerja. Selain itu, artikel ini akan menyoroti arsitektur SASL dan menyimpulkan dengan menjelaskan berbagai mekanisme yang terlibat.
Fitur SASL
Lapisan autentikasi ini secara intuitif memungkinkan pengembang untuk membuat kode aplikasi dan program dalam API umum. Itu tidak menentukan teknologi implementasi otentikasi apa pun, karena tanggung jawab itu ada pada setiap mekanisme SASL. Dengan demikian, pendekatan ini cocok untuk menghindari ketergantungan pada mekanisme otentikasi atau enkripsi khusus.
Tentu saja, protokol yang disebutkan sebelumnya mendukung SASL. Pustaka SASL populer disebut libsasl, kerangka kerja yang memeriksa dan memungkinkan program dan aplikasi SASL yang benar untuk menggunakan plug-in SASL di sistem Anda.
SASL adalah kerangka kerja yang bergantung pada berbagai mekanisme untuk mengelola pertukaran protokol. Penambahan mekanisme keamanan ini memungkinkan SASL menyediakan fungsi-fungsi berikut:
- Otentikasi sisi server
- Otentikasi oleh klien
- Periksa integritas data yang ditransfer
- Memastikan privasi dengan mengenkripsi dan mendekripsi data yang dikirimkan
Pengenal Otorisasi dan Otentikasi di SASL
Pertama, penting untuk mengetahui perbedaan antara pengenal otorisasi dan pengenal autentikasi di SASL. Biasanya, ID pengguna, userid, atau ID otorisasi SASL adalah pengidentifikasi yang digunakan aplikasi Linux apa pun untuk memverifikasi opsi yang dapat memberikan akses dan penggunaan.
Di sisi lain, id autentikasi atau id autentikasi mewakili pengidentifikasi autentikasi. Identitas ini adalah pengidentifikasi yang harus diverifikasi oleh sistem. Sistem hanya mengautentikasi pengguna yang identitas dan kata sandinya cocok dengan detail yang disimpan.
Bagaimana cara kerja SASL?
Seperti namanya, SASL bekerja dengan cara yang cukup sederhana. Negosiasi dimulai dengan klien meminta otentikasi dari server dengan membuat koneksi. Server dan klien akan membuat salinan perpustakaan lokal masing-masing (libsasl) melalui SAL API. libsasl akan berkomunikasi dengan mekanisme SASL yang diperlukan melalui antarmuka penyedia layanan (SPI).
Server akan merespons dengan daftar semua mekanisme yang didukung. Sebaliknya, klien akan bereaksi dengan memilih salah satu mekanisme. Server dan klien kemudian akan bertukar data hingga proses autentikasi yang diperlukan gagal atau berhasil. Yang penting, klien dan server akan mengetahui siapa yang berada di sisi lain saluran.
Ilustrasi arsitektur ditunjukkan pada gambar di bawah ini.
Ilustrasi otentikasi SMTP ditunjukkan pada gambar di bawah ini.
3 baris pertama gambar berisi daftar semua mekanisme yang didukung, antara lain CRAM-MD5, DIGEST-MD5, dan Polos; mereka dari server. Baris berikut dari pelanggan dan menunjukkan bahwa dia telah memilih CRAM-MD5 sebagai mekanisme pilihan. Server merespons dengan pesan yang dihasilkan oleh fungsi SASL. Akhirnya, server menerima otentikasi.
Seperti kebanyakan framework, SASL mendukung konsep “domain”. Dan menurut definisi, bidang bersifat abstrak bagi pengguna. Anda juga akan menemukan bahwa mekanisme khusus hanya dapat mengidentifikasi pengguna di domain tertentu.
Mekanisme SASL umum
Di bagian sebelumnya, kami telah menyebutkan bahwa SASL berfungsi saat server menghitung mekanisme yang tersedia dan klien memilih salah satu mekanisme autentikasi tertentu. Jadi beberapa mekanisme SASL yang kemungkinan besar akan berinteraksi dengan Anda meliputi:
Mekanisme rahasia bersama
Dua mekanisme rahasia berbagi utama yang didukung oleh SASL adalah CRAM-MD5 dan DIGEST-MD5, yang telah berkembang sejak saat itu. Mereka mengandalkan keberhasilan klien dan server berbagi rahasia, dan rahasia itu seringkali berupa kata sandi. Server akan menanyakan rahasia ini kepada klien. Sebaliknya, klien harus selalu memberikan jawaban atas rahasia ini untuk membuktikan bahwa ia mengetahui rahasia tersebut.
Meskipun metode ini lebih aman daripada mengirim kata sandi melalui jaringan, kelayakannya bergantung pada kemampuan server untuk menyimpan rahasia dalam database. Pelanggaran keamanan di database server juga akan membahayakan keamanan kata sandi yang disimpan.
Mekanisme POLOS
Cara ini saja agak kurang aman. Oleh karena itu ideal untuk koneksi yang sudah memiliki tingkat enkripsi lain. Ini bekerja dengan mengirimkan ID otentikasi, ID pengguna, dan kata sandi ke server sehingga server dapat menentukan apakah kombinasi tersebut valid dan diizinkan atau tidak.
Khususnya, kekhawatiran terbesar dengan mekanisme ini adalah bagaimana kredensial otentikasi dan kata sandi diperiksa dan diverifikasi.
mekanisme Kerberos
Terakhir, pustaka SASL memiliki mekanisme yang dapat digunakan oleh sistem autentikasi Kerberos 4 dan Kerberos 5. Mekanisme KERBEROS_V4 bisa menggunakan Kerberos 4, sedangkan GSSAPI bisa menggunakan Kerberos 5. Karena mereka menggunakan antarmuka Kerberos, mereka tidak memerlukan kata sandi.
Kesimpulan
Lapisan otentikasi ini berguna dalam berbagai aplikasi dan program Linux. Dari artikel ini, Anda sekarang harus memiliki gagasan tentang apa yang diperlukan oleh lapisan validasi. Artikel ini secara khusus membahas fitur, arsitektur, dan cara kerja SASL di lingkungan Linux. Artikel tersebut juga menjelaskan secara singkat beberapa mekanisme SASL umum yang akan Anda temui.