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 2)
Xã hội số - Ngày đăng : 21:42, 03/11/2015
5. Hạ tầng mật mã bảo mật áp dụng trên DNSSEC
Như đã trình bày ở trên, thuật toán tạo khóa cho DNSSEC được áp dụng trên cơ sở hạ tầng mật mã khóa công khai nhằm đảm bảo sao cho chỉ có các bên đã được xác thực trước với nhau, đã có trao đổi khóa với nhau mới được kết nối và đọc được dữ liệu của nhau.
Có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau: Giả sử Bên A muốn gửi cho Bên B một bức thư (thông tin) mật mà Bên A muốn chỉ có duy nhất Bên B có thể đọc được. Để làm được điều này, Bên B gửi cho Bên A một chiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa. Bên A nhận chiếc hộp, cho vào đó bức thư mật (văn bản thư viết thông thường) và khóa lại (như loại khoá thông thường chỉ cần sập chốt lại). Khi đã sập chốt khóa, ngay cả Bên A cũng không thể mở lại được, do đó cũng không đọc lại hay sửa thông tin trong thư được nữa. Sau đó Bên A gửi chiếc hộp lại cho Bên B. Bên B nhận được chiếc hộp thì sử dụng chìa khóa của mình đang giữ để mở và đọc thông tin trong thư. Như vậy, trong ví dụ này, chiếc hộp với khóa mở sẵn đóng vai trò khóa công khai, chiếc chìa khóa mà Bên B giữ lại chính là khóa bí mật.
Hiện tại, công nghệ bảo mật, các thuật toán mã hóa, giải mã và trao đổi khóa đang thường được áp dụng trong DNSSEC là RSA.
6. Hệ mật mã RSA
Phương pháp mã hóa sử dụng thuật toánmật mã hóa khóa công khai RSA là phương pháp mã hóa có thể nói là đang phổ biến nhất trên thế giới hiện nay. RSA được xem là phương pháp mã hóa có khả năng sử dụng rộng rãi trong hầu hết các lĩnh vực và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn.
Mã hóa RSA dùng hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa riêng/cá nhân). Mỗi khóa là những số cố định được sử dụng trong quá trình mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa bí mật (khóa cá nhân) mới có thể giải mã được.
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích các số nguyên lớn ra thừa số nguyên tố và bài toán RSA. Nếu 2 bài toán trên là khó (không tìm được thuật toán hiệu quả để giải chúng) thì không thể thực hiện được việc phá mã toàn bộ đối với RSA.
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho me=c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d từ e.
Thực tế, năm 2010, các nhà khoa học Andrea Pellegrini, Valeria Bertacco và Todd Austin thuộc trường Đại học Michigan đã công bố kết quả phát hiện một kẽ hở trong hệ thống mật mã hoá RSA, cách phá vỡ hệ thống, lấy khoá bí mật RSA 1024 bit chỉ trong vòng 104 giờ thay vì vài năm nếu tấn công theo cách dò tìm lần lượt thông thường. Theo đó các nhà khoa học tạo một điện thế lớn để gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật [6], việc tấn công được thực hiện trên một FPGA. Báo cáo được trình bày tại hội nghị DATE 2010 diễn ra tại Dresden, Đức tháng 3 năm 2010.
Vì những lý này, hiện nay người ta khuyến cáo nên sử dụng RSA với khóa có độ dài tối thiểu 2048 bit.
Hiện tại, việc áp dụng RSA với độ dài khóa đủ lớn đã giải quyết được về cơ bản vấn đề bảo mật, an toàn, xác thực và đang được áp dụng cho hầu hết các hệ thống mạng nói chung cũng như cho hệ thống DNS nói riêng. Và thực tế DNSSEC với mã bảo mật RSA đang được triển khai dần trên hệ thống DNS toàn cầu. Tuy nhiên, ngoài vấn đề bảo mật, yếu tố thời gian xử lý và kích thước file dữ liệu khi áp dụng mã hóa xác thực cũng đóng vai trò rất quan trọng. Với hệ mã hóa RSA hiện đang được áp dụng cho DNSSEC, để đảm bảo an toàn, kích thước khóa sử dụng phải là đủ lớn (thường là 2048 bit theo như khuyến cáo), do vậy số lượng các phép tính sẽ tăng lên, thời gian tạo khóa sẽ lâu hơn, kích thước các bản ghi DNS sau khi chèn thêm chữ ký vì thế cũng tăng lên đáng kể [3]. Điều này cũng làm ảnh hưởng đến năng lực xử lý của các máy tính, máy chủ muốn sử dụng, cài đặt DNSSEC, làm chậm thời gian và tiêu tốn năng lượng để xử lý mỗi yêu cầu truy vấn, trao đổi dữ liệu trên hệ thống này. Với số lượng truy vấn tên miền hàng giờ trên mỗi máy chủ DNS thường là rất lớn thì tổng thời gian xử lý các truy vấn cũng là vấn đề rất cần phải được quan tâm.
Vì các lý do đó, song song với việc triển khai RSA trong DNSSEC để đáp ứng các yêu cầu bảo mật trong thời gian trước mắt, các nhà khoa học cũng đang phải tìm tòi, nghiên cứu những thuật toán mã hóa khác để làm sao vẫn đáp ứng được yêu cầu về bảo mật (khó phá khóa) mà lại có thời gian mã hóa nhanh hơn, kích thước khóa nhỏ hơn để áp dụng trong thời gian tới. Mã bảo mật đường cong Elliptic (ECC) là một trong các hướng trọng tâm nghiên cứu như vậy.
7. Hệ mật mã đường cong Elliptic (Elliptic Curve Crytography - ECC).
Hệ mật mã đường cong ECC được xây dựng trên cơ sở toán học của đường cong Elliptic.
Theo kết quả công bố của Công ty Certicom - Công ty đi đầu trong lĩnh vực nghiên cứu mã bảo mật ECC, với độ dài khóa 160 bit, hệ mật mã ECC đã có độ an toàn tương đương với hệ mật mã RSA-1024 bit và với độ dài khóa 224 bit, hệ mật mã ECC có độ an toàn tương đương với hệ mật mã RSA có độ dài khóa 2048 bit [5].
Hình 4: So sánh độ dài khóa của các hệ mật mã với cùng mức độ bảo mật
Do có kích thước khóa nhỏ và khả năng sinh khóa nhanh nên trong các giai đoạn vừa qua ECC đã được quan tâm nghiên cứu để bước đầu áp dụng cho các ứng dụng trên môi trường mạng có giới hạn về thông lượng truyền dữ liệu, các thiết bị có giới hạn về năng lực xử lý, khả năng lưu trữ (đặc biệt là với các thiết bị di động). Tuy nhiên với các lợi thế về mức độ bảo mật và kích thước khóa nhỏ như đã nói ở trên, ECC hoàn toàn có thể được áp dụng cho các hệ thống lớn như DNS để thay thế, khắc phục các nhược điểm về độ dài khóa của RSA.
8. KẾT LUẬN
Internet càng phát triển thì vấn đề đảm bảo an toàn, bảo mật trên Internet càng phải được chú trọng. Đặc biệt, đối với hệ thống DNS - hệ thống lõi của Internet, nếu không được tăng cường bảo mật thì nguy cơ bị tấn công, giả mạo, phá hoại, đánh cắp dữ liệu tên miền hoàn toàn có thể xảy ra bất cứ lúc nào, gây hậu quả khôn lường và có thể trở thành hiểm họa, làm điêu đứng các hoạt động Internet của mỗi quốc gia cũng như toàn cầu.
Theo xu thế chung hiện nay, các dịch vụ Internet và viễn thông đang dần hội tụ trên cơ sở của hệ thống máy chủ tên miền DNS. Tuy nhiên với hệ thống DNS hiện có, do kế thừa các thiết kế đơn giản ban đầu nên khả năng có lỗ hổng, bị giả mạo gói tin vì thiếu vắng quyền chứng thực khi truy cập là hoàn toàn có thể xảy ra. Thực tế nhiều vụ việc tấn công giả mạo, đầu độc DNS, các lỗ hổng bảo mật trên DNS đã được phát hiện, cảnh báo trong thời gian vừa qua. Vì thế, việc nghiên cứu, ứng dụng các công nghệ mới về bảo mật, xác thực trao đổi dữ liệu để áp dụng cho hệ thống này đã trở thành nhu cầu hết sức cấp thiết.
Công nghệ DNSSEC hiện đang được nghiên cứu, triển khai áp dụng, có bổ sung thêm cơ chế xác thực, bảo mật dữ liệu tên miền thông qua hạ tầng mật mã khóa công khai đã đáp ứng phần lớn các yêu cầu đặt ra. Tuy nhiên, công nghệ áp dụng trên DNSSEC hiện hầu hết vẫn sử dụng là RSA, mà nhược điểm lớn nhất ở đây là độ dài khóa lớn (khuyến cáo tối thiểu là 2048 bit)[3]. Việc phải tăng chiều dài khóa để đảm bảo an toàn lại làm cho tốc độ xử lý đối với các hệ thống bảo mật sử dụng RSA bị chậm lại, năng lượng cần sử dụng trong quá trình mã hoá và giải mã phải tiêu hao nhiều hơn, quá trình xác thực cũng bị làm ảnh hưởng, chậm hơn. Với riêng hệ thống DNS áp dụng DNSSEC, kích thước các bản ghi RRSIG, DNSKEY, NSEC và DS sau khi chèn thêm chữ ký bị tăng lên đáng kể. Do đặc thù các máy chủ DNS thường phải phục vụ, trả lời số lượng truy vấn rất lớn một cách thường xuyên nên việc sử dụng DNSSEC áp dụng công nghệ RSA sẽ có tác động tương đối lớn, mặc dù đáp ứng được các yêu cầu về bảo mật, xác thực nhưng lại làm ảnh hưởng, giảm hiệu năng của các máy chủ tên miền.
Vì các lý do đó, ngoài RSA, việc nghiên cứu áp dụng các mã bảo mật khác để áp dụng cho hệ thống DNS là rất cần thiết. Hệ mật mã đường cong Elliptic (ECC) với các ưu điểm vượt trội về mức độ bảo mật cao, độ dài khóa nhỏ hơn rất nhiều so với RSA hoàn toàn có thể áp dụng cho hệ thống DNS. Việc nghiên cứu ứng dụng ECC cho quá trình mã hóa, xác thực, giải mã và trao đổi khóa đối với riêng một số tiến trình trao đổi dữ liệu bên trong của hệ thống DNS (chẳng hạn như quá trình cập nhật dữ liệu tên miền - zone transfer từ máy chủ DNS chính tới toàn bộ các máy chủ DNS phụ) và tiến tới cho toàn bộ các tiến trình trao đổi dữ liệu của hệ thống máy chủ tên miền sẽ trở thành xu thế phát triển trong một vài năm tới.
TÀI LIỆU THAM KHẢO
[1] ATKINS & AUSTEIN, DNS Threat Analysis, RFC 3833, August 2004.
[2] R. ARENDS, Resource Records for the DNS Security Extensions, RFC 4034, March 2005
[3] WENDY CHOU, Elliptic Curve Crytography and its Applications to Mobile Devices, University of Maryland, College Park, 2003<http://www.cs.umd.edu/Honors/reports/ECCpaper.pdf>.
[4] W. STALLINGS, Crypotography and Network Security, Fourth Edition 2009.
[5] CERTICOM RESEARCH, SEC1: Elliptic Curve Cryptography, Version 1.0, September 2000, http://www.secg.org/collateral/sec1_final.pdf
[6] ANDREA PELLEGRINI, VALERIA BERTACCO and TODD AUSTIN, Fault Based Attack of RSA Authentication,Design, Automation and Test in Europe (DATE) conference in Dresden on March 10. http://web.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf
[7] http://www.ietf.org/html.charters/dnsext-charter.html; http://www.dnssec.net
http://www.dnssec-deployment.org/