Powered by Blogger.

DNSSEC (DNS Security Extension) – Part 1

1) DNS :  DNS là một giao thức cho phép phân giải từ host name sang địa chỉ IP và ngược lại. Hoat động trên port 53, cấu trúc của DNS là cơ sở dữ liệu dạng cây thư mục. Bao gồm từ Top Level Domain (TLDs), Second Level Domain (SLDs), Sub Domain (Host).

DNS có 3 zone chính primary zone, secondary zone và stub zone. Dữ liệu của các zone được lưu trong một file gọi là zone file. Trong zone file chứa dữ liệu DNS, được thể hiện qua các record như SOA, A, CNAME, MX, NS, SRV.

2) DNSSEC :  Giao thức DNS thiếu hụt tính bảo mật do không có công cụ xác thực nguồn dữ liệu được trao đổi giữa máy chủ (DNS Server) và máy trạm (Client), hoặc quá trình chuyển tiếp (Forwarder) giữa máy chủ này đến máy chủ khác trong Domain. Trước nguy cơ dữ liệu DNS có thể bị giả mạo và làm sai lệch, DNSSEC ra đời để giải quyết vấn đề này.

DNSSEC (Domain Name System Security Extensions), là một giao thức mở rộng trên nền DNS, cung cấp khả năng chứng thực (Authentication) và đảm bảo dữ liệu được toàn vẹn (Integrity) cho hệ thống DNS.

Gồm 3 mục tiêu chính :
  • Sender Authentication : chứng thực dữ liệu cho quá trình gửi đi
  • Data Integrity: bảo vệ toàn vẹn dữ liệu trong quá trình truyền, giúp người nhận được đảm bảo dữ liệu không bị thay đổi.
  • Authenticated denial of existence: ngăn chặn kẻ tấn công, chúng phá hoại bằng cách tự động gửi xác nhận là không tồn tại dữ liệu mà Client truy vấn.

3) Ưu và nhược điểm của DNS

Giao thức DNS chống lại các loại tấn công như :
  • Cache Poisoning or cache pollution : ngăn chặn cố gắng tấn công và đầu độc Cache DNS Server.
  • Interference with DNS data on Secondary server : ngăn chặn attacker giả mạo làm DNS Primary Server để gửi các gói Update DNS qua cho các máy DNS Secondary Server để cập nhật.
  • Data interception : ngăn chặn kẻ tấn công can thiệp vào dữ liệu, khi dữ liệu đang được gửi đi. (Prevent Spoofing)
DNS spoofing (giả mạo) là 1 kiểu tấn nhằm mục đích giả mạo DNS server để dùng các thông tin giả mạo trả lời lại client. Tấn công giả mạo này, kẻ tấn công sẽ cố gắng đoán xem DNS client or DNS server có gửi 1 truy vấn DNS nào không hoặc ngồi đợi 1 DNS response. Từ đó, sau khi lắng nghe thì attacker sẽ insert 1 DNS response giả mạo vào DNS server’s cache, quá trình này được gọi là cache posoining (đầu độc cache DNS server). Việc giả mạo này làm cho các máy chủ DNS server thì không có cách nào chứng thực được DNS data là hợp pháp, và sẽ dùng các thông tin này trả lời (reply) lại cho các client. Một kẻ tấn công cũng có thể set Time-to-Live (TTL) trên dữ liệu DNS giả với 1 con số lớn, vì thế DNS server sẽ cache (lưu lại) đoạn DNS bị đầu độc này với khoảng thời gian dài (nhiều tiếng hoặc nhiều ngày).

Nhược điểm của DNS là chưa giải quyết được các vấn đề như : Packet Sniffing, DDoS Attack, Phishing and Pharming.

4) Cấu trúc của DNSSEC
Thay vì hệ thống DNS có 4 phần tử chính : Delegation, Zone file management, Zone file distribution, resolving. Thì giờ đây sẽ có thêm 2 phần tử đó là Zone File Signing và Verifying để trở thành DNSSEC.

a) Đối với quá trình Zone File Signing

Zone signing là nơi DNSSEC thực hiện ký (signing) cho các zone dữ liệu và các phần tử (record) trong zone dữ liệu đó. Bao gồm 4 loại bản ghi mới và mỗi bản ghi đều có thông số TTL (Time-To-Live) :
DNS Public Key (DNSKEY) : bằng cách dùng Public Key tạo ra DNSKEY và sử dụng DNSKEY để ký (signed) cho zone.
DNS Private Key (RRSIG) : sử dụng để ký (signed) cho các record trong zone, bằng cách chúng sẽ dùng private key để tạo ra một chữ ký số (RRSIG) và RRSIG này sẽ được thêm vào mỗi record trong zone.
NSEC (Next-Secure) : Authenticated denial of existence . Nếu client truy vấn 1 record trong DNS mà nó không có thì DNS server gửi trả lại là không tìm thấy record, nhưng việc này cũng cần phải được xác minh. NSEC record sẽ thực hiện nhiệm vụ này bằng cách tạo ra 1 chuỗi liên kết giữa các tài nguyên record lại với nhau. NSEC record sẽ được tạo ra và trong mỗi NSEC record đều có 1 Pointer chỉ tới NSEC record kế tiếp. NSEC record cuối cùng sẽ được trỏ tới NSEC record đầu tiên. (Như hình trên)
DS (Delegation Signer) : mỗi child domain (child zone – tphcm.huypd.com) sẽ tạo ra một DS để gửi lên Parent Zone (Forest zone – huypd.com). DS này chứa DNSKEY của child zone đó. Dùng để thiết lập chứng thực giữa các zone trong Forest, thường dùng cho việc forwarder hoặc transfer zone. 

