在网络通信中,密钥的安全分发和公钥的有效认证是确保系统安全的关键。本文将为基础小白介绍密钥分发与公钥认证的基本概念和实际应用,帮助大家更好地理解这些技术如何保障我们的网络通信安全。
1. 密钥分发与公钥认证的背景
由于密码算法是公开的,因此密钥系统的安全性依赖于密钥的安全保护。在对称密钥密码体制中,通信双方要共享一个秘密密钥,如何将密钥分发到通信的双方是一个需要解决的问题。显然密钥必须通过安全的通路进行分发。
1.1 网外分发与网内分发
一种方法是派非常可靠的信使携带密钥分发给互相通信的用户,这种方法称为网外分发。但随着用户的增多和通信量的增大,密钥更换频繁(密钥必须定期更换才能做到可靠),派信使的办法将不再适用。因此,必须解决网内密钥自动分发的问题。
1.2 公钥的发布
对于公钥密码体制,虽然不需要共享密钥,公钥可以发布在报纸或网站上,但如何验证该公钥确实是某实体真正的公钥仍然是一个问题。这些问题的解决可以通过使用一个可信的中介机构来实现。
2. 对称密钥的分发
对称密钥的分发问题在于如何让通信双方共享密钥。目前常用的对称密钥分发方式是设立密钥分发中心(Key Distribution Center,KDC) 。KDC是一个大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分发一个会话密钥。
2.1 KDC的工作原理
图7—10展示了KDC进行密钥分发的基本过程。假定用户A和B都是KDC的登记用户,他们分别拥有与KDC通信的主密钥KA和KB。密钥分发的三个步骤如下:
- 用户A请求通信:用户A向KDC发送用自己私有的主密钥KA加密的报文E(A,B),说明想和用户B通信。
- KDC生成会话密钥:KDC用随机数产生一个“一次一密”密钥R供A和B这次的通信使用,然后向A发送回答报文,这个回答报文用A的主密钥KA加密,报文中有密钥R和请A转发给B的报文E(KB)(A,R),但报文E(KB)(A,R)是用B的主密钥KB加密的,因此A无法知道报文E(KB)(A,R)的内容。
- 用户A转发报文:用户A将报文E(KB)(A,R)转发给B。B收到后,用自己的主密钥KB解密,知道A要和它通信,同时也知道和A通信时所使用的密钥R。
此后,A和B就可使用这个一次一密的密钥进行本次通信了。
2.2 防止重放攻击
KDC还可在报文中加入时间戳,防止报文的截取者利用以前记录下的报文进行重放攻击。密钥R是一次性的,因此保密性较高。而KDC分配给用户的主密钥,如KA和KB,都应定期更换以减少攻击者破译密钥的机会。
3. 公钥的签发与认证
在公钥体制中,如果每个用户都具有其他用户的公钥,就可实现安全通信。这样看来好像可以随意公布用户的公钥。其实不然。
3.1 认证中心(CA)
为了确保公钥的真实性,需要有一个认证中心(Certification Authority, CA) 将公钥与其对应的实体(人或机器)绑定。认证中心一般由政府或权威机构出资建立,负责为用户的公钥签发证书。
3.2 CA签发证书的过程
- 验证身份:用户向CA申请证书,提交身份证明文件。CA核实用户的真实身份。
- 生成密钥对:CA为用户生成私钥和公钥对,并生成证书。证书中包含公钥及其拥有者的身份标识信息(如人名、公司名或IP地址)。
- 签名与发布:CA用自己的私钥对证书进行数字签名,确保证书的真实性。用户可以将证书通过网络发送给希望与之通信的实体,或存放在服务器供其他用户下载。
3.3 PKI层次结构
由一个CA来签发全世界所有的证书显然是不切实际的。这会带来负载过重和单点故障问题。一种解决方案是将许多CA组成一个层次结构的公钥基础设施(Public Key Infrastructure,PKI) ,在全球范围内为所有互联网用户提供证书的签发与认证服务。
下级CA的证书由上级CA签发和认证。顶级的根CA能验证所有1级CA的证书,各个1级CA可以在一个很大的地理区域或逻辑区域内运作,而2级CA可以在一个相对较小的区域内运作。
3.4 PKI的信任链
所有用户都信任该层次结构中顶级的CA,但可以信任也可以不信任中间的CA。用户可以在自己信任的CA获取个人证书,当要验证来自不信任CA签发的证书时,需要到上一级验证该CA的证书的真伪,如果上一级CA也不可信任,则需要到更上一级进行验证,一直追溯到可信任的一级CA。这一过程最终有可能一直追溯到根CA。
4. 密钥分发与公钥认证的实际应用
4.1 电子商务
在电子商务中,密钥分发与公钥认证确保了交易双方的身份验证和数据传输的机密性。例如,用户在进行网上支付时,支付平台使用公钥加密用户的支付信息,确保信息在传输过程中不被窃取或篡改。
4.2 企业内部通信
企业内部通信中,使用KDC分发对称密钥,可以确保员工之间的通信安全。通过CA认证,企业可以确保只有经过认证的员工设备才能接入内部网络。
4.3 物联网(IoT)
在物联网中,设备之间的通信安全至关重要。通过PKI,设备可以获得证书并相互认证,确保只有可信设备才能加入网络并进行通信。
访问控制策略
访问控制策略是保障授权用户能获取所需资源的同时拒绝非授权用户的安全机制,确保网络资源不被非法使用和访问。
4.1 访问控制的基本概念
在信息系统中,用户通过身份鉴别进入系统后,只能访问授权范围内的资源。身份鉴别是信息系统的第一道安全防线,访问控制则是第二道安全防线,对合法用户进行监督和限制,解决“合法用户在系统中对各类资源以何种权限访问”的问题。
4.2 访问控制的基本要素
访问控制包括主体、客体、访问及访问控制策略等基本要素:
- 主体(Subject) :访问活动的发起者,可以是用户、进程、服务或设备。
- 客体(Object) :被访问的对象,如信息、文件、设备、资源、服务等。
- 访问:对资源的各种操作类型,如读取、修改、创建、删除、执行、发送、接收等。
- 访问控制策略:系统的授权行为规则,限制主体对客体的访问类型,通常存储在系统的授权服务器中。
4.3 访问控制策略的类型
4.3.1 自主访问控制(DAC)
自主访问控制基于主客体的隶属关系,客体的拥有者可以自主决定其他主体的访问权限。尽管灵活,但存在缺陷:权限管理分散,容易出现漏洞,难以控制被攻击主体的破坏行为。
4.3.2 强制访问控制(MAC)
强制访问控制不允许一般主体设置访问权限,主体和客体被赋予安全级别,只有安全管理员可以设定。系统通过比较安全级别决定访问权限,防止木马等恶意程序的窃密攻击。
4.3.3 基于角色的访问控制(RBAC)
基于角色的访问控制旨在降低安全管理的复杂度,根据安全策略划分不同角色,用户通过角色与许可关联。一个用户可以拥有多个角色,一个角色也可以被赋予多个用户;角色与许可之间的关系比直接赋予用户权限更加稳定和可管理,有效降低授权复杂性。
5. 总结
密钥分发与公钥认证是保障网络通信安全的基石。通过对称密钥分发中心(KDC)和公钥认证中心(CA),可以有效解决密钥分发和公钥认证的问题,确保通信双方的身份真实性和数据传输的机密性。
图文来源:《计算机网络教程》第六版微课版