Một số giải pháp tăng cường an toàn, bảo mật cho hệ thống DNS (phần 1)

03/11/2015 21:42
Theo dõi ICTVietnam trên

Một số người đã làm việc với IPv4 nhiều năm có thể cho rằng họ dễ dàng nhớ và truy nhập các máy tính trực tiếp qua địa chỉ IPv4 bằng bốn cụm chữ số cách nhau bởi dấu chấm. Tuy nhiên với IPv6, do không gian địa chỉ quá lớn (mỗi địa chỉ IPv6 gồm 128 bit, gấp 4 lần chiều dài của địa chỉ IPv4) và định dạng hexa là quá phức tạp nên việc ghi nhớ, truy vấn bằng địa chỉ IP - giải pháp mà trước đây đã rất hạn chế sử dụng - thì nay càng không còn khả thi.

1. Đặt vấn đề

Trước tình trạng cạn kiệt địa chỉ Internet IPv4, thế hệ địa chỉ mới IPv6 đã được đưa vào sử dụng nhằm đáp ứng nhu cầu về địa chỉ, duy trì hoạt động ổn định của Internet cũng như để phát huy các thế mạnh về công nghệ vượt trội của IPv6 so với IPv4. Một số người đã làm việc với IPv4 nhiều năm có thể cho rằng họ dễ dàng nhớ và truy nhập các máy tính trực tiếp qua địa chỉ IPv4 bằng bốn cụm chữ số cách nhau bởi dấu chấm. Tuy nhiên với IPv6, do không gian địa chỉ quá lớn (mỗi địa chỉ IPv6 gồm 128 bit, gấp 4 lần chiều dài của địa chỉ IPv4) và định dạng hexa là quá phức tạp nên việc ghi nhớ, truy vấn bằng địa chỉ IP - giải pháp mà trước đây đã rất hạn chế sử dụng - thì nay càng không còn khả thi. Vì thế, hệ thống tên miền trở nên quan trọng hơn bao giờ hết và là giải pháp duy nhất được sử dụng để truy nhập các máy tính, thay thế cho thói quen sử dụng địa chỉ IP. Hay nói cách khác, khi chuyển đổi dần sang IPv6, số lượng các host trên Internet ngày một tăng nhanh và nhu cầu sử dụng tên miền sẽ còn tiếp tục gia tăng với số lượng lớn trong thời gian tới. Chính vì vậy, vấn đề đảm bảo an toàn, ổn định cho hệ thống máy chủ tên miền (DNS), đặc biệt trong giai đoạn phát triển dịch vụ đa dạng và trong thời kỳ chuyển đổi sang IPv6 này cần phải được đặt lên mức ưu tiên hàng đầu trong thiết kế, vận hành các mạng Internet.

2. Mô hình quản lý, truy vấn thông tin tên miền qua hệ thống DNS

Theo thiết kế, hệ thống máy chủ tên miền DNS được tổ chức thống nhất, rộng khắp trên phạm vi toàn cầu và được phân thành từng cấp khác nhau. Cấp cao nhất là tầng Root gồm 13 máy chủ DNS, bên dưới trực tiếp là các máy chủ quản lý, lưu giữ tên miền cấp cao mã quốc gia (ccTLD - dạng như .vn, .jp, .us,...)các máy chủ quản lý, lưu giữ tên miền cấp cao quốc tế dùng chung (gTLDdạng n.com,.org,.net,.info,..). Dưới các cấp này còn có những máy chủ tên miền con (cấp 2, cấp 3,...). Ở mỗi cấp đều bao gồm một máy chủ DNS chính (Primary DNS) và các máy chủ phụ (máy thứ cấp - Secondary/Slave). Theo cách quản lý thông thường, thông tin dữ liệu tên miền được lưu trữ trong các zone file và được người quản trị cập nhật vào máy chủ DNS chính thông qua chuẩn cập nhật dữ liệu động (Dynamic Update), sau đó dữ liệu tên miền được cập nhật đồng bộ xuống các máy chủ DNS thứ cấp. Để giảm tải truy vấn và giảm thời gian trễ truy vấn cho các máy trạm (Resolver), quá trình tìm kiếm và trả lời thường được thực hiện thông qua một máy chủ đệm (DNS Caching). Đối với các tên miền cấp thấp hơn (theo cấu trúc phân tầng DNS) sẽ được chuyển giao xuống cho các máy chủ Delegate DNS.

