Skip to content

DKIM 구문

DKIM의 구문은 RFC 6376에 의해 정의되며, 이는 DKIM-Signature 헤더 필드, 공개 키 DNS 레코드, 서명 및 검증 알고리즘의 형식과 규칙을 명시합니다.

DKIM-Signature 헤더 필드는 DKIM 서명에 대한 정보를 제공하는 세미콜론으로 구분된 일련의 태그-값 쌍으로 구성됩니다. 태그는 대소문자를 구분하지 않으며 다음과 같은 의미를 가집니다:

태그설명
vDKIM의 버전입니다. 현재 버전은 1입니다.
a해시 및 서명을 생성하는 데 사용된 알고리즘입니다. 지원되는 알고리즘은 rsa-sha1 및 rsa-sha256입니다.
bbase64로 인코딩된 서명 데이터입니다.
bhbase64로 인코딩된 이메일 콘텐츠의 해시입니다.
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"

관련 주제