应用层安全协议-Kerberos
一、应用层安全协议
1.S-HTTP与HTTPS
(1)S-HTTP
S-HTTP
(安全超文本传输协议)是HTTP
的扩展,是一个面向报文的安全通信协议,使用TCP协议
的端口80
,位于应用层。
(2)HTTPS
HTTPS
是HTTP + SSL
,使用TCP 协议
的443
端口,由于SSL的快速发展,使得 HTTPS 基本取代了S-HTTP。
① TLS(传输层安全协议)
是更为安全的升级版 SSL。 SSI7TLS 在Web安全通信中被称为
HTTPS
。 位于传输层。
2.PGP
是一个电子邮件加密软件包。 它提供应用层安全服务。
(1)优点
① 跨平台且免费,并且得到许多制造商的支持。
② 基于比较安全的加密算法(RSA、IDEA、MD5)。(用摘要算法从明文提取)
③ 具有广泛的应用领域,既可加密文件,也可以用于个人安全通信。
④ 该软件包不是由政府或标准化组织开发和控制的,这一点对于具有自由倾向的网民特具吸引力。
(2)PGP提供2种服务
① 数据加密
数据加密机制可以应用于本地存储的文件,也可以应用于网络上传输的电子邮件。
② 数字签名
数字签名机制用于数据源身份认证和报文完整性验证。
(3)PGP认证加密验证
PGP
使用RSA公钥证书
进行身份认证,使用IDEA(128位密钥)
进行数据加密,使用MD5
进行数据完整性验证。
3.SET(安全电子交易)
保证在互联网上进行安全的支付商业 活动。 它提供应用层安全服务。
(1)提供三种服务
① 在交易涉及的各方之间提供安全信道。 ② 使用 X.509 数字证书实现安全的电子交易。(在X.509标准中,数字证书的一般格式包含的数据域有版本号、序列号、签名算法、发行者、有效期、主体名、公钥、发行者ID、主体ID、扩展域和认证机构的签名。) ③ 保证信息的机密性。
二、Kerberos认证服务
是麻省理工为校园网用户访问服务器进行身份认证设计的安全认证协议。
1.Kerberos安全机制
(1)AS(认证服务器)
Authentication Server,为用户发放
TGT
的服务器。
(2)TGS(票证授予服务器,加密解密)
负责发放访问应用服务器时需要的票证。
(3)KDC(密钥分发中心)
认证服务器 和 票证授予服务器 组成密钥分发中心(Key Distribution Center,
KDC
)。
(4)V(用户请求访问的应用服务器)
(5)TGT初始认证信息
Ticket Granting Ticket,用户向
TGS
证明自己身份的初始票据,即Ktgs(A,Ks)
。
2.认证流程(重点)
PC端向
AS(认证服务器)
发送明文认证身份,AS
会将它传给KDC(密钥分发中心)
,KDC
就会注册PC端相关的账号和密码,然后返回给AS
,AS
再交给PC端; PC端访问TGS
(票证授予服务器),TGS
会返回给PC两个票据(1个是会话的密钥,1个是票据),TGS
拿着票据交给目标(如谷歌浏览器),谷歌浏览器返回应答。
Kerberos认证流程.jpg
3.防止重放攻击
在
Kerberos系统
中,使用一次性密钥和时间戳来防止重放攻击。
- 对比cp和scp命令 将数据从一台linux服务器复制到另一台linux服务器
- laravel—用Migration的操作数据库
- 有货移动Web端性能优化探索实践
- webpack打包速度和性能再次优化
- MySQL 清除表空间碎片
- 解决ios不支持按钮:active伪类的方法
- HTTP-FLV直播初探
- BZOJ1058: [ZJOI2007]报表统计
- React数据流和组件间的通信总结
- react+redux+webpack教程4
- 洛谷P2391 白雪皑皑(并查集)
- BZOJ4514: [Sdoi2016]数字配对(费用流)
- 3.2数据结构之指针和链表 1748:约瑟夫问题
- 2017值得一瞥的JavaScript相关技术趋势
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android给任何view添加全屏倾斜水印
- 分布式一致性协议 - Paxos
- 链表中穿针引线
- Android 帧动画的实例详解
- Android HandlerThread使用方法详解
- LeetCode 167,两数之和2
- 详解android 通过uri获取bitmap图片并压缩
- android线程消息机制之Handler详解
- 分布式一致性协议 - ZAB
- 删除链表的倒数第N个节点
- Open3d学习计划—高级篇 2(彩色点云配准)
- Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
- 有效的括号
- Android PopupWindow实现左侧弹窗效果
- LeetCode. 209. 长度最小的子数组