it-swarm-id.com

Otentikasi berbasis sertifikat vs Otentikasi nama pengguna dan kata sandi

Apa kelebihan dan kekurangan otentikasi berbasis sertifikat dibandingkan otentikasi nama pengguna dan kata sandi? Saya tahu beberapa, tetapi saya akan menghargai jawaban yang terstruktur dan terperinci.

PEMBARUAN

Saya juga tertarik untuk mengetahui serangan apa yang cenderung terjadi, mis. sejauh ini disebutkan brute force, sementara tidak ada yang disebutkan untuk sertifikat ... bagaimana dengan XSRF? Sertifikat diharapkan memiliki masa pakai yang lebih pendek dan dapat dicabut sementara kata sandi akan hidup lebih lama sebelum kebijakan admin meminta untuk mengubahnya ...

95
Stefany

1. Pengguna bodoh

Kata sandi adalah sesuatu yang sesuai dengan memori pengguna, dan pengguna memilihnya. Karena otentikasi adalah tentang memverifikasi identitas fisik pengguna jarak jauh (dari sudut pandang pemeriksa), perilaku pengguna harus terlibat dalam proses - namun, kata sandi bergantung pada bagian dari pengguna yang paling terkenal biasa-biasa saja dalam menangani keamanan, yaitu otaknya. Pengguna sama sekali tidak memahami apa yang dimaksud dengan entropi kata sandi. Saya bukan menyalahkan mereka untuk itu: ini adalah subjek teknis, spesialisasi, yang secara realistis tidak bisa menjadi "akal sehat" dalam waktu dekat. Di sisi lain, keamanan token fisik jauh lebih "nyata" dan rata-rata pengguna bisa menjadi cukup baik. Evolusionis akan mengatakan bahwa manusia telah dipilih secara positif untuk itu selama sejuta tahun terakhir, karena mereka yang tidak dapat memegang alat batu mereka tidak cukup bertahan untuk memiliki keturunan.

Film-film Hollywood dapat digunakan sebagai model bagaimana pengguna berpikir tentang kata sandi - jika hanya karena para pengguna juga menonton film. Selalu, Musuh Lengkungan memiliki kata sandi singkat dan hanya suka membual tentang hal itu dan mendistribusikan petunjuk kapan pun dia bisa. Dan, selalu, Agen Rahasia Inggris menebak kata sandi pada waktunya untuk menonaktifkan bom fusi yang ditanam di bawah hamparan bunga favorit Ratu. Film memproyeksikan realitas yang terdistorsi dan dilebih-lebihkan, tetapi mereka masih mewakili dasar mental di mana rata-rata pengguna beroperasi: mereka membayangkan kata sandi sebagai memberikan keamanan dengan menjadi lebih "cerdas" daripada penyerang. Dan, selalu, kebanyakan gagal dalam hal itu.

"Kekuatan kata sandi" dapat sedikit ditingkatkan oleh aturan wajib (setidaknya delapan karakter, setidaknya dua digit, setidaknya satu huruf besar dan satu huruf kecil ...) tetapi aturan tersebut dipandang sebagai beban oleh pengguna, dan kadang-kadang sebagai kendala tak tertahankan pada kebebasan bawaan mereka - sehingga pengguna menjadi melawan aturan, dengan kreativitas yang luar biasa, dimulai dengan menuliskan kata sandi secara tradisional dengan catatan tetap. Lebih sering daripada tidak, aturan penguatan kata sandi menjadi bumerang seperti itu.

Di sisi lain, sertifikat pengguna menyiratkan sistem penyimpanan, dan jika sistem itu adalah perangkat fisik yang pengguna bawa dengan rumah atau kunci mobilnya, maka keamanan bergantung (sebagian) pada seberapa baik rata-rata pengguna mengelola keamanan suatu objek fisik, dan mereka biasanya melakukan pekerjaan dengan baik. Setidaknya lebih baik daripada ketika memilih kata sandi yang baik. Jadi itu keuntungan besar sertifikat.

