반응형
13. 해시(Hash) - 보안의 기본 |
* 해시란?
-
해시(Hash)란 어떤 데이터에 대응하는 값을 구하기 위한 방법 중 하나이다.
동일한 데이터로부터 생성된 해시 값은 항상 똑같으며, 원래 데이터가 조금이라도 다르면 생성되는 해시 값도 달라진다.
이러한 성질을 이용하여 예를 들어 배포 중인 프리웨어의 압축 파일이 변조되지 않았다는 것을 나타낼 수 있다.
* 해시 알고리즘
-
해시 알고리즘은 해시 값을 계산하기 위한 절차이다.
해시 알고리즘이 다르면 데이터는 동일해도 생성되는 해시 값은 달라진다.
또한 예전부터 사용되던 해시 알고리즘 중에는 안전상 문제가 있기 때문에 이제는 사용을 권장하지 않는 것도 있다.
* 해시 알고리즘의 안정성
-
해시 알고리즘의 안전성은 ‘충돌(collision)’이라 부르는 공격에 얼마나 견디는지에 따라 결정된다.
충돌이란 어떤 input A 에 대응하는 해시값 a가 있다고 할 때, 이 해시 값 a 를 갖고 있는 전혀 다른 input B 를 만들어 내는 것.
완전히 똑같은 해시 값을 갖고 있는 input 쌍을 작성하는 것.
또는 지정된 해시 값을 갖고 있는 input 을 만들어 내는 것을 말한다.
이러한 충돌을 고의로 일으킬 수 있는지 없는지가 해시 알고리즘의 안전성을 결정한다고 해도 과언이 아니다.
실제로 MD4 나 MD5 와 같이 공격 방법이 연구 및 확립되어 안전성이 저하된 해시 알고리즘은 현재는 거의 사용하지 않는다.
반응형
'프로그래밍 놀이터 > 보안' 카테고리의 다른 글
[도서 정리] 15. 비밀번호 - 보안의 기본 (0) | 2019.10.16 |
---|---|
[도서 정리] 14. 하드닝(Hardening) - 보안의 기본 (0) | 2019.10.15 |
[도서 정리] 12. 암호 - 보안의 기본 (0) | 2019.10.13 |
[도서 정리] 11. 인증과 인가 - 보안의 기본 (0) | 2019.10.12 |
[도서 정리] 10. 보안 사고 대응의 4단계 - 보안의 기본 (0) | 2019.10.11 |
댓글