b) Đối với quá trình Verifying


1) Khi client gửi truy vấn tìm kiếm địa chỉ www.tphcm.huypd.com tới Local DNS Server.

2) Local Server sẽ đi đến các Root Server để hỏi domain huypd.com và Root Server sẽ hướng dẫn Local Server đi đến trực tiếp Authoritative DNS Server của domain huypd.com cần tìm.

3) Sau đó Local DNS Server sẽ đến Authoritative DNS Server huypd.com để hỏi DNS Server tphcm.huypd.com, DNS Server huypd.com sẽ hướng dẫn Local DNS Server đi đến thẳng Authoritative DNS Server chịu trách nhiệm domain tphcm.huypd.com

4) Local DNS Server abc.com tiếp tục đến DNS Server tphcm.huypd.com để hỏi địa chỉ www.tphcm.huypd.com

5) Lúc này DNS Server sẽ kiểm tra trong zone và thấy có record www, DNS Server sẽ trả lời lại Local DNS Server abc.com bằng gói tin DNS Response bao gồm địa chỉ IP, DNSKEY, RRSIG.

6) Sau khi Local DNS Server nhận được gói DNS Response, lúc này nó cần phải kiểm tra xem dữ liệu DNS Response có phải đúng DNS Server tphcm.huypd.com gửi hay không ? Bằng cách đi lên Parent zone (tức DNS Server huypd.com) để xin số Delegation Signer (DS).

7) DNS Server huypd.com sẽ gửi số DS về cho Local DNS Server abc.com.

8) Sau khi nhận được DS, Local DNS Server abc.com lấy số DNSKEY trong gói tin DNS Response đem đi Hash với DS. Và ra một giá trị Hash 1.

9) Tiếp tục, Local DNS Server lấy DNSKEY và RRSIG đem đi Hash và ra một giá trị Hash 2

10) Lấy HASH 1 so sánh với HASH 2 xem có bằng nhau không, nếu bằng nhau thì dữ liệu là chính xác. Sau đó Local DNS Server sẽ xét các thông tin trong RRSIG (bao gồm thời gian RRSIG, Time To Live).

11) Sau khi đã xác minh, lúc này dữ liệu đã hoàn toàn chính xác, Local DNS Server trả về cho Client truy vấn.

5) Các thành phần khác của DNSSEC

  • Trust anchor : Trust anchor là DNSKEY và DS được cấu hình bằng tay và được ép vào 1 zone cụ thể nào đó. Nếu DNS server đang chạy trên Domain controller, trust anchors sẽ được lưu ở partition trong Active Directory Domain Services (AD DS) và có thể được replicate (nhân) sang tất cả các DC/ADC (Authoritative DNS Server) khác trong domain. Còn nếu trên một máy chủ DNS độc lập, trust anchor sẽ được lưu và đặt tên file là TrustAnchor.dns . Một DNS server chạy trên Windows Server 2012 sẽ cho phép người quản trị cấu hình trust anchor trong DNS Manager (phần Trust Point). Lưu ý : các máy DNS Server nào là Non-authoritative DNS Server thì lúc Re-sign hoặc Re-new DNSKEY (DS), bạn phải update bằng tay lại cho chúng.
  • Key rollover : tạo key, lưu trữ key,gia hạn key, làm mới key được Key rollover quản lý. Trong Windows Server 2012, Active Directory sẽ được lưu trữ và làm nhiệm vụ replicate, và tự động rollover.
  • DNS Aware : để có thể dùng tính năng DNSSEC, Client và Server phải kích hoạt tính năng truy vấn DNS bằng giao thức DNSSEC. Thường các Client hỗ trợ DNSSEC (Windows 7/8/8.1), đối với Windows Server là WS 2008 R2/2012/2012 R2.
  • Key Master : Public Key Và Private Key là do Key Master tạo ra dựa trên các thuật toán Cryptographic Algorithm. Mỗi một zone sẽ được một Key Master quản lý. Key master có thể nằm bất kỳ máy DC/ADC (Authoritative DNS Server) trong domain.
    Blogger Comment
    Facebook Comment