2011-08-25 21 views
5

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ì?

+1

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

+1

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

Trả lời

6

Về cơ bản, không, bạn không thể làm điều này theo cách bạn mong muốn.

Bạn không phải là cơ quan cấp trung gian SSL và bạn không thể đủ khả năng để trở thành một. Ngay cả khi bạn, không có cách nào trong địa ngục bạn được phép phân phối cho người tiêu dùng mọi thứ cần thiết để tạo chứng chỉ hợp lệ mới cho bất kỳ miền nào, được tin cậy theo mặc định trong tất cả các trình duyệt. Nếu điều này là có thể, toàn bộ hệ thống sẽ sụp đổ (không phải là nó không có vấn đề gì).

Thông thường, bạn không thể yêu cầu các cơ quan công quyền ký giấy chứng nhận được cấp cho địa chỉ IP, mặc dù không có kỹ thuật nào ngăn chặn nó.

Hãy nhớ rằng nếu bạn thực sự phân phối khóa riêng tư trong bất kỳ thứ gì ngoài các mô-đun mã hóa bảo mật giả mạo, thiết bị của bạn không thực sự được bảo mật bằng SSL. Bất kỳ ai có một trong các thiết bị đều có thể kéo khóa riêng tư (đặc biệt nếu nó không có mật khẩu) và thực hiện các cuộc tấn công hợp lệ, đã ký, MITM trên tất cả các thiết bị của bạn. Bạn không khuyến khích nghe trộm bình thường, nhưng đó là về nó.

Tùy chọn tốt nhất của bạn có thể là nhận và ký giấy chứng nhận cho tên miền phụ internet hợp lệ và sau đó nhận thiết bị để trả lời cho tên miền phụ đó. Nếu đó là một thiết bị mạng trong đường đi, bạn có thể thực hiện một số phép thuật định tuyến để làm cho nó trả lời cho miền, tương tự như bao nhiêu hệ thống tường-vườn làm việc. Bạn có thể có một cái gì đó như "system432397652.example.com" cho mỗi hệ thống, và sau đó tạo ra một khóa cho mỗi hộp tương ứng với tên miền phụ đó. Có chuyển hướng truy cập IP trực tiếp đến miền và có hộp chặn yêu cầu hoặc thực hiện một số thủ thuật DNS trên internet để miền phân giải đúng IP nội bộ cho từng khách hàng. Sử dụng tên miền lưu trữ có mục đích duy nhất cho điều đó, không chia sẻ với các trang web doanh nghiệp khác của bạn.

Thanh toán nhiều hơn cho chứng chỉ không thực sự làm cho chúng ít nhiều hợp pháp. Bởi thời gian một công ty đã trở thành một CA gốc, nó xa một hoạt động bay-by-đêm. Bạn nên kiểm tra xem liệu StartSSL có phù hợp với nhu cầu của bạn không vì chúng không tính phí trên cơ sở mỗi chứng chỉ.

+0

Về vấn đề 'Chỉ bảo mật như phần cứng vật lý', tôi sẽ thừa nhận rằng tôi đồng ý và hiểu khía cạnh đó. Mong muốn cho các khóa duy nhất là tránh trường hợp đó là một cert/key hợp lệ được triển khai trên mỗi hộp (kết quả là vấn đề không phù hợp với máy chủ) kể từ khi bạn nhận được một hộp riêng tư, bạn có thể giải mã mọi hộp. Liên quan đến chi phí cert trung gian - tôi phần nào đoán rằng đó sẽ là trường hợp. Tôi ước EFF sẽ bắt đầu một CA phi lợi nhuận. – synthesizerpatel

+0

Nếu bạn đang tìm kiếm một CA có chi phí thấp, bạn muốn StartSSL (tôi nghĩ bạn đang đào sâu vào lúc trước với công cụ "nhanh chóng ...", vì vậy tôi đã không đề cập đến chúng). Mô hình của họ xác minh bạn và sau đó cho phép bạn phát hành bao nhiêu chứng chỉ tùy thích. Trường hợp sử dụng của bạn có lẽ là ranh giới cho các điều khoản của họ, nhưng tôi nghĩ rằng nó ở phía bên phải của dòng. Mô hình tên miền phụ tùy chỉnh có khả năng hoạt động cho trường hợp sử dụng của bạn không? –

+1

Điều này đã chết. Bởi vì không có một giải pháp công nghệ, bạn sẽ phải xử lý nó trong bán hàng hoặc hỗ trợ. Một người nào đó cần phải nói với khách hàng những gì các tùy chọn ssl là theo cách mà họ được khuyến khích để có được một cert không ký tự. Heck, tôi chắc chắn rằng bạn có thể hợp tác với một người nào đó để cung cấp nó trong ứng dụng và lấy một phần của việc bán như là một referall. – NotMe

Các vấn đề liên quan