2. Sertifikat menggunakan kriptografi asimetris

"Asimetri" adalah tentang memisahkan peran. Dengan kata sandi, siapa pun yang memverifikasi kata sandi tahu pada suatu saat kata sandi atau data yang setara dengan kata sandi (yah, itu tidak sepenuhnya benar dalam kasus PAKE protokol ). Dengan sertifikat pengguna, sertifikat tersebut adalah dikeluarkan oleh otoritas sertifikasi, yang menjamin hubungan antara identitas fisik dan kunci publik kriptografis. Verifier dapat berupa entitas berbeda, dan dapat memverifikasi tautan tersebut dan menggunakannya untuk mengautentikasi pengguna, tanpa mendapatkan kemampuan untuk menyamar sebagai pengguna.

Singkatnya, ini adalah titik sertifikat: untuk memisahkan mereka yang define identitas digital pengguna (yaitu entitas yang melakukan pemetaan dari identitas fisik ke dunia komputer) dari mereka yang = autentikasi pengguna.

Ini membuka jalan ke tanda tangan digital yang membawa penolakan. Ini sangat menarik bagi bank yang menerima pesanan keuangan dari pelanggan online: mereka perlu mengautentikasi pelanggan (itu adalah uang yang kita bicarakan, masalah yang sangat serius) tetapi mereka akan senang memiliki jejak pesanan yang meyakinkan - dalam arti: a Hakim akan diyakinkan. Dengan autentikasi belaka, bank memperoleh beberapa jaminan bahwa ia berbicara kepada pelanggan yang tepat, tetapi tidak dapat membuktikannya kepada pihak ketiga; bank bisa membuat transkrip koneksi palsu, jadi tidak ada senjata terhadap pelanggan yang mengklaim dibingkai oleh bank itu sendiri. Tanda tangan digital tidak segera tersedia bahkan jika pengguna memiliki sertifikat; tetapi jika pengguna dapat menggunakan sertifikat untuk otentikasi maka sebagian besar kerja keras telah dilakukan.

Juga, kata sandi secara inheren rentan terhadap serangan phishing, sedangkan sertifikat pengguna tidak. Justru karena asimetri: penggunaan sertifikat tidak pernah melibatkan pengungkapan data rahasia kepada rekan, sehingga penyerang yang meniru server tidak dapat mempelajari sesuatu yang bernilai seperti itu.

3. Sertifikat rumit

Menyebarkan sertifikat pengguna sangat rumit, sehingga mahal:

  • Penerbitan dan pengelolaan sertifikat adalah kaleng penuh cacing, karena vendor PKI dapat memberi tahu Anda (dan, memang, saya memang memberi tahu Anda). Terutama manajemen pencabutan. PKI adalah sekitar 5% kriptografi dan 95% prosedur. Itu bisa dilakukan, tetapi tidak murah.

  • Sertifikat pengguna menyiratkan bahwa pengguna menyimpan kunci pribadi mereka dengan cara tertentu, di bawah "akses eksklusif" mereka. Ini dilakukan baik dalam perangkat lunak (sistem operasi yang ada dan/atau browser Web dapat melakukan itu) atau menggunakan perangkat keras khusus, tetapi kedua solusi memiliki masalah kegunaan. Dua masalah utama yang akan muncul adalah 1) pengguna kehilangan kuncinya, dan 2) penyerang mendapatkan salinan kunci. Penyimpanan perangkat lunak menjadikan kehilangan kunci sebagai masalah yang masuk akal (karena kesalahan hard disk yang gagal), dan berbagi kunci antara beberapa sistem (mis. Komputer desktop dan iPad) menyiratkan beberapa operasi manual yang tidak mungkin terlindungi dengan baik terhadap penyerang. Token perangkat keras menyiratkan seluruh bisnis driver perangkat yang berantakan, yang mungkin bahkan lebih buruk.

  • Sertifikat pengguna menyiratkan operasi matematika yang relatif kompleks di sisi klien; ini bukan masalah bahkan untuk Pentium II yang anemia, tetapi Anda tidak akan dapat menggunakan sertifikat dari beberapa Javascript yang ditampar dalam situs Web umum. Sertifikat membutuhkan kerja sama aktif dari perangkat lunak sisi klien, dan perangkat lunak tersebut cenderung, katakanlah, secara ergonomis tidak optimal dalam hal ini. Rata-rata pengguna biasanya dapat belajar menggunakan sertifikat klien untuk koneksi HTTPS ke situs Web, tetapi dengan biaya belajar bagaimana mengabaikan popup peringatan sesekali, yang membuat mereka jauh lebih rentan terhadap beberapa serangan (misalnya serangan aktif di mana penyerang mencoba untuk beri mereka sertifikat server palsu sendiri).

