Protection des données sensibles et du cryptage
1. Enregistrement du mot de passe (important)
Problème de sécurité : les mots de passe natifs du serveur Redis requirepass et masterauth sont enregistrés en texte clair dans redis.conf.
Solution : cryptez le mot de passe du serveur à l'aide de PBKDF2 et enregistrez-le sur redis.conf.
Compte tenu des problèmes de performances, il serait plus long d'utiliser PBKDF2 pour chaque authentification. Après examen, une fois la première authentification réussie, la mémoire sera mise en cache avec SHA256 et les requêtes suivantes seront d'abord vérifiées à l'aide de SHA256.
2. Remplacement de la clé de support (important)
Problèmes de sécurité : les clés secrètes impliquées dans le cryptage et le déchiffrement ne peuvent pas être codées en dur dans le code.
Solution : la clé secrète prend en charge le remplacement régulier.
➤redis server redis-server :
Le fichier de configuration ajoute un élément de configuration : cipher-dir
Configurez le chemin complet du dossier où se trouvent redis_shared.key et root.key, par exemple : cipher-dir /opt/ redis/ etc/cipher
➤Client redis : redis-cli
Ajoutez le paramètre -cipherdir, pointant vers le chemin complet du dossier où se trouvent redis_shared.key et root.key
Par exemple : redis-cli -h 127.0 .0.1 -cipherdir / opt/redis/etc/cipher -a sessionrdb@dbuser@Changeme_123 -p 32091
➤SDK client redis : jedis*.jar
Dans le même processus, l'interface Jedis est une chaîne, dbname@user@ pwd, car l'interface tierce (similaire à Jdbc) ne peut pas être chiffrée.
3. Transmission du mot de passe (important)
Problème de sécurité : Native Redis peut obtenir des informations sensibles côté serveur via la commande config get.
Solution : Il est interdit de transmettre des informations sensibles telles que des mots de passe au client, les fonctions telles que config get requirepas/masterauth/requireuserpass doivent donc être désactivées.
4. Modification du mot de passe (important)
Problème de sécurité : modifier la transmission du mot de passe en texte brut : configuration définie masterauth pwd
Solution : la mémoire Redis enregistre le problème du mot de passe en texte brut : masterauth utilise le cryptage AES128 et le mot de passe est enregistré en AES128
Sécurité du mot de passe
1. Le produit active la fonction de vérification de la complexité du mot de passe de la base de données par défaut
Problème de sécurité : il n'y a pas de vérification de la complexité pour la modification du mot de passe Redis.
Solution : fournissez un outil de modification Redis distinct pour changer le mot de passe, portez une attention particulière aux points suivants :
1. Effectuez une vérification de la complexité du mot de passe.
2. Lorsque vous saisissez un nom d'utilisateur ou un mot de passe incorrect, aucune invite de raison trop claire telle que « Le mot de passe est erroné » ou « Le nom d'utilisateur n'existe pas » ne doit apparaître pour empêcher les attaquants de deviner le nom d'utilisateur/mot de passe du système.
3. Pour modifier le mot de passe, vérifiez l'ancien mot de passe.
4. Le mot de passe de la base de données ne peut pas être le même que le nom d'utilisateur.
5. Masquez le mot de passe lorsque vous modifiez le mot de passe de manière interactive.
6. Il est recommandé dans la documentation de changer le mot de passe de manière interactive.
2. Pour éviter le craquage par force brute, configurez le nombre de tentatives de connexion au compte ayant échoué.
Problème de sécurité : la version native de Redis subit un craquage par force brute.
Solution : Nombre maximum d'échecs : maxauthfailtimes (temps unitaires, plage valide (0, 100 000], valeur par défaut 10 000)
Ce paramètre ne peut être configuré que via le fichier redis.conf au démarrage et ne peut pas être obtenu par modification dynamique, l'opération de jeu de configuration correspondante est désactivée.
Ne prend pas en charge le réglage sur 0 : signifie qu'aucune adresse IP ne sera verrouillée
3. Configurez le temps de déverrouillage automatique après le verrouillage du compte
Temps de verrouillage en cas d'échec d'authentification : temps de verrouillage d'authentification (unité minutes, plage valide [0 ~ 999], valeur par défaut 10)
Lorsqu'il est défini sur 0, cela signifie un verrouillage permanent
Remarque : cet élément de configuration ne prend en charge que la configuration redis.conf au démarrage et ne prend pas en charge la modification dynamique de l'ensemble de configuration correspondant. est bloqué. 4. Afficher l'adresse IP verrouillée
Problème : Une fois l'adresse IP verrouillée, vous devez afficher l'adresse IP verrouillée
Solution :
Seul l'administrateur peut afficher la liste des adresses IP verrouillées, le séparateur est un deux-points anglais (. :)
Exemple 1 : config get.lockedips Renvoie : 10.67.147.111;10.67.147.112;
Exemple 2 : config get lockips
Renvoie : 10.67.147.111;
Remarque : le jeu de configuration lockips n'est pas pris en charge. Si forcé, une erreur. est renvoyé : ERR Paramètre de CONFIG non pris en charge : verrouilléips
5. Déverrouillage manuel des IP
Seuls les administrateurs peuvent exécuter des commandes pour déverrouiller les IP verrouillées. Seul le déverrouillage d'une seule IP ou le déverrouillage de toutes les IP est pris en charge. Solution :
Exemple 1, le déverrouillage d'une. IP unique : config set unlockips 10.67.147.111
Exemple 2. Déverrouiller toutes les IP : config set unlockips « all »
S'il n'y a pas d'exception dans l'IP dans le paramètre, un échec de déverrouillage sera renvoyé, par exemple :
(erreur) ERR Argument invalide '10.67.147.111' pour CONFIG SET 'unlockips'
Effectuer un déverrouillage manuel et enregistrez la trace, par exemple :
Par exemple : 26 décembre 03:15:19.958 * 10.67.147.113 déverrouillé par 10.67.147.111:59417 Audit du journal
6 Audit de sécurité
Solution : Exécutez le processus tracemonitor (version python) séparément et gérez régulièrement la taille du fichier journal Redis, principalement la compression des journaux et la suppression régulière, pour éviter d'utiliser trop de disque.
Remarque : La plate-forme actuelle effectue par défaut une détection toutes les 60 secondes, les journaux peuvent être compressés à 20 Mo et le nombre maximum de journaux est de 50.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!