Thông tin xác thực phiên được liên kết với thiết bị (DBSC) là một tính năng web mới được thiết kế để bảo vệ các phiên của người dùng khỏi hành vi đánh cắp cookie và xâm nhập phiên. Tính năng này hiện có sẵn để thử nghiệm dưới dạng Bản dùng thử theo nguồn gốc trong Chrome 135.
Thông tin khái quát
Cookie đóng vai trò quan trọng trong quy trình xác thực web hiện đại, cho phép người dùng luôn đăng nhập trong các phiên duyệt web. Tuy nhiên, tin tặc ngày càng khai thác cookie xác thực bị đánh cắp để xâm nhập vào các phiên, bỏ qua quy trình xác thực đa yếu tố và các cơ chế bảo mật đăng nhập khác.
Những kẻ điều hành phần mềm độc hại thường đánh cắp cookie phiên từ các thiết bị bị xâm nhập, cho phép truy cập trái phép vào tài khoản người dùng. Vì cookie là mã thông báo mang theo, nên cookie cấp quyền truy cập mà không yêu cầu bằng chứng về quyền sở hữu, khiến cookie trở thành mục tiêu hấp dẫn cho kẻ tấn công.
Thông tin xác thực phiên được liên kết với thiết bị (DBSC) nhằm ngăn chặn hành vi đánh cắp cookie bằng cách tạo một phiên được xác thực và liên kết với một thiết bị. Phương pháp này giúp giảm khả năng cookie bị rò rỉ có thể truy cập vào tài khoản từ một thiết bị khác.
Cách hoạt động
DBSC giới thiệu một API mới cho phép máy chủ tạo một phiên đã xác thực được liên kết với một thiết bị. Khi một phiên được bắt đầu, trình duyệt sẽ tạo một cặp khoá công khai-riêng tư, lưu trữ khoá riêng tư một cách an toàn bằng cách sử dụng bộ nhớ được hỗ trợ phần cứng, chẳng hạn như Mô-đun nền tảng đáng tin cậy (TPM) nếu có.
Sau đó, trình duyệt sẽ phát hành một cookie phiên thông thường. Trong thời gian hoạt động của phiên, trình duyệt định kỳ chứng minh quyền sở hữu khoá riêng tư và làm mới cookie phiên. Bạn có thể đặt thời gian tồn tại của cookie đủ ngắn để kẻ tấn công không có lợi khi đánh cắp cookie.
Các thành phần chính
Đăng ký phiên:
- Khi người dùng đăng nhập, máy chủ sẽ yêu cầu một phiên liên kết với thiết bị bằng cách sử dụng tiêu đề HTTP
Sec-Session-Registration
. - Trình duyệt sẽ tạo một cặp khoá mới, lưu trữ khoá riêng tư một cách an toàn.
- Một cookie xác thực ngắn hạn cũng được thiết lập và liên kết với cặp khoá này.
- Máy chủ liên kết phiên với khoá công khai tương ứng, đảm bảo rằng phiên chỉ có thể được sử dụng trên thiết bị ban đầu.
- Khi người dùng đăng nhập, máy chủ sẽ yêu cầu một phiên liên kết với thiết bị bằng cách sử dụng tiêu đề HTTP
Làm mới phiên và bằng chứng sở hữu:
- Khi cookie ngắn hạn hết hạn, Chrome sẽ kích hoạt một lượt làm mới phiên.
- Trình duyệt gửi một yêu cầu đến điểm cuối làm mới do máy chủ xác định (được cung cấp trong quá trình đăng ký phiên) và một thách thức đã ký bằng tiêu đề
Sec-Session-Challenge
(nếu máy chủ cung cấp). - Máy chủ xác minh bằng chứng về quyền sở hữu bằng cách xác thực phản hồi được ký bằng khoá riêng tư của phiên.
- Nếu hợp lệ, máy chủ sẽ phát hành một cookie mới có thời gian tồn tại ngắn, cho phép phiên tiếp tục.
Một lợi ích của phương pháp này là Chrome trì hoãn các yêu cầu sẽ bị thiếu cookie ngắn hạn đã làm mới. Hành vi này giúp cookie liên kết với phiên hoạt động luôn có sẵn trong suốt phiên hoạt động và cho phép nhà phát triển tự tin hơn khi sử dụng cookie so với các phương pháp mà cookie có thể hết hạn hoặc biến mất mà không tự động gia hạn.
Ví dụ về cách triển khai
Máy chủ có thể yêu cầu một phiên liên kết với thiết bị như sau:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
Khi phiên đang hoạt động, máy chủ có thể xác minh phiên đó bằng một lượt trao đổi thách thức-phản hồi:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
Trình duyệt phản hồi bằng:
POST /refresh
Sec-Session-Response: "signed-proof"
Lợi ích
- Giảm thiểu hành vi đánh cắp cookie: Ngay cả khi cookie phiên bị đánh cắp, người dùng cũng không thể sử dụng cookie đó trên một thiết bị khác.
- Tăng cường bảo mật mà không cần thay đổi lớn về trải nghiệm người dùng: Hoạt động minh bạch ở chế độ nền mà không yêu cầu người dùng tương tác thêm.
- Giảm mức độ phụ thuộc vào cookie phiên hoạt động trong thời gian dài: Cookie ngắn hạn sẽ tự động được làm mới miễn là phiên vẫn hợp lệ trên thiết bị ban đầu.
- Hỗ trợ các cơ chế mã hoá tiêu chuẩn: Tận dụng bộ nhớ bảo mật được hỗ trợ TPM (nếu có), giúp bảo vệ mạnh mẽ trước hành vi đánh cắp dữ liệu.
Những điều cần cân nhắc về quyền riêng tư và bảo mật
DBSC được thiết kế để tăng cường bảo mật mà vẫn bảo vệ quyền riêng tư của người dùng:
- Không có vectơ theo dõi bổ sung: Mỗi phiên được liên kết với một cặp khoá duy nhất, ngăn chặn việc theo dõi trên nhiều phiên.
- Không tạo vân tay thiết bị lâu dài: Máy chủ không thể liên kết các phiên khác nhau trên cùng một thiết bị trừ phi người dùng cho phép rõ ràng.
- Người dùng có thể xoá: Các phiên và khoá sẽ bị xoá khi người dùng xoá dữ liệu trang web.
- Đảm bảo tuân thủ chính sách về cookie: DBSC tuân theo phạm vi dựa trên trang web giống như cookie, đảm bảo không gây rò rỉ dữ liệu trên nhiều nguồn gốc.
Dùng thử
Bản dùng thử Thông tin xác thực phiên được liên kết với thiết bị theo nguồn gốc có trong Chrome 135.
Đối với kiểm thử cục bộ
Cách kiểm thử DBSC cục bộ:
- Chuyển đến
chrome://flags#device-bound-session-credentials
và bật tính năng này.
Để thử nghiệm công khai
Cách kiểm thử DBSC bằng bản dùng thử theo nguyên gốc trong môi trường công khai:
- Truy cập vào trang Bản dùng thử theo nguyên gốc của Chrome và đăng ký.
Thêm mã thông báo được cung cấp vào tiêu đề HTTP của trang web:
Origin-Trial: <your-trial-token>
Tài nguyên
- Thông số kỹ thuật của Thông tin xác thực phiên được liên kết với thiết bị
- Kho lưu trữ GitHub cho DBSC
- Hướng dẫn tích hợp Thông tin xác thực phiên được liên kết với thiết bị (DBSC)
Tham gia và định hình tương lai của bảo mật web
Hãy cùng chúng tôi giúp quy trình xác thực trên web an toàn hơn! Nhà phát triển web nên kiểm thử DBSC, tích hợp DBSC vào ứng dụng và chia sẻ ý kiến phản hồi. Bạn có thể tương tác với chúng tôi trên GitHub hoặc tham gia thảo luận với Nhóm làm việc về bảo mật ứng dụng web.
Bằng cách triển khai DBSC, chúng ta có thể giảm thiểu rủi ro xâm nhập phiên và tăng cường bảo mật xác thực cho người dùng. Hãy bắt đầu ngay hôm nay để góp phần định hình tương lai của bảo mật web!