Điều gì xảy ra với trình duyệt của người dùng nếu chứng chỉ SSL được thay thế vào giữa phiên?


8

Trong bối cảnh các trình duyệt hiện đại loại bỏ các chứng chỉ bảo mật được ký bằng thuật toán băm SHA1, chúng tôi đang bận thay thế tất cả các chứng chỉ SHA1 bằng SHA2. Nói chung, chúng tôi chỉ có thể thay thế certs cho các ứng dụng web sử dụng nội bộ chủ yếu này vào buổi tối hoặc cuối tuần, khi có rất ít lưu lượng truy cập.

Điều gì sẽ xảy ra nếu tôi, vô tình, ở giữa một phiên được mã hóa và chứng chỉ cho tên miền đã được thay thế?

Để đảm bảo an toàn, chúng tôi đã khuyên khách hàng của mình rằng họ có thể cho rằng người dùng ở giữa phiên trong khi thay đổi này có thể thấy sự gián đoạn của phiên của họ và có thể mất bất kỳ dữ liệu nào chưa được lưu trữ trong cơ sở dữ liệu. Nếu tôi đang ở giữa phiên trong khi thay thế chứng chỉ, tôi có thể cho rằng khi tôi tải trang tiếp theo, sau khi thay thế chứng chỉ, trình duyệt của tôi sẽ thấy một chứng chỉ đã ký khác với phiên của tôi được thiết lập và khiến phiên này bị " Hoảng hốt". Tôi hy vọng tất cả các trình duyệt sẽ xử lý tình huống này theo cách tương tự, nhưng xin vui lòng khai sáng cho tôi nếu tôi nhầm.

Tôi đã dành một khoảng thời gian hợp lý để tìm kiếm các thông tin cụ thể hơn về cách các trình duyệt sẽ xử lý tình huống này, nhưng tôi không gặp nhiều may mắn khi tìm thấy thông tin chung hoặc kỹ thuật. Tôi thực sự tò mò, và đã quyết định đăng câu hỏi này với hy vọng nhận được câu trả lời chính xác cho câu trả lời Q, có tham khảo một số nguồn đáng tin cậy để xác thực.

Câu trả lời:


7

... Trình duyệt của tôi sẽ thấy một chứng chỉ đã ký khác với phiên của tôi được thiết lập và khiến phiên này "kỳ dị".

Từ quan điểm của quản trị trang web và không đi sâu vào chi tiết về " cách SSL hoạt động " (sẽ được thảo luận tốt hơn tại Bảo mật thông tin ) ...

Khóa phiên sẽ không còn phù hợp để máy chủ hoặc trình duyệt máy khách sẽ hủy kết nối. Sau đó, trình duyệt máy khách sẽ đưa ra một yêu cầu khác cho bất kỳ tài nguyên nào trên trang tiếp theo sẽ không nhận được, nó sẽ mở một kết nối mới, thiết lập lại bắt tay SSL, chứng chỉ, trao đổi khóa và khóa phiên (như được thảo luận ngắn gọn ở gần cuối đây )

Vì chứng chỉ SSL mới sẽ được cấp cho cùng một tên miền, người dùng có thể sẽ không nhận thấy bất cứ điều gì vì chỉ có chứng chỉ sẽ thay đổi (nghĩa là khóa màu xanh lá cây vẫn sẽ được hiển thị), mà người dùng thường không xem, đặc biệt là giữa các trang trên cùng một trang web.


Tuy nhiên, điều bạn có thể không cân nhắc là khi bạn cài đặt chứng chỉ SSL mới, bạn sẽ phải định cấu hình và khởi động lại máy chủ của mình, vì vậy các phiên sẽ bị đóng sau đó bất kể và trình duyệt sẽ không nhận được ...

Do đó, tôi sẽ đề nghị tạm thời chuyển hướng tất cả lưu lượng truy cập đến trang "Bảo trì" bằng chuyển hướng 302 , với thông báo trước thời hạn được đăng trên trang web của bạn cho biết thời gian bảo trì sẽ diễn ra và trong bao lâu trang web sẽ không khả dụng.

