티스토리 뷰

반응형

 

 

 

가. 원인

  - 일방향 해쉬 함수를 사용할 때 솔트를 적용하지 않은 경우

 

 

나. 영향

  - 레인보우 테이블 등을 통해 모든 해쉬값을 미리 계산하여, 암호문의 원문을 추출

 

 

다. 보안대책

  - 해쉬 값을 생성할 때 반드시 솔트를 적용

 

 

라. 안전한 코드

1. 솔트 적용

 

  public String getPasswordHash( String password, byte[] salt ) {

     MessageDigest md = MessageDigest.getInstance( "SHA-256" );

     md.reset();

     md.update( salt );

     String result = md.digest( password.getBytes() );

     return result;

  }

 

 

 

마. 진단방법

<솔트 확인>

  1. 해쉬함수 사용하는 소스코드를 확인

  2. 해쉬 사용 시 MessageDigest 객체를 사용하는지 확인

  3. 해쉬값을 생성 전에 솔트를 적용하는지 확인

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. Salt값 없이 SHA-512 패쉬값을 생성하고 있을 경우

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday