블럭체인 설명을 보면 해쉬라는 말이 자주나오는데
개발자들에게는 익숙하겠지만...
해쉬 : 단방향 함수
- 입력 값이 조금만 달라도 출력 값은 완전히 달라진다.
- 출력 값이 다르면 입력 값이 다른 것.
- 원본 데이터 사이즈보다 훨씬 작은 해쉬값만을 비교하여 원본 값이 달라졌는지를 판단 가능
- 해쉬 값이 같다고 원본 값이 같다는 보장은 없다. but 대체로 같다.
- 해쉬 값에서 원본 값을 뽑아내는 것은 불가능하다고 본다.
표준적인 해쉬 알고리즘을 사용하는 경우... 해쉬 값 테이블을 가지고 비교하면 원본 값을 찾을 수도 있다.
방지를 위해서... 표준 해쉬 알고리즘을 약간 변형시켜 사용하면 된다.
공격 예 :
사용자 비밀번호를 DB에 MD5 알고리즘으로 해쉬화 해서 저장했다고 했을 때
공격자가 DB를 탈취하고
1111 => 1111의 해쉬 값
1112 => 1112의 해쉬 값
...
9999 => 9999의 해쉬 값
공격자는 DB에 저장된 해쉬값을 자신이 가지고 있는 테이블과 비교하여,
일치하는 값을 찾으면 사용자의 비밀번호를 알아낼 수도 있다.
해쉬의 사용 예 :
사용자의 비밀번호를 DB에 저장할 때
비밀번호를 직접 저장하면... 디비 털리면 사용자 비번 다 털리고
해쉬값을 저장하면 디비 털려도 사용자 비번은 털리지 않는다.
사용자가 비밀번호를 입력하면... 비밀번호를 해쉬화 하고...
그 결과값을 디비에 저장된 해쉬화된 비밀번호와 비교
'IT > 블럭체인' 카테고리의 다른 글
이더리움 구입 가능 사이트 (0) | 2018.01.16 |
---|---|
이더리움 송금 수수료 (0) | 2018.01.16 |
Dapp 만들기 (0) | 2018.01.16 |
ICO가 뭐? (0) | 2018.01.16 |
Solidity 강좌 (0) | 2018.01.15 |