计算机网络——网络安全

1. 为什么谈论网络安全

1.1 网络和信息系统安全

        随着互联网的普及,网络攻击的影响越来越大。这些攻击的动机也发生了变化:

        a.简单的利用(90年代初):早期的网络攻击通常出于技术好奇或挑战性,而非为了财务或恶意目的。

        b.勒索金钱:随着时间的推移,网络攻击成为犯罪分子通过恶意软件(如勒索软件)勒索受害者金钱的一种方式。

        c.窃取数据(账户,护照等):窃取个人和敏感数据(如账户信息和护照)成为常见做法,这些信息用于各种非法活动或在黑市上出售。

        d.有组织犯罪:犯罪组织开始将网络攻击作为进行非法活动的有效手段,提高了其操作的复杂性和范围。

        e.网络战争:国家开始使用网络攻击作为战争工具,针对其他国家的关键基础设施和信息系统,以获得战略优势。

        f.政府滥用:某些情况下,政府利用网络攻击来监视和压制其公民,侵犯人权和隐私。

1.1.1 信息系统安全(ISS)

1.1.1.1 基本概念

        信息系统安全指的是保护信息系统免受各种威胁,确保信息的保密性、完整性和可用性。这个概念适用于不同类型的组织,无论是企业、私人或公共实体、政府服务还是个人。

        信息系统是指一套组织、参与者、程序和信息技术(包括硬件和网络)的组合。这些资源是为了处理和利用信息(基于数据)而必需的,并且这些活动是在组织的战略、业务和法规框架下进行的。

        信息系统安全(SSI)涉及保护组织的信息系统,以防止各种安全威胁,确保信息的保密性、完整性和可用性。这适用于各种类型的组织,包括企业、私人或公共实体、政府机构和个人。

        信息系统是一个集成的资源体系,包括组织结构、参与人员、流程和信息技术(如硬件和网络)。这些资源的目的是处理和利用信息(基于数据),并且这些活动是根据组织的战略目标、业务需求和法规要求来进行的。

1.1.1.2 为什么要确保信息系统的安全?

        a.多地点访问,互联网接入,外部接入(某些服务器,应用程序):这表明企业的信息系统可能需要在多个地点访问,包括通过互联网和从外部访问特定服务器或应用程序。这增加了安全风险,因为系统必须对来自不同来源的交通进行管理和保护。
        b.标准化的机器和软件环境:指出由于互联网周围的机器和软件被标准化了,一旦某个系统发现了漏洞,相同的系统就很可能也有相同的漏洞,这就产生了被攻击的风险。
        c.同质化:强调了由于系统的标准化,系统变得相似,从而在安全方面可能面临类似的威胁。

        d.互联网不保证IP地址的真实性:这意味着互联网不能保证一个IP地址的真实性,使得IP地址的冒充(IP spoofing)成为可能,这允许攻击者隐藏自己的真实身份。        

1.1.2 安全事件

        在信息安全领域,“漏洞(Vulnérabilité)”、“威胁(Menace)”和“攻击(Attaque)”是三个核心概念,它们定义了安全问题的不同方面和阶段:

        a.漏洞(Vulnerability):是系统中的一个缺陷,可能出现在系统的规格说明、设计、实现、安装、配置或使用方式上。漏洞本身不一定会导致安全事件,但它是安全事件可能发生的一个弱点。

        b.威胁(Threat):是指可能利用某个漏洞对信息系统的完整性造成损害的潜在风险。威胁可以来自多个源头,包括恶意软件、黑客或者自然灾害等。

        c.攻击(Attack):是指有意采取的恶意行为,利用漏洞来执行威胁,从而对信息系统造成实际的损害或影响。攻击可能以数据泄露、服务中断或系统损坏的形式出现。

        了解和识别系统的漏洞是关键步骤,因为这是制定有效防御措施和应对策略的前提。只有当我们了解了系统的弱点,才能设计出补救措施来防止或减轻攻击的影响。

