DKIM 서명은 어떻게 작동하나요
DKIM(DomainKeys Identified Mail)은 발송하는 모든 메시지에 암호화 서명을 붙입니다. 메일 서버가 선택된 헤더와 본문에 개인 키로 서명하면, 수신 서버는 selector._domainkey.yourdomain.com 의 DNS에서 짝이 되는 공개 키를 가져와 서명을 검증합니다. 유효한 서명은 메시지가 전송 중에 변경되지 않았으며 서명한 주체가 여러분의 DNS를 통제한다는 사실을 증명합니다.
DNS 레코드는 세 가지 태그를 담습니다. 버전, 키 유형, 그리고 base64 공개 키입니다.
io1._domainkey.yourdomain.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."직접 키를 생성해야 하는 사람
호스팅형 메일박스 제공업체는 DKIM 키를 대신 생성하고 관리해 줍니다. Google Workspace에서는 앱, Gmail, 이메일 인증에서 켜고, Microsoft 365에서는 Defender, 이메일 인증, DKIM에서 켭니다. 이 생성기는 서명 쪽을 직접 통제할 때만 필요합니다.
- Postfix와 OpenDKIM 또는 rspamd, Exim, Haraka 등을 쓰는 자체 운영 SMTP.
- 직접 제공한 개인 키를 받아들이는 Amazon SES의 Bring Your Own DKIM.
- CNAME 대신 사용자 지정 키 업로드를 제공하는 모든 트랜잭션 제공업체.
- OpenSSL을 설치하지 않고 일회용 키가 필요한 테스트 및 실험 환경.
2048비트 키와 255자 분할
Gmail, Yahoo, Microsoft 모두 2048비트 키를 권장하며 1024비트 키는 약한 것으로 간주됩니다. 대가는 길이입니다. 2048비트 공개 키는 400자가 넘는 TXT 값을 만들지만, DNS TXT 문자열 하나는 255자로 제한됩니다. 대부분의 DNS 호스트가 값을 따옴표로 묶은 여러 문자열로 자동 분할해 줍니다. 여러분의 호스트가 거부한다면 이 도구가 보여 주는 분할 형식을 쓰세요. 리졸버가 조회 시 다시 이어 붙입니다.
일부 오래된 DNS 관리 화면은 1024비트 키만 들어갈 정도의 엄격한 제한을 둡니다. 이럴 때는 키를 낮추기보다 DNS를 최신 제공업체로 옮기는 편이 나은 해결책입니다.
개인 키 설치와 이후의 키 교체
PEM 파일을 발송 서버에 저장하되 권한은 메일 데몬으로 제한하고, DNS에 사용한 것과 동일한 셀렉터와 도메인으로 서명 소프트웨어가 이 파일을 가리키게 하세요. Gmail 주소로 테스트를 보내 헤더에서 dkim=pass 와 d= 값이 여러분의 도메인과 일치하는지 확인하세요. 그런 다음 DKIM 검사기로 레코드를 확인하세요.
키는 주기적으로 교체하세요. 새 셀렉터로 새 키 쌍을 생성해 게시하고, 서버를 전환한 뒤에야 옛 레코드를 삭제하세요. 서버를 직접 관리하고 싶지 않은 콜드 이메일 운영자라면, InboxOne이 DKIM, SPF, DMARC가 이미 구성된 메일박스를 프로비저닝하도록 맡길 수 있습니다.

