V6.2.2 Algorithms
Requirement:#
Verify that industry proven or government approved cryptographic algorithms, modes, and libraries are used, instead of custom coded cryptography. (C8)
Explanation:#
ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΊΡΠ΅ΠΌΠ±Π»ΠΈΡΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π΅Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°ΡΠΊΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠ°Π΄ΡΠΆΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡhttps://owasp.deteact.com/cheat/cheatsheets/Cryptographic_Storage_Cheat_Sheet.htmlΠΠ±ΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π΄Π»ΠΈΠ½Π΅ ΠΊΠ»ΡΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΡKey exchange: DiffieβHellman key exchange with minimum 2048 bitsMessage Integrity: HMAC-SHA2Message Hash: SHA2 256 bitsAsymmetric encryption: RSA 2048 bitsSymmetric encryption: AES 128 bitsPassword Hashing: Argon2, PBKDF2, Scrypt, Bcrypt
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»Π°ΡΠΈΡ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΡΡΠΎΠΌΠ½Π°Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ - ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΡ Π·Π½Π°Π½ΠΈΠΉ, ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΡΡΠ΄Π½ΠΎ Π΄ΠΎΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΎΠ²Π½Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΡΡΠ°ΡΠ»ΡΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ².
Remediation:#
1.Β Choose Industry-Proven Algorithms and Modes#
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠ·Π½Π°Π½Ρ ΠΈ ΠΏΡΠΈΠ½ΡΡΡ Π² ΠΎΡΡΠ°ΡΠ»ΠΈ. ΠΠ±ΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Advanced Encryption Standard (AES) Π΄Π»Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Secure Hash Algorithm (SHA) Π΄Π»Ρ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Rivest-Shamir-Adleman (RSA) Π΄Π»Ρ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·, Π²ΡΠ΄Π΅ΡΠΆΠ°Π»ΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡΠΈΠ΅ ΡΠ΅Π±Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
2. Refer to Government-Approved Standards#
ΠΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²Π° ΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡΠΈΠ΅ ΠΎΡΠ³Π°Π½Ρ ΡΠ°ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (FIPS) Π² Π‘Π¨Π ΠΈΠ»ΠΈ Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ eIDAS ΠΠ²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΠ·Π°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΠ΅ΠΆΠΈΠΌΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΎΡΠ³Π°Π½Π°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ.
3. Utilize Reputable Cryptographic Libraries#
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Ρ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ²Π»ΡΡΡΡΡ OpenSSL, Bouncy Castle, Libsodium ΠΈΠ»ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ .NET Cryptography API ΠΈΠ»ΠΈ Java Cryptography Architecture.