Làm cách nào để nhập khóa DKIM mạnh (dài) vào DNS?


19

Tôi đang cố gắng nhập khóa DKIM 4028 bit vào DNS và dường như tôi vượt quá cả giới hạn UDP 512 byte và cả kích thước bản ghi tối đa cho bản ghi TXT.

Làm thế nào để ai đó tạo đúng một khóa lớn (với kích thước được mã hóa lớn hơn) và nhập nó vào DNS?


Cần thêm chi tiết; phần mềm máy chủ DNS là gì?
JGurtz

1
Bạn đã xem xét cẩn thận kích thước chìa khóa của bạn? RFC tuyên bố: "Trình xác minh PHẢI có thể xác thực chữ ký bằng các khóa từ 512 bit đến 2048 bit và họ CÓ THỂ có thể xác thực chữ ký bằng các khóa lớn hơn." Vì vậy, chìa khóa dài của bạn có thể không được xác minh.
HTTP500

@JGurtz Chúng tôi đang sử dụng "UltraDNS", đây là một dịch vụ được lưu trữ.
goodguys_activate

@Jason - Chúng tôi có thể làm 2048, nhưng tôi nghĩ rằng độ dài bit có thể vượt quá giới hạn gói UDP.
goodguys_activate

1
Có lẽ bạn nên xem xét rằng các vấn đề bạn tạo ra thông qua việc sử dụng một khóa dài bất thường vượt xa các lợi thế mà bạn hy vọng đạt được từ nó.
John Gardeniers

Câu trả lời:


25

Bạn cần chia chúng trong trường văn bản. Tôi tin rằng 2048 là giới hạn thực tế cho các kích thước chính. Chia trường văn bản thành các phần 255 ký tự trở xuống. Có chi phí cho mỗi lần phân chia.

Có hai định dạng cho các trường dài.

TXT "phần một" \ "phần hai"

TXT ("phần một" "phần hai")

Cả hai sẽ kết hợp thành "một phần khởi động hai". Thêm chi tiết từ Zytrax.

Để tạo mục nhập dkim của tôi, tôi chèn tệp khóa công khai của mình và bọc nó trong dấu ngoặc kép.
Tệp khóa công khai của tôi chứa các mục sau:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

Sau khi chỉnh sửa khóa trong tệp vùng dns của tôi xuất hiện như sau:

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

DNS trả về nó như sau:

 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 coi nó như một chuỗi dài không có khoảng trắng thừa nơi các dòng được nối. Tất cả các " "trình tự được bỏ qua.


Bạn có thể cho một ví dụ? vì điều này tôi không thể tìm ra cách làm rõ phần 1 và phần 2 là gì .... #threadnecro
janw

1
@janw Tôi đã thêm một trong các khóa của mình làm ví dụ. Khóa này chỉ có 1024 bit.
BillThor

5
Tnx để trả lời nhanh chóng. Nhưng khóa này phù hợp với khóa 255. Vì vậy, tôi vẫn không hiểu làm thế nào bạn chia nó thành nhiều khóa.
janw

1
Nó không phải là DNS mà bỏ qua các " "chuỗi và bạn thực sự chứng minh điều đó trong trích dẫn cuối cùng của bạn. Đó là SPF RFC 4408 phần 3.1.3, định nghĩa rằng nên sử dụng phép nối với các ứng dụng đọc bản ghi DNS để xác thực SPF.
Phil

3
@Alnitak RFC áp dụng cho trường hợp này là tools.ietf.org/html/rfc6376#section-3.6 . Các chuỗi được nối mà không có khoảng cách giữa chúng. SPF và các định dạng khác tuân theo các quy tắc tương tự cho phép đặt các khoảng nghỉ tại các vị trí tùy ý. Điều này có thể được thực hiện để dễ đọc hoặc để giới hạn kích thước bản ghi.
BillThor

1

Nếu đó là Amazon Route 53 thì không nên sử dụng dòng mới (chỉ khoảng trắng) giữa các khối.

"do it" "this way"

"not like"
"this"

Xem /server//a/763871/80856


1

Nếu bạn sử dụng giao diện người dùng poweradmin cho pdns, bạn chỉ cần nhập toàn bộ chuỗi dkim vào trường đầu vào.

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

0

Sẽ ổn nếu bản ghi lớn hơn giới hạn 512 byte của UDP vì DNS sẽ sử dụng TCP.

Điều này cần được minh bạch cho người dùng, nhưng đôi khi các thiết bị tường lửa bị lỗi (như Cisco PIX / ASA) sẽ lọc / chặn các truy vấn lớn hơn này.


0

Tôi biết bài đăng này là cổ xưa, nhưng tôi đã tìm thấy nó ngày hôm nay khi truy vấn "khóa DKIM 2048 bit với UltraDNS." Nhóm DNS của tôi đã cố chia khóa thành hai phần với các trích dẫn xung quanh chúng và khoảng trắng ở giữa. Điều đó đã khiến UltraDNS phục vụ tối đa 3 gói (gói ở giữa trống), dẫn đến kết quả xác thực không nhất quán.

Điều làm việc cho tôi trong bảng điều khiển UltraDNS chỉ là gửi toàn bộ hồ sơ trong dấu ngoặc kép mà không có nhiều bộ dấu ngoặc kép, dấu phân cách, v.v. Hoạt động như mong đợi bây giờ.


-1

Nếu bạn đang sử dụng MySQL / MariaDB làm phụ trợ DNS, như PowerDNS, bạn có thể thay đổi kích thước cột nội dung của mình.

Độ dài nội dung PowerDNS mặc định là VARCHAR (255)

Vì vậy, chữ ký DKIM của bạn sẽ được cắt bớt thành 255 ký tự

để sửa lỗi này

chỉ cần thay đổi kích thước nội dung thông qua MySQL CLI / MariaDB CLI

mysql -u root -p

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

khởi động lại dịch vụ DNS của bạn (ví dụ PowerDNS)

service pdns restart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.