当前位置: 首页 > news >正文

Kerberos的概述和认证原理

什么是 Kerberos

        ​ Kerberos 是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统
 

Kerberos 术语

KDC(Key Distribute Center)密钥分发中心

        kdc负责存储用户信息,管理发放票据,所谓认证也就是用户的登录需要用户名和密码,这也是最基本的认证方式;那么KDC负责存储用户信息,也就是KDC内置的Database会存储用户的用户名和密码;那么kdc发放的票据是什么票据呢?这个票据是指某个用户访问服务时所需要的票据,相当于门票。

Realm

        erberos所管理的一个领域或范围,称之为一个 Realm。Realme域又指的是什么呢?他指代的是Kerberos 所管理的一个领域或范围,所谓的领域也就是一系列的服务和用户。

Principal

        Kerberos 所管理的一个用户或者一个服务,可以理解为 Kerberos 中保存的一个账号, 一个用户要想通过kerberos认证得需要一个账号和密码,同样的一个服务要想通过kerberos 认证也需要账号和密码。

         其格式通常为primary/instance@realm。三个部分,用户名or服务名 / 实例(服务主机名)@域名;例如:root/admin@EXAMPLE.COM 如下图

 keytab 秘钥文件

        Kerberos 中的用户认证,可通过密码或者密钥文件证明身份,keytab 指密钥文件。kerberos有俩种认证方式:

 

 Kerberos 认证原理

  1. 请求首先到AS认证服务器,进行身份认证,kinit命令进行认证,然后输入密码;
  2. 认证服务器会根据用户输入的账号和密码到数据库Database中查询对应的Principal,看是否正确,如果正确颁发临时的票据,这个票据就是TGT。
  3. 用户拿到这个用来申请服务票据的票据后,然后携带该票据TGT去访问票据授权服务器
  4. 票据授权服务器TGS去数据库Database中查询服务是否为合法的服务
  5. 票据授权服务器TGS查询到相关服务名和秘钥后,颁发票证给用户
  6. 用户拿到这个TGT票证后然后才能访问我们的服务,比如上图拿到票证访问hdfs服务。

相关文章:

  • RocketMQ的TAG过滤和SQL过滤机制
  • 2023年电气,电子与信息工程国际会议(ISEEIE 2023)
  • 【前端开发学习】4.JavaScript
  • 【大数据技术Hadoop+Spark】HBase分布式数据库架构、特点、数据存储方式、寻址机制详解(图文解释)
  • K8s——Service、代理模式演示(二)
  • 哈希表及其与Java类集的关系
  • CSS基础总结(二)
  • 《Python多人游戏项目实战》第三节 在窗口上显示玩家ID以及对话内容
  • SpringBoot【配置文件】
  • 王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度
  • 95 C语言初阶练习题
  • Class Charset
  • 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)
  • SpringBoot+Vue实现前后端分离的小而学在线考试系统
  • Redis常见面试题(二)
  • 【RocksDB】TransactionDB源码分析
  • Android Volley源码解析
  • co.js - 让异步代码同步化
  • css属性的继承、初识值、计算值、当前值、应用值
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java 网络编程(2):UDP 的使用
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java到底能干嘛?
  • overflow: hidden IE7无效
  • Sass Day-01
  • VUE es6技巧写法(持续更新中~~~)
  • Vue.js-Day01
  • vue-loader 源码解析系列之 selector
  • 初探 Vue 生命周期和钩子函数
  • 老板让我十分钟上手nx-admin
  • 嵌入式文件系统
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 用Visual Studio开发以太坊智能合约
  • - 转 Ext2.0 form使用实例
  • nb
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 数据库巡检项
  • 通过调用文摘列表API获取文摘
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ###STL(标准模板库)
  • #14vue3生成表单并跳转到外部地址的方式
  • #ifdef 的技巧用法
  • #Linux(权限管理)
  • #Spring-boot高级
  • (3)STL算法之搜索
  • (70min)字节暑假实习二面(已挂)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (备忘)Java Map 遍历
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (数据结构)顺序表的定义
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • .NET CF命令行调试器MDbg入门(一)