authentication - 验证用户的网站登录私钥

标签 authentication web public-key-encryption public-key

我正在尝试实现一个登录系统以使用公钥身份验证登录网站。我不确定这是否可行。

这就是我打算做的:-

  • 注册时,用户的公钥保存在网站中。
  • 当用户稍后尝试登录时,网站会要求用户提供其相应的私钥。
  • 如果私钥与用户在注册时提供的公钥匹配,则用户通过身份验证。

  • 我见过像startssl.com这样的网站要求用户提供私钥来验证他们的身份(见附上的截图)。那么实现这样一个系统需要什么?

    Screenshot of website asking for private key

    最佳答案

    只是为了澄清流程

  • 用户使用普通的旧用户名和密码对进行注册。他还被要求输入至少一个公钥(其他公钥可以稍后从配置文件管理面板添加)
  • 服务器存储用户的公钥并将其与它的用户关联在证书中
  • 下次客户端发出请求并提供他的证书(这应该由浏览器处理,因此对用户透明),服务器端的 SSL 引擎检查它是否知道客户端,如果它知道请求被处理,并且应用程序代码将验证和授权用户,因为它知道公钥和用户之间的链接。如果客户端是 不是 确定后,服务器应重定向到某个页面以允许登录或手动登录(可能添加新的公钥)
  • 关于authentication - 验证用户的网站登录私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055858/

    相关文章:

    c++ - 使用 Crypto Api 在客户端和服务器之间进行加密和解密的正确方法是什么?

    MYSQL ERROR 2049 (HY000) : Connection using old (pre-4. 1.1) 使用身份验证协议(protocol) ref(启用客户端选项 'secure_auth')

    python - 在 Windows 上运行良好时在 Linux 上运行 Mechanize 脚本时遇到问题

    php - 使用 iOS 缓存 Web 表单

    php - Laravel 连接表并获得用户的最大订单

    swift - 如何将 unmanaged<SecKey> 编码为 base64 以发送到另一台服务器?

    php - 使用 php 和 mysql 的登录页面

    c# - 使用 key 大小小于 2048 的 RSA 安全 key 创建 JWT token 时出错

    ssl - 证书链如何呈现给客户端?

    java - 使用 Java 的椭圆曲线 key 包装/封装