简单的密钥分发:允许安全通信,但不存在先前或之后的密钥。
带机密性和身份验证的密钥分发:提供更高级别的安全性。
公开公告:用户向接收方分发公钥,或广播给整个社区。主要弱点是伪造。
公开可用目录:在公共目录注册密钥,但仍然容易受到篡改或伪造的影响。
公钥机构:提高安全性,要求用户知道目录的公钥,实时访问目录。
假设有两位朋友 Alice 和 Bob,他们在互联网上进行加密通信,想要确保他们之间的信息传递是安全的。这个例子中,X.509就是一个数字世界中的身份证系统,确保通信的安全性和身份验证。
注册名册(X.500): Imagine X.500是一本全球唯一身份证明册,里面有每个人的独特标识(比如国家、城市、名字等)。每个人都有一份自己的信息。我觉得可以类比“世界上所有的个人信息证明,比如驾照、护照、身份证“
数字证书(X.509): Alice和Bob都希望证明自己的身份,而X.509就是他们的“身份证”。CA(证书颁发机构)就像是注册名册的管理者,为每个人颁发一份独一无二的证书。我觉得可以类比“中国人民身份证,一种证明自己的证件类型“
证书内容: Alice的证书上写着:“这是Alice的身份证书,由CA签发,她的公钥是XXX”。Bob的证书也有类似的信息。
通信过程: 当Alice想向Bob发送一条安全的消息时,她使用Bob的公钥(在Bob的证书中找到)对消息进行加密。只有Bob使用自己的私钥才能解密消息。
证书验证: 当Bob收到消息时,他可以查看Alice的证书,确保它是由一个可信任的CA签发的。这就像在现实生活中,当你看到一个人的身份证时,你可以确保这是由政府签发的。
CA层次结构: 如果Alice和Bob使用的是不同的CA,那么这两个CA之间可能会有一个层次结构。就像一个国家的身份证可以被另一个国家的认可一样,CA之间通过证书链建立了信任。
用户认证是验证系统实体声明的身份的过程,包括两个步骤:识别(指定标识符)和验证(将实体(人)与标识符绑定)。
用户认证与消息认证不同,主要关注保护会话密钥的机密性和及时性,防止重放攻击等。
身份管理涉及验证各方的身份,并在多个企业和众多应用程序之间实现共同的身份管理方案。
身份联合管理是一种相对较新的概念,涉及在多个企业和众多应用程序中采用共同的身份管理方案,支持成千上万甚至数百万用户。
标准如Security Assertion Markup Language(SAML)和XML用于在在线业务合作伙伴之间交换安全信息。
摘要
当你使用计算机网络上的某个服务时(比如文件共享或电子邮件),服务器需要确保你是合法用户并具有访问权限。Kerberos是一种用于实现这种身份验证的安全协议。
让我们通过一个简化的例子来解释Kerberos的工作原理:
用户登录请求: 假设你是某公司的员工,想要访问公司的文件服务器。当你登录计算机时,你首先需要通过Kerberos进行身份验证。
获取票据授予票据(TGT): 你的计算机会向Kerberos服务器发出请求,要求一个称为"票据授予票据"(Ticket Granting Ticket,TGT)。TGT是一个加密的凭证,用于证明你是合法用户。
服务授权: 一旦你获得TGT,你可以使用它来请求访问特定服务,比如文件服务器。你向Kerberos服务器请求一个服务授权票据。
(TGT和服务授权票据区别:TGT是一种特殊的票据,用于向Kerberos服务器请求其他服务的授权票据。 服务授权票据用于向特定服务请求访问权限。它们都是由Kerberos服务器颁发给客户端)
访问服务: 获得了服务授权票据后,你向文件服务器发出请求,携带着TGT和服务授权票据。文件服务器会验证这些票据,确认你是合法用户,并向你提供访问文件的权限。
这个过程中的关键是,TGT和服务授权票据都是加密的,只有Kerberos服务器和目标服务能够解密它们。这确保了在整个过程中,你的身份都是安全的。Kerberos充当了一个“身份验证中心”,负责颁发安全的票据,这些票据用于证明你是谁以及你有权访问哪些服务。这有助于防止诸如冒充、窃听等攻击。
Kerberos环境包括Kerberos服务器、多个客户端和多个应用服务器,组成一个领域(realm)。简要介绍了Kerberos的基本结构,包括认证服务器(AS)和票据授予服务器(TGS)。
包括基本的第三方认证方案,用户首先与AS协商以确认自己的身份,然后使用TGT请求TGS颁发其他服务的访问权限。
引入了Ticket Granting Server (TGS) 以避免以明文传输密码。
用户登录时,客户端从认证服务器(AS)请求代表用户的票据授予票据(TGT)。
TGS票据(KTGS)本身也经过加密。
加密密钥由认证服务器(AS)和票据授予服务器(TGS)共同知晓,而不是由客户端知晓。
TGS票据的加密过程:
TGS将票据双重加密,首先使用AS和TGS共同知道的密钥,然后使用由用户密码生成的密钥。密码由用户输入,但密码本身从未在网络上传输。票据包含IP地址、时间戳和生命周期等信息。
客户端获取TGS票据:
客户端通过输入密码,生成密钥Kc,并恢复TGS票据。AS和用户之间的身份验证使用密钥Kc完成。
服务授权过程:
客户端向TGS请求服务授权票据,提供用户ID、目标服务ID和TGT。TGS解密TGT,验证用户身份,检查用户是否有权访问请求的服务器,并检查票据的生命周期。
服务授权票据生成:
服务授权票据(KV)由TGS加密,解密所需的密钥KV由提供服务的服务器知晓,而不是由用户知晓。票据包含时间戳和生命周期。
Kerberos (version 4) 对话:
包括客户端向TGS请求访问、TGS向客户端颁发TGT、客户端向TGS请求服务授权票据、以及客户端向服务器请求访问的对话。
认证过程:
客户端通过请求TGS获得TGT,TGT包含一个由AS生成的会话密钥KC,TGS。
客户端使用TGT请求服务授权票据,该票据用于访问特定服务器。TGS对用户进行身份验证,颁发服务授权票据,包括新的客户端-服务器会话密钥。客户端通过提供服务授权票据和验证器向服务器请求访问,服务器通过验证票据和验证器对用户进行身份验证。
IPSec是建立在IP层的安全协议,可提供身份验证和加密。包括IPSEC proper(身份验证和加密)和IPSEC密钥管理两个部分。在IPv6中是必需的,在IPv4中是可选的。
可以与防火墙或路由器一起使用,为跨越边界的所有流量提供强大的安全性。位于传输层(TCP,UDP)之下,对应用程序透明。透明对终端用户,不影响应用程序。
Encapsulate Security Payload (ESP):提供认证和/或机密性。
Authentication Header (AH):提供完整性保护。
Domain of Interpretation (DOI):包含协议的不同规范的标识符和操作参数。
Authentication Header (AH):仅提供完整性保护,通过在数据包中插入完整性检查值(ICV)实现。忽略可变字段(生存时间,IP校验和)。
Encapsulate Security Payload (ESP):提供认证(可选)和保密性。通过插入序列号和可选的ICV实现。通过保护头部和加密来实现认证。
AH: 主要提供身份验证和完整性保护,用于验证数据包的来源,并确保数据包在传输过程中未被篡改。不提供加密功能,仅用于身份验证和完整性保护。添加一个额外的头部,用于存储身份验证信息。
ESP: 提供身份验证、完整性保护和加密,除了验证和完整性保护外,还可以对数据进行加密,确保通信的保密性。支持加密,可以对整个数据包进行加密,包括IP头部和有效载荷。除了提供身份验证和完整性保护的头部外,还可以提供加密的额外头部。
IPSec算法:加密:DES(CBC模式)。认证:HMAC/MD5和HMAC/SHA等。可选的DOI依赖算法,如TDES、Blowfish、CAST-128、IDEA、RC5。
Domain of Interpretation (DOI):包含与协议相关的值,如加密和身份验证算法的标识符、操作参数等。
Anti-Replay Service(防重放服务)是一种网络安全机制,用于防止网络通信中的重放攻击。在重放攻击中,攻击者截获并重新发送先前经过身份验证的通信,试图欺骗系统以接受重复的请求或数据包。防重放服务通过引入一些机制,如序列号和滑动窗口,来防止这种攻击。
其工作原理:
序列号: 数据包在发送时按顺序编号,形成唯一的序列号。接收方使用这些序列号来检测和拒绝已经收到的重复数据包。
滑动窗口: 发送方和接收方维护一个滑动窗口,窗口内的序列号范围是有效的,而窗口外的序列号被认为是过期的。接收方只接受位于窗口内的数据包,拒绝位于窗口外的数据包。
定期更新: 窗口定期向前滑动,以便接收方可以接受新的、未曾收到的序列号。这样,即使攻击者截获了一些先前的序列号,由于窗口已经滑动,这些序列号也将被视为过期和无效。
例子:
假设有一个通过网络进行身份验证的系统,其中用户在登录时会生成一个一次性的令牌,并将其发送给服务器以进行验证。防重放服务可以防止攻击者截获并重复使用此令牌进行欺骗。
用户A登录系统,生成并发送令牌1。
令牌1在网络上传输到服务器,服务器验证通过。
攻击者截获令牌1,并尝试将其重放给服务器。
由于防重放服务的存在,服务器检测到令牌1已经过期,因此拒绝验证。
IPSec(IP Security)中的处理过程和两种主要模式:隧道模式(Tunnel Mode)和传输模式(Transport Mode),以及这两种模式在ESP(Encapsulating Security Payload)和AH(Authentication Header)中的应用
假设有两个网络设备,设备A和设备B,它们之间需要进行安全通信。设备A要向设备B发送一条消息,这条消息需要经过身份验证和加密。
设备A和设备B之间建立了一个IPSec安全关联,其中包含了SPI、身份验证算法(HMAC/SHA)、加密算法(AES)和密钥。
设备A使用该安全关联对要发送的数据进行数字签名(身份验证检查),然后使用AES算法加密数据。
设备B接收到数据后,使用相同的安全关联进行数字签名验证,然后使用AES算法解密数据。
安全参数索引(SPI)查找安全关联(SA):设备A和设备B之间建立了一个安全关联,其中包含了用于保护通信的安全参数,如加密算法、身份验证算法和密钥等。SPI是一个唯一的标识符,设备A使用SPI来确定要使用哪个安全关联。
SA进行身份验证检查:设备A在发送消息之前会使用安全关联中的身份验证信息对消息进行签名,生成数字签名。设备B在接收到消息后,使用相同的安全关联中的身份验证信息来验证数字签名的有效性,确保消息来自合法的设备A。
SA进行身份验证的数据的加密/解密:如果需要保密性,设备A在发送消息之前使用安全关联中的加密算法和密钥对消息进行加密。设备B在接收到消息后,使用相同的安全关联中的加密算法和密钥来解密消息,以获取原始的、可读的信息。
在隧道模式下,整个数据包都被加密和/或认证,然后放置在一个新的IP包中。这种模式通常用于建立虚拟专用网络(VPN),其中整个通信流量都受到保护,提供了对流量分析的保护。
在传输模式下,只有IP包的有效载荷(通常是数据部分)被加密和/或认证,而IP头部保持不变。这种模式提供了对数据的保密性,但不涉及整个包的加密,因此不提供对IP头部信息的直接保护。
简单来说就是:Tunnel Mode:保护整个数据包,用于建立虚拟专用网络。Transport Mode:保护有效载荷,提供机密性。
在IPSec中,安全关联(Security Association,SA)是定义了一种安全服务的一组参数,包括加密算法、身份验证算法、密钥等。每个SA通常只提供一种安全服务,即要么是身份验证(AH),要么是加密和身份验证(ESP)。
然而,在某些情况下,可能需要同时实现AH和ESP,以提供更全面的安全性。为了实现同时支持AH和ESP,可以采用组合安全关联的方法。
以下是两个例子,说明了如何组合安全关联:
主机间身份验证的例子,使用AH-传输模式:
设定: 设备A和设备B之间建立了通信连接,需要同时进行身份验证和数据传输的完整性保护。组合SA: 需要创建两个SA,一个用于AH传输模式,用于身份验证,另一个用于ESP传输模式,用于传输数据的完整性保护。
通信流程:设备A发送数据包时,同时对整个数据包进行身份验证(使用AH传输模式)和数据的完整性保护(使用ESP传输模式)。设备B接收数据包后,首先使用AH进行身份验证,然后使用ESP进行数据的完整性保护。
在WAN中传输时提供机密性的例子,使用ESP-隧道模式:
设定: 设备A和设备B之间通过广域网(WAN)建立了VPN连接,需要在传输过程中提供数据的机密性。组合SA: 创建一个SA,使用ESP隧道模式,同时提供加密和完整性保护。
通信流程:设备A要发送数据时,数据会在整个数据包级别被加密(使用ESP隧道模式)。加密后的数据包经过WAN传输到设备B。设备B接收到数据包后,对其进行解密,以还原原始数据。
这些例子说明了在特定场景中,通过组合不同的SA,可以同时满足多种安全需求,例如身份验证、数据完整性保护和数据机密性。这种组合使得IPSec更加灵活,能够适应不同的安全场景。
中间人攻击是一种攻击方式,攻击者获取经过身份验证的数据包的副本并将其重新传输到其目标。Oakley使用数字签名、公钥加密和对称密钥加密等方式进行身份验证。
ISAKMP是由NSA设计的协议,用于交换安全参数,但不用于建立密钥。
ISAKMP用于建立、修改和删除IPSec安全关联(SA),提供交换cookie、安全参数、密钥管理和标识的通用框架。
ISAKMP分为两个阶段:建立安全的认证通道(SA)和协商安全参数(KMP)。
ISAKMP提供协议框架,Oakley提供安全机制。结合版本澄清了两个协议,解决了模糊性。
保护本地系统/网络免受网络安全威胁。
允许对外部世界(WAN、互联网)的有序访问。
互联网连接对所有网络已不可避免,但互联网访问可能构成安全威胁。
为每个设备配备强大安全功能并不经济。
安全墙和受控链接:在本地网络和互联网之间建立受控的链接和安全墙。防火墙可以是一个或多个计算机系统。
流量控制:所有流量从内部到外部以及相反方向都必须通过防火墙。只有经授权的流量才能通过。防火墙本身免疫于渗透。
特定控制服务:提供服务控制、方向控制、使用控制和行为控制。
无法防御绕过防火墙的攻击。无法防御内部攻击。无法防御计算机病毒。
包过滤:拒绝未经授权的TCP/IP数据包或连接尝试。
应用层网关:充当应用层流量的中继。比数据包过滤器更安全,可以在应用层记录和审核流量。
电路层网关:不允许端到端的TCP连接,而是中继它们。在自身和内部主机以及自身和外部主机之间建立两个连接。
代理服务:代表内部主机与外部主机建立高级应用层连接,完全隔离内部与外部主机。
其他防火墙服务:加密身份验证、VPN、病毒扫描、内容过滤等。
包括不同形式的防火墙:双重接口堡垒主机。屏蔽子网防火墙。
其他服务:虚拟专用网络(VPN)和分布式防火墙。
用于保护数据和资源:基于安全级别(机密、秘密、最高机密等)。
信任系统的核心:完全调解、隔离、可验证性。
最后,防火墙需要注意的问题包括无法防御绕过防火墙的攻击、内部攻击、计算机病毒等。 Trojan Horse攻击是一种常见的攻击方式,通过植入木马程序来绕过防火墙,引起数据泄露等问题。