3. Các nguy cơ ảnh hưởng đến an toàn của hệ thống DNS

Theo thời gian, Internet càng phát triển, các dịch vụ trao đổi thông tin cơ sở mạng Internet được sử dụng ngày càng đa dạng, phong phú. Điều này cũng dẫn đến lượng truy vấn DNS tăng cao, các hành vi thâm nhập trái phép, tấn công lợi dụng DNS sẽ ngày càng nhiều hơn. Trong suốt quá trình khai thác, vận hành hệ thống DNS, từ việc cập nhật dữ liệu vào hệ thống, đồng bộ dữ liệu giữa các máy chủ DNS cho đến các quá trình tìm kiếm và trả lời thông tin yêu cầu của các máy trạm đều có thể xảy ra những lỗ hổng bảo mật mà giao thức DNS thông thường không thể đáp ứng được. Nếu không có hệ thống xác thực, việc cập nhật dữ liệu vào hệ thống sẽ có nguy cơ bị giả mạo quyền cập nhật thông tin. Quá trình đồng bộ dữ liệu giữa các máy DNS thứ cấp và máy chủ DNS chính cũng có nhiều khả năng sẽ bị can thiệp chen ngang. Các máy trạm hoàn toàn có khả năng sẽ bị can thiệp làm chuyển hướng, gửi thông tin và nhận thông tin tìm kiếm đến một máy chủ DNS Caching giả, điều này sẽ dẫn đến thông tin yêu cầu không có được kết quả chính xác [1].

Khởi điểm của hệ thống DNS được xây dựng với mục tiêu chủ yếu là để đáp ứng trả lời ngay được yêu cầu thông tin định tuyến về tên miền. Vì vậy thiết kế của hệ thống DNS ban đầu khá đơn giản. Việc xác thực quyền truy cập, đồng bộ dữ liệu vào máy chủ chính thường được hạn chế qua địa chỉ IP của các máy chủ DNS thứ cấp. Tuy nhiên, theo thời gian, các hệ thống này đã được xây dựng, củng cố theo hướng dần hoàn thiện hơn nhằm đáp ứng các nhu cầu bảo mật. Các tổ chức nghiên cứu, các nhà cung cấp thiết bị, phần mềm đã tập trung nghiên cứu và công bố các chuẩn về DNS, nâng cấp các phiên bản phần mềm DNS, vá các lỗi bảo mật được phát hiện để đảm bảo an ninh, an toàn cho hệ thống. Nhưng đối với đa số các hệ thống DNS, hiện tại vẫn chưa thiết lập được một cơ chế xác thực cho quá trình kết nối, truy nhập dữ liệu, do đó khả năng có lỗ hổng bảo mật, bị giả mạo gói tin do thiếu vắng quyền xác thực là hoàn toàn có thể xảy ra như một số trường hợp đã được cảnh báo trong thời gian vừa qua.

4. Công nghệ bảo mật DNSSEC (DNS Security Extensions)

Ngoài việc thiết lập phương thức đảm bảo an toàn cho các máy chủ DNS qua thiết bị mạng (Firewall, Router), cấu hình hạn chế địa chỉ IP, quản lý quyền truy nhập vào hệ thống; Một trong những biện pháp hiệu quả nhất trong thời điểm hiện tại để giải quyết vấn đề nêu trên là sử dụng công nghệ DNSSEC.

