HTTP 완벽 가이드 13장 다이제스트 인증

DARTZ·2022년 7월 17일
0

HTTP 완벽 가이드

목록 보기
7/11

다이제스트 인증은 기본 인증과 호환되는 더 안전한 대체재로서 개발되었다.

1. 다이제스트 인증의 개선점

다이제스트 인증은 기본 인증의 가장 심각한 결함을 수정한 또 다른 HTTP 인증 프로토콜이다. 다이제스트 인증의 특징은 다음과 같다.

  • 비밀번호를 절대로 네트워크를 통해 평문으로 전송하지 않는다.
  • 인증 체결을 가로채서 재현하려는 악의적인 사람들을 차단한다.
  • 구현하기에 따라서, 메시지 내용 위조를 막는 것도 가능하다.
  • 그 외 몇몇 잘 알려진 형태의 공격을 막는다.

1) 비밀번호를 안전하게 지키기 위해 요약 사용하기

다이제스트 인증의 좌우명은 "절대로 비밀번호를 네트워크를 통해 보내지 않는다"이다. 비밀번호를 보내는 대신, 클라이언트는 비밀번호를 비가역적으로 뒤섞은 '지문 혹은 요약을 보낸다.'

2) 단방향 요약

요약은 '정보 본문의 압축'이다. 요약은 단방향 함수로 동작하고, 일반적으로 입력 가능한 무한 가지의 모든 입력값들을 유한한 범위의 압축으로 변환한다.

요약 함수는 보통 암호 체크섬으로 불리며, 단방향 해시 함수이거나 지문 함수이다.

3) 재전송 방지를 위한 난스(nounce) 사용

단방향 요약은 비밀번호를 그대로 전송해야 할 필요성에서 우리를 해방시켜 준다. 우리는 그 대신 그냥 비밀번호에 대한 요약을 보내주고, 악의적인 집단이 쉽게 요약에서 원래 비밀번호를 해독할 수 없음을 보장받기만 하면 된다.

서버는 클라이언트에게 난스라고 불리는 특별한, 그리고 자주 바뀌는 증표를 건네준다. 난스를 비밀번호에 섞으면 난스가 바뀔 때마다 요약도 바뀌게 만들어준다.

4) 다이제스트 인증 핸드셰이크

HTTP 다이제스트 인증 프로토콜은 기본 인증에서 사용하는 것과 비슷한 헤더를 사용하는, 강화된 버전의 인증이다.

2. 요약 계산

다이제스트 인증의 핵심은 공개된 정보, 비밀 정보, 시한부 난스 값을 조합한 단방향 요약이다.

1) 요약 알고리즘 입력 데이터

2) H(d)와 KD(s,d) 알고리즘

3) 보안 관련 데이터

4) 메시지 관련 데이터

5) 요약 알고리즘 전반

6) 다이제스트 인증 세션

7) 사전 인가

8) 난스 선택

9) 상호 인증

3. 보호 수준 향상

1) 메시지 무결성 보호

2) 다이제스트 인증 헤더

4. 실제 상황에 대한 고려

1) 다중 인증요구

2) 오류 처리

3) 보호 공간

4) URL 다시 쓰기

5) 캐시

5. 보안에 대한 고려사항

1) 헤더 부당 변경

2) 재전송 공격

3) 다중 인증 메커니즘

4) 사전 공격

5) 악의적인 프락시와 중간자 공격

6) 선택 평문 공격

7) 비밀번호 저장

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글