다이제스트 인증은 기본 인증과 호환되는 더 안전한 대체재로서 개발되었다.
다이제스트 인증은 기본 인증의 가장 심각한 결함을 수정한 또 다른 HTTP 인증 프로토콜이다. 다이제스트 인증의 특징은 다음과 같다.
1) 비밀번호를 안전하게 지키기 위해 요약 사용하기
다이제스트 인증의 좌우명은 "절대로 비밀번호를 네트워크를 통해 보내지 않는다"이다. 비밀번호를 보내는 대신, 클라이언트는 비밀번호를 비가역적으로 뒤섞은 '지문 혹은 요약을 보낸다.'
2) 단방향 요약
요약은 '정보 본문의 압축'이다. 요약은 단방향 함수로 동작하고, 일반적으로 입력 가능한 무한 가지의 모든 입력값들을 유한한 범위의 압축으로 변환한다.
요약 함수는 보통 암호 체크섬으로 불리며, 단방향 해시 함수이거나 지문 함수이다.
3) 재전송 방지를 위한 난스(nounce) 사용
단방향 요약은 비밀번호를 그대로 전송해야 할 필요성에서 우리를 해방시켜 준다. 우리는 그 대신 그냥 비밀번호에 대한 요약을 보내주고, 악의적인 집단이 쉽게 요약에서 원래 비밀번호를 해독할 수 없음을 보장받기만 하면 된다.
서버는 클라이언트에게 난스라고 불리는 특별한, 그리고 자주 바뀌는 증표를 건네준다. 난스를 비밀번호에 섞으면 난스가 바뀔 때마다 요약도 바뀌게 만들어준다.
4) 다이제스트 인증 핸드셰이크
HTTP 다이제스트 인증 프로토콜은 기본 인증에서 사용하는 것과 비슷한 헤더를 사용하는, 강화된 버전의 인증이다.
다이제스트 인증의 핵심은 공개된 정보, 비밀 정보, 시한부 난스 값을 조합한 단방향 요약이다.
1) 요약 알고리즘 입력 데이터
2) H(d)와 KD(s,d) 알고리즘
3) 보안 관련 데이터
4) 메시지 관련 데이터
5) 요약 알고리즘 전반
6) 다이제스트 인증 세션
7) 사전 인가
8) 난스 선택
9) 상호 인증
1) 메시지 무결성 보호
2) 다이제스트 인증 헤더
1) 다중 인증요구
2) 오류 처리
3) 보호 공간
4) URL 다시 쓰기
5) 캐시
1) 헤더 부당 변경
2) 재전송 공격
3) 다중 인증 메커니즘
4) 사전 공격
5) 악의적인 프락시와 중간자 공격
6) 선택 평문 공격
7) 비밀번호 저장