मैं DNS में एक मजबूत (लंबी) DKIM कुंजी कैसे दर्ज करूं?


19

मैं DNS में एक 4028 बिट DKIM कुंजी दर्ज करने का प्रयास कर रहा हूं और ऐसा लगता है कि मैं UDP 512 बाइट सीमा से अधिक है और एक TXT रिकॉर्ड के लिए अधिकतम रिकॉर्ड आकार भी।

कैसे कोई ठीक से एक बड़ी कुंजी (निहित बड़े एन्कोडेड आकार के साथ) बनाता है और इसे डीएनएस में आयात करता है?


अधिक विस्तार की आवश्यकता है; DNS सर्वर सॉफ्टवेयर क्या है?
18

1
क्या आपने ध्यान से अपने मुख्य आकार पर विचार किया है? RFC कहता है: "सत्यापनकर्ता 512 से 2048 बिट्स तक की कुंजियों वाले हस्ताक्षर को मान्य करने में सक्षम हो सकते हैं, और वे बड़ी कुंजी के साथ हस्ताक्षर सत्यापित करने में सक्षम हो सकते हैं।" इसलिए आपकी लंबी कुंजी सत्यापित नहीं हो सकती है।
HTTP500

@JGurtz हम "UltraDNS" का उपयोग कर रहे हैं यह एक होस्ट की गई सेवा है।
goodguys_activate

@ जैसन - हम 2048 कर सकते हैं, लेकिन मुझे लगता है कि बिट की लंबाई यूडीपी पैकेट सीमा से अधिक हो सकती है।
goodguys_activate

1
शायद आपको इस बात पर विचार करना चाहिए कि जिन समस्याओं से आप असामान्य रूप से लंबे समय तक दूर रहते हैं, उनके उपयोग से आपको जो लाभ प्राप्त होने की उम्मीद है, उससे आगे निकल जाते हैं।
जॉन गार्डनियर्स

जवाबों:


25

आपको उन्हें पाठ क्षेत्र में विभाजित करने की आवश्यकता है। मेरा मानना ​​है कि 2048 प्रमुख आकारों के लिए व्यावहारिक सीमा है। पाठ क्षेत्र को 255 वर्ण या उससे कम के भागों में विभाजित करें। प्रत्येक विभाजन के लिए ओवरहेड है।

लंबे क्षेत्रों के लिए दो प्रारूप हैं।

TXT "भाग एक" \ "भाग दो"

TXT ("भाग एक" "भाग दो")

जो दोनों "पार्ट ओनेपार्ट दो" के रूप में संयोजित होंगे। Zytrax से अधिक जानकारी

अपनी dkim प्रविष्टि बनाने के लिए मैं अपनी सार्वजनिक कुंजी फ़ाइल सम्मिलित करता हूं और इसे उद्धरण चिह्नों में लपेटता हूं।
मेरी सार्वजनिक कुंजी फ़ाइल में निम्नलिखित शामिल हैं:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

मेरे डीएनएस ज़ोन में कुंजी को संपादित करने के बाद फ़ाइल इस प्रकार दिखाई देती है:

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

डीएनएस इसे निम्नानुसार लौटाता है:

 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 बिट्स है।
बिलटोर

5
त्वरित उत्तर के लिए Tnx। लेकिन यह कुंजी 255 कुंजी में फिट होती है। इसलिए मुझे अभी भी नहीं मिला है कि आप इसे कई कुंजियों में कैसे विभाजित करते हैं।
जून १w ’रात

1
यह DNS नहीं है जो " "दृश्यों को अनदेखा करता है और आप वास्तव में अपने अंतिम उद्धरण में साबित करते हैं। यह एसपीएफ आरएफसी 4408 सेक्शन 3.1.3 है जो यह परिभाषित करता है कि एसपीएफ सत्यापन के लिए डीएनएस रिकॉर्ड को पढ़ने वाले अनुप्रयोगों द्वारा कॉन्फैनेटेशन का उपयोग किया जाना चाहिए।
फिल

3
@Alnitak इस मामले के लिए लागू RFC उपकरण है ।ietf.org/html/rfc6376#sl-3-3.6 । उनके बीच रिक्त स्थान के बिना स्ट्रिंग्स को समतल किया जाता है। एसपीएफ़ और अन्य प्रारूप समान नियमों का पालन करते हैं जिससे विराम को मनमाने स्थानों पर रखा जा सकता है। यह पठनीयता के लिए या रिकॉर्ड आकार को सीमित करने के लिए किया जा सकता है।
बिलथोर

1

यदि यह अमेज़ॅन रूट 53 है, तो विखंडू के बीच नईलाइन (केवल रिक्त स्थान) का उपयोग न करें।

"do it" "this way"

"not like"
"this"

Https://serverfault.com/a/763871/80856 देखें


1

यदि आप pdns के लिए पॉवरडैमिन यूआई का उपयोग करते हैं तो आप इनपुट क्षेत्र में संपूर्ण dkim स्ट्रिंग दर्ज कर सकते हैं।

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

0

यह ठीक है अगर रिकॉर्ड UDP 512-बाइट सीमा से अधिक है क्योंकि DNS टीसीपी का उपयोग करेगा।

यह उपयोगकर्ता के लिए पारदर्शी होना चाहिए, लेकिन कभी-कभी छोटी गाड़ी के फ़ायरवॉल उपकरण (जैसे सिस्को PIX / ASA) इन बड़े प्रश्नों को फ़िल्टर / ब्लॉक कर देंगे।


0

मुझे पता है कि यह पोस्ट प्राचीन है, लेकिन मुझे यह आज पता चला जब "DKD 2048 बिट कुंजी के साथ UltraDNS।" मेरी DNS टीम ने कुंजी को दो भागों में विभाजित करने का प्रयास किया था, उनके चारों ओर उद्धरण और बीच में एक स्थान। यह UltraDNS को 3 पैकेटों की सेवा करने के लिए प्रेरित कर रहा था (केंद्र में एक खाली था) जिसके कारण असंगत सत्यापन परिणाम सामने आए।

अल्ट्राडएनएस कंट्रोल पैनल में मेरे लिए जो काम किया गया, वह उद्धरणों के कई सेटों, सीमांकक आदि के बिना पूरे रिकॉर्ड को प्रस्तुत करने के लिए था।


-1

यदि आप अपने DNS बैकएंड के रूप में MySQL / MariaDB का उपयोग कर रहे हैं, तो PowerDNS की तरह आप अपनी सामग्री कॉलम का आकार बदल सकते हैं।

डिफ़ॉल्ट 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.