-
- 기본 인증을 안전하게 사용하는 유일한 방법은 SSL과 결합해서 사용하는 것이다
- 다이제스트 인증은 기본인증과 호환되는 더 안전한 대체채로서 개발되었다. 많이는 안쓰이지만, 개념자체는 중요하다
- 다이제스트 인증의 특징
- 비밀번호를 절대로 네트워크를 통해 평문으로 전송하지 않는다
- 인증 체결을 가로채서 재현하려는 악의적인 사람들을 차단한다
- 구현하기에 따라서,메시지 내용위조를 막는 것도 가능하다
- 그외 몇몇 잘알려진 형태의 공격을 막는다
- 1)비밀번호를 안전하게 지키기 위해 요약 사용하기
- 다이제스트 인증은 "절대로 비밀번호를 네트워크를 통해 보내지 않는다". 대신에 비밀번호를 비가역적으로 뒤섞은 지문(fingerprint), 혹은 요약(digest)을 보낸다
- 2)단방향 요약
- md5같은 요약함수를 통해 일반적으로 입력 가능한 무한 가지의 ㅁ모든 입력값들을 유한한 범위의 압축으로 변환한다
- 요약함수는 보통 암호 체크섬(cryptographic checksums)으로 불리며,단방향 해시함수이거나 지문함수(fingerprint function)이다
- 3) 재전송 방지를 위한 난스(nonce) 사용
- 비밀번호 자체를 보내진 않아도 요약자체를 뺏어서 요약을 보내가지고, 서버에서 뭔가를 털어갈수있다. 왜냐하면요약이 비밀번호 자체랑 같으니까.
- 이런 재전송 공격을 방지하기위해 서버는 클라이언트에게 난스(nonce)라고 불리는 특별한, 그리고 자주 바뀌는 증표를 건네준다. 그리고 얘를 비밀번호에 섞어서, 난스가 바뀔때마다 요약도 바뀌게 한다.
- 이를 통하면 재전송 공격이 막히는 것이, 저장된 비밀번호 요약은 특정 난스 값에 대해서만 유효하고, 비밀번호 없이 공격자가 올바를 요약을 계산할 수 없기 때문