반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원
기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥
www.kisa.or.kr
구현 단계 시큐어코딩 가이드 - 보안 기능 - 솔트 없이 일방향 해쉬함수 사용
가. 개요
- 패스워드를 저장 시 일방향 해쉬함수의 성질을 이용하여 패스워드의 해쉬값을 저장한다. 만약 패스 워드를 솔트(Salt) 없이 해쉬 하여 저장한다면, 공격자는 레인보우 테이블과 같이 해시값을 미리 계산하여 패스워드를 찾을 수 있게 된다.
나. 보안대책
- 패스워드를 저장 시 패스워드와 솔트를 해쉬함수의 입력으로 하여 얻은 해쉬값을 저장한다.
다. 코드예제
JAVA
더보기
![](https://blog.kakaocdn.net/dn/b6snVi/btqFQyDYvRw/grwNyEZlqVZs81DBX62PSK/img.png)
![](https://blog.kakaocdn.net/dn/dvnj32/btqFRBzZlwQ/48AbaAd17ClV78VL2RKdnK/img.png)
다음의 예제는 패스워드 저장 시 솔트 없이 패스워드에 대한 해쉬값을 얻는 과정을 보여준다
![](https://blog.kakaocdn.net/dn/b6snVi/btqFQyDYvRw/grwNyEZlqVZs81DBX62PSK/img.png)
패스워드만을 해쉬 함수의 입력으로 사용하기에 레인보우 테이블을 이용한 사전 공격이 가능하며, 이를 방지하기 위해 패스워드와 솔트를 함께 해쉬함수에 적용하여 사용한다.
![](https://blog.kakaocdn.net/dn/dvnj32/btqFRBzZlwQ/48AbaAd17ClV78VL2RKdnK/img.png)
C#
더보기
![](https://blog.kakaocdn.net/dn/IriSg/btqFQKEbip8/AM8ghB9HiT6rYRXZkRBL41/img.png)
![](https://blog.kakaocdn.net/dn/ddhQQa/btqFRB0502k/m1A0676MEGf0DvGH2ouXPK/img.png)
다음의 예제는 패스워드 저장 시 솔트 없이 패스워드에 대한 해쉬값을 얻는 과정을 보여준다.
![](https://blog.kakaocdn.net/dn/IriSg/btqFQKEbip8/AM8ghB9HiT6rYRXZkRBL41/img.png)
패스워드만을 해쉬함수의 입력으로 사용하기에 레인보우 테이블을 이용한 사전 공격이 가능하며, 이를 방지하기 위해 패스워드와 솔트를 함께 해쉬함수에 적용하여 사용한다.
![](https://blog.kakaocdn.net/dn/ddhQQa/btqFRB0502k/m1A0676MEGf0DvGH2ouXPK/img.png)
C
더보기
![](https://blog.kakaocdn.net/dn/TObsE/btqFRAuknYj/TSFrtM3k3yPPxOX2q7zItK/img.png)
![](https://blog.kakaocdn.net/dn/chjE0d/btqFS0TRchi/xayQdddKwsjKzvkk4ia9zK/img.png)
솔트 값 없이 해쉬를 생성하는 C 코드의 예제이다.
![](https://blog.kakaocdn.net/dn/TObsE/btqFRAuknYj/TSFrtM3k3yPPxOX2q7zItK/img.png)
솔트 값을 인자로 넘겨줘야 한다.
![](https://blog.kakaocdn.net/dn/chjE0d/btqFS0TRchi/xayQdddKwsjKzvkk4ia9zK/img.png)
참고자료
- CWE-759, Use of a One-Way Hash without a Salt, MITRE,
http://cwe.mitre.org/data/definitions/759.html - Store passwords using a hash function, CERT,
http://www.securecoding.cert.org/confluence/display/java/MSC62-J.+Store+passwords+using+a+hash+function - Use_a_cryptographically_strong_credential-specific_salt, OWASP,
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Use_a_cryptographically_strong_credential-specific_salt
반응형
'공부 > KISA' 카테고리의 다른 글
반복된 인증시도 제한 기능 부재 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
---|---|
무결성 검사 없는 코드 다운로드 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
주석문 안에 포함된 시스템 주요정보 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
사용자 하드디스크에 저장되는 쿠키를 통한 정보노출 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
취약한 비밀번호 허용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
댓글