Di sisi lain, otentikasi berbasis kata sandi sangat mudah diintegrasikan di mana saja. Tentu saja sama mudahnya mengacau; tetapi setidaknya itu tidak tentu saja melibatkan beberapa biaya tambahan yang tidak dapat dikompres.

Ringkasan

Sertifikat pengguna memungkinkan pemisahan peran yang tidak dapat dilakukan kata sandi. Mereka melakukannya dengan mengorbankan penambahan sekumpulan masalah implementasi dan penyebaran, yang membuatnya mahal. Namun, kata sandi tetap murah dengan menyesuaikan pikiran manusia, yang secara inheren menyiratkan keamanan yang rendah. Masalah keamanan dengan kata sandi dapat agak dikurangi dengan beberapa tipu daya (hingga protokol PAKE termasuk) dan, yang paling penting, dengan menyalahkan pengguna jika terjadi masalah (kami tahu rata-rata pengguna tidak dapat memilih kata sandi yang aman, tetapi setiap kecelakaan akan masih menjadi kesalahannya - itulah cara bank melakukannya).

94
Thomas Pornin

Nama Pengguna/Kata Sandi

  • Pro: Mudah digunakan - hanya membutuhkan beberapa kode dan penyimpanan data yang aman. Bergantung pada kebijakan keamanan, dapat membuat kata sandi otomatis atau memaksa pengguna baru untuk membuatnya.

  • Pro: Mudah diadministrasikan - pengaturan ulang kata sandi dapat (untuk beberapa kebijakan keamanan) dilakukan dengan alat otomatis

  • Con: Untuk keamanan yang baik, kata sandi harus diatur ulang lebih awal dan sering. Pengguna lupa atau gagal mengubah kata sandi adalah risiko keamanan atau kerumitan kegunaan.

  • Kon: Kata sandi yang baik mungkin sulit untuk diingat, yang mengarah ke masalah pengguna menggunakan kembali kata sandi atau menuliskannya.

  • Con: Menyimpan data kata sandi adalah titik lemah - jika seorang penyusup mendapatkan penyimpanan kata sandi, ia mendapat beban ibu.

  • Con: Semua bagian dari transmisi kata sandi dapat menyebabkan paparan - situs web yang menyimpan kata sandi secara lokal untuk kemudahan penggunaan, komponen server internal yang mentransmisikan secara jelas, file log dalam produk COTS yang menyimpan kata sandi di tempat yang jelas. Dengan rahasia yang menjadi bagian dari transmisi, Anda hanya sekuat tautan terlemah Anda - perlu upaya serius untuk mencegah paparan dan persyaratan ada pada pengguna dan pengembang sistem.

