Thông tin cập nhật về Quyền truy cập mạng riêng tư: Giới thiệu bản dùng thử không dùng nữa

Titouan Rigoudy
Titouan Rigoudy
Yifan Luo
Yifan Luo

Bản cập nhật

  • Ngày 23 tháng 3 năm 2023: Tiến trình đã được cập nhật và cho đến Chrome 117 mới ngừng sử dụng.

  • Ngày 19 tháng 1 năm 2023: Tiến trình đã được cập nhật và việc ngừng sử dụng sẽ không diễn ra cho đến Chrome 114.

  • Ngày 12 tháng 8 năm 2022: Tiến trình đã được cập nhật và cho đến Chrome 109 mới ngừng sử dụng.

  • Ngày 10 tháng 2 năm 2022: Bài viết cập nhật được đăng tại Quyền truy cập mạng riêng tư: giới thiệu các chuyến kiểm tra

  • Ngày 25 tháng 8 năm 2021: Cập nhật thông báo về tiến trình và giới thiệu bản dùng thử việc ngừng sử dụng.

Trong quy cách Quyền truy cập mạng riêng, Chrome sẽ ngừng sử dụng quyền truy cập vào các điểm cuối trên mạng riêng tư từ các trang web không an toàn. Mục đích là để bảo vệ người dùng khỏi các cuộc tấn công giả mạo yêu cầu trên nhiều trang web (CSRF) nhắm đến bộ định tuyến và thiết bị khác trên mạng riêng. Những cuộc tấn công này đã ảnh hưởng đến hàng trăm nghìn người dùng, tạo điều kiện cho kẻ tấn công chuyển hướng họ đến các máy chủ độc hại.

Chrome sẽ giới thiệu các thay đổi sau:

  • Chặn yêu cầu đến mạng riêng từ các trang web công khai không an toàn bắt đầu từ Chrome 94.
  • Giới thiệu bản dùng thử ngừng sử dụng sẽ kết thúc trong Chrome
    1. Nhờ đó, nhà phát triển có thể yêu cầu gia hạn cho các nguồn gốc đã chọn. Điều này sẽ không bị ảnh hưởng trong giai đoạn dùng thử việc ngừng sử dụng.
  • Giới thiệu chính sách của Chrome, cho phép các bản triển khai Chrome được quản lý bỏ qua vĩnh viễn việc ngừng sử dụng. Đã có trong Chrome 92.

Nếu bạn cần thêm thời gian để giảm thiểu tác động của việc đăng ký ngừng sử dụng cho thời gian dùng thử ngừng hoạt động.

Nếu có quyền kiểm soát quản trị đối với người dùng của mình, bạn có thể bật lại tính năng này bằng các chính sách của Chrome.

Để giảm thiểu tác động của các quy định hạn chế mới, hãy sử dụng một trong các chiến lược sau:

Lịch trình

  • Tháng 11 năm 2020: Gọi điện để xin ý kiến phản hồi về những thay đổi sắp tới.
  • Tháng 3 năm 2021: Sau khi xem xét ý kiến phản hồi và liên hệ, chúng tôi sẽ thông báo về những thay đổi sắp tới. Thông số kỹ thuật được đổi tên từ CORS-RFC1918 thành Quyền truy cập mạng riêng tư.
  • Tháng 4 năm 2021: Chrome 90 ra mắt phiên bản ổn định, hiển thị các cảnh báo về việc ngừng sử dụng.
  • Tháng 6 năm 2021: Chrome 92 ra mắt phiên bản Beta, cấm các yêu cầu mạng riêng từ ngữ cảnh không an toàn. Sau khi các nhà phát triển đưa ra ý kiến phản hồi về việc yêu cầu thêm thời gian để điều chỉnh, việc ngừng sử dụng sẽ được hoãn lại sang Chrome 93 và đi kèm với Bản dùng thử không dùng nữa.
  • Tháng 7 năm 2021: Sau khi có thêm ý kiến phản hồi của các nhà phát triển, việc ngừng sử dụng và bản dùng thử đi kèm sẽ được hoãn lại cho Chrome 94. Ngoài ra, các trang web riêng tư không còn chịu ảnh hưởng của việc ngừng sử dụng này.
  • Tháng 8 năm 2021: Chrome 94 ra mắt bản Beta. Nhà phát triển web có thể bắt đầu đăng ký dùng thử việc ngừng sử dụng.
  • Tháng 9 năm 2021: Chrome 94 ra mắt phiên bản ổn định. Nhà phát triển web phải đăng ký dùng thử việc ngừng sử dụng và triển khai mã thông báo dùng thử cho môi trường thực tế.
  • Tháng 12 năm 2022: Gửi bản khảo sát về bản dùng thử nguồn gốc và nhận được ý kiến phản hồi. Thời gian dùng thử không dùng nữa sẽ được mở rộng cho Chrome 113.
  • Tháng 3 năm 2023: Kéo dài thời gian dùng thử ngừng sử dụng sang Chrome 116 và kết thúc trong Chrome 117. Cơ chế thay thế dựa trên quyền đang trong quá trình phát triển, nhắm đến bản phát hành đầu tiên trong Chrome 114.
  • Tháng 5 năm 2023 (dự kiến): Cơ chế sử dụng quyền sẽ ra mắt trong Chrome 114. Các trang web có thể sử dụng đối tượng này để thoát khỏi giai đoạn dùng thử việc ngừng sử dụng.
  • Tháng 9 năm 2023: Chrome 117 được ra mắt phiên bản chính thức, kết thúc giai đoạn thử nghiệm ngừng sử dụng. Chrome chặn mọi yêu cầu mạng riêng từ các ngữ cảnh công khai, không an toàn.

