SECURITY VALIDATION

Kiểm thử DNSSEC validation: KSK/ZSK rollover, stale cache và clock skew

22/9/2026 · 16 phút

Minh họa: Chuỗi tin cậy từ DNSSEC tới validating resolver. Ảnh AI, không phải kết quả đo.
Mục lục bài viết 10 phần

DNSSEC có thể cấu hình “đúng” ở authoritative server nhưng vẫn gây SERVFAIL khi DS/DNSKEY không khớp, chữ ký hết hạn, cache giữ dữ liệu cũ hoặc clock lệch. Test plan phải kiểm cả chain of trust từ parent tới child, hành vi validating resolver, negative answer và quá trình rollover dưới cache thật.

ĐỌC NHANH

Bài viết giúp bạn

  • Câu hỏi kỹ thuật cần trả lời
  • Topology và vùng thử nghiệm
  • Biến số phải kiểm soát
Tùy chỉnh đọc
01

Câu hỏi kỹ thuật cần trả lời

#

Bài kiểm thử cần chứng minh resolver xây được chain of trust, xác minh đúng RRSIG, xử lý DS/DNSKEY mismatch, trả kết quả phù hợp cho tên tồn tại và không tồn tại, và không âm thầm bỏ validation khi lỗi. Với rollover, cần biết cache ở các lớp nhìn thấy khóa/chữ ký mới theo thứ tự an toàn hay không.

RFC 4033–4035 định nghĩa kiến trúc và protocol DNSSEC. RFC 6781 cung cấp cân nhắc vận hành key rollover; RFC 5011 mô tả tự động cập nhật trust anchor. Đây là cơ sở, nhưng policy resolver, serve-stale và negative caching cần đối chiếu sản phẩm/version.

02

Topology và vùng thử nghiệm

#

Dùng zone lab riêng có parent kiểm soát được, authoritative chính/phụ, một validating resolver, một resolver không validate để đối chứng, client generator và network emulator. Nếu không thể điều khiển parent, dùng delegated subdomain nội bộ hoặc signed test hierarchy; không thực nghiệm rollover tùy tiện trên domain production.

Chuẩn bị record A/AAAA/CNAME/MX, wildcard, NXDOMAIN, NODATA và delegation. Tạo trạng thái secure, insecure và bogus có chủ đích: RRSIG sai/hết hạn, DS không khớp, DNSKEY thiếu, NSEC/NSEC3 không hợp lệ. Mỗi artifact phải có serial, TTL và timestamp.

Minh họa: Các điểm kiểm tra DS, DNSKEY và chữ ký dữ liệu DNS. Ảnh AI, không phải kết quả đo.
Minh họa: Các điểm kiểm tra DS, DNSKEY và chữ ký dữ liệu DNS. Ảnh AI, không phải kết quả đo.
03

Biến số phải kiểm soát

#

Khóa algorithm, key size, KSK/ZSK role, TTL, signature inception/expiration, SOA minimum, DS digest, NSEC/NSEC3, negative TTL, resolver policy, serve-stale và clock. Ghi rõ authoritative software, signer, resolver build và trust anchor.

Cache là biến số trung tâm. Chạy cold-cache và warm-cache; không flush cache giữa mọi bước rollover nếu mục tiêu là mô phỏng Internet thật. Đồng bộ clock trước baseline; chỉ inject clock skew trong VM/container lab.

  • Biến số: Key/algorithm · Cần ghi: KSK/ZSK, tag, thuật toán · Tác động: Validation và interoperability
  • Biến số: TTL · Cần ghi: DNSKEY, DS, RRset, negative · Tác động: Cửa sổ cache/rollover
  • Biến số: Signature · Cần ghi: inception/expiration · Tác động: Chấp nhận theo thời gian
  • Biến số: Resolver · Cần ghi: version, policy, trust anchor · Tác động: SERVFAIL/EDE/fail-open
  • Biến số: NSEC/NSEC3 · Cần ghi: mode, iterations/salt · Tác động: Authenticated denial
  • Biến số: Transport · Cần ghi: UDP/TCP, EDNS buffer · Tác động: Fragmentation/fallback
04

KPI và bằng chứng đầu ra

#

Đo tỷ lệ answer đúng, SERVFAIL/timeout, validation latency p50/p95/p99, cache hit, số query upstream, TCP fallback và thời gian phục hồi sau sửa lỗi. Theo dõi AD bit và Extended DNS Error nếu resolver hỗ trợ, nhưng không dùng AD bit đơn lẻ thay cho packet/log evidence.

Bằng chứng gồm zone file/signer config, DNSKEY/DS/RRSIG/NSEC response, packet capture, resolver validation log, cache state, clock và change timeline. Lưu dig +dnssec từ nhiều resolver chỉ là một phần; cần authoritative response và parent delegation để tìm nguyên nhân.

05

Ma trận trạng thái DNSSEC

#
  • Ca: DNS-01 · Trạng thái: Chain secure · Kỳ vọng: Answer + validation · Bằng chứng: RRset, RRSIG, DS/DNSKEY, log
  • Ca: DNS-02 · Trạng thái: Zone unsigned đúng delegation · Kỳ vọng: Insecure theo policy · Bằng chứng: absence DS, answer
  • Ca: DNS-03 · Trạng thái: DS/DNSKEY mismatch · Kỳ vọng: Bogus/SERVFAIL · Bằng chứng: parent DS, child key, EDE/log
  • Ca: DNS-04 · Trạng thái: RRSIG hết hạn/chưa hiệu lực · Kỳ vọng: Bị từ chối · Bằng chứng: clock, inception/expiration
  • Ca: DNS-05 · Trạng thái: NXDOMAIN/NODATA signed · Kỳ vọng: Authenticated denial đúng · Bằng chứng: NSEC/NSEC3 proof
  • Ca: DNS-06 · Trạng thái: UDP lớn/fragment loss · Kỳ vọng: TCP fallback hoặc outcome rõ · Bằng chứng: PCAP, retry, latency
  • Ca: DNS-07 · Trạng thái: Cache cũ trong rollover · Kỳ vọng: Không tạo outage ngoài kế hoạch · Bằng chứng: TTL/cache timeline
  • Ca: DNS-08 · Trạng thái: Resolver upstream outage · Kỳ vọng: Stale theo policy, không bỏ validation · Bằng chứng: stale age, log, answer
