하드코딩된 암호화 키

하드코딩된 암호화 키

설명

암호화 키를 소스 코드 상수나 문자열 인자로 저장하면 키 회전과 비밀 관리가 어렵고 코드 유출 시 암호 보호가 무력화됩니다.

잠재적 영향

저장 데이터 복호화, 토큰 위조, 메시지 변조가 가능합니다.

해결 방법

키는 KMS 또는 Secret Manager에서 로드하고, 환경별로 분리하며 주기적으로 회전합니다.

예시

변경 전

php
<?php
// 클래스 내부 멤버 예시
private const ENCRYPTION_KEY = "Paintbrush";

변경 후

php
<?php
$key = getenv('ENCRYPTION_KEY');

설명:

  • 변경 전: 암호화 키가 소스 코드에 직접 저장되어 있습니다.
  • 변경 후: 배포 환경이 공급한 키를 환경 변수에서 읽습니다. 키가 없거나 형식이 잘못되면 처리를 중단하고, 환경 변수와 공급 경로의 접근 권한도 제한해야 합니다.

참조