🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Kerberos 使用**Kerberos**作为**用户和服务的强身份验证和身份传播**的基础。**Kerberos 是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。** ![](https://img.kancloud.cn/5e/2a/5e2ac1173910f5820abfcd2acc24f6ac_538x548.png) ## 主要角色 * 用户鉴权后台AS (Authentication Server) * 票据后台TGS(Ticket-Granting Server) * 业务后台App Server ## 流程 * 密码校验、安全通道的建立,获取大票TGT * 获取业务票据,TGT换取相应的业务小票ST * 使用业务小票ST去访问业务服务器 ## 优点 * 用户的密码从不会在网络中传输,从不会以任何形式存储在客户端机器上,使用完之后立即删除,也从不会把明文密码存储在认证服务器(KDC)上的数据库里。 * 实现单点登录(Single Sign-On),用户在每一个work session仅仅会输入一次密码或者指定keytab,之后用户就可以免密显示地访问他们授权的所有服务了。 ## 密码校验、安全通道的建流程 C->S 1. 本地的有服务端的公钥K,生成客户端的公钥/私钥, 2. 用加盐的密码S加密(用户信息和公钥)得到S1 3. 用服务端的公钥加密 SK1 S->C 1.用私钥解密,S1 2.用加盐的密码S解密得到(用户信息和客户端公钥)S1 3.生成大票TG 4.用客户端公钥加密大大票 # ECDH ![](https://img.kancloud.cn/7e/d4/7ed4dc7ca17a0e8fc4ff39c2ee08285e_808x488.png) ECC+DH 密钥交换算法 ## 算法原理 * A 随机生成一对公私钥 PrivateA 和 PublicA * B 随机生成一对公私钥 PrivateB 和 PublicB * A 和 B 把自己的公钥(公开参数)发给对方 * A 和 B 使用自己的私钥和对方公钥生成 ShareKey * ShareKeyA \= ShareKeyB # 网关取号 ## 好处 1. 节约成本 普通下发短信3毛 网关取号2秒 2. 快捷 一键登录 ## 方案 解决证明手机号是你本人目前在用的 ![](https://img.kancloud.cn/d3/8b/d38b1388b06a4fe7ffb3e9e526d0de80_554x474.png) ## 难点 1. 通用性 2. 判断手机状态(运营商) # 唯一id的方案 https://blog.csdn.net/m0_65322636/article/details/122643074 ## 目标 唯一性, 稳定性 ## 方案(本地收集 + 云端生成) 1. 找到系统的特征值,比如OAID(广告id):300多个 相关性比 2. 云端会生成自己的唯一id,并且建设 唯一id与特征值之间的映射 3. 云端可以显现更多的容错性算法,某个id突然异常 # 实时监控 略