Ok Những người bạn và người dùng SSL nâng cao - Tôi sẽ bổ sung thêm tiền thưởng sau khoảng thời gian hai ngày vì tôi nghĩ rằng đó là một chủ đề phức tạp xứng đáng một phần thưởng cho bất kỳ ai chu đáo câu trả lời.SSL nâng cao: Cơ quan cấp chứng chỉ trung gian và triển khai các hộp được nhúng
Một số giả định ở đây đơn giản là: giả định hoặc dự đoán chính xác hơn hy vọng. Hãy xem xét điều này một lời trêu ghẹo não, chỉ đơn giản nói rằng 'Điều này là không thể' là thiếu điểm.
Giải pháp thay thế và một phần được hoan nghênh, trải nghiệm cá nhân nếu bạn đã thực hiện điều gì đó 'tương tự'. Tôi muốn học điều gì đó từ điều này ngay cả khi toàn bộ kế hoạch của tôi là thiếu sót.
Đây là kịch bản:
Tôi đang phát triển trên một hệ thống Linux nhúng và muốn máy chủ web của mình để có thể phục vụ out-of-the-box, SSL không rắc rối. Dưới đây là các tiêu chuẩn thiết kế Tôi đang nhắm đến:
Phải có:
- tôi không thể có người sử dụng thêm chứng chỉ CA cây nhà lá vườn của tôi để trình duyệt của họ
- tôi không thể có người dùng thêm chứng chỉ tự ký được tạo tĩnh (tại thời điểm mfg) vào trình duyệt của họ
- Tôi không thể để người dùng thêm chứng chỉ tự ký được tạo động (vào lúc khởi động) vào trình duyệt của họ.
- Tôi không thể mặc định thành HTTP và bật/tắt tính năng bật/tắt cho SSL. Nó phải là SSL.
- Cả hộp được nhúng lẫn trình duyệt web đều có thể có hoặc không có quyền truy cập internet vì vậy phải được giả định hoạt động chính xác mà không cần truy cập internet. Các CA gốc duy nhất mà chúng ta có thể dựa vào là các CA được vận chuyển với hệ điều hành hoặc trình duyệt. Giả sử danh sách đó là 'cơ bản' giống nhau trên các trình duyệt và hệ điều hành - tức là chúng tôi sẽ có tỷ lệ thành công ~ 90% nếu chúng tôi dựa vào chúng.
- Tôi không thể sử dụng hoạt động bay theo đêm, nghĩa là 'Nhà thanh toán chứng chỉ SSL của Fast Eddie - với mức giá mà máy chủ của chúng tôi thấp này bị tấn công! '
Rất vui được giàu:
- Tôi không muốn người dùng cảnh báo rằng hostname của chứng chỉ không phù hợp với hostname trong trình duyệt. Tôi coi đây là một điều tốt đẹp để có bởi vì nó có thể là không thể.
Không muốn:
- Tôi không muốn xuất xưởng cùng một tập hợp các phím tĩnh cho mỗi hộp. Loại ngụ ý bởi danh sách 'không thể', nhưng tôi biết rủi ro.
Có Có, tôi biết ..
- tôi có thể và tôi cung cấp một cơ chế cho người sử dụng để tải lên cert của mình/khóa nhưng tôi xem xét 'chế độ nâng cao' này và ra khỏi phạm vi của câu hỏi này. Nếu người dùng đủ nâng cao để có CA nội bộ hoặc các khóa mua hàng của họ thì chúng thật tuyệt vời và tôi yêu họ.
Nghĩ Cap Thời gian
Kinh nghiệm của tôi với SSL đã được tạo cert/chìa khóa để có chữ ký của root 'thật', cũng như đẩy mạnh trò chơi của tôi một chút với việc CA nội bộ của riêng tôi , phân phối các chứng chỉ 'tự ký' nội bộ. Tôi biết bạn có thể chuỗi chứng chỉ, nhưng tôi không chắc chắn thứ tự của các hoạt động là gì. tức là trình duyệt 'đi lên' chuỗi có thấy một CA gốc hợp lệ và xem đó là một chứng chỉ hợp lệ - hay bạn cần phải có xác minh ở mọi cấp độ?
Tôi đã xem qua mô tả của intermediate certificate authority khiến tôi suy nghĩ về các giải pháp tiềm năng. Tôi có thể đã chuyển từ 'các giải pháp đơn giản' để 'chế độ cơn ác mộng', nhưng nó sẽ có thể:
ý tưởng điên rồ # 1
- Nhận một cert certificate authority trung gian có chữ ký của một 'thực tế 'CA. (ICA-1)
- ROOT_CA -> ICA-1
- Chứng chỉ này sẽ được sử dụng vào thời điểm sản xuất để tạo ra một mật mã cặp certificate authority tiểu trung gian duy nhất trên mỗi hộp.
- ICA-1 -> ICA-2
- Sử dụng ICA-2 để tạo ra một máy chủ độc đáo cert/khóa. Thông báo trước ở đây là, bạn có thể tạo khóa/cặp cho một IP (và không phải là tên DNS không?)? tức là trường hợp sử dụng tiềm năng cho điều này sẽ là người dùng kết nối với hộp ban đầu qua http và sau đó chuyển hướng máy khách đến dịch vụ SSL bằng IP trong URL chuyển hướng (để trình duyệt không phàn nàn về sự không phù hợp). Đây có thể là tấm thẻ đưa ngôi nhà xuống. Vì kết nối SSL phải được thiết lập trước khi bất kỳ chuyển hướng nào có thể xảy ra, tôi có thể thấy rằng đó cũng là một vấn đề. Tôi có thể sử dụng ICA-2 để tạo cặp cert/key mới bất cứ khi nào hộp thay đổi IP sao cho khi máy chủ web quay lại, nó luôn có chuỗi khóa 'hợp lệ'.
- ICA-2 -> SP-1
Ok, Bạn Vì vậy, thông minh
Nhiều khả năng, giải pháp phức tạp của tôi sẽ không làm việc - nhưng nó muốn được tuyệt vời nếu nó đã làm. Bạn đã có một vấn đề tương tự? Bạn sẽ làm gì? Buôn bán là gì?
Có thể bạn vẫn có thể sử dụng HTTP đơn giản để tải lên chứng chỉ CA gốc hoặc chứng chỉ máy chủ riêng tư cho trình duyệt của người dùng không? Nó có thể được thực hiện như là "một cú nhấp chuột" (ok, không phải một nhưng rất dễ dàng) quá trình tại thời gian cài đặt máy chủ. Là "không có HTTP, không có cài đặt cert" thực sự phải có? – blaze
Thật không may là 'phải có' dựa trên phản ứng tiêu cực về giải pháp hiện tại của việc phải nhấp qua với chứng chỉ tự ký. Nhưng sau khi nói chuyện với một vài người ủng hộ khách hàng của chúng tôi nó dường như là xấu như bắn con chó của khách hàng. Nó _is_ một nỗi đau trong ass, và không được giúp đỡ bởi thái độ ngày càng tăng của người đàn ông cranky cũ của Firefox về certs tự ký kết. Thats kinda những gì đã cho tôi chụp cho các ngôi sao, có phải là một cách tốt hơn. auth_digest không giải quyết nó, SRP-TLS được gần hơn đối với một số khía cạnh nhưng nó vẫn còn chảy máu cạnh liên quan đến hỗ trợ. – synthesizerpatel