篇一 YY开放身份认证协议设计与说明_V 1.2
YY开放身份认证设计与说明
YY 开 放 身 份 认 证 设 计 与 说明.................................................................................................
.........1
1 目 标 解 决 问题.................................................................................................
..........................2
2 介绍...................................................................................................
........................................2
2.1 术 语 约定.................................................................................................
......................2
2.2 使 用 场 景 描述.................................................................................................
..............2
2.3 使 用 限 制 与 约
1
定.................................................................................................
..........3
3 系 统 总图.................................................................................................
..................................3
4 身 份 认 证 请 求 与 认 证 令牌.................................................................................................
......3
4.1 格式.................................................................................................
..............................3
4.2 签 名 与 校验.................................................................................................
..................4
5 身 份 认 证 的 流程.................................................................................................
......................4
5.1 创 建 登 录 通道.................................................................................................
..............4
5.2 生 成 身 份 认 证 请求.................................................................................................
2
......4
5.3 用 户 授权.................................................................................................
......................5
5.4 YY 服务器检查请求并签发认证令牌..........................................................................5
5.5 第 三 方 服 务 器 检 查 认 证 令牌.......................................................................................5
6 安 全 讨论.................................................................................................
..................................6
6.1 拦 截 重 放 登 录 令牌.................................................................................................
......6
6.2 伪 造 登 录 令牌.................................................................................................
..............6
6.3 欺 诈 攻击.................................................................................................
......................6
6.4 拒 绝 服 务 攻击.................................................................................................
3
..............6
7 运 维 以 及 游 戏 附 加 需求.................................................................................................
..........6
7.1 密 钥 的 生 成 、 更 新 与 管理...........................................................................................6
7.2 多 玩 通 行 证 到 游 戏 账 户 的 转换...................................................................................6
7.3 身 份 证 信息.................................................................................................
..................7
1 目标解决问题
本设计目标是设计一套安全有效的身份认证系统用于为第三方合作厂商的游戏和应用提供YY用户的身份认证。通过本协议用户只需要登录一次YY客户端则可以快速穿梭于各不同厂商的游戏和应用无需多次注册无需记住不同的帐号和密码。
这有利于提高用户体验 降低试用门槛。
2介绍
2.1术语约定
?用户
最终用户对应地就是使用YY并且尝试通过开放身份认
4
证登录第三方游戏、应用
的人
?第三方
指与YY展开合作的游戏、应用厂商
?第三方服务器
指第三方提供登录服务的服务器
?登录通道
指用于第三方客户端与服务器之间用于YY身份认证的TCP连接。此连接可以与游戏本身的已有TCP连接复用
?身份认证请求
第三方服务器签发的请求包含了请求方、时间戳等信息
?认证令牌
YY服务器签发的身份认证令牌包含了用户的YY唯一标识号
?ConnID
登录通道的ID。每次创建登录通道第三方服务器都要为每条通道捆绑不同的ID此ID为一个32位的数字。
2.2使用场景描述
下面以用户的眼光描述出一次完整的身份认证过程。
YY用户“张三丰”今天入场打开了YY发现第三方认证的推广决定尝试一下。经过挑选他选择了“歪歪世界”这款游戏。
5
下载然后打开“歪歪世界”的客户端他看到了按钮“以YY身份登录”。他按了一下。 这时候YY画中画会在游戏中弹出了一个提示 内容为“以YY身份登录歪歪世界吗如果不是您本人的操作请勿确定 ”。
用户再按了一次确定稍稍等候了一下然后他就看到了角色创建画面
后面就开始游
戏了。
2.3使用限制与约定
要使用本协议第三方客户端与服务器必须能建立TCP长连接从而能绑定ConnID。 本协议只关注身份验证本身只需要确保在没有用户只许的情况下他人无法伪造身份登录第三方游戏、应用。身份验证完毕后第三方游戏、应用的用户安全不在本协议考虑范围。
3系统总图
4身份认证请求与认证令牌
4.1格式
第三方服务器签发的“身份认证请求”和YY服务器签发的“认证令牌”都有着类似的格式这里一并描述。格式上它们都由若干属性以及值组成的字符串。
下面给出一个例子
6
ProtocolVer=1,AppID=123,Timestamp=12312320,ConnID=1943181,RequireExtraInfo=IDCardName&IDCardInfo,SignatureMethod=RSA-SHA1,Signature=e20202f31fe58241c1cb676fbb7b6fb17ff2c411123123123123123
签名属性永远放在信息的最后其他属性的顺序没有规定。
其中有一些属性名字是预留给协议用的一定要出现在每条消息中。
?ProtocolVer
?标识协议版本版本号 目前固定为1
?Timestamp
?时间戳标识签发本条信息的时间格式为32位无符号整数代表从Epoch起至
今的秒数。
?Signature Metho d
?签名方法。 目前固定为RSA-SHA1
?RequireExtraInfo
?请求额外信息列表。除了唯一用户标识号第三方可能还希望能获得额外的一些
YY信息可以通过此属性进行请求属性之间以&分隔。本次请求的是身份证姓名
和身份证号码。
7
?Signature
?签名串 HEX格式为加密后的摘要
4.2签名与校验
签名方法目前固定为RSA-SHA1。签名的生成过程如下
生成除Signature外的所有属性连接成串。对这个信息进行S HA 1哈希获得40字节长度的摘要然后对摘要使用私钥进行RSA加密。私钥加密长度为1024bit填充方法为PKCS#1。
消息的校验首先校验时间戳然后校验签名。接收方在收到信息后提取时间并与当前系统时间进行比较 当绝对差值大于一个设定值默认5分钟则认为无效。
签名校验流程与签名类似。首先要获得签名方对应的公钥。对于YY服务器通过AppID能查询到对应的第三方公钥。对于第三方服务器则可以在配置的地方获取到YY公钥。
对收到的除Signature外的属性列表进行SHA1哈希同时以公钥钥解密Signature。 比较自己计算的哈希值和解密获得的内容一致则认为是通过。
除了以上的校验 身份验证令牌额外地还需要验证ConnID。这个校验在下一张流程的时候详细描述。
5身份认证的流程
5.1创建登录通道
8
第三方客户端启动后需要和其服务器建立一条TCP连接。认证需要一条有状态的长连接来保障安全。如果游戏本身已经会建立TCP连接则无需再额外建立连接。
第三方服务器在建立连接的时候需要绑定一个ConnID用于唯一标识这条通道。这条通道应该在整个身份认证过程中保持连接在认证流程的最后认证令牌会从此通道回送到第三方服务器。
这条通道可以是加密的或者非加密的但我们也强烈推荐走加密通道。通道的加密方法不在本协议中规定。
5.2生成身份认证请求
在建立通道后第三方客户端向服务器请求生成“身份认证请求”。
服务器在收到此请求后生成“身份认证请求”。
AppID=123,ConnID=82181987,ProtocolVer=1,Timestamp=9182987,SignatureMethod=RSA-SHA1
然后 以自己的密钥对上述信息进行签署并将结果附加在尾部成为
AppID=123,ConnID=82181987,ProtocolVer=1,Timestamp=9182987,
9
至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...
商家介绍:星梦云怎么样,星梦云好不好,资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器,。活动优惠促销:1、成都电信夏日激情大宽带活动机(封锁UDP,不可解封):机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路2vCPU2G40G+60G21...
mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,云服务器网(yuntue.com)介绍过几次,最近比较活跃。现在新推出了3款特价KVM VPS,性价比高,香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps...