使用加密锁实现身份验证方案

制备锁

  • 生成RSA密钥对文件(可通过工具),Privatekey.Rsapri和Publickey.Rsapub,用于制备管理员锁和服务器锁。
    1. 密钥对文件保存好,任何人都可以通过密钥对文件制作管理员锁和服务器锁,从而签发用户锁。
    2. 同样,如果丢失管理员所,也可以通过密钥文件制作。
  • 将密钥文件写入到加密锁①中,制作管理员锁。
    1. 加密锁①不要是空锁,否则丢失不安全,空锁有默认密码。
  • 将公钥文件写入到加密锁②中,制作服务器锁。公钥文件也可以放到程序中,通过代码操作,不一定非得需要一把锁.
  • 把标识用户唯一身份的信息写入到加密锁③……中,生成RSA密钥对文件,使用管理员锁中的私钥对用户信息和用户公钥进行数字签名,将签名结果写入到用户锁。

登陆验证

  • 用户插上加密锁输入用户名和用户PIN发送登陆请求。

  • 服务器返回随机数R。

  • 客户端调用用户锁私钥对随机数进行签名,将签名结果连同用户信息发送给服务器。

  • 服务器从用户信息中取出用户锁公钥,对随机数签名验签。

  • 验签通过, 使用服务器锁公钥对用户信息和用户公钥验签, 确保是管理员签发的用户锁。

  • 验证通过登陆成功。

创建用户

  • 向user表中添加用户的基本信息。
  • 将标识用户唯一身份的信息告知管理员,制作用户锁。

密钥对文件解释:

比如A向B发送邮件,A需要有一个公钥和一个私钥,将公钥暴露给B(不暴露给其他人),A使用私钥对发送的邮件进行加密,B通过A的公钥进行解密,从而实现邮件的加密传输。
同样, A也可以使用公钥对邮件加密, 将私钥暴露给B,B使用私钥解密。
也可以理解为,A使用私钥对邮件进行数字签名,将公钥暴露给B, B使用公钥验证签名,确定是A发送的。

你可能感兴趣的:(使用加密锁实现身份验证方案)