1.1.3 如何查询系统是否存在漏洞

        要知道一个系统是否存在漏洞,可以采取以下几种方法:

        a.关注安全通知:定期检查和关注安全通知是了解系统是否存在公开漏洞的重要方式。这些通知可能来自不同的组织和制造商,它们会公布关于新发现漏洞的详细信息。

        b.CVE(Common Vulnerabilities and Exposures):这是一个广泛认可的漏洞数据库,由美国MITRE组织管理。它提供了一个公共的漏洞编号系统,可以在其网站 [https://cve.mitre.org/](https://cve.mitre.org/) 上查询。

        c.CERT(Computer Emergency Response Team):这些是专门的组织,负责响应计算机安全事件和漏洞。各国或组织会有自己的CERT,如法国的CERT-FR(由ANSSI运营)和教育研究国家网络GIP Renater的CERT-RENATER。银行等企业通常会有自己的CERT。

        d.National Vulnerability Database (NVD) of NIST**:这是由美国国家标准与技术研究院(NIST)维护的漏洞数据库,可以在 [https://nvd.nist.gov/](https://nvd.nist.gov/) 查询。它不仅列出了漏洞,还提供了评分和影响分析。

        e.操作系统供应商:操作系统供应商通常会提供关于其产品漏洞的安全通知。定期检查供应商的安全更新和补丁发布是维护系统安全的重要做法。

        通过这些资源,管理员和安全专家可以及时了解和处理系统的安全漏洞,以降低遭受攻击的风险。

1.1.4 "层"(Layer)这个概念

        在网络安全和计算机科学中,"层"(Layer)这个概念通常是用来描述计算机网络模型中的不同抽象层级,其中每一层处理不同的通信或计算任务。最常见的模型是OSI模型,它定义了七个层次。但在安全领域,有时会讨论到“第零层”和“第八层”来指代更广泛的概念。

        a.第零层”(Couche zéro):通常指的是物理硬件层面,包括处理器等。这一层的安全漏洞直接影响到硬件的物理组件。例如,Spectre和Meltdown漏洞都是硬件层面的安全问题,它们允许攻击者利用处理器设计中的缺陷来访问受保护的内存数据。Spectre有两个相关的CVE标识(CVE-2017-5753和CVE-2017-5715),而Meltdown的CVE标识是CVE-2017-5754。

        b.第八层”(Couche huit):通常指的是与人相关的层面,也就是人的因素。虽然OSI模型只定义到第七层(应用层),但第八层通常用来非正式地指代用户、个人或社会工程等因素,这些因素可能会影响安全性,因为人是最容易被操纵和误导的环节。这些问题通常不是技术性的,而是涉及到如何通过欺骗人来获得访问权限或信息。

        总的来说,从“第零层”到“第八层”,这个范围覆盖了从硬件的物理组件到人的行为和心理模式的所有层面,每一层都需要相应的安全措施来保护系统免受攻击。

1.1.5 每一层的安全漏洞

        网络问题(如互联网或本地网络问题)可能起源于不同的“层”。在OSI模型中,每一层都负责网络通信的不同部分,而每一层都可能存在安全漏洞。这里列举了一些特定的安全问题及其对应的OSI模型层级:

        a.IP spoofing(IP地址伪装):发生在第三层,即网络层。在这个层级上,攻击者可能会伪造IP包的源地址,使得似乎是从另一个合法的地址发送的,这种技术可以用于多种攻击,比如拒绝服务(DoS)攻击。

        b.DNS缓存污染(pollution de cache DNS):虽然DNS是应用层(第七层)的协议,但它对整个互联网的运作至关重要。DNS缓存污染是指恶意或误导性的DNS数据被插入到DNS服务器的缓存中,导致用户可能被导向错误的服务器或网站。

        c.TCP SYN flooding(TCP SYN泛洪攻击):发生在传输层(第四层)。这是一种拒绝服务攻击方法,通过发送大量的TCP/SYN包到目标系统来消耗目标的资源,导致正常的网络服务无法使用。

        我们主要关注互联网和本地网络,但也指出其他类型的网络,如物联网(IoT)和工业网络,也面临重大的安全问题。物联网和工业网络由于其独特的构建和运作方式,带来了新的安全挑战,这些网络的安全漏洞可能对个人隐私和工业控制系统产生严重的后果。

1.2 安全性能

        信息安全的五个基本属性是:

1.2.1 保密性

        确保信息仅对授权访问的人可见。这意味着保护数据不被未授权的人访问或泄露。
        攻击方式:窃听(如通过监听网络流量获取敏感信息)。
        防御措施:加密(使用密码学技术来加密数据,防止未授权的访问)。

1.2.2 完整性

        数据保持未经篡改的原始状态,无论是内容还是格式。这包括防止数据在传输或存储过程中被意外或恶意修改。
        攻击方式:故意修改程序或数据(还包括传播过程中的错误或通信渠道的噪声等)。
        防御措施:哈希函数(使用哈希函数来验证数据的完整性,确保数据未被篡改)。

1.2.3 不可否认性/归责

        可以确定某一行为的起源,并确保行为的发起者不能否认他们的行为。这通常通过日志记录、数字签名等方式实现。

1.2.4 认证

        确保能够确认自己正在与之通信的实体的身份,无论是服务器、个人还是其他任何实体。这通常涉及到用户名和密码、数字证书、双因素认证等机制。
        攻击方式:身份盗用、假冒网站、欺骗(在不同层次上的欺骗,如IP地址伪装)。
        防御措施:认证协议、数字签名(以及使用公钥证书)。

1.2.5 可用性

        保证授权用户在预定的使用条件下(如时间段等)能够访问服务和资源。这涉及到防止服务中断、确保系统恢复能力和应对各种拒绝服务攻击。
        攻击方式:服务拒绝攻击(DoS和DDoS),这些攻击可能通过网络流量泛滥或利用系统漏洞来进行。
        防御措施:流量过滤、流量分析、负载均衡、服务器冗余等。

        这些属性是构成任何安全系统基础的元素,每个属性都必须通过相应的安全策略、控制措施和技术来保护,确保系统的安全性和可靠性。

1.3 网络安全事件

1.3.1 大规模的信息安全事件及其防御措施

1.3.1.1 Conficker蠕虫

        发生时间:2008-2009年。
        影响:感染了700万台运行Windows操作系统的计算机,仅利用已知的漏洞,主要是由于操作系统未及时更新。
        受影响的机构包括法国国家海军的Intramar内网、美国国防部、英国国防部等。
        防御措施:
        网络断开时的防病毒软件?
        系统多样性(例如,不仅使用一种操作系统)。

1.3.1.2 Stuxnet蠕虫

        发生时间:2010年。
        影响:感染了45000个信息系统,其中30000个在伊朗。
        背景:据推测由美国和以色列开发。它是第一个旨在监视和重新编程工业系统的蠕虫,影响的是西门子生产的SCADA系统,这些系统用于控制例如核电站等工业设施。

1.3.1.3 Solaris漏洞利用

        描述:2017年,一个名为Shadow Brokers的黑客组织公布了他们声称从美国国家安全局(NSA)窃取的利用工具。
        影响:这些工具允许攻击者远程入侵运行Solaris 6到10版本的系统,并获得root权限。

        这些事件突显了网络安全在全球范围内的重要性,特别是在对抗高级持续性威胁(APT)和有国家支持的网络间谍活动时。防御措施包括使用多种技术来减少单一点失败的风险,以及确保系统和应用程序及时更新以防止已知漏洞被利用。

1.3.2 几个不同类型的网络安全事件

1.3.2.1 DDoS攻击

        事件:2010年,匿名者(Anonymous)对Paypal进行了DDoS攻击。
        背景:此举是作为对Paypal停止支持WikiLeaks的回应。

1.3.2.2 伪造公钥证书事件

        事件:2011年,数字证书颁发机构(CA)Diginotar被发现发行了伪造的证书。
        影响:这些伪造的证书主要针对伊朗公民,可能用于监视和拦截网络通信。

1.3.2.3 互联网访问封锁

        事件:2011年阿拉伯之春期间,例如在利比亚,根据谷歌透明度报告,互联网访问被封锁。
        背景:这通常被视为政府试图控制信息和抑制抗议活动的一种手段。

1.3.2.4 Twitter在俄罗斯的减速

        时间:2021年3月。
        背景:俄罗斯政府声称这是因为Twitter发布了非法内容(如儿童色情内容、毒品信息等),同时也是对政府逮捕反对派领袖阿列克谢·纳瓦尔尼的抗议活动的压制。

        这些事件反映了网络安全和数字政策领域的复杂性,特别是在处理政治敏感事件、政府干预以及跨国法律和政策问题时。它们展示了网络空间如何被用于不同目的,包括政治宣传、审查和社会动员。

1.3.3 由非法BGP(边界网关协议)公告引起的路由事件以及其他事故

1.3.3.1 2008年巴基斯坦电信的BGP事件

        事件:巴基斯坦电信向其过境运营商宣布了比YouTube更具体的网络前缀。
        结果:这导致YouTube的一部分流量被错误地重定向到了巴基斯坦电信,影响了YouTube的全球可访问性。

1.3.3.2 DNS和BGP相关的定期事件

        描述:DNS(域名系统)和BGP是互联网的核心组成部分,而与之相关的问题会定期导致路由错误或中断。

1.3.3.3 2021年Facebook的BGP事件

        事件:由于Facebook对其BGP公告的错误修改。
        影响:这导致了Facebook的DNS服务器不可用,进而导致Facebook及其子服务(如WhatsApp和Instagram)对用户不可访问。
        分析:CloudFlare对这次中断进行了分析。

        这些事件说明,BGP和DNS的配置错误或滥用可能会对互联网的稳定性和安全性产生重大影响。它们强调了网络运营商和大型互联网服务提供商在保持网络稳定性和安全性方面的关键作用。

1.3.4 各种故障和配置错误造成的网络安全问题

1.3.4.1 物理原因造成的问题

        如啮齿动物咬断未埋地的电缆、挖掘工程意外切断电缆、以及铜质电缆被盗等。

1.3.4.2 设备故障

        例如,被动光网络(PON)的故障可能会影响到光纤到户(FTTH)的用户。

1.3.4.3 大规模的网络故障

        互联网交换点(IXP)的故障会导致更广泛的影响。例如:
        2016年阿姆斯特丹互联网交换(Amsterdam IX)发生了故障,导致某些路由不可用,服务质量下降。
        2018年4月,德国法兰克福的DE-CIX发生故障。
        2021年3月,伦敦互联网交换(LINX)发生故障。

1.4 网络故障的检测、定位(以及修复)的方法,以及人工智能在这个领域中的应用

1.4.1 传统方法

        传统上,故障的检测和定位主要依赖于人类专家。
        这是一项耗时且辛苦的工作。
        基于规则的决策系统难以维护,并且许多故障仍然无法识别。

1.4.2 人工智能的应用

        最近,人工智能(特别是机器学习)被用于处理故障检测和定位。
        利用设备反馈的数据、网络流量、性能测量等信息来做出决策。
        故障检测和定位被视为分类和决策问题。
        重要的是,人工智能支持而不是取代人类专家。人类专家的知识和经验用于喂养AI算法。
        随着深度学习的进步,自动化程度可能会不断提高。但这也引出了关于自动决策可解释性的问题。

        这段文字强调了人工智能在网络故障管理中的潜力,特别是在自动化和精确性方面。同时,它也提醒我们,虽然AI在数据处理和模式识别方面能力强大,但人类专家的角色仍然至关重要,特别是在解释AI的决策和提供必要的领域知识方面。此外,AI决策的可解释性仍然是一个重要的研究和发展领域。

2. 安全与互联网

2.1 IP 中没有本地安全功能......以及一些相关问题

2.1.1 IP协议栈在安全性方面的原生缺陷

2.1.1.1 IP协议设计时的安全考虑缺失

        当IP协议及其相关协议(如TCP、UDP、ICMP、路由协议等)被设计时,安全概念并未被考虑在内。当时,人们没有想到这些协议可能会被用于恶意目的。
        因此,这些协议最初并未实现任何安全机制。

2.1.1.2 IP协议栈的安全弱点

        地址伪装:由于缺乏发送者和接收者的身份验证机制,IP地址可以被伪造。
        数据未加密:数据在传输过程中没有加密,意味着任何人如果能访问网络就能监听连接并获取数据。
        路由篡改:数据报文的路由可能被修改,从而将数据报文重定向到其他目的地。

        这些缺陷使得IP协议栈易于受到各种攻击,如IP欺骗、数据窃听和路由劫持。随着互联网的发展和网络安全威胁的增加,这些安全问题变得越来越明显,迫切需要通过额外的安全措施来加以解决。例如,使用安全层(如SSL/TLS)来加密数据,以及使用更复杂的认证和监控机制来保护网络通信。

2.1.2 无线网络中的两种监听方法

2.1.2.1 被动监听

        攻击者可以不干预网络通信的情况下监听两个通信方(在图中为A和B)之间的对话。这种方式主要威胁到通信的保密性,因为攻击者可以接收传输的数据,但不会改变或干扰数据。

2.1.2.2 主动监听

        攻击者在通信方A和B之间的数据传输过程中插入自己,能够读取和可能修改通信内容,而通信双方可能并不知情。这不仅侵犯了通信的保密性,也威胁到了数据的完整性。

        Pensez au réseau WiFi ouvert de votre café préféré!”意味着“想想你最喜欢的咖啡馆的开放WiFi网络!”这是在提醒用户公共WiFi网络中存在的安全风险,任何人都可能在不被发现的情况下进行监听。

2.1.3 DoS与DDoS

        服务拒绝攻击(DoS)和一种特定的DoS攻击类型——TCP SYN泛洪攻击:

2.1.3.1 服务拒绝(Denial of Service, DoS)

        这是一种攻击类型,旨在使服务在一段时间内无法使用。这可以通过以下方法实现:
        饱和:通过发送大量请求来淹没目标服务。
        利用漏洞:通过利用系统的安全漏洞来瘫痪服务。

2.1.3.2 TCP SYN泛洪攻击

        TCP连接建立过程中正常的“三次握手”(3 Way Handshake)。
        TCP SYN泛洪攻击,攻击者发送大量的SYN包(连接请求),但不完成握手过程,导致服务器资源耗尽,无法处理合法的请求。
        为了不被追踪,攻击者通常会“欺骗”(spoofing),即改变发送数据包的源IP地址。

        这种攻击会消耗目标服务器的资源,使得正常用户无法访问服务。“IP spoofing = 修改son champ @ IP Source dans les datagrammes”意思是IP欺骗等于在数据报文中修改源IP地址字段。这使得攻击者可以隐藏自己的真实IP地址,使追踪变得更加困难。

2.1.3.3 分布式拒绝服务攻击(DDoS)的概念

        分布式拒绝服务:这是一种常见的DoS攻击方式,它通过饱和手段实施,即利用大量的机器同时发起攻击。
        僵尸网络:DDoS攻击通常通过所谓的僵尸网络实施,这是一群被黑客控制的、感染了恶意软件的机器集群。这些机器被用来同时向目标发起攻击,使其服务不可用。

        多个设备(被控制的“僵尸”计算机)被用来同时攻击一个服务器,这通常会导致服务器因为处理不了如此大量的请求而无法提供正常服务。图片中的笑脸标志(通常与“Trollface”相关联)可能在此表示攻击者对于能够发起这种攻击而感到自豪或嘲讽。这强调了网络安全的重要性,尤其是对于可能成为这种攻击目标的服务和基础设施。

2.1.4 僵尸网络(Botnet)

        僵尸网络(Botnet)是由大量被恶意软件感染并被黑客远程控制的计算机组成的网络。以下是构建和利用僵尸网络的典型操作步骤:

2.1.4.1 网络扫描

        黑客首先会扫描网络以寻找脆弱点,比如开放的端口,这可以通过自动化的扫描工具来实现。

2.1.4.2 利用漏洞

        一旦找到脆弱点,黑客就会利用这些漏洞来在目标计算机上安装“bot”(即机器人软件)。这样,这些机器就变成了被黑客控制的“僵尸”。

2.1.4.3 远程控制

        黑客随后可以远程指挥这些僵尸计算机,同步地发起针对特定目标的攻击,如分布式拒绝服务(DDoS)攻击。

2.1.4.4 通信

        僵尸网络中的“bot herder”(控制者)与僵尸计算机之间的通信通常是通过IRC(Internet Relay Chat)频道或P2P(点对点)网络进行的。这样做是为了避免使用DNS系统,从而减少被追踪的风险,并提高通信的隐蔽性。

        僵尸网络可以由几台到数万台计算机组成,它们是网络安全威胁中的一个主要因素,因为它们可以被用来发起大规模的网络攻击,这些攻击可能导致重要服务的中断,或用于其他恶意目的,如发送垃圾邮件、进行网络欺诈等。

2.1.5 反射式攻击(Rebound Attack)或反射放大攻击

        反射式攻击(Rebound Attack)或反射放大攻击是一种分布式拒绝服务(DDoS)攻击的变体,其主要特点是利用了第三方的系统来增加攻击流量:

2.1.5.1 原理

        攻击者首先伪造受害者的IP地址。
        然后诱使其他一些正常的、未被感染的机器向受害者发送大量不必要的流量。

2.1.5.2 操作方式      

        使用一个僵尸网络(botnet)。
        每个僵尸机(zombie)向被用作放大器的机器发送请求,这些请求伪装成来自受害者的IP地址。
        这些放大器机器随后向受害者的IP地址发送回应。
        受害者遭受DDoS攻击,导致其互联网连接饱和。

2.1.5.3 放大效应

        当放大器机器的响应数据量远大于初始请求的数据量时,就会产生放大效应。
        例如,通过DNS放大器进行的攻击(对Spamhaus的攻击,2013年5月,达到了300 Gb/秒);使用NTP(网络时间协议)进行的攻击(2014年2月,达到了400 Gb/秒)。

        这种攻击类型之所以危险,是因为它不仅利用了攻击者自己的僵尸网络,还利用了无辜的第三方系统,将攻击的规模扩大到受害者难以承受的程度。这也使得防御变得更加困难,因为直接的攻击流量并不是来自于攻击者,而是来自许多合法但被利用的服务器。

2.2 互联网恢复能力:BGP 和 DNS

2.2.1 互联网的弹性

        互联网的弹性是指其在面对各种事件和攻击时保持功能正常运行的能力,以及限制事件影响的能力。以下是有关互联网弹性的一些要点:

2.2.1.1 互联网的弹性

        根据AFNIC的报告《互联网能被打败吗?》("Peut-on casser l’Internet?"),互联网在局部可能是脆弱的,但在全球范围内则表现出强大的鲁棒性。

2.2.1.2 法国互联网的弹性

        法国国家信息系统安全局(ANSSI)和法国互联网名称与合作协会(AFNIC)发布的报告讨论了法国互联网的弹性。

2.2.1.3 针对个别网站的攻击

        对个别网站的攻击,如网页篡改("defacing"),可能会造成心理影响,但真正的"威胁"主要是对受害者品牌形象的影响,以及可能对服务用户产生的影响。这种攻击的影响是有限的。

2.2.1.4 针对互联网基础设施的攻击

        攻击互联网的基础设施则可能对更多人产生影响。例如,攻击DNS服务器或互联网交换点(IXP)会影响大范围内的互联网访问和服务。

        尽管单个网站或服务可能容易受到攻击,互联网作为一个整体却具有很高的恢复力和容错能力,这得益于其分布式和去中心化的设计。然而,这也意味着互联网的基础设施,如路由器、交换机和DNS服务器,需要特别保护,因为它们对于整个网络的稳定性至关重要。

2.2.2 BGP与DNS

        互联网的弹性在很大程度上依赖于其关键协议的鲁棒性,特别是以下两个:

2.2.2.1 BGP(边界网关协议)

        BGP是互联网上的核心路由协议,负责传输数据和路由通告。它允许不同的自治系统(AS)之间交换路由信息,这样数据包就可以找到从源头到目的地的最佳路径。BGP的设计使得互联网能够动态调整路由,以应对节点故障或路径变化。

        BGP(边界网关协议)是互联网上使用的核心路由协议,它的工作原理如下:

2.2.2.1.1 IP地址管理

        网络运营商(即自治系统,AS)管理一系列连续的IP地址块,称为“前缀”。例如,`2001:db8::/32` 或 `2001:cafe:deca::/48` 是IPv6地址的前缀。

2.2.2.1.2 BGP的作用

        运营商使用BGP来交换不同自治系统间可达性信息,这些自治系统通过BGP宣告它们管理的IP前缀。

2.2.2.1.3 自治系统间的互联

        AS之间的互联分为两类:对等(peering)和过境(transit)。

2.2.2.1.3.1 对等连接(Peering)

        两个AS(对等方)相互宣告它们管理的前缀,所有在这两个对等方之间的流量都是直接交换的。

2.2.2.1.3.2 过境连接(Transit)

        一个客户(可能是公司、互联网服务提供商或内容分发网络)会向它的过境运营商宣告它管理的前缀。过境运营商将客户的宣告传播出去,并将互联网上其他所有前缀的可达性信息宣告给客户。

2.2.2.2 BGP劫持

        BGP是一个基于信任的协议,它假设所有的宣告都是正确的。然而,这也意味着如果一个AS错误地宣告了它并不拥有的IP前缀,或者故意进行虚假宣告(这被称为BGP劫持),它可能会误导流量,导致流量被送到错误的目的地,从而对互联网的路由造成破坏。这种攻击可能是由配置错误或恶意行为引起的,可以导致数据流量的窃听、拦截或流量重定向。为了防止这类攻击,正在推行一些安全措施,如资源公钥基础设施(RPKI)来验证BGP宣告的正确性。

        BGP劫持是一种网络攻击,攻击者通过向BGP宣告不属于自己管理的IP地址,从而导致网络流量被错误地导向攻击者的网络。这种攻击有以下几个主要目的和后果:

2.2.2.2.1 劫持目的

        中断服务:攻击者可以通过劫持流量使受害者与互联网的连接中断,实施一种形式的拒绝服务攻击。
        冒充受害者:攻击者可能通过劫持流量来冒充受害者,以便截获受害者的数据,例如阅读其邮件。

2.2.2.2.2 攻击后果

        受害者可能会迅速发现他们的互联网流量几乎完全丢失。

2.2.2.2.3 BGP分流(BGP shunt)

        这是一种更难实施的攻击,攻击者会监听或修改流经其网络的流量,然后再将流量重新导向受害者,以延迟攻击被发现的时间。

2.2.2.3 防御这些攻击的解决方案
2.2.2.3.1 BGPSec(RFC 8205)

        BGPSec旨在增加对BGP路由宣告的认证,确保宣告的合法性。

2.2.2.3.2 RPKI(资源公钥基础设施)

        RPKI是一个专门为IP资源(如IP前缀和AS号码)认证的管理体系,它由国际互联网数字分配机构(IANA)注册的认证机构管理。
        资源证书(resource certificates):是X.509证书,证实某个实体拥有特定的IP前缀和AS号码。
        路由源授权(ROA,Route Origin Authorization):这些是被签名的路由对象,用于指定哪些AS有权宣告特定的IP前缀。

        通过这些防御措施,可以提高BGP宣告的可信度,并减少劫持事件的发生。不过,尽管有了这些安全增强,实施BGPSec和RPKI的过程可能比较缓慢,因为这需要全球的运营商和网络自治系统的广泛合作与支持。

2.2.2.4 DNS(域名系统)

        DNS是另一个核心协议,它将人类可读的域名(完全限定域名,FQDN)映射到机器可读的IP地址。DNS查询是访问任何网站和网络服务的必要步骤,因为它们将用户从域名导向正确的服务器。

        域名系统(DNS)是互联网的关键组成部分,因为它负责将域名解析成IP地址。然而,DNS协议存在一些安全漏洞,其中之一是DNS缓存污染,也称为DNS欺骗。

2.2.2.4.1 DNS缓存污染(DNS cache poisoning)

        这是DNS协议的一个基本弱点,由安全研究员Dan Kaminsky在2008年发现。
        攻击者通过欺骗DNS服务器,使其接收并缓存伪造的DNS响应,从而使该服务器上的所有用户在尝试访问某个网站时被重定向到一个恶意网站。
        这使得用户可能无意中访问到仿冒网站(用于网络钓鱼)、带有病毒的网站或其他恶意软件分发点。

2.2.2.4.2 防御措施
2.2.2.4.2.1 部署DNSSec(DNS安全扩展)

        DNSSec通过为DNS记录提供加密签名,来确保DNS响应的真实性和完整性,从而防止伪        

        DNSSec的实现定义在RFC 4033及相关文档中。

2.2.2.4.2.2 加强DNS抵抗伪造答案的能力

        RFC 5452中定义了一系列措施,旨在增强DNS协议抵御缓存污染攻击的能力。

2.2.2.4.2.3 针对DoS攻击的防御

        通过在权威DNS服务器上实现冗余,即使有服务器遭到攻击,其他服务器也可以继续提供服务,从而保持DNS的可用性。

        这些措施有助于确保用户能够安全可靠地解析域名,防止DNS相关的安全威胁破坏互联网的正常运作。

2.2.2.4.3 其他方面

        除了DNS缓存污染之外,DNS在安全和隐私方面还面临其他几个问题,如监控、审查以及由于“不诚实”的DNS服务器导致的误导性解析。这些问题催生了新的技术发展,用于增强DNS协议的安全性和隐私性,特别是DNS over TLS(DoT)和DNS over HTTPS(DoH)。

2.2.2.4.3.1 DoT(DNS over TLS)

        DoT的目的是在TLS(传输层安全协议)之上加密DNS消息。
        这增强了用户隐私和安全性,因为它可以防止对DNS请求的监听和DNS通信的篡改。

2.2.2.4.3.2 DoH(DNS over HTTPS)

        DoH是将DNS请求封装在HTTPS请求中的技术,定义在RFC 8484中,发布于2018年10月。
        它使用443端口进行通信,这个端口很少被封锁,从而提供了对请求来源和响应完整性的验证。

2.2.2.4.3.3 在家中使用

        用户可以选择使用像Stubby这样的工具([https://getdnsapi.net/](https://getdnsapi.net/))来实现在本地机器上的DoH或DoT。
        不过,即使使用了DoT或DoH,请求最终还是要到达权威DNS服务器,而这个过程中请求可能会在某些环节以明文形式进行。

        使用DoT和DoH的逐渐普及显示了人们对于互联网隐私和安全的重视,尤其是在DNS解析这样一个经常被忽视的环节。这些协议为防止监控、审查和篡改提供了有效的手段,同时也为互联网的整体安全架构增添了一层额外的保护。

        这两个协议的弹性对于整个互联网的可靠性至关重要。如果BGP或DNS遭受破坏,比如通过误导的BGP路由宣告或DNS缓存污染,那么互联网的部分或全部可能会变得不可访问。因此,维护这些协议的安全性是互联网基础设施管理的一个关键方面。例如,通过实施BGP安全最佳实践(如路由过滤和RPKI)和保护DNS查询(如使用DNSSEC)来提高弹性。

3.  加密:安全的支柱之一

3.1 密码学:保密科学(以及更多...)

3.1.1 密码学的基本知识

        密码学是信息安全领域的一个重要数学基础。它的主要目标是保护数据的机密性、完整性和真实性。密码学通过使用加密技术来实现以下目标:

        加密:加密是一种将数据转化为不可读形式的过程,以防止未经授权的访问和窃听。这确保了数据的保密性,只有授权的人才能解密和查看数据。

        签名:数字签名是一种用于验证数据的完整性和真实性的技术。它允许数据的发送者用私钥对数据进行签名,接收者可以使用公钥验证签名以确保数据未被篡改,并且确实由发送者生成。

        身份认证:密码学还用于身份验证,以确保通信的一方是合法的。这可以包括验证服务器的身份,确保用户与正确的服务器建立连接,以及用户在系统中的身份验证。

        密码学的关键概念是密钥管理,而不是加密算法的保密性。密码学算法通常是公开的,并且被广泛研究和审查。安全性依赖于保护密钥的安全性。攻击者可能尝试使用暴力破解攻击来尝试所有可能的密钥值,因此密码长度和复杂性非常重要。

        此外,密码分析是一种研究密码系统中潜在弱点的方法,以找到攻击的方式,可能会降低攻击成本,相对于暴力破解而言更有效。因此,密码学的设计需要经过广泛的分析和测试,以确保其安全性。

        总之,密码学是信息安全的关键组成部分,用于保护数据的保密性、完整性和真实性,并确保安全通信和身份验证。密钥管理和密码系统的设计是确保信息安全的关键因素。

3.1.2 两大加密算法

        在密码学中,有两大类主要的加密算法:对称加密(cryptographie symétrique)和非对称加密(cryptographie à clé publique)。

3.1.2.1 对称加密(Symmetric Cryptography)

        工作原理:对称加密使用相同的密钥(也称为共享密钥或对称密钥)来同时加密和解密消息。这意味着发送方和接收方都知道并使用相同的密钥来进行加密和解密操作。

        示例:一些历史上的对称加密算法包括凯撒密码(Caesar Cipher)、维尔纳姆密码(Vernam Cipher)、恩尼格玛(Enigma),以及现代的加密算法如DES(Data Encryption Standard)和AES(Advanced Encryption Standard)。

3.1.2.2 非对称加密(Asymmetric Cryptography)

        工作原理:非对称加密使用一对密钥,包括公钥和私钥。公钥是公开的,可以被任何人获得,而私钥必须保持秘密。这两个密钥通过一个单向函数相关联,可以轻松地加密和解密数据,但几乎不可能通过公钥推导出私钥。

        示例:一些非对称加密算法包括RSA加密(用于加密和签名)、DSA(数字签名算法)、El Gamal加密、椭圆曲线密码学等。

        在非对称加密中,公钥通常用于加密消息,而私钥用于解密。此外,私钥还用于生成数字签名,以验证消息的来源和完整性。公钥可以公开分享,但私钥必须严格保密。

        总之,对称加密和非对称加密都在信息安全领域中扮演着重要角色。对称加密使用相同的密钥进行加密和解密,而非对称加密使用一对相关的密钥,其中一个公开,另一个保持私密,以实现加密、解密和数字签名等功能。

3.1.2 PKI

        在公钥密码学中,为了防止中间人攻击(身份冒充),必须信任公钥。为了实现这一目标,通常会使用公钥基础设施(PKI,Public Key Infrastructure)服务。

以下是PKI的一些关键概念:

        PKI服务:PKI是一个管理和维护数字证书的框架,用于管理公钥和数字证书。PKI服务包括颁发、更新、吊销和验证数字证书的过程。

        数字证书:PKI颁发数字证书,这是一种数字文档,用于证明一个实体的身份和与其关联的公钥。数字证书包含有关公钥所有者的信息以及证书颁发者(CA,Certificate Authority)的数字签名,以确保证书的真实性。

        X.509格式:数字证书通常采用X.509格式,这是一种国际标准化的证书格式,其中包含了证书持有者的信息、公钥以及数字签名等信息。

        信任CA:要有效地使用PKI,必须信任证书颁发者或CA。这意味着用户需要在其系统中预先配置信任的CA,以确保他们的证书是可信的。

        使用PKI服务和数字证书,用户可以验证其他实体的身份,并确保与其通信的公钥的真实性。这有助于防止中间人攻击,因为攻击者无法伪造一个有效的数字证书,除非他们能够伪造CA的数字签名,这在安全性上非常困难。

        总之,PKI是用于建立信任和保护通信的重要工具。数字证书是PKI的关键组成部分,用于证明公钥的真实性和与实体的身份相关联。用户必须信任CA以确保PKI的有效性。

3.1.3 混合加密方法

        在实际应用中,通常会采用混合加密方法,结合了对称加密和非对称加密,以充分利用它们各自的优势。

3.1.3.1 对称加密用于数据传输

        对称加密算法通常更快,因此在加密和解密大量数据时效率更高。因此,通常会使用对称加密算法来加密和解密实际的数据流。这要求通信的双方事先共享一个密钥,以便进行加密和解密。

3.1.3.2 协商对称密钥

        在进行数据加密之前,通信双方(比如Alice和Bob)需要达成一致,以确定将用于对称加密的密钥值。这个协商过程需要安全的方法来确保第三方不能拦截或篡改密钥。

3.1.3.3 Diffie-Hellman密钥协商协议

        Diffie-Hellman协议是一种常用的密钥协商协议,它允许Alice和Bob在没有事先共享密钥的情况下协商出一个共享的对称密钥。这是通过使用各自的公钥和私钥以及协议中的数学运算来实现的。攻击者无法通过监听协商过程来获取共享密钥,因为这涉及到求解离散对数问题,这在当前的计算资源下是非常困难的。

3.1.3.4 混合加密

        一旦Alice和Bob协商出了共享的对称密钥,他们可以使用该密钥来加密和解密实际的数据流。这样,他们可以利用对称加密的速度和效率,同时也保持了安全性,因为共享密钥是通过安全的Diffie-Hellman协议协商的。

        总之,混合加密方法充分利用了对称加密和非对称加密的优势,以实现安全而高效的数据通信。Diffie-Hellman密钥协商协议用于安全地生成共享密钥,确保通信双方在没有事先共享密钥的情况下可以建立安全的通信通道。这种方法在保护数据安全和保密性方面非常有用。

3.2 TLS协议

3.2.1 背景

        IPv4(Internet Protocol Version 4)和TCP(Transmission Control Protocol)是互联网通信的关键协议,但它们本身并不提供安全性功能。

3.2.1.1 IPv4
3.2.1.1.1 不包含安全机制

        IPv4本身并没有内置任何安全性机制。它不提供对通信源或目的地的身份验证,这意味着攻击者可以伪造自己的IP地址(IP伪造)。因此,IPv4不提供对通信的真实性和源的身份验证的保证。

3.2.1.1.2 不提供数据隐私

        IPv4通信是明文的,没有加密保护,这意味着数据在传输过程中可能会被窃听或拦截。对于保护通信内容的隐私,需要使用其他安全协议,如IPsec或TLS/SSL。

3.2.1.2 TCP
3.2.1.2.1 可靠的传输

        TCP是一个可靠的面向连接的传输协议,它确保数据的可靠传输。它具有数据包重新传输机制,以处理在传输过程中丢失的数据包,以确保数据完整性。

3.2.1.2.2 序列号

        TCP使用序列号来确保数据包的有序传输和重组。这有助于保持数据的正确顺序,从而提供可靠的数据传输。

3.2.1.2.3 流量控制

        TCP还具有流量控制功能,以根据网络条件动态调整数据发送速率,以避免网络拥塞并提高性能。

        然而,正如提到的,TCP本身也不提供安全性。要在TCP/IP通信中添加安全性,需要使用其他安全协议,如TLS/SSL(用于加密数据传输)、IPsec(用于网络层安全)、以及其他身份验证和授权机制。这些安全协议和机制可以确保数据的机密性、完整性和身份验证,从而增强了互联网通信的安全性。

3.2.2 TLS的定义

        TLS(Transport Layer Security)是SSL(Secure Sockets Layer)的后继者,用于提供基于TCP/IP的应用层安全性。它在传输层与应用层之间添加了一个加密和安全性层,为应用程序提供了以下安全功能:

3.2.2.1 机密性

        TLS使用对称加密算法来加密通信数据,以确保数据在传输过程中是加密的,只有授权的受信任实体可以解密和查看数据。

3.2.2.2 身份验证

        TLS利用公钥基础设施(PKI)的数字证书来进行身份验证。服务器在通信开始时向客户端提供数字证书,客户端使用服务器的证书来验证其身份。这确保了客户端与正确的服务器建立连接。

3.2.2.3 完整性

        TLS使用消息摘要算法来验证传输数据的完整性,以检测数据是否在传输过程中被篡改。

3.2.2.4 密钥交换

        TLS使用非对称加密算法(如RSA或ECDH)来进行密钥协商,以安全地交换对称加密的会话密钥。这有助于确保安全的密钥交换,以保护通信的机密性。

3.2.2.5 TLS广泛用于各种应用程序协议

        TLS广泛用于各种应用程序协议,以提供安全性,包括:
        HTTPS(HTTP over TLS/SSL):用于安全的Web浏览器通信。
        LDAPS(LDAP over TLS/SSL):用于安全的LDAP目录服务通信。
        IMAPS(IMAP over TLS/SSL):用于安全的电子邮件检索通信。
        POP3S(POP3 over TLS/SSL):用于安全的电子邮件接收通信。
        DNS-over-TLS(DoT):用于安全的DNS查询。

        每个应用程序协议的TLS版本通常使用特定的端口号来标识,以确保安全连接。例如,HTTPS通常使用443/tcp端口,IMAPS使用993/tcp端口,DNS-over-TLS使用853/tcp端口等。

        总之,TLS是一种用于在TCP/IP通信中提供机密性、身份验证、完整性和密钥交换的加密和安全性协议,广泛用于保护各种应用程序通信。它有助于确保数据在传输过程中是安全的,并提供了一种可信的方式来验证通信的对端身份。

3.2.3 TLS的版本

        TLS(Transport Layer Security)最初由Netscape(与RSA Data Security合作)开发,后来由IETF(Internet Engineering Task Force)进行标准化。TLS经历了多个版本的演进,以反映密码学领域的进展,主要版本包括:

        SSL 2.0:这是TLS的前身,不建议使用,因为它存在许多严重的安全漏洞。

        SSL 3.0:SSL 3.0在SSL 2.0的基础上进行了改进,但后来也被认为不安全,因此不再推荐使用。

        TLS 1.0:TLS 1.0是第一个正式的TLS版本,它引入了许多安全性增强功能,并被广泛使用。

        TLS 1.1:TLS 1.1在TLS 1.0的基础上进行了一些改进,以增强安全性。

        TLS 1.2:TLS 1.2进一步增强了协议的安全性,并引入了一些新的密码学算法。

        TLS 1.3:TLS 1.3是最新的TLS版本,于2018年发布。它引入了许多改进,其中包括使用        

        Diffie-Hellman临时密钥交换来实现持久性机密性。这意味着即使未来的密码破解技术能够破解当前的密钥,以前的通信数据也将保持机密,因为TLS 1.3使用的密钥交换机制是临时的,不会暴露以前的通信。

        TLS 1.3还改进了性能和安全性,删除了不安全的密码学选项,并降低了通信的延迟。因此,TLS 1.3被广泛认为是目前最安全和最可靠的TLS版本,推荐用于保护网络通信。

3.2.4 TLS的子协议

        TLS(Transport Layer Security)协议包括多个子协议,其中两个关键的子协议是:

3.2.4.1 TLS Handshake Protocol(TLS握手协议)

        这是TLS通信的初始阶段,它用于建立安全通信的基础。在握手过程中,通信的双方(通常是客户端和服务器)进行以下操作:
        协商支持的加密算法和协议版本。
        交换随机数以用于后续的密钥生成。
        进行身份验证,通常涉及到服务器提供数字证书并验证客户端。
        协商会话密钥(Session Key),该密钥将用于后续的数据加密和解密。

3.2.4.2 TLS Record Protocol(TLS记录协议)

        一旦握手过程完成并且双方都拥有会话密钥,TLS记录协议负责实际的数据传输和安全性。
        数据记录(例如,HTTP请求或响应)在此阶段被分段、加密并封装,以便在传输过程中保持机密性和完整性。
        这个协议还负责数据的解密和验证,以确保数据在接收端被正确还原和验证。

        总之,TLS协议包括握手协议和记录协议两个主要子协议。握手协议用于在通信开始时建立安全连接,协商参数并进行身份验证。记录协议用于实际的数据传输,包括分段、加密、解密和验证等操作,以确保通信的机密性和完整性。这两个协议一起提供了TLS安全通信所需的关键功能。

3.2.4 认证模式和协商过程

        在TLS(Transport Layer Security)中,有不同的认证模式和协商过程,这些模式和过程用于确保通信的安全性和身份验证。

3.2.4.1 认证模式

        服务器认证:在此模式下,服务器使用X.509数字证书进行身份验证,以确保客户端正在连接到正确的服务器。客户端可以选择是否要验证服务器的身份,但通常建议进行验证,以确保安全性。

        双向认证:在此模式下,服务器和客户端都使用X.509数字证书进行身份验证。这意味着服务器不仅验证客户端,而且客户端也验证服务器。这种双向认证确保了通信的双方都是合法的。

3.2.4.2 SSL协商

        在TLS握手过程中,客户端和服务器会协商一些关键参数,以确定如何保护通信。这些参数包括:
        使用的加密算法(对称加密、非对称加密等)。
        密钥长度。
        使用的哈希算法。
        是否启用双向认证。
        支持的TLS版本。

        这个协商过程确保客户端和服务器都选择了最适合它们的安全配置,以确保通信的机密性、完整性和身份验证。

3.2.5 TLS握手协议的简化过程

        用于初始化通信并协商安全参数:

3.2.5.1 客户端发送支持的算法列表

        通信开始时,客户端向服务器发送一个包含其支持的加密算法、密钥交换算法和哈希算法的列表。

3.2.5.2 服务器选择算法

        服务器从客户端提供的算法列表中选择一个适合的加密、密钥交换和哈希算法,并将其通知客户端。

3.2.5.3 服务器发送证书

        服务器将其数字证书发送给客户端,该证书包含了服务器的公钥以及与之相关的数字签名,用于身份验证。

3.2.5.4 客户端验证服务器身份

        客户端使用服务器的数字证书验证服务器的身份。这包括检查证书的有效性和合法性,并确保它是由受信任的证书颁发机构(CA)签发的。

3.2.5.5 客户端生成会话密钥

        一旦服务器的身份被验证,客户端生成一个用于后续通信的会话密钥。这可以通过以下方式之一实现:
        使用服务器的公钥加密一个随机生成的会话密钥。
        使用Diffie-Hellman密钥交换协议,双方协商生成会话密钥。这种方式可以提供前向保密性(Forward Secrecy),即使以后的通信也不会受到当前密钥的威胁。

        一旦这个握手过程完成,通信双方都拥有相同的会话密钥,用于后续的加密和解密通信数据。这确保了通信的安全性,包括机密性、完整性和身份验证。握手过程还提供了持久性保密性,因为即使在未来,如果服务器的长期私钥被泄露,以前的通信数据也仍然是安全的,因为它们是使用会话密钥加密的。

3.3 IPsec协议

3.3.1 IPv6协议

        IPv6(Internet Protocol version 6)是互联网协议的下一代,于20世纪90年代中期开始开发,旨在满足不断增长的互联设备数量和提高网络安全性的需求。

        IPv6引入了许多改进和新特性,以应对以下需求:

3.3.1.1 更大的地址空间

        IPv6采用128位的地址长度,相比IPv4的32位地址长度,提供了远远更大的地址空间。这允许IPv6支持更多的设备和节点,以满足不断增长的互联网需求,同时减少了IPv4中的地址枯竭问题。

3.3.1.2 提高安全性

        IPv6旨在提高网络通信的安全性。它引入了一些安全功能,如IPsec(Internet Protocol Security),以保护通信的机密性、完整性和身份验证。IPsec在IPv6中更加内置,可以更轻松地为网络通信添加安全性。

3.3.1.3 保密性

        IPv6支持将通信内容保密化,以防止窃听。这意味着IPv6可以用于加密通信,以确保数据在传输过程中是加密的。

3.3.1.4 身份验证和完整性

        IPv6具有内置的安全机制,可用于验证通信的源和目的地,并确保通信数据的完整性。这有助于防止未经授权的访问和数据篡改。

        总之,IPv6是为满足互联网增长和提高网络安全性需求而设计的下一代互联网协议。它提供了更大的地址空间、内置的安全性功能以及支持保密性和身份验证的功能。IPv6的广泛采用有助于推动互联网的持续发展和改进。

3.3.2 IPsec协议

        IPsec(Internet Protocol Security)是一套网络安全协议,最初是为IPv6设计的,后来也扩展支持IPv4。它的目标是提供网络通信的安全性,包括身份验证、数据机密性和数据完整性,同时不需要修改整个互联网环境。

        以下是IPsec的一些关键特点和组件:

3.3.2.1 认证和加密

        IPsec允许对通信进行身份验证,确保通信的两端是合法的。它还提供数据的机密性和完整性,以确保数据在传输过程中不会被篡改或窃听。

3.3.2.2 操作在OSI模型的第三层

        IPsec工作在OSI模型的第三层,即网络层。它通过在IP数据包中添加特定的IPsec头部(例如,认证头(AH)和封装安全有效载荷头部(ESP))来实现安全性。

3.3.2.3 认证头(AH)

        AH提供身份验证和数据完整性保护。它包括计算和验证数据包的摘要,并验证数据包的发送者身份,以确保数据包未被篡改。

3.3.2.4 封装安全有效载荷头部(ESP)

        ESP提供了认证、加密和数据完整性。它可以用于保护通信的机密性,以确保数据在传输过程中是加密的,同时还可以验证数据的完整性和发送者的身份。

3.3.2.5 不仅限于IPv6

        尽管最初设计为IPv6的一部分,IPsec已扩展到支持IPv4,并且在IPv4和IPv6网络中都得到广泛应用。

        IPsec的部署可以增强网络通信的安全性,特别是在需要跨不安全网络或互联网进行敏感数据传输时。它允许网络管理员配置策略来指定哪些通信需要加密、身份验证和数据完整性保护,从而满足不同的安全需求。

3.3.3 IPsec的子协议

        IPSec(Internet Protocol Security)依赖于多个不同的子协议来提供安全性,其中包括:

3.3.3.1 认证头协议(Authentication Header,AH)

        AH的主要目标是确保通信的两端的身份验证,以便确定它们是合法的。
        AH不提供数据的机密性,这意味着通信内容未加密,但它可以用于防御一些攻击,如IP地址欺骗(IP spoofing)和重放攻击(replay)。

3.3.3.2 封装安全有效载荷协议(Encapsulating Security Payload,ESP)

        ESP的主要目标是提供数据的机密性。它可以用于加密通信的内容,以确保数据在传输过程中是加密的。
        ESP可以在两种模式下使用:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。在传输模式下,只有数据部分被加密,而在隧道模式下,整个IP数据包(包括头部)被加密。
        ESP还可以提供数据完整性,以防止数据在传输过程中被篡改。

3.3.3.3 Internet密钥交换协议(Internet Key Exchange,IKE)

        IKE用于建立和管理IPSec连接所需的安全参数,包括密钥协商和身份验证。
        它不用于传输用户数据,而是用于管理安全关联,包括主要的安全关联(用于建立初始通信)和辅助的安全关联(用于建立和管理额外的连接)。
        IKE协助在通信双方之间建立安全的隧道,以确保数据在传输过程中受到保护。

        这些子协议可以单独使用,也可以组合在一起以满足不同的安全需求。例如,您可以选择使用AH来进行身份验证,同时使用ESP来提供数据的机密性和完整性。总之,IPSec的灵活性和可配置性使其成为网络通信的强大安全工具。

3.3.4 保护通信的两种模式

        IPSec支持两种不同的模式来保护通信:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。

3.3.4.1 传输模式

        传输模式不修改原始IP头部,而是插入在IP头部和传输层协议(如TCP、UDP)之间。
        在这个模式下,只有数据部分(即传输层协议的数据负载)被加密和保护,IP头部仍然保持原样。
        这个模式通常用于端到端的通信,其中通信的两端可以是主机或网关(路由器)。

3.3.4.2 隧道模式

        隧道模式完全替换了原始IP头部,并将整个IP数据包(包括原始IP头部)封装在一个新的IP包中。
        新的IP包具有不同的源和目的地,通常源地址是IPSec网关的外部地址(例如,防火墙或VPN设备的外部地址),目的地址是IPSec网关的内部地址(例如,受保护网络内部的主机或网关)。
        隧道模式通常用于连接不同网络或子网之间的通信,其中整个通信流量都被加密和保护。

        传输模式用于端到端的通信,只保护传输层以上的数据,而隧道模式用于连接不同网络或子网之间的通信,保护整个IP数据包。这两种模式在不同的网络和安全配置中都有其用途。

3.3.5 SA安全关联

        安全关联(Security Association,SA)是一种用于在IPSec中建立和维护安全性的关键概念。从物理角度来看,它可以看作是存储在数据库中的记录,用于识别应用于哪种类型的网络流量(数据包)。

每个安全关联包括以下元素,以确定它适用于哪种流量:

        源地址和目标地址:这些是通信的源和目标的IP地址,指定了安全关联适用于哪些通信对。

        标准化名称:通常以DNS名称的形式表示,这允许关联到特定的用户、主机或域名。

        传输协议:指定了安全关联适用于哪种传输层协议,例如TCP或UDP。

        源和目标端口:这些是传输层协议中的源端口和目标端口,用于确定关联适用于哪些应用程序或服务。

安全关联还包括关于如何处理相关流量的信息:

        认证和机密性参数:这包括用于身份验证和数据加密的算法、密钥、初始化向量等参数,用于确保通信的安全性。

        IPSec头部类型:指定了安全关联适用的IPSec头部类型,可以是传输模式或隧道模式。

        关联的生存期:指定了关联的有效期,即关联将在多长时间后过期。

        反重放数据和选项:用于防止重放攻击的参数,以及用于处理数据包分片的选项。

        这些安全关联信息存储在一个数据库中,用于建立和管理IPSec连接,以确保通信的安全性。当数据包到达时,系统会根据数据包的特性匹配适当的安全关联,并根据关联的参数来处理数据包,包括身份验证、加密和完整性验证。安全关联是IPSec中实现网络安全的关键组件之一。

3.4 最新加入:QUIC

3.4.1 QUIC的基本知识

        QUIC(Quick UDP Internet Connections)是一种新型的传输协议,最初由Google于2013年发明,旨在克服HTTP/2的一些限制。它已经集成到谷歌Chrome浏览器中,并于最近被IETF(Internet Engineering Task Force)标准化为RFC 9000(于2021年5月发布)。

3.4.2 QUIC的一些关键特点

        综合性:QUIC将传输层安全性(TLS 1.3)和TCP的可靠性功能合并到一个协议中。这使得它既能提供数据的加密和身份验证,又能保证数据的可靠传输,而无需像HTTP/2一样执行多次握手。

        基于UDP:QUIC运行在UDP(User Datagram Protocol)之上,而不是TCP。这意味着它可以通过UDP的快速连接特性提供更低的延迟,并且可以更好地适应网络变化。

        减少握手次数:QUIC的设计目标之一是减少握手次数,从而降低延迟。QUIC通过减少握手次数来加速连接建立,并且可以在连接的生命周期内保持多个流。

        HTTP/3是建立在QUIC之上的新版本HTTP协议。它代表了HTTP在QUIC协议下的演进,旨在提供更快的加载速度和更好的性能。根据CloudFlare的数据,HTTP/3目前占据了大约12%的网络流量。

        总之,QUIC是一个具有潜力的网络传输协议,它综合了安全性和性能,并在各种网络条件下提供了更好的连接速度和可靠性。它的广泛采用可以改善网络通信的效率和安全性。

3.4.2 HTTP/2

        HTTP/2是一种网络通信协议,相对于其前身HTTP/1.1带来了重大改进。然而,它仍存在一些限制,这些限制导致了QUIC协议的诞生,以克服这些问题:

        复杂的协议栈:在HTTP/2中,协议栈包括多个层次,包括HTTP位于TLS之上(用于身份验证和加密),TLS位于TCP之上(用于连接的可靠性、调度和拥塞控制),TCP位于IP之上。每个层次都需要进行握手过程,这会增加额外的延迟,并且对于每个新连接都需要进行这些握手。

        高延迟:由于TLS和TCP都需要连续的握手过程,HTTP/2可能会导致较高的延迟,特别是在建立新连接时。延迟通常以“往返时间”(RTT)来衡量,而对于建立HTTP/2连接可能需要多次RTT,这可能会减慢实时通信。

        多路复用限制:尽管HTTP/2引入了多路复用功能,允许在同一连接上处理多个请求和响应,但TCP仍然存在有效支持多路复用的限制。这可能导致瓶颈和多个同时请求时的延迟。

        QUIC的设计目的是通过将TLS 1.3的安全功能和TCP的可靠性合并到一个协议中来解决这些问题。它减少了所需的握手次数,并通过持久性连接等功能降低了延迟。此外,QUIC能够更有效地处理多个连接的多路复用,从而提高了整体网络通信的性能。

3.4.3 关键思想

        QUIC(Quick UDP Internet Connections)协议的概念由Google提出,旨在解决传统HTTP/2协议存在的一些问题,并改进网络通信的性能和安全性。以下是QUIC协议的一些关键思想:

3.4.3.1 降低延迟

        QUIC的首要目标是减少通信的延迟。为了实现这一点,QUIC将传统TCP握手的功能提升到更高层,更接近应用程序。同时,QUIC在同一握手过程中交换了用于安全性的关键信息(例如TLS密钥)和用于建立可靠连接的信息(例如序列号等)。此外,QUIC运行在UDP之上,这有助于减少连接建立的时间。

3.4.3.2 连接迁移

        QUIC引入了连接标识符的概念,允许维护“逻辑连接”。这意味着当客户端从一个网络切换到另一个网络(例如从Wi-Fi切换到4G)时,可以避免重新执行整个握手过程,因为客户端和服务器已经“了解”彼此。

3.4.3.3 加密传输层信息

        在传统的TLS协议上,位于TCP之上,传输层信息(如端口号、序列号等)是明文传输的。而在QUIC中,传输层信息被交给了加密的协议,并以加密方式传输。这带来的好处是,减少了在监听下的信息可被利用的可能性,但也带来了一些挑战,因为网络操作员通常依赖这些信息来监视和调试网络连接。

        总之,QUIC协议的主要目标是提高网络通信的性能和安全性。它通过减少延迟、支持连接迁移和加密传输层信息等功能来实现这些目标。这使得QUIC成为了现代网络通信的有力候选,并在一些大型互联网公司的产品中得到了广泛的采用。

3.5 虚拟专用网络

        虚拟专用网络(VPN)是一种网络技术,允许两个远程网络在安全的情况下进行通信,即使连接建立在不信任的网络上。VPN的典型示例是具有多个远程站点的组织,它们通过互联网进行通信。

        VPN通过使用加密和完整性保护机制来实现以下目标:

3.5.1 加密数据

        VPN使用加密算法来保护在两个站点之间传输的数据。这意味着即使数据在互联网上传输,也只有授权的接收方能够解密和阅读数据。这提供了保密性,确保敏感信息不会在传输过程中被窃听或泄露。

3.5.2 应用完整性模式

        VPN还应用完整性检查,以确保传输的数据在传输过程中没有被篡改或损坏。这样,接收方可以确信接收到的数据与发送方发送的数据完全一致,没有被篡改。

3.5.3 身份认证

        VPN还通过身份验证机制来验证通信的源和目标。这确保了只有授权的用户或设备可以访问VPN连接,并且不会受到未经授权的访问。

        总之,VPN创建了一个虚拟隧道,该隧道通过加密、完整性检查和身份验证保护通信。这使得两个远程网络能够在不信任的网络上安全地交换数据,确保数据的保密性、完整性和安全性。VPN在许多情况下都是组织之间或远程工作人员与公司内部网络之间安全通信的重要工具。

你可能感兴趣的:(计算机网络,web安全,计算机网络,安全)