Jawaban
- SRP - Secure Remote Password - Ini didasarkan pada Diffie-Hellman. Idenya adalah Anda dapat melakukan pemeriksaan kata sandi timbal balik tanpa benar-benar pernah mentransfer kata sandi atau informasi apa pun yang dapat digunakan untuk memperolehnya. Meskipun aman melalui kabel, Anda tetap harus mengacak-acak kata sandi Anda karena server Anda tidak boleh menyimpannya dalam teks biasa .
- Keuntungan dari SRP adalah bahwa begitu selesai, itu juga memberi Anda kunci enkripsi yang dinegosiasikan bersama bahwa penyerang tidak akan dapat menyimpulkan mengingat data yang telah Anda transfer. Ini berarti Anda bebas menggunakan algoritma enkripsi simetris (seperti AES) setelah pengguna diautentikasi.
- Dengan asumsi Anda menggunakan UDP dengan implementasi terpercaya Anda sendiri / dipesan (berorientasi koneksi) di atasnya: mengenkripsi seluruh muatan UDP - termasuk 'nomor urutan paket' Anda. Jika sistem Anda dirancang dengan benar, maka secara otomatis akan menolak pesan yang diputar ulang dan penyusup tidak akan dapat mengubah nomor urutan paket karena itu dienkripsi (sehingga replay mungkin - tetapi akan diabaikan secara otomatis).
Pikiran
Haruskah otentikasi Anda aman? Benar. Jangan berkompromi dalam hal keamanan saat kata sandi dipertanyakan. Jadi Anda harus mempertimbangkan peluru pertama dalam jawaban saya.
Haruskah data Anda aman? Hanya jika ini merupakan pembelian / transaksi mikro dalam gim - dan mengapa tidak menggunakan sesuatu yang dicoba dan benar seperti HTTPS. Mengenkripsi lalu lintas game Anda kemungkinan besar bukan solusi yang layak karena alasan berikut:
- Ini paranoia lengkap.
- Ini akan menambah overhead waktu CPU pada server Anda, kecuali jika Anda dapat membeli modul enkripsi perangkat keras (mahal).
- Tidak masalah seberapa besar keamanan yang Anda berikan untuk data Anda melalui kabel - seseorang dapat membajak proses klien dan mencegat pesan sesaat sebelum mereka dienkripsi dan dikirim. Ini bukan hanya suatu kemungkinan tetapi jauh lebih mungkin karena secara substansial lebih mudah untuk menyuntikkan kode dibandingkan dengan paket intersepsi. Jika Anda melakukan ini untuk pencegahan cheat, Anda benar-benar dan benar-benar membuang-buang waktu Anda.
- Dalam hal keamanan kata sandi, sayangnya tidak ada yang dapat Anda lakukan secara wajar mengenai sistem yang dibajak, klien menjadi tidak bersahabat. Badai salju WoW dong dirancang untuk menangani hal ini - tetapi saya tidak yakin seberapa aman itu (terutama jika Anda membiarkannya terpasang).
Tolong, jika Anda mengenkripsi untuk mencegah cheat, abaikan saja. Anda akan datang pendek - saya memberi Anda memiliki informasi jika Anda tidak. Ingat bahwa Anda dapat mengenkripsi paket secara selektif dengan byte pertama dalam paket dan indikator apakah sisanya dienkripsi: walaupun, sekali lagi, saya akan tetap menggunakan HTTPS jika Anda perlu melakukan hal-hal seperti transaksi kartu kredit: mereka sangat jarang dan HTTPS dirancang oleh para ahli - tidak seperti sesuatu yang Anda atau saya dirancang.
Semua itu mengatakan, Blizzard benar-benar mengenkripsi lalu lintas WoW mereka. Alasan utama pecahnya ini adalah karena seseorang, yang kemungkinan adalah seorang amatir yang lengkap, memutuskan bahwa mereka akan mencoba tangan mereka pada algoritma enkripsi buatan sendiri; ini berhasil dengan sangat baik . Bahkan jika Anda menggunakan algoritme standar industri, ada peluang bagus bahwa seseorang akan merekayasa balik kode Anda dan mensimulasikannya - begitu klien memasukkan kata sandi mereka, tidak ada yang tahu bahwa sistem yang tidak didukung terhubung.