Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C

PHPz
Lepaskan: 2023-05-16 08:19:12
ke hadapan
1602 orang telah melayarinya

1. Penyulitan Lemah

Penyulitan merujuk kepada menggunakan algoritma khas untuk menukar data maklumat asal, supaya walaupun pengguna yang tidak dibenarkan mendapatkan maklumat yang disulitkan, mereka tidak akan mengetahui maklumat tersebut . Kaedah penyahsulitan masih tidak dapat memahami kandungan mesej. Algoritma penyulitan biasa boleh dibahagikan terutamanya kepada: penyulitan simetri, penyulitan asimetri, dan penyulitan sehala. Pelbagai algoritma penyulitan digunakan dalam senario yang berbeza Pilih algoritma yang sesuai berdasarkan ciri-ciri algoritma penyulitan, seperti kelajuan pengkomputeran, keselamatan, dan kaedah pengurusan utama. Penyulitan yang mudah dipecahkan Algoritma dipanggil algoritma penyulitan lemah, seperti algoritma DES yang boleh dipecahkan dalam masa yang terhad menggunakan kaedah yang lengkap. Artikel ini mengambil kod sumber bahasa JAVA sebagai contoh untuk menganalisis punca penyulitan lemah dan cara membaikinya.

2. Kemudaratan penyulitan yang lemah

Untuk algoritma penyulitan yang lemah dalam rintangan serangan, setelah dieksploitasi, maklumat privasi peribadi mungkin bocor dan kehilangan harta benda mungkin berlaku . Dari Januari 2018 hingga April 2019, terdapat sejumlah 2 maklumat kerentanan yang berkaitan dengannya dalam CVE. Maklumat kerentanan adalah seperti berikut:

CVE 漏洞概况
CVE-2018-9028 CA Privileged AccessManager 2.x中传输密码时使用弱加密,降低了密码破解的复杂性。
CVE-2018-6619 在 Easy Hosting Control Panel(EHCP)v0.37.12.b通过利用无盐的弱加密算法,使攻击者更容易破解数据库密码。

3. Kod sampel

Kod sampel yang digunakan di bawah berasal daripada Penanda Aras (https://www.owasp.org /index.php /Benchmark), nama fail sumber: BenchmarkTest00019.java.

3.1 Kod Kecacatan

Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C

Contoh operasi kod di atas adalah untuk membaca kandungan dalam permintaan dan menyulitkannya, dalam Bab 49 Line mendapat contoh membaca fail konfigurasi benchmarkprops. Muatkan fail konfigurasi pada baris 50 dan baca atribut cryptoAlg1 dalam fail konfigurasi pada baris 52 hingga 53. Jika tiada atribut sedemikian, DESede/ECB/PKCS5Padding akan digunakan secara lalai untuk menetapkan nilai kepada algorithm. Baris 54 akan membina objek c yang disulitkan menggunakan algorithm sebagai algoritma penyulitan. Seterusnya sediakan kata laluan yang disulitkan. Baris 57~58 menunjukkan penjana kunci untuk algoritma penyulitan DES. Baris 59 menyatakan bahawa mod operasi objek penyulitan c ialah penyulitan, dengan kunci ialah kunci. Baris 62 hingga 76 menukar aliran input dalam permintaan kepada input tatasusunan bait dan baris 77 menyulitkan input Hasil penyulitan ialah tatasusunan bait result. Kunci yang dijana menggunakan algoritma DES adalah pendek, hanya 56 bit, dan kelajuan operasi adalah perlahan Selain itu, algoritma DES bergantung sepenuhnya pada kunci dan terdedah kepada serangan carian yang menyeluruh.

Gunakan Pengawal Kod untuk mengesan kod sampel di atas Anda boleh mengesan kecacatan "penyulitan lemah", dan tahap paparan adalah sederhana. Laporkan kecacatan pada baris 57 kod, seperti yang ditunjukkan dalam Rajah 1:

Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C

Rajah 1: Contoh pengesanan penyulitan lemah

3.2 Betulkan Kod

Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C

Dalam kod pembaikan di atas, baris 58 menggunakan algoritma AES untuk menggantikan algoritma DES AES boleh menjana kunci sekurang-kurangnya 128 bit dan sehingga 256 bit, dan Kelajuan operasi adalah pantas dan penggunaan memori adalah rendah.

Gunakan Pengawal Kod untuk mengesan kod yang dibaiki, dan anda boleh melihat bahawa kecacatan "penyulitan lemah" tidak lagi wujud. Seperti yang ditunjukkan dalam Rajah 2:

Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C

Rajah 2: Hasil pengesanan selepas pembaikan

4

Dalam sistem dengan keperluan keselamatan yang tinggi, disyorkan untuk menggunakan algoritma penyulitan selamat (seperti AES, RSA) untuk menyulitkan data sensitif.

Atas ialah kandungan terperinci Bagaimana untuk mengelakkan penyulitan lemah dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan