DNS'ye nasıl güçlü (uzun) bir DKIM anahtarı girebilirim?


19

DNS'ye 4028 bit DKIM anahtarı girmeye çalışıyorum ve hem UDP 512 bayt sınırını hem de bir TXT kaydı için maksimum kayıt boyutunu aştığım anlaşılıyor.

Birisi nasıl büyük bir anahtarı (zımni daha büyük kodlanmış boyutta) düzgün bir şekilde oluşturur ve DNS'ye alır?


Daha fazla ayrıntıya ihtiyacınız var; DNS sunucusu yazılımı nedir?
JGurtz

1
Anahtar boyutunuzu dikkatlice düşündünüz mü? RFC şunları söylüyor: "Doğrulayıcılar imzaları 512 bit ile 2048 bit arasında değişen anahtarlarla doğrulamalıdır ZORUNLU ve imzaları daha büyük anahtarlarla doğrulayabilirler." Bu nedenle uzun anahtarınız doğrulanamayabilir.
HTTP500

@JGurtz Barındırılan bir hizmet olan "UltraDNS" kullanıyoruz.
goodguys_activate

@Jason - 2048 yapabiliriz, ancak bit uzunluğunun UDP paket sınırını aşabileceğini düşünüyorum.
goodguys_activate

1
Belki de alışılmadık derecede uzun bir anahtar kullanarak yarattığınız sorunların, ondan kazanmayı umduğunuz avantajlardan çok daha ağır bastığını düşünmelisiniz.
John Gardeniers

Yanıtlar:


25

Bunları metin alanına bölmeniz gerekir. 2048'in kilit boyutlar için pratik sınır olduğuna inanıyorum. Metin alanını 255 veya daha az karakter içeren bölümlere ayırın. Her bölme için ek yük vardır.

Uzun alanlar için iki format vardır.

TXT "birinci bölüm" \ "ikinci bölüm"

TXT ("birinci bölüm" "ikinci bölüm")

Her ikisi de "ikinci bölüm" olarak birleştirilecek. Zytrax'tan daha fazla detay .

Dkim girdimi oluşturmak için ortak anahtar dosyamı ekler ve tırnak işaretleri içine alırım.
Ortak anahtar dosyam aşağıdakileri içerir:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

Dns bölge dosyamdaki anahtarı düzenledikten sonra aşağıdaki gibi görünür:

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

DNS aşağıdaki gibi döndürür:

 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, satırların birleştirildiği fazladan boşluk olmadan uzun bir dize olarak davranır. Tüm " "diziler yok sayılır.


Bir örnek verebilir misiniz? bunun için nasıl bölüm 1 ve bölüm 2 açıklığa kavuşturmak nasıl anlayamıyorum .... #threadnecro
janw

1
@janw Anahtarlarımdan birini örnek olarak ekledim. Bu anahtar sadece 1024 bittir.
BillThor

5
Hızlı cevap için Tnx. Ancak bu anahtar 255 tuşa sığar. Bu yüzden hala birden fazla tuşa nasıl bölündüğünü anlamıyorum.
janw

1
" "Dizileri yok sayan DNS değildir ve aslında bunu son alıntıda kanıtlarsınız. Öyle SPF RFC 4408 birleştirme SPF doğrulama için DNS kayıtlarını okuyarak uygulamalar tarafından kullanılması gerektiğini tanımlar bölüm 3.1.3.
Phil

3
@Alnitak Bu vaka için geçerli RFC, tools.ietf.org/html/rfc6376#section-3.6'dır . Dizeler aralarında boşluk olmadan birleştirilir. SPF ve diğer formatlar, aralara keyfi konumların yerleştirilmesine izin veren aynı kuralları uygular. Bu, okunabilirlik veya kayıt boyutunu sınırlamak için yapılabilir.
BillThor


1

Pdns için poweradmin kullanıcı arayüzünü kullanırsanız, girdi alanına tüm dkim dizesini girebilirsiniz.

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

0

DNS, TCP kullanacağından kayıt UDP 512 bayt sınırını aşıyorsa sorun olmaz.

Bu kullanıcı için şeffaf olmalıdır, ancak bazen buggy güvenlik duvarı cihazları (Cisco PIX / ASA gibi) bu daha büyük sorguları filtreleyecektir / engelleyecektir.


0

Bu yazının eski olduğunu biliyorum, ancak bugün "UltraDNS ile DKIM 2048 bit anahtarını" sorgularken buldum. DNS ekibim, anahtarı tırnak içinde ve aralarında boşluk bulunan iki parçaya ayırmaya çalıştı. Bu, UltraDNS'nin 3 paket (ortadaki boş) sunmasına neden oluyordu ve bu da tutarsız doğrulama sonuçlarına neden oldu.

UltraDNS kontrol panelinde benim için işe yarayan şey, tüm kaydı birden fazla tırnak seti, sınırlayıcı vb. Olmadan tırnak içinde sunmaktı. Şimdi beklendiği gibi çalışıyor.


-1

MySQL / MariaDB'yi DNS arka ucunuz olarak kullanıyorsanız, PowerDNS gibi içerik sütununuzu yeniden boyutlandırabilirsiniz.

Varsayılan PowerDNS içerik uzunluğu VARCHAR'dır (255)

Böylece DKIM imzanız 255 karaktere kesilecek

bunu düzeltmek için

içerik boyutunu MySQL CLI / MariaDB CLI ile değiştirin

mysql -u root -p

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

DNS Hizmetinizi yeniden başlatın (örn. PowerDNS)

service pdns restart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.