본문 바로가기
about Security/SECURE CODING

[보안 기능] 취약한 암호화 알고리즘 사용 (4등급)

by saniii 2021. 8. 7.
0. 개요 

 

SW 개발자들은 환결설정 파일에 저장된 패스위드를 보호하기 위해 간단한 인코딩 함수를 이용하기도 한다.

하지만 base64와 같은 지나치게 간단한 인코딩 함수로는 패스위드를 제대로 보호할 수 없다.

 

정보보호 측면에서 취약하거나 위험한 암호화 알고리즘을 사용해서는 안된다.

표준화되지 않은 암호화 알고리즘을 사용하는 것은 공격자가 알고리즘을 분석하여 무력화시킬 수 있는 가능성을 높인다.

또한 몇가지의 오래된 암호화 알고리즘은 컴퓨터의 성능이 상향되어 취약해져, 몇일, 몇시간내에 해독될 수 있다.

취약한 알고리즘 : RC2, RC4, RC5, RC6, MD4, MD5, SHA1, DES ...

 

 

 

1. 보안 대책

 

- 자신만의 암호화 알고리즘을 개발하는 것은 위험하다.

   : 학계 및 업계에서 이미 검증된 표준화된 알고리즘을 사용하자.

 

- 기존에 취약하다고 알려짐 암호알고리즘을 대신해 안전한 암호알고리즘으로 대체하여 사용한다.

   : 취약한 보안 알고리즘 >> DES, RC5, ....

     안전한 보안 알고리즘 >> AES, 3DES, SEED, ....

 

- 업무관련 내용, 개인정보 드에 대한 암호 알고리즘 적용 시, 

  IT보안인증 사무국이 안전성을 확인한 검증필 암호모듈을 사용한다.

암호이용안내서 / 한국인터넷진흥원

 

- 복호화되지 않는 암호화를 수행할 경우 (ex: 해시함수, ... ) 안전한 해시 알고리즘과 솔트값을 적용하여 암호화하도록 한다.   

 

 

 

2. 진단 방법

 

 - 취약한 암호화 알고리즘을 사용하는지 확인한다.

 

 

 

3. 코드 예시

 

# 1  -  취약한 암호화 알고리즘 사용 - 안전하지 않은 코드 예시(JAVA)

소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원

위의 코드는 취약한 알고리즘으로 알려진 DES 알고리즘으로 암호화하고 있어 

공격자가 데이터 패킷을 탈취하여 해독할 수 있다.

따라서 안전하다고 검증받은 암호화 알고리즘으로 변경하도록 하자.

 

# 1  +  취약한 암호화 알고리즘 사용 - 안전한 코드 예시(JAVA)

소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원

 

 

 

 

4. 해당 취약점 CASE

 

- DES, RC5, MD5 등 취약한 암호화 알고리즘을 사용하고 있는 경우

 

-  base64등의 인코딩으로 중요 정보를 처리하는 경우

 

 

 

 

댓글