OpenUser 数字身份识别协议

本文介绍了一种名为OpenUser的数字身份认证框架,旨在实现更易部署、更低资源消耗、保障服务一致性及安全性的目标。该方案通过客户端进行通讯,并采用不可逆加密方式确保用户登录ID和密码的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

授权

OpenUser 由 喻恒春 创作,采用 知识共享 署名 3.0 未本地化版本 许可协议 进行许可。 知识共享许可协议

历史

此文最早发表在我的 老博客。原文章只是笼统的想法。博客彻底转到 OSC。准备继续探讨这个话题。文章内容会不断完善修正。

简述

数字身份识别框架已经有了大名鼎鼎的OpenID,更有Mozilla推出的BrowserID 都是流行的数字身份识别系统,这两个有什么不好么?没有!这两个没有任何问题,这两个工作的都很好,非常优秀。使用者总是要求的多,总是希望

  • 更易部署:无须授权完成任意登录(ASO: Any Sign On)
  • 更低资源:无需服务器端部署就可以开启工作
  • 保障服务:基于固定的协议,同类型服务一致的数据结构
  • 必须安全:没有更,安全就是安全。不过很明显绝对的安全是不存在的。
  • 多方友好:协议细节将体现多方友好

OpenUser(以后简称OU) 试图达到这些需求。

技术概述

  • 通讯平台:通过客户端进行。
  • 可验证ID:用户登录名也就是用户登录ID应该具有可验证性。
  • 加密登录:包括登录ID,密码都要采用不可逆加密传输。
  • 任意登录:支持 OU 的站点通过简化注册或者第三方授权过程,让用户跟方便的登录
  • 站点验证:因多方通讯产生的需要验证多方有效性。

通讯平台

通讯可能涉及三方:终端用户和两个服务提供方。典型的客户端就是浏览器。

可验证ID

当用户需要找回密码的时候,用户ID可以提供可验证性。最简单的用户ID就是 email

加密登录

用户输入的是非加密信息,这些信息要经不可逆加密后才传送给服务器端。 举例采用MD5加密信息。 向服务器传送:

md5(登录ID)
md5(md5(密码) + token)

token是服务器端在会话中分配给客户端的一个字符串。此字符串保存在cookie中,随提交发送至服务器。

服务器端验证: 很明显,服务器端需要保存的登录ID和密码都是是 md5 后的。然后通过 md5(登录ID) 匹配到用户数据,根据已保存的 md5(密码) 和 cookie 中的 token 来验证提交的 md5(md5(密码) + token) 是否正确。 当然如果 token 不保存在 cookie 中,而作为参数提交也不影响安全性。 现实实现中 token 可以设计成带过期验证的,这个由实现决定。

任意登录

任意登录对应目前常见的第三方授权登录。不同的是,由于 OU 设计中服务器端保存的是不可逆加密的登录ID和密码。所以授权方可以直接传递给服务器接受方,不可逆数据本身已经提供了安全保障。也许还有不可逆加密算法名称,除了MD5外还有其他算法。这种方式下,授权方已经不再履行授权的角色,履行的是用户注册有效性无责任担保角色。通过后用户信息被直接转移了。

站点验证

  • 由任意登录造成的对授权方合法性验证,这需要在服务端进行。(待完善)

转载于:https://my.oschina.net/achun/blog/134343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值