시스템 보안 해시 함수
시스템 보안 해시(hash) 함수에 대해서 알아보겠습니다.
오늘은 해시에 대해서 알아보겠습니다.
해시는 암호화를 시켜주는 기능이 있습니다.
다른 암호화와는 다른 특이한 점이 있습니다. 보통은 암호화를 한 뒤, 복호화를 할 수 있는데, 해시는 암호화를 하면 복호화를 할 수 없습니다.
그래서 보통, 아무도 원래 값을 알 수 없는 값의 무결성 검증에 많이 사용됩니다. 예를 들면, 비밀번호 같은 곳에 많이 사용되고 있습니다.
비밀번호 입력받은 것을 hash 화 해서 대조하기 때문입니다.
이러한 복호화의 불가능 이유로 관리자도 해커도 볼 수 없습니다.
자주 쓰이는 해시 종류에 대해서 알아보겠습니다.
SHA-1, SHA-256, SHA-512, MD5 정도가 있겠습니다.
이 글을 쓰는 이유 중에 하나는 MD5, SHA-1을 사용할 때에는 신중하자는 것에 있습니다.
SHA-1의 경우 표현할 수 있는 bit가 160에 불과하여 해시 충돌이 일어날 확률이 높습니다.
MD5의 경우 표현할 수 있는 bit가 128에 불과하여 해시 충돌이 일어날 확률이 높습니다.
예를 들 수 있는 파일이 있습니다.
SHA-1
https://shattered.it/static/shattered-1.pdf
https://shattered.it/static/shattered-2.pdf
두 개의 파일은 다르지만, SHA-1의 값은 동일합니다.
SHA-1: 38762CF7F55934B34D179AE6A4C80CADCCBB7F0A
MD5
https://www.mscs.dal.ca/~selinger/md5collision/hello.exe
https://www.mscs.dal.ca/~selinger/md5collision/erase.exe
MD5: CDC47D670159EEF60916CA03A9D4A007
감사합니다.
카테고리: Security
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.