zoukankan      html  css  js  c++  java
  • 无线端安全登录与鉴权一之Kerberos

    无线端登录与鉴权是安全登录以及保证用户数据安全的第一步,也是最重要的一步。之前做过一个安全登录与鉴权的方案,借这个机会,系统的思考一下,与大家交流交流

    先介绍一下TX系统使用的Kerberos方案,参考了 http://blog.csdn.net/wulantian/article/details/42418231 的文章

    一、概念介绍

    Kerberos:起源于希腊神话,是一支守护着冥界长着3个头颅的神犬,在keberos Authentication中,Kerberos的3个头颅代表中认证过程中涉及的3方:Client、Server和KDC,而Kerberos的认证过程就是通过这3方协作完成。

    KDC:Kerberos Distribution Center,KDC在整个Kerberos Authentication中作为Client和Server共同信任的第三方起着重要的作用,KDC有两个模块,一个是AuthenticationService,鉴权模块,就是用来认证用户身份的,另一个叫GrantingService,授权模块,颁发访问Service的Ticket给客户端;

    TGT:Ticket Granting Ticket,获取Ticket的授权,类似股票中的认购证;

    Ticket:票据,入场券,访问服务器资源的凭证

    MasterKey:主密钥,用户的明文密码经过hash算法后保存在数据库的密码,不可逆;

    SessionKey:会话密钥,客户端与服务端通信期间的密钥;

    Skdc_client:KDC和Client之间的SessionKey

    Skdc_service:KDC和Service之间的SessionKey

    Sserver_client:Service和Client之间的SessionKey

    二、原理

    整个Kerberos是基于ticket(票据的),先借用一个形象的例子解释下原理

    Kerberos原理:我(Client)到游乐场去玩,在游乐场的售票处(KDC的AuthenticationService模块)买了一张门票(Ticket),游乐场有很多娱乐项目,像摩天轮啊、过山车、海盗船……等等的,我先排队玩摩天轮(Service),然后到摩天轮的入口处,验票员美女要验我的票,她就拿着我的票到授权服务器(KDC的GrantingService模块)去刷一下,然后滴……学生卡,出来了一个座位号(Ticket),然后就拿着座位号去玩摩天轮(Service),摩天轮的验票员检查我的座位号(Ticket),能过后,我就可以开心地玩过山车了;然后我又来到摩天轮的地方,按照同样的流程去玩……

    Kerberos就是实现了这样的一个过程

    三、时序图

     

    有一个有意思的地方,TGT本来是应该KDC直接发给Server的,这里KDC交给了Client转发,为什么?因为KDC懒,哈哈……

    如果同时发给Client和Server会存在一个先后的问题,必须保证Server在Client之前收到,这个是没办法的,所以比较好的方式是Client带过去。

    以上这个就是Kerberos最基本的认证方式,叫域内认证模式,这种方式是有点问题的,就是服务器密钥加密的数据直接返回给客户端了,违背了LongTermKey/MasterKey加密的数据不在网上传输的原则,所以有一种改进方案,请看 无线端安全登录与鉴权二 

  • 相关阅读:
    文本环加载动画html代码
    自己总结的特殊符号,大家有用可以复制
    《名侦探柯南》动画登陆bilibili
    复古风,vivo申请滑盖结构的手机外观专利
    GitHub 热榜第一!可交互全球疫情地图
    最新免费领哔哩哔哩会员教程
    百度网盘免费领取会员
    Apple Watch Series 6或将增加焦虑监测和睡眠追踪功能
    谷歌更新其社区人员流动报告 帮助了解民众遵守封锁令的情况
    计算5的n次幂html代码
  • 原文地址:https://www.cnblogs.com/xiaoQLu/p/6642456.html
Copyright © 2011-2022 走看看