SNI Inspection: Cách kiểm duyệt viên nhìn thấy trang web bạn truy cập dù dùng HTTPS
Last updated: tháng 4 9, 2026
HTTPS mã hóa nội dung, nhưng trường SNI trong TLS handshake lộ tên miền dưới dạng văn bản thường. Hiểu cách kiểm duyệt sử dụng SNI inspection để chặn trang web.
Bạn sử dụng HTTPS để truy cập một trang web tin tức bị kiểm duyệt ở quốc gia bạn. Bạn tin rằng kết nối được mã hóa, vậy nên chính quyền không thể biết bạn truy cập gì. Nhưng vài giây sau, kết nối bị ngắt. Cảm giác như thế nào nếu biết rằng người kiểm duyệt chẳng cần giải mã gì cả—họ chỉ đơn giản đọc tên miền bạn đang cố truy cập từ một trường dữ liệu được gửi dưới dạng văn bản thường, ngay cả khi HTTPS "bảo vệ" bạn?
Đây chính là bản chất của SNI inspection—một kỹ thuật kiểm duyệt mạnh mẽ hoạt động song song với HTTPS mà hầu hết mọi người không biết tồn tại.
HTTPS mã hóa nội dung, nhưng chứ không phải mọi thứ
Khi bạn truy cập một trang web, bạn muốn hai điều: (1) người khác không thể đọc được những gì bạn gửi và nhận, và (2) bạn chắc chắn đang nói chuyện với trang web chính hãng, không phải một kẻ giả mạo. HTTPS—giao thức Hypertext Transfer Protocol Secure—giải quyết cả hai vấn đề bằng cách mã hóa dữ liệu của bạn và xác minh danh tính của máy chủ web.
Nhưng HTTPS không phải là bộ khóa kỳ diệu che giấu mọi thứ. Trước khi mã hóa bắt đầu, hai máy tính của bạn và máy chủ web phải trải qua một quá trình gọi là TLS handshake (bắt tay TLS). Trong quá trình này, chúng trao đổi thông tin kỹ thuật để thiết lập kết nối an toàn. Và đây là vấn đề: một số thông tin gửi trong TLS handshake được gửi dưới dạng văn bản thường, không được mã hóa. Ai đó đứng giữa bạn và máy chủ—như một nhà cung cấp dịch vụ internet hoặc một cơ quan chính phủ—có thể đọc những thông tin đó.
Trường SNI: Tên miền được gửi dưới dạng văn bản thường
SNI viết tắt của Server Name Indication (Chỉ thị Tên Máy Chủ). Nó là một trường dữ liệu trong TLS handshake chứa tên miền của trang web bạn đang cố kết nối. Ví dụ, khi bạn truy cập example.com, trường SNI sẽ chứa chữ "example.com" và được gửi dưới dạng văn bản thường trong các gói dữ liệu mạng của bạn.
Tại sao SNI phải được gửi dưới dạng văn bản thường? Lý do là do cách hoạt động của máy chủ web hiện đại. Hãy tưởng tượng một tòa nhà chứa 100 căn hộ, mỗi căn có một người dân khác nhau, nhưng chúng đều có chung một địa chỉ bưu điện. Khi một bức thư đến tòa nhà, người gửi thư cần biết nó phải đi đến căn hộ nào. Địa chỉ tòa nhà (địa chỉ IP) không đủ; cần phải ghi rõ căn hộ cụ thể (tên miền).
Tương tự, nhiều trang web khác nhau chia sẻ cùng một máy chủ và cùng một địa chỉ IP. Máy chủ cần biết bạn đang cố kết nối với trang web nào trước khi nó có thể gửi cho bạn sertifikat SSL/TLS chính xác. Vì vậy, SNI phải được gửi dưới dạng văn bản thường, trước khi quá trình mã hóa bắt đầu. Đây là một ràng buộc kỹ thuật, không phải lỗi thiết kế.
Cách kiểm duyệt viên sử dụng SNI inspection để chặn trang web
Nhà cung cấp dịch vụ internet hoặc một cơ quan chính phủ đứng giữa bạn và internet có thể chèn các bộ lọc—về cơ bản là phần mềm kiểm duyệt tự động. Khi chúng thấy một gói dữ liệu TLS handshake chứa một tên miền bị cấm trong trường SNI, chúng có thể chặn ngay lập tức. Kết nối bị ngắt, và bạn nhận được lỗi "không thể kết nối".
Diều này hoạt động bất kể HTTPS mã hóa nội dung như thế nào, vì kiểm duyệt viên không cần biết bạn đang làm gì trên trang web—chỉ cần biết bạn đang cố truy cập trang web nào. Nó giống như đánh chặn thư trước khi mở, dựa trên địa chỉ người nhận được viết trên bìa thư.
Một số quốc gia sử dụng SNI inspection làm công cụ kiểm duyệt chính, bao gồm Trung Quốc, Nga, Iran và Thái Lan. Phương pháp này hiệu quả, rẻ tiền để triển khai, và khó chống lại bằng những phương tiện thông thường.
Nỗ lực để giải quyết vấn đề: ECH và ESNI
Cộng đồng an ninh mạng nhận thức được vấn đề này và bắt đầu phát triển các giải pháp. Encrypted Client Hello (ECH) và Encrypted Server Name Indication (ESNI) là hai cách tiếp cận để mã hóa SNI.
Đơn giản nói, ECH cho phép bạn mã hóa toàn bộ thông điệp handshake, bao gồm SNI, bằng cách sử dụng khóa công khai của máy chủ. Máy chủ có thể giải mã nó, nhưng bất cứ ai đứng giữa (bao gồm nhà cung cấp dịch vụ internet) thì không. Tuy nhiên, ECH vẫn còn rất mới, và hỗ trợ của trình duyệt và máy chủ web vẫn còn không rộng rãi. Hơn nữa, một số cơ quan kiểm duyệt đã bắt đầu chặn ECH hoặc các kết nối TLS 1.3 sử dụng ECH, vì vậy nó không phải là giải pháp cuối cùng.
Đây là tradeoff (trao đổi lợi ích) của công nghệ: bảo vệ quyền riêng tư tốt hơn có thể xung đột với hiệu suất và tương thích. ECH có thể làm cho khám phá trang web chậm hơn trong một số trường hợp, và không phải tất cả các máy chủ đều sẵn sàng hỗ trợ nó.
Kết luận
SNI inspection là một sự thật phức tạp của internet hiện đại: HTTPS bảo vệ nội dung của bạn, nhưng nó không che giấu được tên miền bạn đang truy cập. Hiểu được những hạn chế này giúp bạn nhận ra rằng an ninh mạng không phải là vấn đề "tất cả hoặc không có gì"—có nhiều lớp bảo vệ khác nhau, mỗi lớp có điểm mạnh và điểm yếu riêng. Nếu bạn muốn tìm hiểu thêm, hãy khám phá các chủ đề liên quan như VPN (Virtual Private Network), proxy, và cách hoạt động của mã hóa end-to-end.
Đây chính là bản chất của SNI inspection—một kỹ thuật kiểm duyệt mạnh mẽ hoạt động song song với HTTPS mà hầu hết mọi người không biết tồn tại.
HTTPS mã hóa nội dung, nhưng chứ không phải mọi thứ
Khi bạn truy cập một trang web, bạn muốn hai điều: (1) người khác không thể đọc được những gì bạn gửi và nhận, và (2) bạn chắc chắn đang nói chuyện với trang web chính hãng, không phải một kẻ giả mạo. HTTPS—giao thức Hypertext Transfer Protocol Secure—giải quyết cả hai vấn đề bằng cách mã hóa dữ liệu của bạn và xác minh danh tính của máy chủ web.
Nhưng HTTPS không phải là bộ khóa kỳ diệu che giấu mọi thứ. Trước khi mã hóa bắt đầu, hai máy tính của bạn và máy chủ web phải trải qua một quá trình gọi là TLS handshake (bắt tay TLS). Trong quá trình này, chúng trao đổi thông tin kỹ thuật để thiết lập kết nối an toàn. Và đây là vấn đề: một số thông tin gửi trong TLS handshake được gửi dưới dạng văn bản thường, không được mã hóa. Ai đó đứng giữa bạn và máy chủ—như một nhà cung cấp dịch vụ internet hoặc một cơ quan chính phủ—có thể đọc những thông tin đó.
Trường SNI: Tên miền được gửi dưới dạng văn bản thường
SNI viết tắt của Server Name Indication (Chỉ thị Tên Máy Chủ). Nó là một trường dữ liệu trong TLS handshake chứa tên miền của trang web bạn đang cố kết nối. Ví dụ, khi bạn truy cập example.com, trường SNI sẽ chứa chữ "example.com" và được gửi dưới dạng văn bản thường trong các gói dữ liệu mạng của bạn.
Tại sao SNI phải được gửi dưới dạng văn bản thường? Lý do là do cách hoạt động của máy chủ web hiện đại. Hãy tưởng tượng một tòa nhà chứa 100 căn hộ, mỗi căn có một người dân khác nhau, nhưng chúng đều có chung một địa chỉ bưu điện. Khi một bức thư đến tòa nhà, người gửi thư cần biết nó phải đi đến căn hộ nào. Địa chỉ tòa nhà (địa chỉ IP) không đủ; cần phải ghi rõ căn hộ cụ thể (tên miền).
Tương tự, nhiều trang web khác nhau chia sẻ cùng một máy chủ và cùng một địa chỉ IP. Máy chủ cần biết bạn đang cố kết nối với trang web nào trước khi nó có thể gửi cho bạn sertifikat SSL/TLS chính xác. Vì vậy, SNI phải được gửi dưới dạng văn bản thường, trước khi quá trình mã hóa bắt đầu. Đây là một ràng buộc kỹ thuật, không phải lỗi thiết kế.
Cách kiểm duyệt viên sử dụng SNI inspection để chặn trang web
Nhà cung cấp dịch vụ internet hoặc một cơ quan chính phủ đứng giữa bạn và internet có thể chèn các bộ lọc—về cơ bản là phần mềm kiểm duyệt tự động. Khi chúng thấy một gói dữ liệu TLS handshake chứa một tên miền bị cấm trong trường SNI, chúng có thể chặn ngay lập tức. Kết nối bị ngắt, và bạn nhận được lỗi "không thể kết nối".
Diều này hoạt động bất kể HTTPS mã hóa nội dung như thế nào, vì kiểm duyệt viên không cần biết bạn đang làm gì trên trang web—chỉ cần biết bạn đang cố truy cập trang web nào. Nó giống như đánh chặn thư trước khi mở, dựa trên địa chỉ người nhận được viết trên bìa thư.
Một số quốc gia sử dụng SNI inspection làm công cụ kiểm duyệt chính, bao gồm Trung Quốc, Nga, Iran và Thái Lan. Phương pháp này hiệu quả, rẻ tiền để triển khai, và khó chống lại bằng những phương tiện thông thường.
Nỗ lực để giải quyết vấn đề: ECH và ESNI
Cộng đồng an ninh mạng nhận thức được vấn đề này và bắt đầu phát triển các giải pháp. Encrypted Client Hello (ECH) và Encrypted Server Name Indication (ESNI) là hai cách tiếp cận để mã hóa SNI.
Đơn giản nói, ECH cho phép bạn mã hóa toàn bộ thông điệp handshake, bao gồm SNI, bằng cách sử dụng khóa công khai của máy chủ. Máy chủ có thể giải mã nó, nhưng bất cứ ai đứng giữa (bao gồm nhà cung cấp dịch vụ internet) thì không. Tuy nhiên, ECH vẫn còn rất mới, và hỗ trợ của trình duyệt và máy chủ web vẫn còn không rộng rãi. Hơn nữa, một số cơ quan kiểm duyệt đã bắt đầu chặn ECH hoặc các kết nối TLS 1.3 sử dụng ECH, vì vậy nó không phải là giải pháp cuối cùng.
Đây là tradeoff (trao đổi lợi ích) của công nghệ: bảo vệ quyền riêng tư tốt hơn có thể xung đột với hiệu suất và tương thích. ECH có thể làm cho khám phá trang web chậm hơn trong một số trường hợp, và không phải tất cả các máy chủ đều sẵn sàng hỗ trợ nó.
Kết luận
SNI inspection là một sự thật phức tạp của internet hiện đại: HTTPS bảo vệ nội dung của bạn, nhưng nó không che giấu được tên miền bạn đang truy cập. Hiểu được những hạn chế này giúp bạn nhận ra rằng an ninh mạng không phải là vấn đề "tất cả hoặc không có gì"—có nhiều lớp bảo vệ khác nhau, mỗi lớp có điểm mạnh và điểm yếu riêng. Nếu bạn muốn tìm hiểu thêm, hãy khám phá các chủ đề liên quan như VPN (Virtual Private Network), proxy, và cách hoạt động của mã hóa end-to-end.
🛡️
Recommended VPN Services
Top-rated VPNs trusted by millions
N
NordVPN
⭐ LỰA CHỌN BIÊN TẬP
★★★★★ 9.5/10 · 6,000+ servers · Hoạt động ở Trung Quốc
$3.39/mo
View Deal →
S
Surfshark
BEST VALUE
★★★★★ 9.6/10 · Unlimited devices
$2.49/mo
View Deal →
E
ExpressVPN
PREMIUM
★★★★★ 9.4/10 · 94 countries
$6.67/mo
View Deal →
Disclosure: SaveClip may earn a commission when you sign up through our links. This helps us keep our tools free for everyone.