Inspection du code - Cas d'utilisation : sécuriser le chiffrement

Garantir la sécurité du chiffrement est essentiel pour protéger les données sensibles. Ce guide montre comment l'inspection du code avec Visual Expert aide les développeurs à identifier et à corriger les vulnérabilités de chiffrement avant qu'elles ne soient mises en production.

Meilleures Pratiques pour un Chiffrement Sécurisé

1. Utiliser des Algorithmes de Chiffrement Solides

  • Utilisez des algorithmes bien établis et sécurisés comme AES (Advanced Encryption Standard) avec une clé de 256 bits.
  • Évitez les algorithmes obsolètes ou faibles tels que DES ou SHA-1.

2. Sécuriser les Clés de Chiffrement

  • Stockez les clés de chiffrement en toute sécurité et limitez leur accès uniquement au personnel autorisé.
  • Utilisez des Modules de Sécurité Matériels (HSMs) ou des services de gestion des clés pour éviter le vol ou l'accès non autorisé.

Chiffrement AES en Mode Sécurisé dans PowerBuilder

La règle de code PowerBuilder "Toujours utiliser l'algorithme de chiffrement AES en mode sécurisé" stipule que les développeurs doivent utiliser AES pour toutes les opérations de chiffrement. AES est un algorithme de chiffrement symétrique parmi les plus robustes et fiables.

Lors de l'implémentation d'AES, utilisez toujours un mode sécurisé comme :

  • Chaining de Blocs Chiffrés (CBC)
  • Mode Compteur/Galois (GCM)

Avantages Clés du Chiffrement AES

✔ Sécurisé – Chiffrement robuste difficile à briser.
✔ Fiable – Protection des données à long terme.
✔ Flexible – Compatible avec divers types de données.
✔ Efficace – Chiffre rapidement de grands ensembles de données.

Code Conforme vs. Non Conforme

Code Non Conforme

Le code qui ne respecte pas les standards de codage établis, les bonnes pratiques ou les règles de sécurité. Il peut inclure :

  • Violations des conventions de codage, principes architecturaux, politiques de sécurité ou réglementations de l'industrie.
  • Erreurs et inefficacités impactant la performance et la fiabilité.
  • Vulnérabilités de sécurité exposant le logiciel à des menaces potentielles.
  • Risques de conformité pouvant entraîner des problèmes réglementaires.

Exemple de Code Non Conforme

loo_Crypt = create oleobject
loo_Crypt.CryptAlgorithm = "aes"
loo_Crypt.CipherMode = "ecb" // ecb is not compliance
           
Blob lblb_data
Blob lblb_key
Blob lblb_iv
Blob lblb_encrypt

lblb_data = Blob("Test DES", EncodingANSI!)
lblb_key = Blob("Test Key12345678", EncodingANSI!)
lblb_iv = Blob("Test IV 12345678", EncodingANSI!)

CrypterObject lnv_CrypterObject
lnv_CrypterObject = Create CrypterObject

lblb_encrypt = lnv_CrypterObject.SymmetricEncrypt(AES!, lblb_data, lblb_key, &OperationModeECB!, lblb_iv, PKCSPadding!) // OperationModeECB! is not compliance
           

Code Conforme

Le code qui suit les standards de codage établis, les bonnes pratiques et les recommandations de sécurité garantit :

  • Respect des conventions de codage, principes architecturaux, politiques de sécurité et réglementations de l'industrie.
  • Code bien structuré et lisible pour une meilleure compréhension.
  • Maintenabilité et évolutivité assurant la stabilité à long terme du logiciel.
  • Sécurité et fiabilité minimisant les vulnérabilités.
  • Fonctionnalité correcte répondant aux standards de qualité.

Exemple de Code Conforme

loo_Crypt = create oleobject
loo_Crypt.CryptAlgorithm = "aes"
loo_Crypt.CipherMode = "cbc" // cbc is compliant
loo_Crypt = create oleobject
loo_Crypt.CryptAlgorithm = "aes"
loo_Crypt.CipherMode = "ctr" // ctr is compliant
Blob lblb_data
Blob lblb_key
Blob lblb_iv
Blob lblb_encrypt

lblb_data = Blob("Test DES", EncodingANSI!)
lblb_key = Blob("Test Key12345678", EncodingANSI!)
lblb_iv = Blob("Test IV 12345678", EncodingANSI!)

CrypterObject lnv_CrypterObject
lnv_CrypterObject = Create CrypterObject

lblb_encrypt = lnv_CrypterObject.SymmetricEncrypt(AES!, lblb_data, lblb_key, &OperationModeCFB!, lblb_iv, PKCSPadding!) // OperationModeCFB! is compliant

Plus de Cas d'Utilisation pour PowerBuilder

Visual Expert, Revue de Code, Règles de Code PowerBuilder, Sécurisation des Chiffrements, Cas d'Utilisation