Một cách khác để chuyển hướng sẽ là gửi mã phản hồi máy chủ HTTP không có sẵn Dịch vụ 503 với   trường phản hồi tiêu đề HTTP Retry-After để cho biết khi nào máy chủ sẽ khả dụng trở lại.

Cuối cùng nhưng không kém phần quan trọng, nếu bạn có nhiều hơn một máy chủ cho mặt trước của trang web, bạn có thể cài đặt chứng chỉ trên một máy chủ khác và chuyển hướng các kết nối mới đến đó trong khi bạn cập nhật (các) máy chủ khác. Bạn có thể kiểm tra các kết nối hiện có trong Apache tại đây và IIS tại đây để giúp với điều đó, nếu bạn chưa sử dụng thiết lập không an toàn hoặc cân bằng tải.


Certs ở trên một bộ cân bằng tải phía trước ... vì vậy không có sự gián đoạn dịch vụ và không cần chuyển hướng 503 / temp.
Dallas

Vì vậy, nếu tôi ở trang 5 của quy trình làm việc 10 trang ... phiên của tôi sẽ giữ thông tin đã được nhập ở trang 1-5 và tiếp tục ở trang 6 với chứng chỉ mới, hoặc thiết lập lại kết nối sẽ mất tất cả các biến phiên và bắt đầu tôi lại ở trang 1 mới?
Dallas

Điều đó phụ thuộc vào cách ứng dụng web của bạn được mã hóa. Nó nên được theo dõi ID phiên cho người dùng (được lưu trữ trong cookie, trường biểu mẫu, URL, v.v.), khác với phiên SSL / TLS . Vì vậy, nếu có sự cố kết nối (có thể xảy ra bình thường), dữ liệu phiên của người dùng sẽ duy trì trong một khoảng thời gian cho đến khi họ thực hiện kết nối khác. Trong trường hợp kỳ lạ là ID phiên không được theo dõi, bạn nên giảm tải các kết nối mới đến một máy chủ khác và đợi các kết nối hiện tại hoàn thành hoặc hết thời gian chờ trước khi đưa máy chủ đó ngoại tuyến để cập nhật chứng chỉ SSL.
dan

Tôi xin lỗi vì từ ngữ kém. Những gì tôi đã nhận được, là liệu một phiên có vấn đề khi kết nối tiếp theo đến từ một chứng chỉ khác với phiên được thiết lập với. Có phiên không quan tâm? Tôi nghĩ rằng một chứng chỉ khác sẽ có ảnh hưởng đến việc nối lại phiên, nhưng tôi có ấn tượng rằng bạn nói rằng phiên không quan tâm đến kết nối. Tôi không biết sự khác biệt giữa phiên SSL và "phiên người dùng" là gì? Tôi đã có ấn tượng ID phiên mà chúng tôi theo dõi là ID phiên SSL / TLS, mà tôi nghĩ cũng giống như phiên của người dùng.
Dallas

Tôi nghĩ rằng bạn đang trộn lẫn thuật ngữ một chút: ID phiên được tạo bởi máy chủ và được sử dụng để theo dõi người dùng thông qua các yêu cầu tiếp theo vì HTTP không trạng thái . Tất cả các kết nối ổ cắm TCP có thể chấm dứt, do đó, tùy thuộc vào ứng dụng để theo dõi người dùng khi họ thực hiện, điều này được thực hiện bằng ID phiên . Ví dụ: đăng nhập an toàn vào ngân hàng hoặc trang web bảo mật khác, nhấp vào một số liên kết, sau đó vô hiệu hóa thẻ nic của bạn, sau đó bật và nhấp vào liên kết khác ... bạn vẫn sẽ đăng nhập vì ID phiên của bạn được theo dõi bởi ứng dụng.
dan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.