2013-06-02 33 views
6

Trước khi sử dụng một sslificate ssl giữa một dịch vụ mà tôi sẽ được lưu trữ trên mạng nội bộ của tôi, tôi sẽ muốn hiểu thêm một chút về nó. Từ đọc trên internet, đây là cách tôi hiểu cách SSL hoạt động.Khóa cá nhân ở đâu khi sử dụng SSL được lưu trữ?

  1. client kết nối đến các dịch vụ WCF
  2. các dịch vụ WCF trả lời với nó là khóa công khai và nó chứng
  3. client sau đó xác minh chứng chỉ và mã hóa thông tin của mình với phím
  4. dịch vụ WCF công
  5. sau đó giải mã tin nhắn đó với khóa riêng tư của nó và xác thực thông tin
  6. vv ...

Biết đây là một số thi Tôi không hiểu:

  • Ở bước 4. nơi dịch vụ WCF đặt khóa riêng tư?
  • Tại sao chứng chỉ SSL cần thiết? từ việc đọc trên internet, cần phải xác minh rằng Dịch vụ là người tôi muốn. Điều đó không có ý nghĩa với tôi bởi vì trước tiên tôi biết địa chỉ IP của dịch vụ của tôi trên mạng nội bộ của tôi (tôi biết dịch vụ đó là ai). Giả vờ đây không phải là trường hợp tôi đang trên internet và ai đó đang cố gắng hack tôi. Trong trường hợp đó, tôi tin rằng nếu tôi kết nối với dịch vụ của họ thay vì thực tế thì tôi không thể làm gì vì nếu bạn nhớ lại bước 2, dịch vụ WCF đã trả lời bằng khóa công khai và chứng chỉ (trên văn bản thuần túy) có nghĩa là ai đó có thể lấy chứng chỉ đó và sử dụng nó?
  • Nếu tôi sử dụng SSL sertifiate và ai đó có quyền truy cập vào máy tính đang lưu trữ dịch vụ bằng cách nào đó bạn có thể nhận khóa riêng tư khiến kết nối của tôi không an toàn?

Trả lời

16

Trước hết, có một số bước bị thiếu trong bước ba. Điều gì thực sự xảy ra trong bước thứ ba là:

  • khách hàng xác nhận giấy chứng nhận
  • máy khách và máy chủ gửi một số thông điệp qua lại nhờ đó mà họ đàm phán những loại bí mật mã hóa khóa cả hai đều có thể sử dụng
  • khách hàng tạo khóa bí mật cho thuật toán mã hóa đó, mã hóa khóa bí mật bằng khóa công khai của máy chủ và gửi khóa bí mật được mã hóa đến máy chủ.
  • máy chủ hiện có thể giải mã khóa bí mật bằng khóa riêng của họ.
  • khách hàng và máy chủ hiện đã đồng ý về thuật toán khóa bí mật và họ chia sẻ khóa bí mật. Tất cả các thông tin liên lạc hiện được mã hóa và giải mã bằng khóa bí mật được chia sẻ.
  • khách hàng mã hóa thông tin xác thực của họ bằng khóa bí mật ...

Lý do cho điều này là gấp đôi. Đầu tiên, toán cho mật mã khóa công khai đắt hơn nhiều so với toán cho mật mã khóa bí mật. Ý tưởng là để làm điều đó toán học đắt tiền chỉ một lần, để cho phép trao đổi một bí mật được chia sẻ. Thứ hai, máy khách biết khóa công khai của máy chủ, nhưng máy khách có thể thậm chí không có khóa công khai, vậy làm thế nào máy chủ có thể gửi một thông báo bí mật? Đó là lý do tại sao họ phải đồng ý về một khóa bí mật được chia sẻ.

Dù sao chuyển sang câu hỏi của bạn:

đâu dịch vụ giữ khóa bí mật của mình?

Trên Windows trong bộ nhớ chứng chỉ do hệ điều hành cung cấp. Trên các hệ điều hành khác, tôi không biết.

Tại sao chứng chỉ cần thiết?

Giả sử bạn muốn mua máy cắt cỏ của tôi bằng thẻ tín dụng, nhưng bạn lo lắng rằng tôi thực sự có thể là kẻ lừa đảo. Bạn muốn biết tên thật của tôi để bạn có thể truy tố tôi nếu tôi bắt đầu tính phí chuyến đi của tôi đến Vegas trên thẻ của bạn.

Vì vậy, khi chúng tôi thực hiện giao dịch, tôi cho bạn thấy một mẩu giấy có nội dung "Eric Lippert cho rằng chủ sở hữu của tờ giấy này là Eric Lippert, đã ký, Eric Lippert". Bạn có tin tôi? Nếu bạn đã tin tưởng Eric Lippert thì bạn không cần mảnh giấy, và nếu bạn không tin tưởng Eric Lippert, thì giấy không thiết lập sự tin tưởng. Đây là "chứng chỉ tự ký".