Sertifikat:

  • Pro: Tidak memerlukan transmisi rahasia. Bukti kunci pribadi tidak mengandung informasi rahasia - mengurangi segala macam titik lemah penyimpanan/transmisi.

  • Pro: Diterbitkan oleh pihak tepercaya (CA) yang memungkinkan sistem manajemen terpusat untuk status di beberapa aplikasi. Jika sertifikat rusak, bisa dicabut. Memperbaiki pemecahan kata sandi harus dilakukan secara terpisah untuk setiap sistem kecuali ID yang digunakan bersama.

  • Pro: Kasus non-penolakan lebih kuat - di sebagian besar sistem kata sandi, cara pengguna pada awalnya diautentikasi sebelum pembuatan akun sangat lemah dan mekanisme pengaturan ulang kata sandi dapat menawarkan faktor lain dari penyangkalan yang masuk akal. Dengan banyak bentuk penerbitan sertifikat, jauh lebih sulit bagi pengguna untuk mengatakan itu bukan mereka. Peringatan - Anda masih sebagus kebijakan penerbitan CA Anda.

  • Pro: Melayani lebih banyak tujuan daripada sekadar otentikasi - dapat memberikan integritas dan kerahasiaan juga.

  • Con: Masih membutuhkan kata sandi/pin - hampir semua mekanisme penyimpanan pasangan kunci pribadi kemudian dibuka dengan PIN. SmartCards dapat memiliki perlindungan tamper dan kemampuan mengunci untuk mencegah kekerasan, tetapi itu tidak memperbaiki fakta bahwa pengguna menulis PIN pada catatan tempel di sebelah komputer tempat kartu dipasangkan. Terkadang masalah kata sandi muncul kembali dalam skala yang lebih kecil dengan PKI.

  • Kon: Kompleksitas infrastruktur - mendirikan PKI bukanlah tugas yang mudah dan umumnya sangat mahal baik dalam penyebaran maupun pemeliharaan sehingga hanya dapat digunakan untuk sistem besar/mahal.

  • Kon: Pelaporan dan pembaruan Status Sertifikat tidak mudah - mencabut kredensial pengguna yang telah rusak sangat berat karena ukuran dan kompleksitas infrastruktur. Biasanya, CA menghasilkan CRL yang mungkin atau mungkin tidak disediakan dalam server OCSP. Maka setiap aplikasi harus memeriksa setiap login untuk status CRL atau OCSP. Ini memperkenalkan berbagai penundaan waktu ke dalam sistem antara waktu kredensial PKI dilaporkan dikompromikan dan waktu ketika sistem yang bergantung pada kredensial itu benar-benar mulai menolak akses. Kecepatan pembaruan status dapat dipercepat - tetapi dengan biaya kompleksitas sistem yang lebih besar.

Beberapa catatan lain:

Sertifikat diharapkan memiliki masa hidup yang lebih pendek dan dapat dicabut sementara kata sandi akan hidup lebih lama sebelum kebijakan admin meminta untuk mengubahnya ...

Saya tidak setuju dengan premis. Pada sistem saya telah bekerja pada yang mendukung kata sandi dan PKI, kebijakan untuk persyaratan pembaruan kata sandi JAUH lebih pendek daripada kebijakan untuk penerbitan sertifikat. Pencabutan adalah kaleng cacing yang berbeda - itu untuk kemungkinan kompromi kunci pribadi. Karena data kunci pribadi tidak ditransmisikan melalui sistem, risiko pemaparan terhadap data ini umumnya dianggap jauh lebih rendah daripada risiko pemaparan kata sandi. Untuk tujuan praktis, kata sandi dianggap memiliki umur yang lebih pendek.

Saya juga tertarik untuk mengetahui serangan apa yang cenderung terjadi, mis. sejauh ini disebutkan brute force, sementara tidak ada yang disebutkan untuk sertifikat ... bagaimana dengan XSRF?

Anda sedang mencampur apel dan jeruk di sini. Brute force dapat menjadi serangan yang layak pada kedua jenis kredensial otentikasi - tetapi XSRF adalah serangan pada jenis aplikasi yang mendasarinya yang mungkin terjadi terlepas dari mekanisme otentikasi. Kecuali Anda bermaksud bahwa karena nama pengguna/kata sandi akan dimasukkan dengan semacam antarmuka teks, mereka mungkin rentan terhadap skrip lintas situs pada antarmuka itu.

