도메인키 확인 메일(DKIM: DomainKeys Identified Mail)
도메인키 확인 메일은 암호학적 서명 전자우편 메시지를 위한 명세입니다.
이 명세는 서명 도메인(signing domain)이 메일 스트림에서 메시지에 대한 책임을 주장할 수 있게 합니다.
메시지 수신자는 적절한 공개키 검색을 위해 서명자 도메인에 직접 질의하여 서명을 검증할 수 있습니다.
이 방법을 통해, 서명 도메인에 대한 개인키를 소유한 개체에 의해서 메시지가 인증되었다는 것을 확인할 수 있습니다.
DKIM 배치의 예시
이메일 위협
잠재적 공격자의 특징, 능력, 위치 관점에서 DKIM에 의해 다루어져야 하는 위협을 의미한다
공격자의 특징
가장 낮은 수준은 수신자가 원하지 않는 전자 우편을 전송하길 원하는 공격자이다
중간 수준이라 함은, 대량의 스팸메일을 발송하는 전문적인 송신자이다.
가장 교묘하고 금전적인 동기를 가진 메시지 송신자는 전자우편 기반의 사기 수법을 통해 금전적 이익을 얻으려고 공격하는 자이다.
공격자의 능력
- 인터넷 상의 여러 곳에 있는 MTA와 MSA에게 메시지 전송
- 메일링 리스트, 재송신자, 다른 우편 에이전트로 위장하는 것을 포함하여, 임의의 메시지 헤더 필드를 구성
- 공격자 통제하의 도메인을 대신하여 메시지에 서명 서비스 거부 공격에 사용될 수 있는 서명되지 않거나 분명히 서명된 메시지를 다수 생성
- 도메인에 의해 이전에 서명되었던 메시지를 재전송
- 원했던 봉인 정보를 사용하여 메시지를 전송
- 손상된 컴퓨터로부터의 메시지에 대해 인가된 제출자인 것처럼 행동
- IP 라우팅을 조작
- 특정 IP 주소 또는 추적하기 어려운 주소에서 온 메시지를 보내기 위해, 또는 특정 도메인으로 가는 메시지가 전달되도록 하는 데 사용
- 캐시 포이즈닝(cache poisoning)과 같은 메커니즘을 이용하여 DNS의 일부분에 제한된 영향을 준다.
- 이것은 메시지 라우팅에 영향을 주거나 또는 DNS 기반 키나 서명의 광고를 위조하기 위해 사용될 수 있다.
- 중요한 컴퓨팅 자원에 접근한다.
- 예를 들면, 웜 바이러스에 감염된 ‘좀비’컴퓨터를 모아‘나쁜 행위자(bad actor)’가 다양한 유형의 전수공격을 수행
- (아마 무선 네트워크에서) 기존 트래픽 도청 능력
공격자의 위치
외부의 공격자는 대부분 수신측 MTA가 임의의 위치에서 로컬 도메인으로 오는 메시지를 받아들이는 전자우편의“any-to-any" 특성을 이용한다.
또는, 서명이 없는 부정확한 서명을 가지거나, 거의 추적가능성이 없는 도메인으로부터 정확한 서명을 가진 메시지를 생성한다.
메일링 리스트, 인사 카드, 또는 다른 개체 대신 메시지를 합법적으로 송신 또는 재송신하는 다른 에이전트로 위장
DKIM 전략
사용자의 전자 우편 메시지는 전자우편 발신지 관리 도메인의 개인키로 서명 된다.
서명은 메시지의 내용 전체와 RFC 5322 메시지 헤더의 일부를 포함한다.
수신 측에서는 MDA는 DNS를 통해 해당 공개키에 접근하여 서명을 검증한다.
DKIM 개발 근거
Secure MIME은 Secure MIME을 사용하는 송신 사용자와 수신 사용자 모드에 의존한다.
- 거의 모든 사용자에 대해, 수신되는 메시징의 대부분은 Secure MIME을 사용하지 않는다
- 사용자가 전송하기 원하는 메시지의 대부분은 Secure MIME을 사용하지 않는 수신자에게 전송
Secure MIME은 메시지 내용만을 서명한다 - 출처에 관련된 RFC 5322 헤더 정보 손상이 가능하다
DKIMm은 클라이언트 프로그램(MUA)에 구현 되지 않는다 - 사용자에게 투명하다
- 사용자는 추가적인 다른 동작을 할 필요가 없다
DKIM은 협력 도메인으로부터의 모든 우편에 적용 된다.
DKIM은 착한 송신자가 특정 메시지를 전송하지 않았다는 것을 증명할 수 있게하고, 위조범이 착한 송신자로 가장하는 것을 방지한다.
DKIM 기능 흐름
기본 메시지 처리
- 서명
- 서명 ADMA 내 모듈로 수행
- 키 저장소의 개인 정보 사용
- 발신 ADMD 내에서 MUA, MDA, MTA로 기능
- 검증
- 검증 ADMA 내 모듈로 수행
- 전달 ADMD 내에서 MTA, MDA, MUA로 기능
- 키 저장소의 공개 공보 사용
DKIM 기능 흐름도
DKIM 서명 필드
아래는 DKIM - SIGNAUTRE 헤더 정보 예시
- v = DKIM 버전
- a = 서명 생성을 위해 사용된 알고리즘 rsa-sha1 또는 rsa-sha256 중 의 하나
- c = 헤더와 Body에 사용된 정규화 방법
- d = 사람 또는 조직의 신분을 나타내는 식별자로 사용되는 도메인 이름.
- DKIM에서는 SDID(signing Domain IDentifier)라고 함.
- 앞의 예에서 이 필드는 송신자가 gmail 주소를 사용하고 있음
- s = 동일 서명 도메인에 대해 다양한 상황에서 다른 키가 사용될 수 있도록 DKIM은 선택자를 정의.
- 이것은 서명 검증 과정에서 검증자가 적절한 키를 검색하기 위해 사용
- h = 서명된 헤더 필드.
- 서명 알고리즘에 제시된 헤더 필드를 식별하는 콜론(:)으로 구분된 헤더 필드 이름 리스트.
- 앞의 예에서 서명은 domainkey-signature필드를 포함.
- bh = 메시지의 정규화된 Body 부분의 해시.
- 이것은 서명 검증 실패를 진단하기 위해 추가적인 정보를 제공
- b = base64 형식의 서명 데이터.
- 이것은 암호화된 해시 코드
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'Computer Science > Security' 카테고리의 다른 글
IKE(Internet Key Management) (0) | 2023.06.10 |
---|---|
도메인 - 기반 메시지 인증 보고, 및 준수 (0) | 2023.06.04 |
SPF (0) | 2023.06.04 |
DNSSEC (0) | 2023.06.03 |
Pretty Good Privacy (0) | 2023.06.03 |