암호화 키(또는 키 쌍)를 생성할 때는 강력한 매개변수를 사용하는 것이 중요합니다. 예를 들어 키 길이는 무차별 암호 대입 공격에 대해 충분한 엔트로피를 제공해야 합니다.
- RSA 및 DSA 알고리즘의 경우 키 크기는 2048비트 이상이어야 합니다.
- ECC(타원 곡선 암호화) 알고리즘의 경우 키 크기는 224비트 이상이어야 합니다.
- RSA 공개 키의 경우 공개 키 지수는 65537 이상이어야 합니다.
이 규칙은 약한 매개변수를 사용하여 RSA, DSA 또는 ECC 키 쌍 생성기를 초기화할 때 문제가 발생합니다.
다음 라이브러리를 지원합니다:
규칙을 어긴 코드
from cryptography.hazmat.primitives.asymmetric import rsa, ec, dsa
dsa.generate_private_key(key_size=1024, backend=backend) # 규칙을 어긴 코드
rsa.generate_private_key(public_exponent=999, key_size=2048, backend=backend) # 규칙을 어긴 코드
ec.generate_private_key(curve=ec.SECT163R2, backend=backend) # 규칙을 어긴 코드
규칙을 준수한 해결책
from cryptography.hazmat.primitives.asymmetric import rsa, ec, dsa
dsa.generate_private_key(key_size=2048, backend=backend) # 규칙을 준수한 코드
rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=backend) # 규칙을 준수한 코드
ec.generate_private_key(curve=ec.SECT409R1, backend=backend) # 규칙을 준수한 코드
같이보면 좋은 자료드
- OWASP Top 10 2021 Category A2 - 암호화 실패
- OWASP Top 10 2017 Category A3 - 민감한 데이터 노출
- OWASP Top 10 2017 Category A6 - 보안 구성 오류
- ANSSI RGSv2 - 국제 보안 표준 버전 2
- NIST FIPS 186-4 - 디지털 서명 표준(DSS)
-
MITRE, CWE-326 - 부적절한 암호화 강도
If you like SONARKUBE, don’t forget to give me a star.