Để tránh nguy cơ dữ liệu DNS bị giả mạo và bị làm sai lệch trong các tương tác giữa máy chủ DNS với các máy trạm, hoặc giữa các máy chủ với nhau do không có công cụ để xác thực nguồn dữ liệu, DNSSEC sẽ cung cấp một cơ chế xác thực giữa các máy chủ DNS với nhau và xác thực cho từng zone dữ liệu theo chuẩn TSIG (Transaction Signature). Cơ chế xác thực bằng TSIG dựa trên cấu hình trên các máy chủ DNS thông qua việc chia sẻ mã xác thực, đảm bảo giao tiếp giữa các máy chủ DNS phải là chính xác, trong đó:

- Cung cấp khả năng uỷ quyền cập nhật dữ liệu động (Dyanmic Update). Chỉ có nguồn dữ liệu được xác nhận bằng cặp mã hóa TSIG mới được cập nhật dữ liệu.

- Xác thực việc bắt tay, kết nối giữa máy truyền và máy nhận dữ liệu (zone tranfer), giao tiếp giữa máy chủ chính và các máy chủ thứ cấp.

Việc thiết lập các phương thức xác thực toàn vẹn dữ liệu trên DNSSEC sẽ đảm bảo an toàn, chính xác cho từng zone dữ liệu. Zone sẽ được ký mã hóa, và trong suốt quá trình trao đổi thông tin thì chỉ các yêu cầu truy vấn zone xuất phát từ các máy chủ đã được cấp mã tương ứng mới được quyền trao đổi, nhận và trả lời thông tin. Ngoài ra việc xác thực cho các máy chủ DNS chuyển giao bằng chuỗi xác thực cũng sẽ được áp dụng để có thể đảm bảo được quá trình chuyển giao các tên miền (Delegate) từ các máy chủ tên miền cấp cao (cha) xuống các máy chủ quản lý tên miền cấp thấp (con) là an toàn. Khi đó máy chủ tên miền cha phải ký xác thực cho dữ liệu chuyển giao và chỉ ra rằng mã nào của máy chủ tên miền con sẽ có thể được chuyển giao. Kèm theo là một chuỗi các xác thực cho quá trình chuyển giao dữ liệu. Vì vậy các định nghĩa của việc thay đổi mã theo chu kỳ sẽ đảm bảo cho mã tạo ra được an toàn.

Như vậy, về thực chất, DNSSEC là công nghệ an toàn mở rộng cho DNS dựa trên các nền tảng sẵn có của hệ thống DNS. Bản chất của DNSSEC là cung cấp các cơ chế có khả năng chứng thực và đảm bảo toàn vẹn dữ liệu cho DNS trên cơ sở hạ tầng mã hóa khóa công khai. Theo đó DNSSEC đưa ra 4 loại bản ghi mới, bao gồm: Bản ghi khóa công cộng (DNSKEY); Bản ghi chữ ký tài nguyên (RRSIG - Resource Record Signature); Bản ghi bảo mật kế tiếp (NSEC - Next Secure) và bản ghi ký ủy quyền (DS - Delegation Signer). Một vùng (zone) được ký xác thực sẽ chứa đựng một trong các bản ghi RRSIG, DNSKEY, NSEC và DS[2]. Trong đó:

- Bản ghi DNSKEY được dùng để chứng thực cho zone dữ liệu. Nó chứa đựng cặp khóa công khai để gán và chứng thực cho các bản ghi tài nguyên trong zone dữ liệu đó, một máy trạm resolver có thể sử dụng mã hóa khóa công khai này để xác nhận tính hợp lệ của các bản ghi tài nguyên trong zone dữ liệu, qua đó để xác thực thông tin nhận về.

- Bản ghi RRSIG sử dụng chứng thực cho các bản ghi tài nguyên trong zone dữ liệu DNS. RRSIG xuất hiện trong cả zone cha và zone con và xác thực cho bất kỳ nơi nào trong zone mà nó chứa đựng bản ghi RRSIG. Với hình thức dùng mã hóa khóa công khai để gán và chứng thực tập bản ghi DNS, chữ ký điện tử được lưu trong bản ghi RRSIG và được dùng trong qui trình chứng thực DNSSEC. Một bộ kiểm tra có thể dùng những bản ghi RRSIG để chứng thực tập bản ghi trong zone.

