메뉴

Salt

2018-02-10 05:07:26

Salt

암호학에서 salt는 단방향 해시 함수에 추가 입력되는 "임의의 데이터"다. Salt는 일종의 nonce(Number used just Once)로 사전계산된 rainbow table 공격을 막기 위해서 사용한다.

각각의 패스워드 마다 랜덤한 salt가 만들어지며,해시 함수에 전달되서 처리되고 그 결과는 salt와 함께 데이터베이스에 저장된다.

패스워드는 단방향으로 해시 되서 저장한다. 해시는 원문으로의 복원이 불가능 하기 때문에, 해시 결과를 비교하는 방법을 사용한다. 사람이 만드는 패스워드는 유추가능한 단어의 조합으로 만드는 경우가 많은데, 해커들은 사람의 이러한 인지적 특성을 이용해서 조합가능한 문자열의 테이블을 만들어서 공격을 한다. 이 테이블을 rainbow table이라고 한다. 일종의 사전공격이라고 볼 수 있을 것이다.

유저가 입력한 패스워드에 랜덤한 salt를 추가해버리면, rainbow table 공격을 (거의)무력화 할 수 있다.