Maison  >  Article  >  Opération et maintenance  >  Comment éviter un cryptage faible en langage C

Comment éviter un cryptage faible en langage C

PHPz
PHPzavant
2023-05-16 08:19:121599parcourir

1. Cryptage faible

Le cryptage fait référence à l'utilisation d'un algorithme spécial pour modifier les données d'information d'origine, afin que les utilisateurs non autorisés puissent obtenir les informations cryptées. mais comme nous ne savons pas comment le décrypter, nous ne pouvons toujours pas comprendre le contenu de l'information. Les algorithmes de chiffrement courants peuvent être principalement divisés en : chiffrement symétrique, chiffrement asymétrique et chiffrement unidirectionnel. Différents algorithmes de chiffrement sont utilisés dans différents scénarios. Choisissez l'algorithme approprié en fonction des caractéristiques de l'algorithme de chiffrement, telles que la vitesse de calcul, la sécurité et les méthodes de gestion des clés. Cependant, la sécurité est un indicateur important pour mesurer la qualité de l'algorithme de chiffrement. Un cryptage facilement craqué Les algorithmes sont appelés algorithmes de cryptage faibles, comme l'algorithme DES qui peut être craqué dans un temps limité à l'aide de méthodes exhaustives. Cet article prend comme exemple le code source du langage JAVA pour analyser les causes d'un cryptage faible et comment le réparer. 2. Les dangers d’une perte de cryptage faible. De janvier 2018 à avril 2019, il y avait au total 2 informations de vulnérabilité associées dans CVE. Les informations sur la vulnérabilité sont les suivantes : 🎜#Présentation de la vulnérabilité

CVE-2018-9028

Des mots de passe faibles sont utilisés lors de la transmission dans CA Privileged Le chiffrement AccessManager 2.x réduit la complexité du piratage des mots de passe. CVE-2018-6619 dans Easy Hosting Control Panel (EHCP) v0.37.12.b en exploitant un algorithme de cryptage faible sans sel , ce qui permet aux attaquants de déchiffrer plus facilement les mots de passe des bases de données. 3. Exemple de code 3.1 Code de défautL'exemple d'opération de code ci-dessus consiste à lire le contenu dans la requête Et cryptez-la, et obtenez l'instance de lecture du fichier de configuration à la ligne 49. La clé générée à l'aide de l'algorithme DES est courte, seulement 56 bits, et la vitesse de fonctionnement est lente. De plus, l'algorithme DES s'appuie entièrement sur la clé et est vulnérable aux attaques de recherche exhaustive.
L'exemple de code utilisé ci-dessous provient de Benchmark (https : //www.owasp.org/index.php/Benchmark), nom du fichier source : BenchmarkTest00019.java.
Utilisez Code Guard pour détecter l'exemple de code ci-dessus. Vous pouvez détecter le défaut de « cryptage faible » et le niveau d'affichage est moyen. Signalez le défaut à la ligne 57 du code, comme indiqué dans la figure 1 :

Figure 1 : Exemple de détection de cryptage faible

#🎜 🎜 #

3.2 Code de réparation

Comment éviter un cryptage faible en langage C

Dans le code de réparation ci-dessus, la ligne 58 utilise l'algorithme AES au lieu de l'algorithme DES, AES It peut générer des clés d'au moins 128 bits et jusqu'à 256 bits, avec une vitesse de fonctionnement rapide et une faible utilisation de la mémoire.

benchmarkprops。在第50行加载配置文件,在第52行~53行读取配置文件中的属性 cryptoAlg1,若无此属性默认使用 DESede/ECB/PKCS5Paddingalgorithm 赋值。第54行将使用 algorithm 作为加密算法构造加密对象c。接下来准备加密的密码。第57~58行实例化了一个DES加密算法的密钥生成器。第59行指定加密对象 c 的操作模式为加密,其中 key 为密钥。第62行~76行对将请求中的输入流转换为字节数组input,在第77行进行对 input 进行加密,加密结果是字节数组 resultUtilisez Code Guard pour détecter le code réparé, et vous pourrez voir que le défaut de « cryptage faible » n'existe plus. Comme le montre la figure 2 :

Comment éviter un cryptage faible en langage C

Figure 2 : Résultats de détection après réparation

4 .Comment Éviter un cryptage faible

Dans les systèmes ayant des exigences de sécurité élevées, il est recommandé d'utiliser des algorithmes de cryptage sécurisés (tels que AES, RSA) pour crypter les données sensibles.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer