DKIM이 키를 찾는 방법
메시지의 DKIM 서명에는 도메인(d=)과 selector(s=)가 지정됩니다. 수신자는 이를 selector._domainkey.domain 형식으로 조합하고, 해당 위치의 TXT 레코드를 읽은 다음 p= 태그의 공개 키를 사용해 서명을 검증합니다. 하나의 도메인에 원하는 수만큼 selector를 게시할 수 있으므로 각 발송 서비스가 자체 키를 사용할 수 있고, 중단 없이 키를 교체할 수 있습니다.
DNS에서는 도메인에 있는 selector 목록을 확인할 방법이 없으므로 검사기에 selector가 필요합니다. 스캔할 수 있는 대상은 없으며, selector는 실제 메시지의 서명에서 가져옵니다.
키가 취약하거나 손상된 것으로 판단되는 기준
RFC 8301에 따르면 RSA 키는 최소 1024비트여야 하며 2048비트를 권장합니다. 검증자는 이보다 짧은 키를 무시할 수 있으며 이 검사기도 무시하므로, 512비트 키는 서명이 전혀 없는 것으로 처리됩니다. Ed25519 키(RFC 8463)는 설계상 짧지만 강력합니다. 그러나 아직 모든 수신 서버가 이를 검증하지는 않으므로, 일반적으로 RSA 키를 대체하지 않고 RSA 키와 함께 게시합니다.
이 검사기는 키 전체를 디코딩합니다. TXT 문자열 여러 개로 잘못 분할된 레코드나 디코딩할 수 없는 base64는 어떤 수신 서버도 사용할 수 없는 키이기 때문입니다. 빈 p=는 키가 의도적으로 폐기되었다는 뜻입니다. t=y는 아직 테스트 중인 도메인을 나타내며, RFC 6376 §3.6.1은 검증자가 해당 도메인의 메일을 DKIM 서명이 없는 메일과 똑같이 처리하도록 규정합니다.