- 기본 인증은 편리하고 유연하지만, 전혀 안전하지 않음.
- 메세지를 위조하지 못하게 보호하려는 어떠한 시도도 하지 않음.
- 다이제스트 인증은 기본 인증과 호환되는 더 안전한 대체재로서 개발됨.
- 다이제스트 인증은 널리 쓰이지는 않지만, 그 개념은 보안 트랜잭션을 구현하고자 하는 이들에게 여전히 유용함.
특징 및 동작 원리
- 특징
- 비밀번호를 네트워크를 통해 평문으로 전송하지 않음.
- 인증 체결을 가로채 재현하려는 악의적인 사람들을 차단함.
- 메시지 내용 위조를 막는 것도 가능.
- 그 외 여러 형태의 공격을 막음.
- 공인인증서 등에 쓰이는 공개키 기반 메커니즘과 비교해 그다지 안전한 프로토콜은 아님.
- 요청과 응답의 나머지 부분은 다른 누군가가 엿보는 게 가능함. 그래도 CRAM-MD5 등 다른 보안 체계들보다는 강력함.
<aside>
💡 SSL을 이용한 암호화된 HTTP의 인기와 폭넓은 채택을 고려할 때, 다이제스트 인증의 필요성에 대한 논란이 계속됨.
</aside>
- 다이제스트 인증이 동작하는 방법 (실제보다 간략히 표현함).
- 서버에 비밀번호를 보내는 대신, 비밀번호를 비가역적으로 뒤섞은 지문(fingerprint) 혹은 요약(digest)를 보냄.
- 비밀번호는 네트워크에 전송되지 않음.

인증 시 비밀번호를 알아내기 어렵게 하기 위해 요약을 사용함.
- 클라가 보호된 문서를 요구함.
- 서버는 클라가 비밀번호를 알고 있음을 증명하여 신원을 증명하기 전까지 문서 제공을 거부. 클라에게 사용자 이름과 요약된 형태의 비밀번호를 요구.
- 클라는 비밀번호의 요약을 전달하여 신원 증명. 서버는 모든 사용자의 비밀번호를 알고 있음. 클라가 제공한 요약과 서버가 스스로 계산한 요약이 일치하는지 비교하여 인증.
- 서버는 클라가 제공한 요약과 계산한 요약을 비교하여 일치하면 문서를 제공함.
단방향 요약
-
요약은 단방향 함수로 동작함.
-
가능한 무한 가지의 입력 값들을 유한한 범위의 압축으로 변환함. 두 개의 서로 다른 입력이 같은 다이제스트로 변환하는 충돌(collision)이 발생하기도 함(아주 희박).
-
인기 있는 요약 함수 중 하나인 MD5(Message Digest #5
)는 임의의 바이트 배열을 원래 길이와 상관 없이 128비트 요약으로 변환. 128비트는 종종 32글자의 16진수 문자로 표현됨.
