취약한 암호화 알고리즘 사용

Use of a Broken or Risky Cryptographic Algorithm

설명

취약하거나 위험한 암호화 알고리즘(Use of a Broken or Risky Cryptographic Algorithm)은 알려진 취약점이 있는 암호화 알고리즘을 사용하는 경우 발생하는 취약성입니다. 이는 공격자가 암호화된 데이터를 쉽게 해독하거나 무결성을 손상시킬 수 있는 위험을 초래합니다.

잠재적 영향

  • 데이터 유출: 공격자가 암호화된 데이터를 해독하여 민감한 정보에 접근할 수 있습니다.

  • 데이터 변조: 무결성이 손상되어 데이터가 변조될 수 있습니다.

  • 인증 우회: 암호화된 인증 정보가 해독되어 인증 메커니즘이 우회될 수 있습니다.

해결 방법

  • 강력한 암호화 알고리즘 사용: 최신의 강력한 암호화 알고리즘(AES, RSA 등)을 사용합니다.

  • 알고리즘 업데이트: 사용 중인 암호화 알고리즘이 안전하지 않은 경우 최신 알고리즘으로 업데이트합니다.

  • 보안 지침 준수: OWASP, NIST 등의 최신 보안 지침을 따릅니다.

취약한 코드 및 안전한 코드 예시

취약한 코드

# Unsafe DES encryption
from Crypto.Cipher import DES

key = b'8bytekey'  # 56비트 DES 키
cipher = DES.new(key, DES.MODE_ECB)
plaintext = b'This is a secret message.'
ciphertext = cipher.encrypt(plaintext)

안전한 코드

설명:

  • 취약한 코드: DES는 56비트 키를 사용하여 암호화 강도가 매우 낮고, 현대의 공격에 쉽게 해독될 수 있습니다.

  • 안전한 코드: AES는 256비트 키를 사용하여 강력한 암호화 강도를 제공합니다.

참조

Last updated