반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원
기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥
www.kisa.or.kr
구현 단계 시큐어코딩 가이드 - 보안 기능 - 하드코드 된 암호화 키
가. 개요
- 코드 내부에 하드코드 된 암호화 키를 사용하여 암호화를 수행하면 암호화된 정보가 유출될 가능성이 높아진다.
- 많은 SW 개발자들이 코드 내부의 고정된 암호키의 해시를 계산하여 저장하면 암호키를 악의적인 공격자로부터 보호할 수 있다고 믿고 있다. 그러나 많은 해시 함수들이 역계산이 가능하며, 적어도 무차별 대입(Brute-Force) 공격에는 취약하다는 것을 고려해야만 한다.
나. 보안대책
- 암호화 수행 시, 상수가 아닌 암호화 키를 사용하도록 설계해야 한다. 또한, 암호화되었더라도 소스 코드 내부에 상수 형태의 암호화 키를 저장하여 사용해서는 안된다
다. 코드예제
JAVA
더보기
![](https://blog.kakaocdn.net/dn/vdrBv/btqFRB6R0QB/ikyQuFMquwApGSY6WcviRK/img.png)
![](https://blog.kakaocdn.net/dn/bpu5E9/btqFPrkjepY/DcYbfhADBQv9uh0TD5Ft2k/img.png)
소스 코드 내부에 암호화 키를 상수 형태로 하드코딩하여 사용하면 악의적인 공격자에게 암호화 키가 노출될 위협이 있다.
![](https://blog.kakaocdn.net/dn/vdrBv/btqFRB6R0QB/ikyQuFMquwApGSY6WcviRK/img.png)
암호화 과정에 사용하는 암호화 키는 외부 공간(파일)에 안전한 방식으로 암호화하여 보관해야 하며, 암호화된 암호화 키는 복호화하여 사용한다.
![](https://blog.kakaocdn.net/dn/bpu5E9/btqFPrkjepY/DcYbfhADBQv9uh0TD5Ft2k/img.png)
C#
더보기
![](https://blog.kakaocdn.net/dn/c5ZO2O/btqFOi9rA6Z/AzLD7Krmtn65lAAaIdK7UK/img.png)
![](https://blog.kakaocdn.net/dn/dtQWS2/btqFQaCo2gx/cnQNKLxrWXczOX8wPzV7P1/img.png)
소스 코드 내부에 암호화 키를 상수 형태로 하드코딩하여 사용하면 악의적인 공격자에게 암호화 키가 노출될 위협이 있다.
![](https://blog.kakaocdn.net/dn/c5ZO2O/btqFOi9rA6Z/AzLD7Krmtn65lAAaIdK7UK/img.png)
암호화 과정에 사용하는 암호화 키는 외부 공간(파일)에 안전한 방식으로 암호화하여 보관해야 하며, 암호화된 암호화 키는 복호화하여 사용한다.
![](https://blog.kakaocdn.net/dn/dtQWS2/btqFQaCo2gx/cnQNKLxrWXczOX8wPzV7P1/img.png)
C
더보기
![](https://blog.kakaocdn.net/dn/HwOAe/btqFQLIUWhe/DlKgvxZygU6AqRakl6gHwk/img.png)
![](https://blog.kakaocdn.net/dn/FlDFi/btqFQyiGQ08/N8j9GnuEwFHkk0avCyN2P1/img.png)
하드코드 된 비밀번호를 사용할 경우, 코드에 접근 권한이 있는 사용자가 비밀 번호를 알 수 있습니다.
![](https://blog.kakaocdn.net/dn/HwOAe/btqFQLIUWhe/DlKgvxZygU6AqRakl6gHwk/img.png)
암호화되어 저장된 암호를 외부에서 불러오고 이를 비교하는 코드가 작성되어야 한다.
![](https://blog.kakaocdn.net/dn/FlDFi/btqFQyiGQ08/N8j9GnuEwFHkk0avCyN2P1/img.png)
참고자료
- CWE-321 Use of Hard-coded Cryptographic Key, MITRE,
http://cwe.mitre.org/data/definitions/321.html - Be careful while handling sensitive data, such as passwords, in program code, CERT,
http://www.securecoding.cert.org/confluence/display/c/MSC18-C.+Be+careful+while+handling+sensitive+data,+such+as+passwords,+in+program+code - Use of hard-coded password, OWASP,
https://www.owasp.org/index.php/Use_of_hard-coded_password
반응형
'공부 > KISA' 카테고리의 다른 글
사용자 하드디스크에 저장되는 쿠키를 통한 정보노출 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
---|---|
취약한 비밀번호 허용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
적절하지 않은 난수값 사용 - KISA 소프트웨어 개발 보안 가이드 (1) | 2020.07.21 |
충분하지 않은 키 길이 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
하드코드된 비밀번호 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
댓글