본문 바로가기
공부/KISA

하드코드된 암호화 키 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 21.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


구현 단계 시큐어코딩 가이드 - 보안 기능 - 하드코드 된 암호화 키

가. 개요

  • 코드 내부에 하드코드 된 암호화 키를 사용하여 암호화를 수행하면 암호화된 정보가 유출될 가능성이 높아진다.
  • 많은 SW 개발자들이 코드 내부의 고정된 암호키의 해시를 계산하여 저장하면 암호키를 악의적인 공격자로부터 보호할 수 있다고 믿고 있다. 그러나 많은 해시 함수들이 역계산이 가능하며, 적어도 무차별 대입(Brute-Force) 공격에는 취약하다는 것을 고려해야만 한다.

나. 보안대책

  • 암호화 수행 시, 상수가 아닌 암호화 키를 사용하도록 설계해야 한다. 또한, 암호화되었더라도 소스 코드 내부에 상수 형태의 암호화 키를 저장하여 사용해서는 안된다

다. 코드예제

JAVA
더보기

소스 코드 내부에 암호화 키를 상수 형태로 하드코딩하여 사용하면 악의적인 공격자에게 암호화 키가 노출될 위협이 있다.

암호화 과정에 사용하는 암호화 키는 외부 공간(파일)에 안전한 방식으로 암호화하여 보관해야 하며, 암호화된 암호화 키는 복호화하여 사용한다.

 

C#
더보기

소스 코드 내부에 암호화 키를 상수 형태로 하드코딩하여 사용하면 악의적인 공격자에게 암호화 키가 노출될 위협이 있다.

암호화 과정에 사용하는 암호화 키는 외부 공간(파일)에 안전한 방식으로 암호화하여 보관해야 하며, 암호화된 암호화 키는 복호화하여 사용한다.

 

C
더보기

하드코드 된 비밀번호를 사용할 경우, 코드에 접근 권한이 있는 사용자가 비밀 번호를 알 수 있습니다.

암호화되어 저장된 암호를 외부에서 불러오고 이를 비교하는 코드가 작성되어야 한다.


참고자료

 

 

반응형

댓글