반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 보안 기능 - 솔트 없이 일방향 해쉬함수 사용
가. 개요
- 패스워드를 저장 시 일방향 해쉬함수의 성질을 이용하여 패스워드의 해쉬값을 저장한다. 만약 패스 워드를 솔트(Salt) 없이 해쉬 하여 저장한다면, 공격자는 레인보우 테이블과 같이 해시값을 미리 계산하여 패스워드를 찾을 수 있게 된다.
나. 보안대책
- 패스워드를 저장 시 패스워드와 솔트를 해쉬함수의 입력으로 하여 얻은 해쉬값을 저장한다.
다. 코드예제
JAVA
더보기
다음의 예제는 패스워드 저장 시 솔트 없이 패스워드에 대한 해쉬값을 얻는 과정을 보여준다
패스워드만을 해쉬 함수의 입력으로 사용하기에 레인보우 테이블을 이용한 사전 공격이 가능하며, 이를 방지하기 위해 패스워드와 솔트를 함께 해쉬함수에 적용하여 사용한다.
C#
더보기
다음의 예제는 패스워드 저장 시 솔트 없이 패스워드에 대한 해쉬값을 얻는 과정을 보여준다.
패스워드만을 해쉬함수의 입력으로 사용하기에 레인보우 테이블을 이용한 사전 공격이 가능하며, 이를 방지하기 위해 패스워드와 솔트를 함께 해쉬함수에 적용하여 사용한다.
C
더보기
솔트 값 없이 해쉬를 생성하는 C 코드의 예제이다.
솔트 값을 인자로 넘겨줘야 한다.
참고자료
- 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 |
댓글