赞
踩
重点在于标识用户身份而不是消息
主要分为:确定标识符 identifier ,绑定用户与标识符。
认证协议:用于校验用户双方并交换会话密钥,需要保密性(会话密钥不能泄露)和时效性(防止有人拦截重复发送认证信息)。
如何管理登记用户身份?
联合管理系统涉及很多步骤:认证用户身份,授权用户权限,记录用户资源活动……
简单身份管理流程如下:类似学生借书,先去学生中心认证自己的身份,学生中心核实后认为你小子有资格借书,于是给你一张借书票,你再拿着借书票去图书馆借书。
详细流程:客户端发送自己 ID,server 服务器 ID,自己的密码,以上信息发给 AS。AS 收到后先核实是不是你,是你的话你有没有权限使用服务?如果有,我用你的这些信息做一张 ticket 给你,你拿着去找服务端。服务端收到后解密(ticket 是用 AS 和 Server 都知道的密钥加密的),核实后提供给用户服务。
问题在于需要用户输入密码,而且密码明文传输。因此如果我们有办法用 ticket 也替代用户传入的 password 就好了。我们用一个 TGS 服务器存用户密钥信息,这样客户端只需要发自己的 ID 和 server ID 给 server 就行。这就是下面的 kerberos 算法。
Kerberos 这个起名很有意思,是地狱三头犬的意思。
它是一种用户授权和访问控制应用 an authentication service designed for use in a distributed environment,通过第三方校验用户身份,建立授权通信,允许用户在不安全网络中证明自己的身份 It makes use of a trusted third-party authentication service that enables clients and servers to establish authenticated communication。
用户认证过程可能出现的三个主要问题:模拟用户获得该用户对工作站的访问权限,模拟工作站给用户服务,截获用户认证信息进行重放来获得权限。Kerberos 主要是围绕解决这些问题而展开。
首先 Kerberos 身份认证中有几个对象:KDC 是其服务器(包括下图的 AS 和 TGS);客户端;服务端。K 服务器拥有用户向他注册的所有 id 密码信息,且与其他服务器共享密钥用于 ticket 生成(不同域 Realm 的 K 服务器也共享密钥)。
AS TGS 共享一个解密 TGT 的密钥,TGS S 共享一个解密 ST 的密钥。
为什么不通过密码校验用户身份,而是票呢?因为不安全网络,小心被窃听者 eavesdropper 偷听到密码。
另一个问题是,用户每次登录都需要输入用户信息很麻烦,我们可以把信息保存一段时间,而且保存时间不宜过长,定期需要重新发送确保安全性。这就引入了时间戳的概念。
以上内容主要是围绕 Kerbero4 算法的讲解。5的话就是安全性高了一些,而且支持的算法也多了,比如 4 只支持 DeS 算法。
前面的加解密算法主要是在会话层和表示层,ip 安全主要是网络层。
一种 IP 安全协议,提供 IP packet 数据包的保密性、授权性或二者都有的保护。没有 IP 层的保护,IP 数据包很容易被攻击篡改。IPSec 建立一条加密通道来传输信息。
主要组成部分还是前面那几大类:encryption,authentication,key management。
能实现的功能:
IPSec 主要在数据包中添加 AH 和 ESP 两个字段来分别确保认证和加密。具体算法都是前面学过的方法,比如 HMAC 附着哈希值认证,加密采用 CBC 的 DES。还有一个新增的可选字段 domain of interpretation DOI,和学术论文 id 的 DOI 不同,这个 DOI 主要是用于标识加密方法的(比如0是 ISAKMP DOI,1是 IPSec DOI)。
SA:security association,就是发数据要建立的单向安全数据连接,如果要收发数据,需要建立两条 SA。
SA 包括的属性:
ESP 和 AH 的同时实现需要结合多个 SA。
应用程序通过 Sockets 通信,相当于终点。
格式如下:
ipsec 可以指定 pre-packet 和 pre-socket 两种加密方式,packet 是指定目的地加密,比如发到哪些 ip 地址时需要加密;socket 是从这台主机发出的所有 packets 都加密。
讲了加密,认证,还有就是密钥管理。
Oakley Key Determination Protocol 是一种改进自 DH 的密钥交换协议。ISAKMP 是一种密钥管理协议框架,双方协商建立、修改、删除 SA,包括一系列消息类型,他自己并非具体的密钥交换算法,但是这些消息类型支持不同密钥交换算法的实现。
允许访问其他网络的同时,保护本地主机/网络免受威胁。位于本地网络和 internet 之间。
能实现的:
防不了:内部攻击,能绕过 bypass 防火墙的攻击,计算机病毒(特洛伊木马)。
实现方法:
堡垒机 Bastion Host 是实现电路级网关和应用层网关的主机,一般只安装必要的安全服务 proxy Telnet, DNS, FTP……,有强大安全性的操作系统,需要用户身份认证。
防火墙前后还有 De-Militarised Zones and Screened Subnets,相当于多了两层防火墙。
trusted system 用于设置安全级别来控制用户访问不同的资源(比如不同部门能访问到的资源类型不同)。有两个规则:读取只能读取安全等级更低的对象,写入只能写入安全等级更高的对象 No read up (simple security property) & No write down (*–property)。使用参考监视器来确保规则的正确执行。
不过有一种攻击方式:特洛伊木马。
后备数据两者都能访问,重要数据只有 hero 能访问。但是 hero 运行特洛伊木马文件后,特洛伊木马文件把 data file 的数据复制到 backpocket file 里了,导致恶棍这下也能访问了。
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。