06

Test plan chain of trust và negative answer

#

Bắt đầu từ trust anchor, lấy DNSKEY và DS ở từng delegation, xác minh key tag/digest và RRSIG. Thử record bình thường, CNAME chain và wildcard. Sau đó tạo từng lỗi độc lập: sai DS, thiếu DNSKEY, sửa RRset không ký lại, chữ ký sai và unsupported algorithm theo phạm vi lab.

Với tên không tồn tại, kiểm NXDOMAIN và NODATA có proof NSEC/NSEC3 hợp lệ, wildcard synthesis đúng và không lộ khác biệt bất thường giữa authoritative chính/phụ. Đo amplification và CPU nếu query NSEC3 tốn chi phí, nhưng không biến test thành DoS.

07

Test plan KSK/ZSK rollover

#

Với ZSK, publish khóa mới trước khi dùng ký theo kế hoạch; giữ chữ ký/khóa cũ đủ lâu cho cache. Với KSK, phối hợp DNSKEY và DS ở parent. Tại mỗi bước, truy vấn từ resolver cold/warm cache và nhiều thời điểm TTL. Đo tỷ lệ SERVFAIL và xác định tổ hợp cache nào gây lỗi.

Thực hiện cả rollback: nếu DS mới publish nhưng key tương ứng thiếu, quy trình nào khôi phục nhanh nhất; ai có quyền thay DS; log/approval ở đâu. Không dựa vào “đợi TTL” nếu chưa đo TTL thực tế và propagation ở parent.

Minh họa: Phối hợp thay khóa DNSSEC với vòng đời cache. Ảnh AI, không phải kết quả đo.
Minh họa: Phối hợp thay khóa DNSSEC với vòng đời cache. Ảnh AI, không phải kết quả đo.
08

Test plan stale cache, clock skew và outage

#

Giữ cache cũ có chủ đích rồi thay key/signature, quan sát validation trước và sau TTL. Nếu resolver hỗ trợ serve-stale, inject authoritative timeout; kiểm stale answer vẫn có trạng thái/chữ ký hợp lệ theo policy và không bị phục vụ vô thời hạn. Lặp với UDP fragment loss để quan sát EDNS size và TCP fallback.

Lệch clock resolver quanh signature inception/expiration trong môi trường lab. Ghi outcome và recovery sau NTP trở lại. Down một authoritative, tạo response khác serial giữa primary/secondary và kiểm resolver không nhận tổ hợp RRset/chữ ký không nhất quán kéo dài.

Serve-stale không được coi chữ ký hết hạn là bằng chứng secure còn hợp lệ. Cần phân biệt TTL hết hạn với RRSIG expiration và kiểm policy validator. UDP timeout do fragment loss không bảo đảm mọi resolver tự chuyển TCP; đo retry/fallback thực tế. Clock skew nên được chèn trong VM hoặc bằng cơ chế được hỗ trợ, không thay giờ host dùng chung qua container.

09

Giới hạn kết luận

#

Kết quả chỉ áp dụng cho zone, resolver, algorithm, TTL, signer và network path đã đo. Public resolver có policy, trust-anchor update và serve-stale riêng. Một test qua một resolver không chứng minh toàn bộ người dùng.

DNSSEC bảo vệ tính xác thực/toàn vẹn dữ liệu DNS, không mã hóa nội dung và không bảo đảm endpoint an toàn. Không diễn giải validation pass thành bảo mật ứng dụng end-to-end.

10

Khái niệm cần nhớ

#
  • DNSKEY: Public key được publish trong zone.
  • DS: Digest ở parent liên kết delegation với key của child.
  • RRSIG: Chữ ký cho một RRset.
  • KSK/ZSK: Vai trò khóa ký DNSKEY và các RRset khác theo mô hình vận hành.
  • Bogus: Dữ liệu đáng lẽ secure nhưng validation thất bại.
  • NSEC/NSEC3: Bằng chứng có xác thực cho tên/record không tồn tại.
  • Trust anchor: Điểm tin cậy khởi đầu của validator.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

Security efficacy
Mức độ phát hiện hoặc ngăn chặn đúng nội dung kiểm thử trong phạm vi đã xác định.
Goodput
Lưu lượng ứng dụng hữu ích tới đích, không tính phần truyền lại hoặc overhead không tạo giá trị.
False positive
Lưu lượng hợp lệ bị nhận diện hoặc xử lý nhầm như một mối đe dọa.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo5 nguồn

Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.

Nguyên tắc biên tập

NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.

Thông số và khả năng sản phẩm có thể thay đổi theo phiên bản. Hãy đối chiếu tài liệu chính thức trước khi xây dựng cấu hình hoặc tiêu chí nghiệm thu.
BẮT ĐẦU TỪ BÀI TOÁN

Cần chuyển kiến thức thành test plan?

Chia sẻ mục tiêu, topology và ràng buộc kỹ thuật. NetVali sẽ cùng bạn xác định bài đo phù hợp.

Trao đổi yêu cầu kỹ thuật