DKIM 구문
DKIM의 구문은 RFC 6376에 의해 정의되며, 이는 DKIM-Signature 헤더 필드, 공개 키 DNS 레코드, 서명 및 검증 알고리즘의 형식과 규칙을 명시합니다.
DKIM-Signature 헤더 필드는 DKIM 서명에 대한 정보를 제공하는 세미콜론으로 구분된 일련의 태그-값 쌍으로 구성됩니다. 태그는 대소문자를 구분하지 않으며 다음과 같은 의미를 가집니다:
태그 | 설명 |
---|---|
v | DKIM의 버전입니다. 현재 버전은 1입니다. |
a | 해시 및 서명을 생성하는 데 사용된 알고리즘입니다. 지원되는 알고리즘은 rsa-sha1 및 rsa-sha256입니다. |
b | base64로 인코딩된 서명 데이터입니다. |
bh | base64로 인코딩된 이메일 콘텐츠의 해시입니다. |
c | 해시하기 전에 이메일 헤더와 본문을 정규화하는 데 사용된 정규화 알고리즘입니다. 지원되는 알고리즘은 simple 및 relaxed입니다. |
d | 서명 엔터티의 도메인입니다. |
h | 서명에 포함된 헤더 필드 목록이며, 콜론으로 구분됩니다. |
i | 서명 에이전트의 정체성으로, 서명 도메인 내의 서브도메인 또는 사용자일 수 있습니다. |
l | 서명된 이메일 본문의 길이(바이트)입니다. 생략된 경우 전체 본문이 서명됩니다. |
q | 공개 키를 검색하는 데 사용된 쿼리 방법입니다. 지원되는 방법은 dns/txt로, 이는 공개 키가 DNS의 TXT 레코드에 저장됨을 의미합니다. |
s | 검증에 사용할 공개 키를 식별하는 선택자입니다. |
t | 서명이 생성된 시간의 타임스탬프이며, 1970년 1월 1일 00:00:00 UTC 이후 초 단위로 표시됩니다. |
x | 서명의 만료 시간이며, 1970년 1월 1일 00:00:00 UTC 이후 초 단위로 표시됩니다. 생략된 경우 서명은 만료되지 않습니다. |
z | 서명된 원래 헤더 필드로, base64로 인코딩됩니다. 이 태그는 선택 사항이며 디버깅 목적으로만 사용됩니다. |
공개 키 DNS 레코드의 예는 다음과 같습니다:
선택자:
dkimkey._domainkey.example.com.
값:
"v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfjgu4wJ4hm7T3cjhYfyX3WfZwLGNqJtU2Ol1i8sT1o3F1FbZI4P7FqQW7MkMfsHnY6f7loG+RwkZsKdowq+8Gg9G2xRF1YJynBKLpdX4eR4Q2m5F3LjMfQSSMmN1CRrSeyRGNVQqjxweG5lJfR0GZsT7hnrccllH+oL1HhQIDAQ"
관련 주제
- DKIM이란 무엇인가요? - 이메일 인증에서 DKIM의 역할에 대한 소개
- DKIM은 어떻게 작동하나요? - DKIM 구현 및 운영에 대한 기술적 세부사항
- DKIM이 중요한 이유는 무엇인가요? - DKIM 구현의 이점과 중요성
- DKIM의 한계 - 현재의 제약 조건과 도전 과제