DNS에 강력한 (긴) DKIM 키를 입력하려면 어떻게합니까?


19

DNS에 4028 비트 DKIM 키를 입력하려고하는데 UDP 512 바이트 제한과 TXT 레코드의 최대 레코드 크기를 모두 초과하는 것으로 보입니다.

누군가 어떻게 큰 키 (인코딩 된 크기가 큰)를 올바르게 만들어 DNS로 가져 옵니까?


더 자세한 정보가 필요합니다. DNS 서버 소프트웨어 란 무엇입니까?
JGurtz

1
키 크기를 신중하게 고려 했습니까? RFC는 "Verifier는 512 비트에서 2048 비트 범위의 키로 서명의 유효성을 검사 할 수 있어야하며 더 큰 키로 서명의 유효성을 검사 할 수 있어야합니다"라고 말합니다. 따라서 긴 키가 확인되지 않을 수 있습니다.
HTTP500

@JGurtz 호스팅 서비스 인 "UltraDNS"를 사용하고 있습니다.
goodguys_activate

@Jason-2048을 수행 할 수 있지만 비트 길이가 UDP 패킷 제한을 초과 할 수 있다고 생각합니다.
goodguys_activate

1
아마도 비정상적으로 긴 키를 사용하여 생성 한 문제는 그로부터 얻을 수있는 이점보다 훨씬 크다는 것을 고려해야합니다.
John Gardeniers

답변:


25

텍스트 필드에서 분할해야합니다. 2048이 키 크기의 실질적인 한계라고 생각합니다. 텍스트 필드를 255 자 이하로 나누십시오. 각 분할마다 오버 헤드가 있습니다.

긴 필드에는 두 가지 형식이 있습니다.

TXT "1 부"\ "2 부"

TXT ( "파트 1" "파트 2")

둘 다 "part onepart two"로 결합됩니다. Zytrax의 추가 정보 .

dkim 항목을 생성하려면 공개 키 파일을 삽입하고 따옴표로 묶습니다.
내 공개 키 파일에는 다음이 포함됩니다.

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

내 DNS 영역 파일에서 키를 편집하면 다음과 같이 나타납니다.

dkim3._domainkey        IN      TXT     ("v=DKIM1; t=s; p=" 
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3"
"q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0"
"ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB")

DNS는이를 다음과 같이 반환합니다.

 bill:~$ host -t TXT dkim3._domainkey.systemajik.com
 dkim3._domainkey.systemajik.com descriptive text "v=DKIM1\; t=s\; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3" "q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0" "ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB"

DNS는이를 줄이 연결되는 추가 공백없이 하나의 긴 문자열로 취급합니다. 모든 " "시퀀스는 무시됩니다.


예를 들어 줄 수 있습니까? 이를 위해 나는 1 부와 2 부가 무엇인지 명확히하는 방법을 알 수 없습니다 .... #threadnecro
janw

1
@ janw 예제로 내 키 중 하나를 추가했습니다. 이 키는 1024 비트입니다.
BillThor

5
빠른 답변을위한 Tnx. 그러나이 키는 255 키에 맞습니다. 따라서 여전히 여러 키로 나누는 방법을 알지 못합니다.
janw

1
" "시퀀스 를 무시하는 것은 DNS가 아니며 실제로 마지막 인용에서 그것을 증명합니다. 그것은이다 SPF RFC 4408 연결이 SPF 확인을위한 DNS 레코드를 읽는 응용 프로그램에서 사용되어야한다고 정의 섹션 3.1.3.
Phil

3
@Alnitak이 경우 적용 가능한 RFC는 tools.ietf.org/html/rfc6376#section-3.6 입니다. 문자열은 공백없이 연결됩니다. SPF 및 기타 형식은 동일한 규칙에 따라 임의의 위치에 중단을 배치 할 수 있습니다. 가독성을 높이거나 레코드 크기를 제한하기 위해 수행 할 수 있습니다.
BillThor


1

pdn에 poweradmin UI를 사용하는 경우 입력 필드에 전체 dkim 문자열을 입력하면됩니다.

v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxtR3bw1Kbh1B7q4+5aWjTj2YEFwv230gcv+NMp4KouOSLdIr0mCMiwDZpY+7zCdks0zMXtz+F5TPij/NkSAxIKBbJqbIO3mvAhgeI0Vy5aQ5prwnIyXUj54po6AsXbv5Ud2tFbGSsdIhvWiC755d3WaFs8mdWFkpSxprlW6PobCzOWDayWGCvsNfHpjmTxHZinkd3TmLQqE/O6Nb1YnRwQwUCLioSyudV+5Bd2+rXZ2V9FYAOiK2aQi2aSTiUaLCVxft9H6xen3JDaKsuu43QMBrhydoJOCV2QaY82IxqE3GgZrlADu6YEOfotdwD2aA9GRwVB88GqdXL8HwgEGTbwIDAQAB

0

DNS가 TCP를 사용하기 때문에 레코드가 UDP 512 바이트 제한보다 큰 경우 괜찮습니다.

이는 사용자에게 투명해야하지만 때로는 버그가 많은 방화벽 어플라이언스 (예 : Cisco PIX / ASA)가 더 큰 쿼리를 필터링 / 차단합니다.


0

나는이 포스트가 고대라는 것을 알고 있지만, 오늘 "UltraDNS를 가진 DKIM 2048 비트 키"를 쿼리 할 때 발견했습니다. DNS 팀은 키를 따옴표로 묶고 공백을 두 부분으로 나누려고했습니다. 이로 인해 UltraDNS가 3 개의 패킷 (중앙에있는 패킷이 비어 있음)을 제공하여 일관성없는 유효성 검사 결과가 발생했습니다.

UltraDNS 제어판에서 나를 위해 일한 것은 여러 따옴표, 구분 기호 등없이 따옴표로 전체 레코드를 제출하는 것입니다. 예상대로 작동합니다.


-1

PowerDNS와 같은 DNS 백엔드로 MySQL / MariaDB를 사용하는 경우 컨텐츠 열의 크기를 조정할 수 있습니다.

기본 PowerDNS 컨텐츠 길이는 VARCHAR (255)입니다.

따라서 DKIM 서명은 255 자로 잘립니다.

이것을 고치기 위해

MySQL CLI / MariaDB CLI를 통해 컨텐츠 크기를 변경하십시오.

mysql -u root -p

USE powerdns;
alter table records modify column content text not null;

DNS 서비스를 다시 시작하십시오 (예 : PowerDNS)

service pdns restart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.