- Bản ghi DS thiết lập chứng thực giữa những zone DNS, sử dụng trong việc ký xác thực trong quá trình chuyển giao từ DNS cha với DNS con. Tập bản ghi DS có thể chứa đựng nhiều bản ghi, mỗi bản ghi tham chiếu một khóa công khai trong vùng con được dùng để xác thực những những bản ghi RRSIG trong vùng đó. Một bản ghi DS phải trỏ tới một bản ghi DNSKEY, và tập bản ghi DNSKEY của tên miền con phải được gán bởi những khóa riêng tương ứng.

- Tập bản ghi NSEC sử dụng trong quá trình xác thực đối với các bản ghi tài nguyên hoặc bản ghi CNAME, kết hợp với bản ghi RRSIG để xác thực cho zone dữ liệu. Vì mọi tập bản ghi trong một vùng phải được bảo vệ bởi chữ ký điện tử, các bản ghi RRSIG phải được biểu diễn cho những tên miền chứa một bản ghi CNAME. Đây là một thay đổi so với chuẩn tên miền truyền thống, nó chỉ ra rằng nếu một CNAME được biểu diễn cho một tên miền thì đây là kiểu duy nhất cho phép tại thời điểm này. Một bản ghi RRSIG và NSEC phải tồn tại cho cùng tên với bản ghi CNAME trong một vùng.

Để ký một zone, người quản trị zone sẽ tạo một hay nhiều cặp khóa công khai/khóa riêng (public/private key) trong đó khóa công khai dùng cho zone chính và khóa riêng để ký cho những bản ghi cần xác thực trong zone. Mỗi zone phải thêm một bản ghi DNSKEY (zone DNSKEY RR) chứa đựng khóa công khai tương ứng, và mỗi khóa riêng được dùng để tạo bản ghi RRSIG trong zone.

Trừ bản ghi NSEC, còn lại cấu trúc các bản ghi khác trong DNSSEC đều bao gồm một trường đặc biệt, đó là trường thuật toán (Algorithm). Ví dụ như với bản ghi RRSIG sẽ có cấu trúc như Hình 2.

Giá trị của trường thuật toán trong các bản ghi của DNSSEC quy định loại thuật toán tạo khóa được áp dụng [2]. 

Như vậy bằng cách tổ chức thêm những bản ghi mới và những giao thức đã được chỉnh sửa nhằm xác thực nguồn gốc dữ liệu và toàn vẹn dữ liệu cho hệ thống; với DNSSEC, hệ thống DNS đã được mở rộng thêm các tính năng bảo mật và được tăng cường độ an toàn, tin cậy, khắc phục được những nhược điểm của thiết kế sơ khai ban đầu để đảm bảo vừa đáp ứng được các yêu cầu thông tin định tuyến về tên miền, các giao thức làm việc giữa các máy chủ DNS với nhau, vừa đáp ứng được các yêu cầu bảo mật, tăng cường khả năng dự phòng cho hệ thống. Thực tế, ngoài một số máy chủ Root DNS do ICANN thực hiện,  DNSSEC đã được triển khai trên một số quốc gia.

Ngoài ra còn có một số tổ chức đã tích cực nghiên cứu và triển khai DNSSEC, ví dụ như RIPE NCC đã mã hóa xác thực toàn bộ các tên miền ngược được chuyển giao từ IANA và VeriSign, TDC là Công ty đầu tiên triển khai DNSSEC tại Thụy Điển. Tháng 11/2008, hãng Miscrosoft cũng đã chính thức công bố bắt đầu từ hệ điều hành Windows 7 trở lên đã có thể hỗ trợ DNSSEC.

 (còn nữa)

Nổi bật Tạp chí Thông tin & Truyền thông
Đừng bỏ lỡ
Một số giải pháp tăng cường an toàn, bảo mật cho hệ thống DNS (phần 1)
POWERED BY ONECMS - A PRODUCT OF NEKO