2012-04-07 32 views
11

Tôi đang cố triển khai hệ thống đăng nhập để đăng nhập vào trang web bằng cách sử dụng xác thực khóa công khai. Tôi không chắc liệu điều này có khả thi hay không.Xác minh khóa cá nhân của người dùng để đăng nhập trang web

Đây là những gì tôi dự định làm: -

  1. Trong khi đăng ký, khóa công khai của người dùng được lưu trong trang web.
  2. Khi người dùng cố gắng đăng nhập sau, trang web sẽ yêu cầu người dùng cho khóa riêng tương ứng của mình.
  3. Người dùng được xác thực nếu khóa cá nhân khớp với khóa công khai mà người dùng đã cung cấp khi đăng ký.

Tôi đã thấy các trang web như startssl.com yêu cầu khóa cá nhân của người dùng để xác minh danh tính của họ (xem ảnh chụp màn hình đính kèm). Vì vậy, những gì nó cần để thực hiện một hệ thống như vậy?

Screenshot of website asking for private key

+3

Nhưng không phải là người sử dụng cung cấp đó là khóa bí mật đánh bại mục đích ? Khóa riêng tư sẽ được giữ riêng tư trong mọi trường hợp. Cách thông thường được thực hiện là trang web mã hóa mã thông báo với khóa công khai của người dùng và người dùng giải mã nó bằng khóa riêng tư và cung cấp mã đó cho trang web. – Ikke

+1

Điều này có vẻ đồng nhất [xác thực ứng dụng khách] (http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html) – Raffaele

+0

Có, khóa cá nhân luôn được giữ riêng tư mọi lúc. Nó không được gửi đến máy chủ. Xem cách startssl.com yêu cầu người dùng xác minh bằng khóa cá nhân trong ảnh chụp màn hình? Tôi đang tìm một thứ như thế. – Sparky

Trả lời

6

Chỉ cần làm rõ dòng chảy

  1. Các dấu hiệu sử dụng lên, bằng cách sử dụng đồng bằng cũ username và password của cặp. Anh ta cũng được yêu cầu nhập ít nhất một khóa công khai (một số khác có thể được thêm sau từ bảng quản trị tiểu sử)
  2. Máy chủ lưu trữ khóa công khai của người dùng và liên kết nó với người dùng trong chứng chỉ
  3. Lần sau khách hàng làm cho một yêu cầu trình bày chứng chỉ của mình (điều này sẽ được trình duyệt xử lý, do đó xảy ra minh bạch cho người dùng), công cụ SSL ở phía máy chủ sẽ kiểm tra xem nó có biết ứng dụng hay không và yêu cầu được xử lý và ứng dụng mã sẽ xác thực và ủy quyền cho người dùng vì nó biết liên kết giữa khóa công khai và người dùng. Nếu khách hàng là không xác định, máy chủ nên chuyển hướng đến một số trang cho phép đăng nhập lên hoặc bằng tay đăng nhập (có thể để thêm một khóa công khai mới)
+3

[this] (http://cweiske.de/tagebuch/ssl-client-certificates.htm) là một hướng dẫn tốt đẹp với Apache và PHP là công nghệ phía máy chủ – Raffaele

+0

Cảm ơn bạn rất nhiều @Raffaele, chính xác những gì tôi đang tìm kiếm. – Sparky

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