Di situs web yang andal, saya selalu melihat klaim seperti "Semua data dienkripsi" atau "Semua kata sandi dienkripsi menggunakan enkripsi 128bit" dan lain-lain. Namun saya belum pernah menemukan klaim seperti "Semua kata sandi diacak."
Di situs web saya, saya akan menyimpan semua kata sandi pengguna dalam database setelah menggunakan SHA-512 (kemungkinan besar) hashing dengan garam acak. Saya ingin menambahkan snipet yang meyakinkan pengguna bahwa kata sandi mereka aman sehingga mereka tidak akan terhalang untuk menggunakan situs web saya karena memerlukan kata sandi. Saya ingin pengguna merasa aman tetapi saya tidak berpikir semua orang tahu apa hashing itu.
PERTANYAAN SAYA: Apakah boleh memberikan pesan yang mengatakan bahwa "Semua kata sandi dienkripsi dan aman" karena saya tidak berpikir bahwa rata-rata pengguna akan tahu apa perbedaan antara hashing dan enkripsi, dan lebih mungkin merasa aman hanya karena mereka melihat kata kenyamanan "enkripsi"? Atau adakah pesan alternatif yang harus saya berikan?
Di samping catatan, saya baru mengenal enkripsi dan kata sandi dan saya bertanya-tanya apakah ini akan cukup aman untuk saat ini ketika saya meluncurkan situs saya. Saya tidak ingin memberi tahu pengguna bahwa ini aman jika tidak. Informasi apa pun akan sangat dihargai. Terima kasih.
Jawaban:
Pengguna tidak peduli.
Satu-satunya waktu mereka peduli adalah ketika seseorang menarik uang dari rekening bank mereka dan tampaknya memiliki tautan yang beberapa hari sebelumnya, seseorang memperoleh akses penuh ke database Anda.
Hampir di setiap kasus saya melihat pesan seperti itu, mereka menyesatkan. Yang paling lucu ada di situs web dengan label gaya "aman tingkat militer" di setiap halaman. Ada peringatan yang mengatakan bahwa sertifikat HTTP tidak valid. Ada injeksi SQL pada formulir masuk. Beberapa minggu kemudian, situs web diretas, lalu menghilang selamanya.
Saya berhenti menghitung jumlah situs web yang mengklaim bahwa mereka menjaga keamanan informasi, sambil memiliki formulir "Pulihkan kata sandi saya", yang sebenarnya mengirim kata sandi asli melalui email.
Ini seperti label "W3C valid XHTML". Mengapa mereka biasanya memakai website di mana bahkan halaman rumah mengandung setidaknya puluhan kesalahan dan kode seperti
<DIV COLOR='red'>
?Jika Anda masih ingin meyakinkan pengguna, Anda dapat meletakkan sesuatu seperti:
Tapi sejujurnya, formulir "Reset kata sandi saya" menggantikan "Saya lupa kata sandi saya; kirimkan kepada saya melalui email" jauh lebih meyakinkan daripada kata-kata apa pun.
Petunjuk dari berbagai komentar:
Jangan menemukan kembali roda: gunakan OpenID. Dengan cara ini, Anda bahkan tidak menyimpan hash.
Sumber: komentar oleh Jan Hudec .
Karena Anda seorang pelajar, sumber terbuka proyek Anda. Karena kekhawatiran Anda adalah: "Saya tidak ingin pengguna berpikir bahwa kata sandi mereka tidak aman karena beberapa anak di sekolah mendesainnya." , tidak ada yang lebih meyakinkan bahwa bisa memeriksa, dengan membaca kode sumber, bahwa itu ditulis oleh pengembang yang terampil yang peduli dengan keamanan.
Sumber: komentar oleh Jan Doggen .
sumber
Jangan menyimpan kata sandi sejak awal! Ikuti contoh Stack Exchange dan biarkan pengguna masuk dengan identitas mereka di situs lain yang menyediakan otentikasi melalui OpenID . Implementasi tersedia secara bebas untuk kerangka kerja web yang paling umum.
Atau mungkin protokol lain. Jika itu adalah proyek in-house untuk beberapa institusi (seperti komentar Anda pada jawaban lain menyarankan), hampir pasti sudah ada LDAP, Kerberos (Windows Active Directory didasarkan pada dua juga; apache mendukung otentikasi HTTP terhadap mereka) atau layanan tersebut untuk login komputer. Hubungkan saja dengan itu.
Ini menyelamatkan Anda dari menyimpan informasi sensitif (Anda kemungkinan besar masih harus menyimpan izin, tetapi tidak terlalu penting) dan para pengguna harus mengingat nama pengguna dan kata sandi lain, sehingga secara keseluruhan menang-menang.
sumber
Pepatah:
adalah penilaian pribadi yang Anda buat tentang fakta atau proses teknologi tertentu, dan penilaian ini dibatasi oleh apa yang Anda ketahui tentang keamanan pada saat itu. Tetapi bisakah Anda menjamin tanpa keraguan bahwa enkripsi, metode penyimpanan, dll. Anda akan tahan terhadap segala jenis serangan, bahkan yang tidak Anda ketahui, atau belum Anda ketahui?
Artinya: Pernyataan ini dalam bahaya kedaluwarsa, bahkan mungkin tanpa Anda sadari.
Karena itu saya cenderung setuju dengan komentar di atas oleh @ JoachimSauer: Cukup jelaskan apa yang Anda lakukan, bagaimana Anda menyimpan informasi pengguna, dan beri tahu pengguna bagaimana ini seharusnya membuat layanan Anda aman. Kemudian biarkan pengguna menilai sendiri.
sumber
Ini benar-benar tergantung pada konteks situs web spesifik Anda.
Misalnya, jika ini adalah situs web konsumen, kemungkinan besar kebanyakan dari mereka hanya akan peduli dengan kata sandi mereka (mungkin), informasi keuangan / kesehatan (tergantung), dan informasi pribadi mereka seperti gambar (hahaha, ya benar ...) .
Jika ini adalah aplikasi bisnis, maka tingkat keamanan seluruh situs relevan, bukan hanya kata sandi. Demikian juga, itu tergantung pada siapa pengguna target Anda - sangat teknis / tidak begitu teknis, dll.
Semua konteks ini sangat menentukan apa yang harus Anda komunikasikan, dan tingkat jaminan apa yang diperlukan.
Misalnya, untuk konsumen non-teknis, cukuplah memiliki komentar umum yang sederhana, seperti:
(Dan, seperti yang orang lain katakan, Anda lebih baik bahkan tidak memiliki kata sandi sama sekali, gunakan beberapa standar seperti OpenID atau OAuth.)
Untuk bisnis yang sangat teknis, Anda ingin memiliki halaman lengkap detail teknis dan prosedural, seperti:
Tentu saja, Anda tidak ingin memberikan terlalu banyak informasi terperinci, itu harus lebih banyak tentang prosesnya daripada kata sandi itu sendiri ... Dan tentu saja harus berjalan tanpa mengatakan bahwa kenyataannya harus benar-benar sesuai dengan apa pun yang Anda tulis di sana , konteks apa pun yang Anda hadapi.
Sebagai salah satu jawaban yang disinggung, sebagian besar pengguna tidak peduli, tidak akan mengerti apa pun yang Anda katakan kepada mereka, dan tetap akan mendaftar, bahkan jika Anda mengatakan bahwa Anda DO mengirim data pengguna ke NSA.
Ini bukan untuk mereka.
Mereka akan sama senangnya tidak memiliki kata sandi, biarkan saya memilih nama pengguna saya dari daftar dan login saya secara otomatis.
Jelas ini adalah untuk persentase kecil yang peduli - Anda harus memungkinkan pengguna cerdas untuk melakukan apa yang benar, memberi mereka informasi yang mereka butuhkan, dan memberi mereka pendidikan yang mungkin mereka minta.
Jika tidak, saat itu salah, 98% lainnya akan tiba-tiba bangun dan marah.
("Tentu, saya tahu bahwa saya tidak perlu kata sandi untuk melihat foto-foto saya, tetapi saya tidak berpikir bahwa orang lain juga bisa melihatnya !!")
sumber
Jika Anda ingin sistem Anda aman, kekuatan algoritme kata sandi tidak ada artinya - sebagian besar peretas dapat memecahkan kata sandi dalam waktu singkat, terutama jika kata sandi yang dipilih kecil atau terdiri dari kata-kata umum yang telah "diretas dan disimpan oleh peretas "Gunakan tabel pelangi dan sejenisnya. Baca artikel ArsTechnica tentang peretas kata sandi untuk banyak wawasan.
Yang perlu Anda lakukan adalah meyakinkan pengguna bahwa orang jahat tidak bisa mendapatkan hash mereka sejak awal. Satu perusahaan yang sadar akan keamanan tempat saya bekerja memiliki sistem web 3 tingkat di mana server web secara fisik tidak terhubung ke server database. Ketika bos saya ingin meletakkan situs webnya dan memiliki akses langsung ke DB (kode yang dirancang dengan buruk, 'kata Nuff) dia diberitahu bahwa dia tidak bisa memilikinya, dan ketika dia mendorong ... diberitahu bahwa tidak ada kabel di antara mereka . Dia harus mendesainnya sehingga melewati semua permintaan data melalui layanan tingkat menengah. Dan layanan-layanan itu tidak hanya diamankan, tetapi mengekspos permukaan minimal untuk diserang, dan dikunci. Dan DB tidak pernah mengekspos salah satu tabelnya untuk membaca, hanya prosedur tersimpan yang pada gilirannya dikunci sehingga hanya layanan terkait yang memiliki akses.
Itu tidak seburuk kode untuk seperti yang Anda pikirkan, setelah Anda tahu arsitektur dan pemisahan setiap tingkatan, itu cukup mudah untuk dikodekan.
sumber
Anda dapat mengembangkan situs paling aman di planet ini dan memiliki pengalaman pengguna yang sangat buruk. Pengguna akan menganggap bahwa situs Anda tidak aman.
Anda dapat membangun situs yang paling tidak aman di planet ini dan memiliki pengalaman pengguna yang luar biasa. Pengguna akan menganggap bahwa situs Anda aman. Setidaknya sampai muncul berita malam.
sumber