인증하기- HASH
정보보안에서 처음 기본적으로 배우는 개념중 하나가 "인증" 이다.
A가 B에게 어떠한 정보를 보낼 때, 그 정보가 변경되지 않았는지(무결성),A가 B에게 보낸 것이 확실한지 등을 검사하기 위한 방법이 바로 "인증"이라 할 수 있다.
인증을 하기 위해서 HASH, MAC, HMAC 등 여러 가지 방법들이 사용되는데, 오늘은 그중 인증의 가장 기본적인 방식인 HASH에 대해 알아보려 한다.
Hash는 특정 키 값 없이 MD5나 SHA-1등의 알고리즘을 이용해 해시값을 생성하여 A가 보내고자 하는 메시지에 이 해시값을 붙여 B에게 전송하는 방법이다. 이 때 B는 메시지가 올바르게 왔는지 확인하기 위해 A가 보낸 데이터를 동일한 알고리즘으로 다시 해시하여 A가 붙인 해시값과 자신이 검사한 해시값이 일치하는지 검사한다. 다음 그림을 보면 이해가 쉽다.
1. A의 전송 내용
MESSAGE |
MESSAGE를 HASH |
HASH값을 MESSAGE뒤에 부착 |
MESSAGE |
HASH 값 |
A -->>>>전송-->>> B
2. B의 수신 내용
MESSAGE |
HASH 값 |
MESSAGE만 분리 |
MESSAGE를 HASH |
결과값과 위의HASH값을 비교 |
대표적으로 사용되는 HASH 알고리즘에는 MD5나 SHA-1이 있다.
MD5 (Message Digest Algorithm)
RFC 1321에 정의되어 있다. (바로가기)
일정길이의 메시지를 입력값으로 받아 128비트의 해시값을 출력값으로 돌려주는 알고리즘으로, 동일한 메시지에 대해서 오직 하나의 HASH값만을 생성한다는 특징이 있다.
SHA-1 (Secure Hash Algorithm)
RFC3714에 정의되어 있다. (바로가기)
SHA 중에서 가장 많이 쓰이는 알고리즘으로 TLS나 SSL, IPSec등의 보안 프로토콜에서 함께 사용되고 있다.
SHA-1은 160비트의 해시값을 출력한다.
'Information Security > Info.Security' 카테고리의 다른 글
CRLF Injection (0) | 2011.05.13 |
---|---|
가상 사설망, VPN. (0) | 2011.05.13 |
대칭키 암호화 (0) | 2011.05.13 |
네트워크 공격 (0) | 2011.05.13 |
요즘 자주 이슈화 되는 DDoS 공격 (2) | 2011.05.11 |