Secara umum (permintaan maaf karena kurangnya terminologi resmi saya - saya biasanya melihat istilah serangan yang umum tetapi saya kekurangan waktu):

  • Brute force - karena keyspace kata sandi rata-rata Anda lebih kecil daripada keyspace dari kunci asimetris, kata sandi lebih mudah untuk brute force. Namun, ukuran kunci yang cukup kecil pada sertifikat juga brute force-mampu dan kemampuan untuk brute force serangan tumbuh dengan kemampuan CPU yang memaksa perlombaan tikus dengan ukuran kunci meningkat.

  • Tebakan terdidik - mempersempit ruang kunci ke serangkaian tebakan yang wajar lebih mudah dengan kata sandi, dan tidak begitu jelas untuk sebagian besar algoritme kunci asimetris, meskipun ada kunci lemah dalam algoritme RSA, jadi ada beberapa ketergantungan pada seberapa besar kripto yang membutuhkan penyerang adalah.

  • Rekayasa Sosial - dapat dilakukan dengan cara apa pun, meskipun dengan sertifikat yang disimpan di perangkat keras, Anda tidak hanya harus mengendalikan pengguna PIN tetapi juga perangkat keras yang menyimpan kunci mereka.

  • Serangan di dalam - mendapatkan kredensial dari dalam sistem dan kemudian menggunakannya untuk meniru pengguna yang sah - tergantung. Jika kata sandi disimpan secara tidak aman maka ini lebih dapat dilakukan untuk sistem berbasis kata sandi. Tetapi jika Anda bisa mengendalikan CA, Anda bisa mengeluarkan sendiri sertifikat yang sah dan itu tergantung pada bagaimana akses dikontrol.

  • Pria di tengah - tergantung - seorang pria di tengah dapat mencegat kata sandi jika kata sandi tidak dienkripsi dalam perjalanan dengan mekanisme enkripsi yang melewati dirinya. Itu bisa dilakukan dengan SSL/TLS. Namun, seorang pria di tengah juga dapat mencegat bagian dari transfer PKI, tergantung pada bagaimana PKI digunakan. Tanda tangan PKI tanpa nonce atau stempel waktu terbuka untuk serangan replikasi oleh seorang pria di tengah - ia dapat mengirim ulang pesan yang dicegat selama tidak ada cara untuk mengetahui apakah pesan tersebut tepat waktu atau unik.

32
bethlakshmi
  1. Nama pengguna dan Kata Sandi
    • Ini semua tentang apa yang Anda ketahui. Anda memberikan kode rahasia Word untuk diautentikasi dengan layanan.
    • Ini berarti bahwa jika dicegat dalam aliran, itu dapat digunakan. Penggunaan enkripsi membuat hal itu tidak mungkin tetapi masih memungkinkan. Seseorang dapat melakukan pria di tengah untuk mendapatkan kata sandi Anda atau mengambil alih autentikasi penerimaan komputer.
    • Nama pengguna dan kata sandi dapat digunakan di komputer mana saja kapan saja. Ini adalah hal yang buruk jika masalah keamanan dan hal yang baik jika masalah aksesibilitas. Untuk bank ... ini buruk. Untuk facebook, itu seharusnya tidak masalah.
  2. Sertifikat
    • Sertifikat sedikit lebih canggih. Server mengirim data ke klien dan klien menandatangani data dan mengirimkannya kembali. Ini berarti bahwa server tidak mengetahui kunci privat kapan saja sehingga sementara seorang pria di tengah atau pengambilalihan server akan mengakibatkan mereka mendapatkan akses, mereka tidak memiliki kunci Anda.
    • Sertifikat sulit digunakan. Anda tidak dapat mengingat mereka dan mereka dapat dicuri.

Sistem terbaik adalah kombinasi. Anda memasukkan kata sandi pada kunci sehingga Anda memiliki otentikasi dua faktor. Sesuatu yang Anda tahu (kata sandi), dan sesuatu yang Anda miliki (kunci). Namun, semakin banyak lapisan keamanan, semakin banyak rasa sakit itu. Itu adalah kompromi besar dalam semua keamanan.

8
Stephen

