0. 개요
SW 개발자들은 환결설정 파일에 저장된 패스위드를 보호하기 위해 간단한 인코딩 함수를 이용하기도 한다.
하지만 base64와 같은 지나치게 간단한 인코딩 함수로는 패스위드를 제대로 보호할 수 없다.
정보보호 측면에서 취약하거나 위험한 암호화 알고리즘을 사용해서는 안된다.
표준화되지 않은 암호화 알고리즘을 사용하는 것은 공격자가 알고리즘을 분석하여 무력화시킬 수 있는 가능성을 높인다.
또한 몇가지의 오래된 암호화 알고리즘은 컴퓨터의 성능이 상향되어 취약해져, 몇일, 몇시간내에 해독될 수 있다.
취약한 알고리즘 : RC2, RC4, RC5, RC6, MD4, MD5, SHA1, DES ...
1. 보안 대책
- 자신만의 암호화 알고리즘을 개발하는 것은 위험하다.
: 학계 및 업계에서 이미 검증된 표준화된 알고리즘을 사용하자.
- 기존에 취약하다고 알려짐 암호알고리즘을 대신해 안전한 암호알고리즘으로 대체하여 사용한다.
: 취약한 보안 알고리즘 >> DES, RC5, ....
안전한 보안 알고리즘 >> AES, 3DES, SEED, ....
- 업무관련 내용, 개인정보 드에 대한 암호 알고리즘 적용 시,
IT보안인증 사무국이 안전성을 확인한 검증필 암호모듈을 사용한다.
- 복호화되지 않는 암호화를 수행할 경우 (ex: 해시함수, ... ) 안전한 해시 알고리즘과 솔트값을 적용하여 암호화하도록 한다.
2. 진단 방법
- 취약한 암호화 알고리즘을 사용하는지 확인한다.
3. 코드 예시
# 1 - 취약한 암호화 알고리즘 사용 - 안전하지 않은 코드 예시(JAVA)
위의 코드는 취약한 알고리즘으로 알려진 DES 알고리즘으로 암호화하고 있어
공격자가 데이터 패킷을 탈취하여 해독할 수 있다.
따라서 안전하다고 검증받은 암호화 알고리즘으로 변경하도록 하자.
# 1 + 취약한 암호화 알고리즘 사용 - 안전한 코드 예시(JAVA)
4. 해당 취약점 CASE
- DES, RC5, MD5 등 취약한 암호화 알고리즘을 사용하고 있는 경우
- base64등의 인코딩으로 중요 정보를 처리하는 경우
'about Security > SECURE CODING' 카테고리의 다른 글
[코드오류] NULL Pointer 역참조 (5등급) (0) | 2021.08.10 |
---|---|
[에러 처리] 오류 상황 대응 부재 (4등급) (0) | 2021.08.07 |
[입력 데이터 검증 및 표현] 정수형 오버플로우 (4등급) (0) | 2021.08.07 |
[입력 데이터 검증 및 표현] 위험한 형식 파일 업로드 (3등급) (0) | 2021.08.07 |
[입력 데이터 검증 및 표현] HTTP 응답분할 (3등급) (0) | 2021.08.07 |
댓글