Rumah > Artikel > pangkalan data > Apakah langkah pengukuhan untuk pangkalan data cache Redis?
Perlindungan data dan penyulitan sensitif
1. Penyimpanan kata laluan (penting)
Isu keselamatan: Kata laluan pelayan Redis asli memerlukan pas dan masterauth disimpan dalam teks yang jelas untuk redis.
Penyelesaian: Gunakan PBKDF2 untuk menyulitkan kata laluan pelayan dan simpan ke redis.conf.
Memandangkan isu prestasi, penggunaan PBKDF2 akan lebih memakan masa untuk setiap pengesahan Selepas semakan, selepas pengesahan pertama berjaya, memori akan dicache dengan SHA256 dan permintaan seterusnya akan disahkan menggunakan SHA256. pertama.
2. Sokongan penggantian kunci (penting)
Isu keselamatan: Kunci rahsia yang terlibat dalam penyulitan dan penyahsulitan tidak boleh dikodkan dengan keras ke dalam kod.
Penyelesaian: Kunci rahsia menyokong penggantian biasa.
➤redis server redis-server:
Tambahkan item konfigurasi pada fail konfigurasi: cipher-dir
Konfigurasikan nama penuh folder tempat redis_shared.key dan root. kunci terletak Laluan, contohnya: cipher-dir /opt/redis/etc/cipher
➤redis client: redis-cli
Tambah parameter -cipherdir, menunjuk ke tempat redis_shared.key dan root.key terletak Laluan penuh folder
Contohnya: redis-cli -h 127.0.0.1 -cipherdir /opt/redis/etc/cipher -a sessionrdb@dbuser@Changeme_123 -p 32091
➤redis client End SDK: jedis*.jar
Dalam proses yang sama, antara muka Jedis ialah rentetan, dbname@user@pwd, kerana antara muka pihak ketiga (serupa dengan Jdbc) tidak boleh disulitkan.
3. Penghantaran kata laluan (penting)
Isu keselamatan: Native Redis boleh mendapatkan maklumat bahagian pelayan yang sensitif melalui arahan dapatkan konfigurasi.
Penyelesaian: Dilarang menghantar maklumat sensitif seperti kata laluan kepada klien, jadi fungsi seperti config get requirepas/masterauth/requireuserpass perlu dilumpuhkan.
4. Pengubahsuaian kata laluan (penting)
Isu keselamatan: Ubah suai kata laluan penghantaran teks biasa: set konfigurasi masterauth pwd
Penyelesaian: Memori Redis menyimpan masalah kata laluan teks biasa: masterauth menggunakan Penyulitan AES128, kata laluan disimpan dalam AES128
Keselamatan kata laluan
1 Produk mendayakan fungsi semakan kerumitan kata laluan pangkalan data secara lalai
Isu keselamatan : Redis menukar kata laluan Tiada semakan kerumitan.
Penyelesaian: Sediakan alat pengubahsuaian Redis yang berasingan untuk menukar kata laluan, beri perhatian khusus kepada perkara berikut:
1. Lakukan semakan kerumitan kata laluan.
2. Apabila memasukkan nama pengguna atau kata laluan yang salah, tiada gesaan sebab yang terlalu jelas seperti "Kata Laluan salah" atau "Nama pengguna tidak wujud" akan muncul untuk menghalang penyerang daripada meneka nama pengguna/kata laluan sistem.
3. Untuk menukar kata laluan, sahkan kata laluan lama.
4. Kata laluan pangkalan data tidak boleh sama dengan nama pengguna.
5. Sembunyikan kata laluan apabila menukar kata laluan secara interaktif.
6. Adalah disyorkan dalam dokumentasi untuk menukar kata laluan secara interaktif.
2. Untuk mengelakkan peretasan kekerasan, konfigurasikan bilangan percubaan log masuk akaun yang gagal
Isu keselamatan: Versi asli Redis mempunyai peretasan kekerasan.
Penyelesaian: Bilangan maksimum kegagalan: maxauthfailtimes (unit masa, julat sah (0, 100,000], nilai lalai 10,000)
Tetapan ini hanya boleh ditetapkan melalui fail redis.conf semasa permulaan Konfigurasi tidak boleh dicapai melalui pengubahsuaian dinamik Operasi set konfigurasi yang sepadan dilumpuhkan
tidak menyokong tetapan kepada 0: bermakna tiada IP akan dikunci
3 akaun dikunci.
Masa kunci kegagalan pengesahan: masa authfaillock (unit: minit, julat sah [0~999], nilai lalai 10)
Apabila ditetapkan kepada 0, ini bermakna penguncian kekal. Nota: Item konfigurasi ini hanya menyokong konfigurasi redis.conf pada permulaan dan tidak menyokong pengubahsuaian dinamik Set konfigurasi yang sepadan disekat
4 Periksa IP yang dikunci
Masalah: Anda perlu semak IP selepas ia dikunci.
Penyelesaian:
Hanya pentadbir boleh melihat senarai IP yang dikunci Pemisah ialah titik bertindih bahasa Inggeris (:)
Contoh 1: konfigurasi dapatkan lockedip Pulangan: 10.67.147.111;10.67.147.112;
Contoh 2: konfigurasi dapatkan lockedips
Pulangan: 10.67.147.111;
Nota: config tidak dikunci, ralat dikunci dikembalikan: ERR Unsupported CONFIG parameter : lockedips
5 Membuka kunci IP yang dikunci secara manual
Hanya pentadbir boleh melaksanakan arahan untuk membuka kunci IP yang dikunci dan hanya menyokong membuka kunci IP tunggal atau membuka kunci semua IP Penyelesaian:
Contoh 1, buka kunci IP tunggal: set konfigurasi buka kunci 10.67.147.111
Contoh 2, buka kunci semua IP: tetapkan konfigurasi buka kunci “semua”
Jika tiada pengecualian dalam IP dalam parameter, kegagalan membuka kunci akan dikembalikan, contohnya:
(ralat) ERR Argumen '10.67.147.111' tidak sah untuk SET CONFIG 'unlockips'
Lakukan buka kunci manual dan jejak rekod, contohnya:
Contohnya: 26 Dis 03:15:19.958 * 10.67.147.11.13 147.111:59417 Log audit
6. Pengauditan Keselamatan
Penyelesaian: Jalankan proses tracemonitor (versi python) secara berasingan, dan uruskan saiz fail log Redis secara kerap, terutamanya pemampatan log dan pemadaman biasa, untuk mengelakkan menggunakan terlalu banyak cakera.
Nota: Platform semasa lalai kepada pengesanan setiap 60 saat, log boleh dimampatkan kepada 20M, dan bilangan maksimum log ialah 50.
Atas ialah kandungan terperinci Apakah langkah pengukuhan untuk pangkalan data cache Redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!