Giới thiệu ESNI, DoT & DoH

Giới thiệu ESNI, DoT & DoH
Photo by Kirill Sh from Unsplash

ESNI (Encrypted TLS server name indication) và DoT (DNS over TLS), DoH (DNS over HTTPS) là những tiến bộ công nghệ mới nhất nhằm bảo vệ dữ liệu và quyền riêng tư của người dùng Internet. Trong bài viết này, tôi sẽ trình những điều cơ bản (trong hiểu biết của mình) về những công nghệ này.

Nguy cơ bảo mật

Không cần nhắc lại chắc ai cũng hiểu vai trò quan trọng của DNS (Domain Name System) đối với Internet hiện nay. Chỉ cần DNS ngừng hoạt động một chút, hầu như toàn bộ các dịch vụ Internet sẽ bị ngừng trệ. Thế nhưng, hệ thống này lại tồn tại nhiều vấn đề có thể bị lợi dụng cho các mục đích bất chính.

Nguy cơ của DNS

Rất nhiều trường hợp khác nhau đã lợi dụng DNS vì mục đích bất chính, chủ yếu là để lấy cắp thông tin hoặc lừa đảo. Ví dụ, DNS cache poisoning bị lợi dụng để chuyển hướng người dùng đến trang web giả mạo. Ngoài ra, truy vấn DNS hoàn toàn có thể bị tấn công giữa chừng, và kẻ tấn công có thể gửi IP giả mạo cho client.

Nguy cơ của TLS

HTTPS là phiên bản bảo mật hơn của HTTP, sử dụng TLS (Transport Layer Security) aka SSL (Secure Socket Layer). HTTPS yêu cầu nhiều bước thiết lập kết nối khác nhau. Server sẽ gửi TLS certificate để xác thực chính nó cho client. Khi client gửi lại thông tin, thông tin này sẽ được mã hóa và chỉ server mới có thể giải mã.

Thế nhưng, ngay cả trong trường hợp đã mã hóa các gói tin, TLS vẫn bộc lộ một số thông tin nhất định. Những bước trao đổi thông tin đầu tiên thường chưa được mã hóa. Điều đó khiến những thông tin về server mà client truy cập có thể bị theo dõi.

Giải quyết vấn đề

ESNI

Ý tưởng của ESNI (Encrypted TLS server name indication) là mã hóa toàn bộ các gói tin TLS để phòng tránh việc lộ thông tin, kể từ những gói tin handshake đầu tiên. Vì mọi thứ đều được mã hóa, việc theo dõi hay làm giả các truy vấn gần như là không thể.

Để làm được điều đó, phía client phải nhận được key mã hóa trước khi gửi truy vấn đến máy chủ. ESNI giải quyết vấn đề bằng cách yêu cầu thiết lập ESNI key vào trong SRV record của DNS.

ESNI hiện tại chưa được chấp nhận và sử dụng rộng rãi, dù đặc tả kỹ thuật đã hoàn thiện. Hiện tại, Firefox và Cloudflare đã cài đặt ESNI.

DNSSEC

Để ESNI key có thể được lưu trữ và gửi an toàn đến client, DNS server rất cần được bảo mật. Thực ra, từ năm 1993, cộng đồng Internet đã có ý định bảo mật DNS server. IETF (Internet Engineering Task Force) đã note những điểm quan trọng như sau:

  1. Protecting against the disclosure of DNS data to unauthorized parties
  2. Ensuring data integrity
  3. Data origin authentication

Những điểm này đã được đưa vào bộ tiêu chuẩn DNSSEC (Domain Name System Security Extensions). Tuy nhiên, bộ tiêu chuẩn này chỉ tập trung giải quyết hai vấn đề dưới cùng. Dữ liệu DNS được coi là công khai và bảo mật dữ liệu này không được đưa vào.

DNSSEC giúp người dùng có thể tin tưởng các truy vấn DNS sẽ nhận được câu trả lời chính xác từ máy chủ, chứ không phải một câu trả lời bị chỉnh sửa vì mục đích khác. DNSSEC cũng giúp cho việc triển khai ESNI. Nhờ có DNSSEC, key mà client nhận được sẽ chắc chắn là key mà máy chủ thiết lập, chứ không phải key giả mạo. Nhờ đó, rất nhiều vấn đề về bảo mật sẽ được giải quyết.

Tuy nhiên, DNSSEC có yêu cầu tương thích ngược với “DNS không bảo mật”, do đó, việc triển khai nó mất nhiều thời gian và công sức. Việc triển khai DNSSEC vẫn còn chậm, nhiều công ty, tổ chức đã bỏ cuộc.

DoT & DoH

Ngoài việc bảo mật DNS server, việc mã hóa trao đổi giữa client và DNS server cũng cần được thực hiện. Nếu không được mã hóa, tội phạm mạng có thể can thiệp quá trình này, thay đổi địa chỉ IP bằng một địa chỉ IP giả đã chuẩn bị sẵn. Lúc này và có thể rất lâu sau đó, người dùng sẽ truy cập đến trang web giả mạo mà không hề hay biết. DoT và DoH có thể giúp giải quyết vấn đề.

DNS over TLS (DoT) là một phương thức mã hóa truy vấn DNS. DoT sử dụng TLS tương tự như HTTPS. DoT thêm một tầng mã hóa TLS bên trên giao thức UDP dùng cho truy vấn DNS. Bởi mọi thứ được mã hóa, các truy vấn DNS sẽ được bảo mật và phòng tránh việc client nhận phải thông tin giả mạo.

DNS over HTTPS (DoH) là một phương thức khác gần giống DoT. Điểm khác biệt là việc mã hóa sẽ được thực hiện trên giao thức HTTPS ở tầng trên thay vì UDP. Truy vấn DNS thông qua DoH sẽ giống hệt với các truy vấn HTTPS khác. Xét về mặt riêng tư của người dùng, DoH có vẻ tốt hơn vì gói tin DNS lúc này sẽ lẫn vào vô số gói tin HTTP khác, rất khó để nhận ra.

DNS
Nguồn: CloudFlare

Kể từ năm 2020, trình duyệt Firefox đã bắt đầu sử dụng DoH làm mặc định. Các truy vấn từ Firefox sẽ được gửi đến CloudFlare hoặc NextDNS. Một số trình duyệt khác cũng hỗ trợ DoH nhưng mặc định tính năng này không được bật lên.

Sau Mozilla, Google, Microsoft, và rất nhiều tên tuổi lớn khác cũng đã chuyển sang dùng DoH.

Tôi xin lỗi nếu bài viết có bất kỳ typo nào. Nếu bạn nhận thấy điều gì bất thường, xin hãy cho tôi biết.

Nếu có bất điều gì muốn nói, bạn có thể liên hệ với tôi qua các mạng xã hội, tạo discussion hoặc report issue trên Github.