Quyền truy cập mạng riêng là gì

Quyền truy cập vào mạng riêng (trước đây gọi là CORS-RFC1918) hạn chế khả năng của các trang web gửi yêu cầu đến máy chủ trên mạng riêng. Phương thức này chỉ cho phép các yêu cầu như vậy từ các ngữ cảnh an toàn. Bản đặc tả kỹ thuật này cũng mở rộng giao thức Chia sẻ tài nguyên trên nhiều nguồn gốc (CORS) để giờ đây các trang web phải yêu cầu cấp quyền từ máy chủ trên mạng riêng trước khi được phép gửi yêu cầu tuỳ ý.

Yêu cầu về mạng riêng là những yêu cầu có địa chỉ IP của máy chủ đích riêng tư hơn so với yêu cầu mà trình khởi tạo yêu cầu được tìm nạp. Ví dụ: yêu cầu từ trang web công khai (https://example.com) đến trang web riêng tư (http://router.local) hoặc yêu cầu từ trang web riêng tư đến máy chủ cục bộ.

Mối quan hệ giữa các mạng công cộng, riêng tư và mạng cục bộ trong Quyền truy cập mạng riêng (CORS-RFC1918).
Mối quan hệ giữa các mạng công cộng, riêng tư và cục bộ trong Quyền truy cập mạng riêng (CORS-RFC1918).

Tìm hiểu thêm tại phần Ý kiến phản hồi: CORS cho mạng riêng (RFC1918).

Bản dùng thử việc ngừng sử dụng là gì

Bản dùng thử ngừng sử dụng (trước đây gọi là bản dùng thử theo nguyên gốc ngược) là một dạng bản dùng thử theo nguyên gốc dùng để giảm bớt việc ngừng sử dụng các tính năng web. Bản dùng thử việc ngừng sử dụng cho phép Chrome ngừng sử dụng một số tính năng web và ngăn các trang web tạo các phần phụ thuộc mới dựa trên các tính năng đó, đồng thời cho các trang web phụ thuộc hiện tại thêm thời gian để di chuyển khỏi các tính năng đó.

Trong giai đoạn dùng thử ngừng sử dụng, theo mặc định, các tính năng không dùng nữa sẽ không hoạt động trên tất cả các trang web. Các nhà phát triển vẫn cần sử dụng các tính năng bị ảnh hưởng phải đăng ký dùng thử tính năng ngừng sử dụng và nhận mã thông báo cho các nguồn gốc web đã chỉ định, sau đó sửa đổi trang web để phân phát các mã thông báo đó trong tiêu đề HTTP hoặc thẻ meta (ngoại trừ trường hợp này). Nếu trang web phân phát mã thông báo hợp lệ khớp với nguồn gốc, thì Chrome sẽ cho phép sử dụng tính năng không dùng nữa trong một khoảng thời gian giới hạn.

Để biết thêm thông tin, hãy xem bài viết Bắt đầu dùng bản dùng thử theo nguyên gốc của Chromehướng dẫn cho nhà phát triển web về bản dùng thử theo nguyên gốc để được hướng dẫn.

Nội dung thay đổi trên Chrome

Chrome 94

Kể từ Chrome 94, các bối cảnh công khai không an toàn (nói rộng ra là các trang web không được phân phối qua HTTPS hoặc từ một địa chỉ IP riêng tư) sẽ bị cấm gửi yêu cầu đến mạng riêng. Tính năng này đã được lên kế hoạch trước đó cho Chrome 92 nên các thông báo về việc ngừng sử dụng có thể vẫn đề cập đến mốc quan trọng trước đó.

Việc ngừng sử dụng này đi kèm với một bản dùng thử không dùng nữa, cho phép các nhà phát triển web có trang web sử dụng tính năng không dùng nữa tiếp tục sử dụng tính năng này cho đến Chrome 116 bằng cách đăng ký mã thông báo. Hãy xem bên dưới để biết hướng dẫn về cách đăng ký và bật bản dùng thử trên trang web của bạn.

Bạn có thể tận dụng một cặp chính sách của Chrome để vô hiệu hoá việc ngừng sử dụng hoàn toàn hoặc trên một số nguồn gốc cụ thể. Điều này cho phép cài đặt Chrome được quản lý, chẳng hạn như những cài đặt trong cài đặt công ty, để tránh sự cố.

Chrome 117

Thời gian dùng thử về việc ngừng sử dụng sẽ kết thúc. Tất cả các trang web phải được di chuyển khỏi tính năng không dùng nữa hoặc phải định cấu hình chính sách người dùng để tiếp tục bật tính năng này.

Bước đầu tiên cho các trang web bị ảnh hưởng rất có thể sẽ mất một chút thời gian cho đến khi có thể triển khai biện pháp khắc phục thích hợp: bằng cách đăng ký bản dùng thử ngừng sử dụng hoặc sử dụng chính sách. Sau đó, các hành động được đề xuất sẽ thay đổi tuỳ thuộc vào tình huống của từng trang web bị ảnh hưởng.

Đăng ký dùng thử việc ngừng sử dụng

  1. Nhấp vào Đăng ký cho bản dùng thử theo nguyên gốc ngữ cảnh không an toàn để truy cập vào mạng riêng để nhận mã thông báo dùng thử cho nguồn gốc tham gia.
  2. Thêm Origin-Trial: $token dành riêng cho nguồn gốc vào tiêu đề phản hồi. Bạn chỉ cần đặt tiêu đề phản hồi này trên các phản hồi điều hướng và tài nguyên chính khi tài liệu thu được sử dụng tính năng không dùng nữa. Việc đính kèm tiêu đề này vào các phản hồi của tài nguyên phụ sẽ vô ích (mặc dù vô hại).

Vì bản dùng thử này phải được bật hoặc tắt trước khi một tài liệu được phép thực hiện bất kỳ yêu cầu nào, nên bạn không thể bật bản dùng thử này thông qua thẻ <meta>. Các thẻ như vậy chỉ được phân tích cú pháp từ nội dung phản hồi sau khi các yêu cầu về tài nguyên phụ có thể đã được đưa ra. Điều này đặt ra một thách thức đối với các trang web không kiểm soát được tiêu đề phản hồi, chẳng hạn như các trang web tĩnh github.io do một bên thứ ba phân phát.

Để biết thêm thông tin, hãy xem Hướng dẫn cho nhà phát triển web về bản dùng thử theo nguyên gốc.

Bật chính sách

Nếu có quyền kiểm soát quản trị đối với người dùng, bạn có thể bật lại tính năng không dùng nữa bằng một trong các chính sách sau:

Để biết thêm thông tin chi tiết về cách quản lý chính sách cho người dùng của bạn, hãy xem bài viết này trong trung tâm trợ giúp.

Truy cập localhost

Nếu trang web của bạn cần gửi yêu cầu đến máy chủ cục bộ, thì bạn chỉ cần nâng cấp trang web lên HTTPS.

Yêu cầu nhắm đến http://localhost (hoặc http://127.*.*.*, http://[::1]) không bị Nội dung hỗn hợp chặn, ngay cả khi được đưa ra từ các ngữ cảnh bảo mật.

Lưu ý rằng công cụ WebKit và các trình duyệt dựa trên công cụ này (đặc biệt nhất là Safari) khác với thông số kỹ thuật về Nội dung hỗn hợp W3C ở đây và cấm các yêu cầu này dưới dạng Nội dung hỗn hợp. Các trình duyệt đó cũng không triển khai Quyền truy cập mạng riêng, vì vậy, các trang web nên chuyển hướng máy khách sử dụng các trình duyệt như vậy đến phiên bản HTTP văn bản thuần tuý của trang web. Các trình duyệt đó vẫn sẽ cho phép gửi yêu cầu đến máy chủ cục bộ.

Truy cập địa chỉ IP riêng tư

Nếu trang web của bạn cần gửi yêu cầu đến một máy chủ mục tiêu trên một địa chỉ IP riêng tư, thì việc nâng cấp trang web của trình khởi tạo lên HTTPS sẽ không thành công. Nội dung hỗn hợp ngăn ngữ cảnh an toàn đưa ra yêu cầu qua HTTP văn bản thuần tuý, vì vậy, trang web mới được bảo mật sẽ vẫn không thể đưa ra yêu cầu. Có một vài cách để giải quyết vấn đề này:

  • Nâng cấp cả hai đầu lên HTTPS.
  • Sử dụng WebTransport để kết nối an toàn với máy chủ đích.
  • Đảo ngược mối quan hệ nhúng.

Nâng cấp cả hai đầu lên HTTPS

Giải pháp này yêu cầu quyền kiểm soát quá trình phân giải DNS của người dùng, chẳng hạn như trường hợp trong ngữ cảnh mạng nội bộ hoặc nếu người dùng lấy địa chỉ của máy chủ định danh từ máy chủ DHCP trong quyền kiểm soát của bạn. Nó cũng yêu cầu bạn sở hữu tên miền công cộng.

Vấn đề chính với việc phân phát các trang web riêng tư qua HTTPS là các tổ chức phát hành chứng chỉ cơ sở hạ tầng khoá công khai (PKI CA) chỉ cung cấp chứng chỉ TLS cho các trang web có tên miền công khai. Để giải quyết vấn đề này, hãy làm như sau:

  1. Đăng ký một tên miền công khai (ví dụ: intranet.example) và xuất bản các bản ghi DNS trỏ tên miền đó đến một máy chủ công khai do bạn chọn.
  2. Lấy chứng chỉ TLS cho intranet.example.
  3. Bên trong mạng riêng của bạn, hãy định cấu hình DNS để phân giải intranet.example thành địa chỉ IP riêng tư của máy chủ đích.
  4. Định cấu hình máy chủ riêng tư của bạn để sử dụng chứng chỉ TLS cho intranet.example. Điều này cho phép người dùng của bạn truy cập vào máy chủ riêng tại https://intranet.example.

Sau đó, bạn có thể nâng cấp trang web bắt đầu yêu cầu thành HTTPS và tiếp tục gửi yêu cầu như trước.

Giải pháp này có thể dùng được trong tương lai và giảm mức độ tin cậy mà bạn đặt vào mạng, từ đó cho phép sử dụng phương thức mã hoá hai đầu trong mạng riêng.

WebTransport

Giải pháp này không yêu cầu quyền kiểm soát quá trình phân giải DNS của người dùng. Phương thức này yêu cầu máy chủ mục tiêu chạy một máy chủ WebTransport ở mức tối thiểu (máy chủ HTTP/3 với một số nội dung sửa đổi).

Bạn có thể bỏ qua vấn đề thiếu chứng chỉ TLS hợp lệ do một CA đáng tin cậy ký bằng cách sử dụng WebTransportcơ chế ghim chứng chỉ của chứng chỉ đó. Điều này cho phép thiết lập kết nối bảo mật đến các thiết bị riêng tư có thể có chứng chỉ tự ký chẳng hạn. Kết nối WebTransport cho phép chuyển dữ liệu hai chiều, nhưng không tìm nạp các yêu cầu. Bạn có thể kết hợp phương pháp này với một trình chạy dịch vụ để gửi các yêu cầu HTTP proxy minh bạch qua kết nối, từ quan điểm của ứng dụng web của bạn. Ở phía máy chủ, lớp dịch tương ứng có thể chuyển đổi thông báo WebTransport thành các yêu cầu HTTP.

Chúng tôi xác nhận rằng việc này tương đối nhiều công việc, nhưng sẽ dễ dàng hơn nhiều so với việc xây dựng dựa trên WebRTC. Chúng tôi cũng hy vọng rằng một số khoản đầu tư cần thiết sẽ được triển khai dưới dạng thư viện có thể sử dụng lại. Chúng tôi cũng tin rằng điều này đặc biệt đáng chú ý khi xem xét thực tế là ngữ cảnh không an toàn có thể mất quyền truy cập ngày càng nhiều tính năng trên nền tảng web khi nền tảng này hướng tới việc khuyến khích sử dụng HTTPS theo cách mạnh mẽ hơn theo thời gian. Bất kể quyền truy cập vào mạng riêng, đây vẫn có thể là một cách đầu tư sáng suốt.

Chúng tôi dự kiến WebTransport qua HTTP/3 sẽ xuất hiện trong Chrome 96 (đã bắt đầu bản dùng thử theo nguyên gốc) với các biện pháp giảm thiểu để ngăn chặn việc chia sẻ khoá và các phương pháp bảo mật không đạt tiêu chuẩn khác, bao gồm:

  • Thời gian hết hạn tối đa ngắn đối với các chứng chỉ đã ghim.
  • Cơ chế dành riêng cho trình duyệt để thu hồi một số khoá nhất định bị sử dụng sai mục đích.

Chúng tôi sẽ không gửi lệnh hạn chế về bối cảnh bảo mật cho đến ít nhất hai mốc quan trọng sau khi WebTransport được triển khai đầy đủ. Thời gian dùng thử việc ngừng sử dụng sẽ được kéo dài nếu cần.

Nhúng ngược

Giải pháp này không yêu cầu quyền kiểm soát quản trị mạng và có thể sử dụng khi máy chủ mục tiêu không đủ mạnh để chạy HTTPS.

Thay vì tìm nạp các tài nguyên phụ riêng tư từ một ứng dụng web công khai, một bộ xương của ứng dụng có thể được phân phát từ máy chủ riêng tư. Sau đó, máy chủ này sẽ tìm nạp mọi tài nguyên phụ (chẳng hạn như tập lệnh hoặc hình ảnh) từ một máy chủ công khai, chẳng hạn như CDN. Sau đó, ứng dụng web thu được có thể gửi yêu cầu đến máy chủ riêng tư, vì những yêu cầu này được coi là cùng nguồn gốc. Ứng dụng này thậm chí có thể gửi yêu cầu đến các máy chủ khác bằng IP riêng tư (chứ không phải localhost), mặc dù điều này có thể thay đổi về lâu dài.

Bằng cách chỉ lưu trữ một bộ xương trên máy chủ riêng tư, bạn có thể cập nhật ứng dụng web bằng cách đẩy tài nguyên mới lên máy chủ công khai, giống như cách bạn cập nhật ứng dụng web công khai. Mặt khác, ứng dụng web thu được không phải là một ngữ cảnh an toàn nên không có quyền truy cập vào một số tính năng mạnh mẽ hơn của web.

Kế hoạch cho tương lai

Việc giới hạn các yêu cầu mạng riêng trong phạm vi ngữ cảnh bảo mật chỉ là bước đầu tiên khi khởi chạy Quyền truy cập mạng riêng. Chrome đang nỗ lực triển khai phần còn lại của quy cách trong những tháng tới. Hãy chú ý theo dõi thông tin cập nhật!

Hạn chế quyền truy cập máy chủ cục bộ từ các trang web riêng tư

Các thay đổi trong Chrome 94 chỉ ảnh hưởng đến các trang web công khai truy cập vào địa chỉ IP riêng tư hoặc máy chủ cục bộ. Thông số kỹ thuật về Quyền truy cập mạng riêng cũng phân loại các yêu cầu từ trang web riêng tư đến máy chủ cục bộ là có vấn đề. Cuối cùng, Chrome cũng sẽ không dùng những tính năng này nữa. Tuy nhiên, việc này đặt ra một bộ thách thức hơi khác, vì nhiều trang web riêng tư không có tên miền, làm phức tạp việc sử dụng mã thông báo dùng thử không dùng nữa.

Yêu cầu kiểm tra CORS

Phần thứ hai của Quyền truy cập mạng riêng là kiểm soát các yêu cầu mạng riêng được khởi tạo từ ngữ cảnh bảo mật bằng các yêu cầu kiểm tra CORS. Ý tưởng này là ngay cả khi yêu cầu được khởi tạo từ ngữ cảnh bảo mật, máy chủ mục tiêu vẫn được yêu cầu cung cấp một cấp quyền rõ ràng cho trình khởi tạo. Yêu cầu chỉ được gửi nếu cấp thành công.

Tóm lại, yêu cầu kiểm tra CORS là một yêu cầu HTTP OPTIONS chứa một số tiêu đề Access-Control-Request-* cho biết bản chất của yêu cầu tiếp theo. Sau đó, máy chủ có thể quyết định có cấp quyền truy cập chi tiết hay không bằng cách phản hồi 200 OK với các tiêu đề Access-Control-Allow-*.

Hãy tìm hiểu thêm thông tin chi tiết về vấn đề này trong thông số kỹ thuật.

Hạn chế tìm nạp điều hướng

Chrome sẽ ngừng sử dụng và cuối cùng chặn các yêu cầu về tài nguyên phụ đến các mạng riêng tư. Thao tác này sẽ không ảnh hưởng đến các lượt điều hướng đến mạng riêng. Tình trạng này cũng có thể được dùng trong các cuộc tấn công CSRF.

Thông số kỹ thuật về Quyền truy cập mạng riêng không phân biệt hai kiểu tìm nạp mà cuối cùng sẽ tuân theo cùng một quy định hạn chế.

Ảnh bìa của Markus Spiske trên Unsplash