Saya setuju dengan poin Stephen. Anda mengajukan pertanyaan yang sulit untuk diteliti karena masalah ini biasanya bukan perbandingan satu sama lain. Cara yang baik untuk memahami mengapa keduanya ada dan biasanya tidak dinilai terhadap satu sama lain adalah dengan fokus pada penggunaan. Sertifikat terikat pada keystores tingkat mesin dan karenanya sangat bagus untuk otentikasi mesin ke mesin antara mesin tertentu yang direncanakan sebelumnya. Kata sandi sangat cocok untuk orang-orang karena kami mobile dan cenderung mengautentikasi dari banyak sistem dengan cara yang sulit diprediksi sebelumnya. Jadi sertifikat biasanya dirancang untuk otentikasi berbasis perangkat keras dan kata sandi yang baik untuk otentikasi berbasis perangkat mobile. Kartu pintar adalah cara yang bagus untuk menambahkan otentikasi berbasis sertifikat ke manusia ponsel dan faktor lain dalam proses tersebut.

8
zedman9991

Kata sandi sering kali dapat dipaksakan dengan kasar dan dapat direkayasa secara sosial, karena, sebagai pemiliknya harus menghafalnya, kata sandi seringkali lebih sederhana daripada kunci rahasia.

Kunci pribadi (dengan kekuatan yang cukup - untuk RSA, 2048 atau 4096 bit) tidak dapat dipaksa. Satu-satunya cara untuk mengotentikasi ke sistem yang memerlukan otentikasi berbasis kunci publik adalah untuk mendapatkan akses ke beberapa komputer lain terlebih dahulu untuk mendapatkan kunci privat. Ini memperkenalkan tingkat kerumitan tambahan untuk serangan apa pun. Rekayasa sosial untuk membuat seseorang mengungkapkan kata sandi tidak akan membantu, karena kata sandi hanya mendekripsi kunci pribadinya, daripada memberinya akses langsung ke sistem target. Rekayasa sosial untuk membuat seseorang mengungkapkan kunci pribadinya bersama dengan kata sandinya kemungkinan akan jauh lebih sulit.

Selain itu, kata sandi dikirimkan melalui jaringan dari mesin pengguna ke sistem yang ingin digunakan pengguna. Kunci pribadi tidak dikirimkan melalui jaringan, baik dalam format yang jelas maupun dalam format terenkripsi; alih-alih hanya kunci publik yang dikirimkan.

3
yfeldblum

Anda sepertinya lupa bahwa halaman web dapat menggunakan sertifikat dan kata sandi. Jika pengguna dengan sertifikat datang, pintu terbuka. Dan jika dia tidak memiliki sertifikat, dia harus masuk dengan nama dan kata sandi seperti biasa.

Dengan cara ini, pengguna yang tertarik mendapatkan sertifikat mereka, semua melakukannya dengan cara lama.

1
Martin

Saya ingin menambahkan opsi - Perangkat sandi satu kali. Saya setuju dengan apa yang dikatakan orang lain tentang pro dan kontra sertifikat dan kata sandi - Perangkat OTP memerlukan beberapa komponen back-end untuk beroperasi, tetapi dapat diintegrasikan tanpa banyak kesulitan menurut pendapat saya (Active Directory sedikit berbeda, tetapi lainnya sistem tidak terlalu sulit).

Kombinasi kata sandi dan kata sandi satu kali berfungsi dengan sangat baik. Anda dapat menggunakan solusi yang lebih sederhana seperti Yubikey dengan kata sandi (USB atau NFC), atau kode fob yang ditampilkan.

Kedua opsi ini mudah ditambahkan ke operasi berbasis Linux. Jika Anda ingin melakukannya di Active Directory, Anda harus membeli perangkat lunak untuk menangani kode dan menginstalnya di setiap server AD. Pengguna kemudian memasukkan OTP di awal bidang kata sandi, lalu kata sandi yang biasanya. Dimungkinkan untuk mengembangkan modul Anda sendiri untuk itu, tetapi mahal dari apa yang saya lihat.

1
Mat Carlson