티스토리 뷰
가. 원인
- 암호키가 소스코드에 하드코딩되어 암호화에 사용
나. 영향
- 실행파일이 유출 시, 디컴파일을 통해 암호화키가 유출되어 중요정보를 복호화
다. 보안대책
- 암호키는 암호화하여 안전한 별도의 위치에 저장 후 사용
라. 안전한 코드
1. 안전한 암호키 사용
public String encryptData( String plainText ) { String key = getPassword( "/var/password.ini" ); key = decrypt( key ); SecretKeySpec keySpec = new SecretKeySpec( key.getBytes(), "AES" ); ... Cipher cipher = Cipher.getInstance( "AES" ); cipher.init( Cipher.ENCRYPT_MODE, keySpec ); byte[] encryptData = cipher.doFinal( plainText.getBytes( "UTF-8" ) ); String result = new String( encryptData ); return result; }
|
마. 진단방법
<암호화 키 사용방법 확인>
1. DB접속 등 패스워드 사용이 필요한 기능을 확인
2. 사용된 패스워드의 암호화 적용여부를 확인
3. 암호화 된 패스워드가 소스코드에 저장되어 있는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 암호화 키를 소스코드에 하드코딩으로 사용하는 경우
<오탐 케이스>
1. 별도의 함수 등으로 암호키를 가져올 경우
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 보안기능 12 - 사용자 하드디스크에 저장되는 쿠키를 통한 정보노출 (0) | 2019.10.06 |
---|---|
[구현보안] 보안기능 11 - 취약한 비밀번호 허용 (0) | 2019.10.06 |
[구현보안] 보안기능 09 - 적절하지 않은 난수값 사용 (0) | 2019.10.06 |
[구현보안] 보안기능 08 - 충분하지 않은 키 길이 사용 (0) | 2019.10.06 |
[구현보안] 보안기능 07 - 하드코드된 비밀번호 (0) | 2019.10.06 |
- Total
- Today
- Yesterday