Saya perlu menyimpan informasi sensitif (kunci enkripsi simetris yang ingin saya rahasiakan) di aplikasi C ++ saya. Pendekatan sederhananya adalah melakukan ini:
std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess";
Namun, menjalankan aplikasi melalui strings
proses (atau yang lainnya yang mengekstrak string dari aplikasi biner) akan menampilkan string di atas.
Teknik apa yang harus digunakan untuk mengaburkan data sensitif seperti itu?
Edit:
Oke, hampir semua dari Anda telah mengatakan "eksekusi Anda dapat direkayasa balik" - tentu saja! Ini adalah hewan kesayangan saya, jadi saya akan sedikit mengoceh di sini:
Mengapa 99% (Oke, jadi mungkin saya sedikit melebih-lebihkan) semua pertanyaan terkait keamanan di situs ini dijawab dengan torrent "tidak ada cara yang mungkin untuk membuat program yang sangat aman" - itu tidak membantu menjawab! Keamanan adalah skala geser antara kegunaan sempurna dan tidak ada keamanan di satu sisi, dan keamanan sempurna tetapi tidak ada kegunaan di sisi lain.
Intinya adalah Anda memilih posisi Anda pada skala geser itu tergantung pada apa yang Anda coba lakukan dan lingkungan tempat perangkat lunak Anda akan berjalan. Saya tidak menulis aplikasi untuk instalasi militer, saya sedang menulis aplikasi untuk PC rumahan . Saya perlu mengenkripsi data di jaringan yang tidak tepercaya dengan kunci enkripsi yang telah dikenal sebelumnya. Dalam kasus ini, "keamanan melalui ketidakjelasan" mungkin cukup baik! Tentu, seseorang dengan cukup waktu, energi, dan keterampilan dapat merekayasa balik biner dan menemukan kata sandinya, tetapi coba tebak? Saya tidak peduli:
Waktu yang saya perlukan untuk menerapkan sistem keamanan terbaik lebih mahal daripada kehilangan penjualan karena versi yang sudah di-crack (bukan karena saya benar-benar menjual ini, tetapi Anda mengerti maksud saya). Tren biru-langit "mari lakukan dengan cara terbaik yang mutlak" dalam pemrograman di antara programmer baru adalah bodoh untuk sedikitnya.
Terima kasih telah meluangkan waktu untuk menjawab pertanyaan ini - mereka sangat membantu. Sayangnya saya hanya dapat menerima satu jawaban, tetapi saya telah memilih semua jawaban yang berguna.