11.1
개선점
비밀번호를 절대로 네트워크를 통해 평문으로 전송하지 않는다
인증 체결을 가로채서 재현하려는 악의적인 사람들을 차단한다
구현하기에 따라서, 메시지 내용 위조를 막는 것도 가능하다.
그 외 몇몇 잘 알려진 형태의 공격을 막는다
절대로 비밀번호를 네트워크를 통해 보내지 않는다
비밀번호 대신 비가역적으로 뒤섞은
‘지문(fingerprint)’
혹은
‘요약(digest)’
전송
단방향 요약
요약 = 정보 본문의 압축
MD5
: 임의의 바이트 배열을 원래 길이와 상관없이 128비트 요약으로 변환함.
32글자의 16진수 문자로 표현됨.
다이제스트 인증 핸드셰이크
서버가 난스 값 계산
nonce를
WWW-Authenticate
인증요구 메시지에 담아, 서버가 지원하는 알고리즘 목록과 함께 전송함.
클라이언트는 알고리즘을 선택하고 비밀번호와 그 외 데이터에 대한 요약을 계산함.
Authorization 메시지에 요약을 담아 서버에게 돌려줌. 서버를 인증하길 원한다면 클라이언트 난스를 보낼 수 있음.
응답을 받아서, 클라이언트가 했던 그대로 요약을 계산함. 만약 클라이언트가 대칭적으로 서버에게 클라이언트 난스를 갖고 인증을 요구했다면, 클라이언트 요약이 만들어짐.
클라이언트가 미리 다음번 요약을 올바르게 생성할 수 있도록 다음번 난스를 미리 계산해서 클라이언트에게 넘겨줄 수도 있음.