Bây giờ, nếu tôi chỉ cho bạn một mẩu giấy có nội dung "VeriSign kết hợp tuyên bố rằng chủ sở hữu của tờ giấy này là Eric Lippert, đã ký VeriSign", thì câu hỏi là: bạn có tin tưởng VeriSign đã xác minh danh tính của tôi không ? Nếu bạn làm, thì đây là bằng chứng cho thấy người mà bạn đang nói chuyện là người mà họ tuyên bố là.

Đó là mục đích của chứng chỉ. Nó thiết lập rằng một khóa công khai cụ thể thực sự được liên kết với một tổ chức cụ thể bởi vì nó là được một bên thứ ba được tin cậy lẫn nhau có chữ ký là được gọi là cơ quan chứng nhận .

Khi bạn mua thứ gì đó bằng thẻ tín dụng trực tuyến, bạn có thể tin tưởng trang web chỉ thực hiện các khoản phí được ủy quyền cho thẻ đó. Chứng chỉ xác minh rằng khóa công khai mà bạn sẽ sử dụng để mã hóa thực sự là chìa khóa công cộng của trang web đó, chứ không phải khóa công khai của một hacker nào đó.

Nhưng chứng chỉ với khóa công khai là công khai, vì vậy, không ai có thể lấy chứng chỉ và giả vờ làm máy chủ?

Có, nhưng điều đó không giúp họ trừ khi họ ăn cắp khóa riêng tư, riêng tư. Người có chứng chỉ của người khác không thể giải mã thư đã được mã hóa bằng khóa công khai, vì vậy họ sẽ không thể thực hiện trao đổi khóa bí mật với khách hàng! Ngay cả khi họ quản lý để lừa khách hàng, tất cả họ sẽ nhận được là một luồng bit được mã hóa bằng khóa bí mật của sự lựa chọn của khách hàng, một khóa bí mật mà kẻ tấn công không thể có mà không có một nửa chứng chỉ riêng.

Điều đó có nghĩa là: nếu tôi cho phép truy cập vào khóa riêng của mình, ai đó có thể mạo danh tôi, phải không?

Có. Bảo mật của toàn bộ hệ thống phụ thuộc vào khóa riêng tư còn lại. Đó là lý do tại sao nó được gọi là khóa riêng riêng. Nếu kẻ tấn công có quyền truy cập vào khóa riêng của bạn thì họ có thể mạo danh bạn theo ý muốn, vì vậy, hãy giữ bí mật, giữ an toàn cho số điện thoại. Nếu khóa của bạn bị xâm nhập thì có một cơ chế mà theo đó chứng chỉ có thể bị thu hồi, nhưng thiệt hại thường sẽ được thực hiện.

6

câu trả lời Eric Lippert là tuyệt vời, nhưng tôi nghĩ rằng tôi muốn bổ sung thêm một vài chi tiết để đáp ứng với một vài điểm:

  • Điều đó không có ý nghĩa với tôi bởi vì đầu tiên tôi biết địa chỉ IP của dịch vụ của tôi trên mạng nội bộ của tôi (Tôi biết dịch vụ đó là ai)

Vâng, đúng là SSL xác minh danh tính của máy chủ có thể không có nhiều lợi ích nếu bạn ở bên trong và mạng nội bộ hoặc trên mạng LAN an toàn đáng tin cậy . Tuy nhiên, SSL hoặc chính xác hơn, TLS (Transport Layer Security), cung cấp cho bạn một kênh được mã hóa để giao tiếp giữa máy khách và máy chủ của bạn. Điều này có nghĩa là nếu bất kỳ ai giữa máy khách và máy chủ của bạn đang đánh lừa mạng, họ sẽ không thể đọc được thông báo. TLS (SSL) là cách được hỗ trợ và đơn giản nhất để đạt được điều này.

  • Nếu tôi sử dụng một sertifiate SSL và một người nào đó có quyền truy cập vào máy tính mà đang tổ chức dịch vụ ông bằng cách nào đó có thể nhận được các khóa bí mật làm kết nối của tôi không an toàn?

Nếu ai đó có quyền truy cập quản trị vào máy chủ nơi khóa cá nhân được lưu trữ (trong cert) và người đó có mục đích xấu, thì thẳng thắn, bạn đã mất một thời gian dài trước đó. Khi lưu trữ chứng chỉ của bạn trong cửa hàng cert, bạn có thể đặt quyền cụ thể về những người có thể đọc, viết và sửa đổi chứng chỉ.

Hy vọng điều này sẽ hữu ích.

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