Captive Portals và "thủ phạm" HSTS
Captive Portal hay còn gọi là trang xác thực là giao diện của hầu hết mạng công cộng để bạn nhập mật khẩu wifi, đồng ý các điều khoản của mạng wifi miễn phí đó để được truy cập vào mạng. Captive portals thường phổ biến ở các điểm cung cấp wifi miễn phí như trung tâm kinh doanh, sân bay, hàng lang khách sạn, quán cà phê….
Thông thường, khi gặp thông báo lỗi "Your connection is not private", các trình duyệt hiện đại sẽ đưa bạn quay lại (redirect) trang captive portal. Mọi chuyện sẽ ổn và bạn có thể tiếp tục công việc bằng cách tìm và nhấn vào nút Advanced hay Other trên trang báo lỗi rồi nhấn tiếp vào "Continue" hoặc "Proceed Anyway".
Tuy nhiên trong một số trường hợp, bạn không tìm thấy nút nào để thoát khỏi thông báo lỗi trên và cũng không thể làm gì tiếp được nữa.
Nguyên nhân chính là vì trang web bạn muốn tới có hỗ trợ thêm một giao thức bảo mật mới mang tên HSTS (HTTP Strict Transport Security).
HSTS là "thủ phạm" buộc các trình duyệt dùng HTTPS trên mọi trang của một website kể cả những trang chỉ dùng HTTP bình thường. Khi truy cập qua giao thức HTTPS từ mạng công cộng không an toàn thì website hỗ trợ HSTS sẽ ra lệnh cho trình duyệt chặn bạn lại mà không tương tác với người dùng. Đây là một biện pháp an ninh của trình duyệt vì nó sẽ xem việc quay lại trang captive portal dùng giao thức HTTPS trước khi kết nối tới server là nguy hiểm tiềm ẩn.
Do đó, khi bạn dùng wifi công cộng truy cập tới một trang web hỗ trợ HSTS và trình duyệt cũng hỗ trợ HSTS thì trình duyệt sẽ chặn yêu cầu truy cập của bạn, không cho bạn quay lại captive portal.
Làm cách nào để truy cập wifi công cộng?
HowToGeek đưa ra một giải pháp đơn giản cho chúng ta. Đó là ép buộc trình duyệt cho bạn quay lại trang xác thực bằng cách truy cập tới một website không có bất kỳ giao thức bảo mật nào. Một kết nối thuần túy, không được bảo mật, không mã hóa sẽ giúp bạn làm điều này.
May mắn là có một website được xây dựng để giúp bạn những lúc không thể vào được các website hỗ trợ HSTS như Google, Facebook, Amazon... Đó là Never SSL.
Nếu bạn đã kết nối vào một mạng công cộng nhưng không quay lại trang xác thực được thì hãy mở một cửa sổ hay tab mới trong trình duyệt và gõ địa chỉ sau:
neverssl.com
Cách làm này sẽ đưa bạn tự động quay lại trang xác thực, đánh dấu đồng ý các điều khoản/nhập lại mật khẩu để tiếp tục công việc mình muốn.
HSTS là gì
Theo Wikipedia, đặc tả HSTS được xuất bản vào tháng 11/2012 sau khi được nhóm chỉ đạo kỹ sư Internet (Internet Engineering Steering Group) thông qua đầu tháng 10 cùng năm. Mục đích của HSTS là bảo vệ người dùng website trước một số cuộc tấn công mạng bị động lẫn chủ động như: hạ cấp giao thức, man in the middle, cookie hijacking.
Khi ứng dụng web có hỗ trợ đặc tả HSTS thì mọi liên kết không an toàn đang tham chiếu đến ứng dụng web sẽ được tự động chuyển thành liên kết an toàn trước khi truy cập server (ví dụ chuyển http://example.com/some/page/ thành https://example.com/some/page/). Và nếu kết nối không đảm bảo an toàn (ví dụ TSL certificate của server không đáng tin cậy) thì ứng dụng web sẽ hiện thông báo lỗi và không cho phép người dùng tiếp tục truy cập kết nối đó nữa.
Đặc tả HSTS được cài đặt bằng một header qua kết nối HTTPS (HSTS header trên HTTP sẽ bị bỏ qua), ví dụ header sau sẽ được server gửi đi để yêu cầu domain chỉ dùng HTTPS trong cả năm tiếp theo:
Strict-Transport-Security: max-age=31536000
(max-age tính bằng giây, một năm thường không nhuận có 31.536.000 giây)
Nếu bạn có hứng thú tìm hiểu sâu hơn lý do vì sao đặc tả HSTS ngăn cản việc quay lại captive portal, hãy đọc bài viết sau tại Wireless Phreak: https://www.wirelessphreak.com/2017/05/captive-portal-and-hsts-issues.html