密码学及其应用 —— 密码学概述

2024-06-17 10:44
文章标签 应用 概述 密码学

本文主要是介绍密码学及其应用 —— 密码学概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 安全属性和机制

1.1 基本概念

1.1.1 三个核心概念

        在讨论信息安全时,我们通常会谈到三个核心概念:保密性、完整性和可用性。这三个概念共同构成了信息安全的基础

        保密性:指的是确保信息只能被授权的人员访问。这就意味着信息在存储、传输或处理的任何环节,都不会被未授权的人看到或窃取。保护措施包括密码保护、加密和访问控制列表等

        完整性:保证信息在创建、存储、传输和处理的过程中保持准确、完整没有被未经授权的修改。这意味着信息的任何更改都必须是经过授权的且更改行为本身要被跟踪和记录。为此,常用的技术包括数字签名和校验和等。

        可用性:确保授权用户在需要时能够访问信息和资源。这包括防止服务中断攻击(如分布式拒绝服务(DDoS)攻击)、硬件故障、软件故障或自然灾害等导致的信息无法访问。为了保证可用性,常见的做法包括实施备份、冗余系统和灾难恢复计划等。

1.1.2 信息安全的目标与安全性(Safety)的关注

        信息安全的目标是保护信息不受有意的威胁,如恶意软件、未授权访问、身份盗用等。在这一框架下,我们保护的不仅仅是数字化的信息内容和服务,也包括与信息系统相关的物理设施和设备。

        另一方面,安全性(Safety)关注的是防止因意外或非故意的系统故障而对人员安全或物理资产造成的伤害这包括保护人的安全以及保护有形资产不受损害。安全性的措施旨在防止故障发生,比如通过设计冗余系统、实施应急响应计划等。

        简而言之,信息安全强调的是信息的保密性、完整性和可用性,主要目标是保护信息免受有意的攻击和威胁。而安全性更多关注的是防止意外事故对人员和物理资产造成伤害。两者都是维护信息技术环境健康、安全的重要组成部分。

1.1.3 信息系统安全(SSI)的两个主要领域

         安全性对于信息系统(SI)至关重要,以确保组织的信息和资源得到妥善保护。信息系统(SI)是指一个组织内部用于管理、存储、处理、传输和传播信息的所有实体的集合。这些实体包括人员、数据、流程、硬件和软件等

1.1.3.1 计算机和网络安全

        这个领域着重于保护计算机系统本身及其网络连接不受到未授权访问和其他形式的数字攻击。它涵盖了从基础的防病毒保护、防火墙、入侵检测系统到复杂的安全信息和事件管理(SIEM)系统的广泛技术。

        计算机和网络安全的目的是确保信息的保密性、完整性和可用性,防止恶意软件攻击、数据泄露、服务中断和其他网络安全威胁。

1.1.3.2 物理安全

        涉及保护组织的物理设施,如办公室、建筑物和数据中心,防止未授权访问、盗窃、破坏和自然灾害等风险。

        物理安全措施可能包括锁门、安全警卫、监控摄像头、入侵检测系统和环境控制(比如防火和防洪系统)。确保物理安全是维护整体信息安全的基础,因为物理入侵或损害可以绕过最先进的网络安全防护措施。

1.1.4 信息系统安全的重要性

        信息系统安全(SSI)对于保护组织的信息资产至关重要,无论是针对恶意攻击还是自然灾害。一个全面的安全策略必须同时考虑到计算机和网络安全以及物理安全,从而确保组织能够有效地保护其信息系统免受各种威胁。

        随着技术的发展和网络攻击手段的日益复杂,SSI的重要性也在不断增加,它要求组织不断更新和强化其安全措施以应对新兴的安全挑战。

1.2 安全特性

        计算机安全(Cybersecurity)的定义涉及三个主要方面,目的是保护信息不受威胁和攻击

1.2.1 保密性(Confidentiality)

        信息的保密性是指确保信息不被未经授权的人访问。为了保护信息的保密性,系统必须实施相应的机制来防止未授权人员读取敏感信息。这些机制包括数据加密、用户认证和访问控制等。

        保密性是信息安全领域中极为关键的一个方面,它指的是防止信息被未经授权的人员访问保密性的目标是确保信息仅对授权的个人或系统可用

1.2.1.1 访问类型

        在保密性的背景下,访问类型可以包括阅读、打印,甚至是知晓某个信息资产的存在。这意味着需要采取措施来保护信息不仅在内容上不被未授权人员获取,就连信息的存在也要做到有选择性地透露。

1.2.1.2 保密性的例子

        文本的保密性:确保特定的文本信息不被未授权的人阅读。

        图片的保密性:保护图片不被未授权查看。

        网络中信息流的保密性:保护数据传输不被非法截获或窥探

1.2.1.3 挑战

        密码分析:攻击者尝试破解加密算法获取信息。

        密码破解:通过各种手段尝试破解密码获得对信息的访问权限

1.2.1.4 保密性与隐私性的区别

        保密性(Secrecy):通常与组织拥有的信息有关,强调的是信息不被未授权访问。

        隐私性(Privacy):更多关注个人信息的保护,确保个人数据不被未经授权的第三方获取或滥用。

        保密性是信息安全的基本属性之一,被广泛理解和实施。通过采取适当的安全措施,如加密、访问控制和身份验证等,可以有效地保护信息免受未授权访问。区分组织信息和个人信息的保护也是实施保密性策略时必须考虑的重要方面。

1.2.2 完整性(Integrity)

        信息的完整性是指保证信息在存储、传输和处理过程中不被非法或错误地修改。为了维护信息的完整性,系统需要采取措施防止信息被未经授权地改动,并确保所有合法的修改都能被正确执行。这些措施可能包括使用数字签名、哈希算法和访问控制策略等

        在信息安全领域,完整性指的是防止信息被未授权修改的能力。这包括信息的创建、修改、删除或销毁等各种形式的访问控制。维护信息完整性的目的是确保数据在整个生命周期内都保持准确、完整。

1.2.2.1 访问类型

        涉及到信息完整性的访问类型包括写入、状态改变、销毁/删除和创建等。这意味着系统需要对这些操作进行严格控制,以确保只有授权的操作才能被执行。

1.2.2.2 完整性的例子

        对话的完整性:确保通信过程中的信息没有被修改。

        程序的完整性:保证软件代码没有被篡改,如无恶意代码(如病毒或特洛伊马)的插入。

        视频序列的操作:确保视频内容没有被非法篡改。

1.2.2.3 攻击方式

        非法写入:未授权地修改信息。

        文件篡改:修改文档的内容以达到欺骗的目的。

        病毒或特洛伊马的添加:在程序中插入恶意代码,破坏系统的正常功能。

        视频操作:通过编辑手段改变视频内容,可能用于误导观众。

1.2.2.4 完整性的多重含义

        未修改的完整性:指在通信过程中,信息既不受到故意操作的影响,也不受到传输错误的影响。这涉及到检测和纠正错误,确保信息的准确传输。

        仅以可接受方式修改:如数据库中关系的完整性,确保数据修改符合业务规则和逻辑约束。

        仅由授权实体修改:确保只有授权的人员或系统进程才能对信息进行修改

        总体来说,完整性是信息安全的一个核心组成部分,它确保信息在存储、处理和传输过程中保持正确和未被篡改。

        通过实施适当的安全措施,如访问控制、加密和完整性校验等,可以有效地保护信息免受未授权修改的威胁。

1.2.3 可用性(Availability)

        信息的可用性指的是确保授权用户能够在需要时访问信息或服务。

        对抗拒绝服务攻击(Denial of Service, DoS)是保障信息可用性的一个重要方面,因为这类攻击会试图使信息或服务对合法用户不可用。为了保障可用性,可能需要采取的措施包括实施网络安全防护、数据备份和灾难恢复计划等。

        可用性是信息安全的另一个核心方面,它关注于防止信息或资源被未授权地扣留或干扰,确保授权用户能够在需要时访问这些资源。

1.2.3.1 访问保障

        可用性保证授权的个体可以访问他们需要的资源。这包括信息、网络服务、硬件设备等的访问。

1.2.3.2 可用性的例子

        服务器的可用性:确保服务器能够持续对用户提供服务,不受到中断或过度延迟的影响。

        网络的可用性:保证网络能够承载通信流量,不受到攻击或故障的影响,从而保障信息的流通。

1.2.3.3 挑战

        数据保留:非法持有或故意延迟释放数据,妨碍其正常使用。

        拒绝服务攻击(DoS):通过大量无意义的请求攻击服务器或网络,使正常的请求无法得到处理。

        网络饱和:通过发送大量数据包使网络资源达到饱和状态,阻塞正常的网络流量。

        无线通信的干扰:通过电磁干扰等方式扰乱无线通信信号。

1.2.3.4 可用性的多维性

        可用性不仅仅是关于资源的物理存在,还包括资源的可操作性和服务的可达性。

        响应需求:资源和服务能够及时响应用户的需求。

        有限的等待时间:确保服务处理在合理的时间内完成。

        资源分配的公平性:保证所有用户对资源的公平访问,防止资源被少数用户或进程独占。

1.2.3.5 在安全领域的特殊关注

        可用性特别指向防止拒绝服务攻击,如洪水攻击(Flooding),这是一种通过向目标发送过量的数据包以使其服务不可用的攻击方法。

        可用性是信息安全领域当前理解和处理相对较弱的属性,尽管它对于确保信息系统的连续运行至关重要。通过实施适当的安全措施,如冗余系统、负载均衡、及时的备份和恢复策略等,可以显著提高系统的可用性,确保即使在面对攻击或故障时,系统仍能继续提供服务。

        简而言之,计算机安全的目标是保护信息系统中的数据在任何时间都能保持保密、完整和可用,防止数据泄露、被篡改或服务中断,从而确保信息系统的安全运行和数据的安全存储、传输。

1.2.4 CIA三元组

        在信息安全领域,保密性(Confidentiality)、完整性(Integrity)和可用性(Availability)通常被称为 CIA三元组 ,它们是构成信息安全核心的三个基本属性。这三个属性之间存在着密切的相互依赖关系,同时也可能出现某种程度的相互排斥。

1.2.4.1 保密性与可用性

        保密性要求限制信息的访问,确保只有授权用户才能访问特定的信息。

        可用性则强调信息和资源对授权用户的可访问性。

        在某些情况下,为了加强保密性,可能会采取严格的访问控制措施,如复杂的认证程序,这可能会间接影响到资源的可用性,因为过度的安全措施可能使得访问变得更加困难,从而降低了用户的访问效率。

1.2.4.2 完整性与保密性

        完整性的维护是保密性的一种先决条件。如果信息在未经授权的情况下被修改(包括恶意修改操作系统或访问控制表),那么信息的保密性也就无从谈起。

        例如,攻击者可能通过修改操作系统或访问控制列表来绕过保密性控制,获得对敏感信息的访问权限。在这种情况下,没有强大的完整性保护措施,保密性控制就可能被轻易绕过。

1.2.4.3 可能的矛盾

        在设计和实施安全策略时,可能会遇到这样的情况:加强一项安全属性会对另一项产生不利影响。例如,过分强调保密性可能会限制信息的可用性;而在某些情况下,确保信息的完整性又可能需要对其进行加密,这又回到了增强保密性的需求。

1.2.4.4 平衡三者的关键

        实现保密性、完整性和可用性之间的平衡,要求综合考虑各种安全措施的影响,以确保在不牺牲任何一方的前提下,实现整个系统的安全性。这可能涉及到安全策略的不断调整和优化,以及对现有安全控制措施的定期评估,确保它们既能满足保护需求,又不会对系统的正常运行造成不必要的阻碍。

        在信息安全管理中,理解并妥善处理这些属性之间的相互依赖和潜在矛盾,是确保信息系统既安全又高效运行的关键。

1.3 安全机制

1.3.1 安全机制的定义

        安全机制是指实现通过硬件或软件来执行特定安全功能的逻辑、算法或协议。这些机制旨在确保系统不会进入未授权的状态,并可以完全或部分地确保保密性、完整性和可用性这三个安全属性。

1.3.2 重要性

        在安全体系中,我们不应将安全的目标(即保密性、完整性和可用性)与为达到这些目标所采用的机制混为一谈。安全机制是实现安全目标的手段,而非目标本身

1.3.3 安全机制的例子

        一次性密码:使用一次即作废的密码,可以有效防止重放攻击。

        生物识别技术:利用个体的生物特征(如指纹、虹膜、面部特征)进行身份验证,提供了一种高度安全的认证方式。

        挑战-响应协议:通过提出挑战(challenge)并要求回应(response)的方式来验证实体的身份,这种方式依赖于事先共享的秘密或某些可验证的信息。

1.3.4 安全机制的安全性

        安全机制本身也必须是安全的。这意味着设计和实现这些机制时,需要确保它们能够抵御各种攻击,不能成为系统安全的薄弱环节。例如,生物识别系统需要防止被伪造生物特征所欺骗,一次性密码系统需要确保密码不可预测,挑战-响应协议需要防止重放攻击和中间人攻击等。

        简而言之,安全机制是达成安全保密性、完整性和可用性目标的关键手段,它们需要被设计和实施得既有效又安全,以确保整个信息系统的安全性。

1.3.5 设计安全机制的原则

        设计安全机制时需要考虑多个原则,以确保机制既有效又能满足特定的安全需求。以下是设计安全机制时应考虑的一些关键原则:

1.3.5.1 控制的焦点:数据、操作还是用户?

        数据控制:涉及对数据本身的保护,如加密和数据完整性验证。

        操作控制:涉及对系统操作的限制,比如对文件的读写操作进行控制。

        用户控制:侧重于用户的身份验证和授权,确保只有合法用户可以访问系统资源。

1.3.5.2 系统中的安全机制位置

        安全机制可以部署在不同的系统层级,如应用层、操作系统层或网络层。选择正确的层级对于保护目标资源至关重要。

1.3.5.3 复杂性与保障之间的平衡

        设计时需要在安全机制的复杂性和提供的安全保障之间找到平衡。过于复杂的机制可能导致实施困难和用户不便,而简单的机制可能无法提供足够的安全保障。

1.3.5.4 控制的集中与分散

        集中式控制:可能形成单点故障,影响系统的可用性和可靠性。

        分散式控制:可以提高系统的鲁棒性,但需要确保各个部分的安全策略一致性和同步性。

1.3.5.5 防止通过更低层级绕过安全机制

        应该考虑如何防止攻击者通过直接访问物理层面(如直接访问内存)来绕过操作系统层面的安全控制。

        如果无法通过技术手段完全防止攻击,可能需要结合物理和组织层面的安全措施,如对数据中心的物理访问控制和员工的安全培训

1.3.5.6 额外的设计考虑

        性能影响:安全机制不应该对系统性能产生过大影响,以免影响用户体验。

        易用性与安全性的平衡:需要考虑安全机制对用户操作的影响,确保安全措施不会过度干扰正常使用。

        适应性和可扩展性:随着威胁环境的变化,安全机制应能灵活适应新的安全威胁,同时支持系统的扩展。

        通过综合考虑这些设计原则,可以创建出既强大又灵活的安全机制,有效保护信息系统免受多种威胁。

1.3.5 基本的安全机制

        在信息安全领域,有几种基本的安全机制是用来保护信息系统免受未授权访问和攻击的,包括授权、认证和加密。

1.3.5.1 授权(Authorization)

        授权是指控制用户对信息系统中信息的访问权限的过程。通过授权,系统决定某个用户是否有权执行特定的操作,如读取、写入或修改数据。授权通常基于用户的身份和其所属的角色或权限组。

        授权可以是显式的,也可以是隐式的,取决于所采用的访问控制模型,如基于角色的访问控制(RBAC)或基于属性的访问控制(ABAC)。

1.3.5.2 认证(Authentication)

        认证是确认用户身份的过程。它确保用户或系统是其声称的那个实体。认证通常是通过用户名和密码、数字证书、生物识别技术或多因素认证(MFA)等方法来实现的

        认证是信息安全的第一道防线,是授权之前必须完成的步骤。只有成功验证身份后,用户才能获得对系统资源的访问权限。

1.3.5.3 加密(Cryptography)

        加密是信息安全中用来保护数据免受未授权访问的一种技术。它通过将明文信息转换成不可读的密文来实现保密性。只有拥有正确密钥的用户才能解密信息并恢复成可读的格式

        加密分为两种主要类型:对称加密和非对称加密。对称加密使用相同的密钥进行加密和解密,而非对称加密使用一对密钥(公钥和私钥)进行加密和解密。

        加密不仅用于保护数据的保密性,还可以用于验证数据的完整性和来源,比如通过数字签名。

        这些基本的安全机制共同构成了保护信息系统安全的基础,通过有效的实施和管理,可以大大降低信息安全风险,保证数据的保密性、完整性和可用性。

1.3.6 安全技术的应用

1.3.6.1 密码分析(Cryptanalysis)

        密码分析是研究如何从加密信息中恢复出原始信息,即明文,而不一定拥有用于加密的密钥的技术。这是一种分析技术,用于破解加密算法,以找出其弱点和漏洞。

        密码分析的目的不仅仅是为了破解密码,它也帮助密码学家设计出更安全的加密方法。通过了解加密算法可能的薄弱环节,可以开发出更难被破解的加密技术。

1.3.6.2 密码学(Cryptology)

        密码学是一个包括密码学(Cryptography)和密码分析(Cryptanalysis)的广泛领域,涵盖了创建和分析加密算法的科学。密码学旨在通过加密保护数据的保密性和完整性,同时也研究如何破解这些加密算法。

        密码学不仅仅关注文本信息的加密和解密,它还包括数据的完整性验证、身份认证和数字签名等方面。

1.3.6.3 数字签名(Digital Signature)

        数字签名是一种电子签名,用于验证数字消息或文件的完整性和来源。数字签名基于非对称加密技术,利用发送者的私钥进行签名,任何人都可以用相应的公钥验证签名的有效性。

        数字签名保证了信息的 不可否认性(Non-repudiation),即发送者不能否认已发送过的消息;完整性,确保信息自签名后未被修改;以及 来源认证 ,证明信息确实来自声称的发送者。

        数字签名广泛应用于电子邮件、软件分发、电子文档签署以及其他需要严格验证身份和内容完整性的场景。

        通过结合使用这些高级安全机制,可以有效地增强信息系统的安全性,保护数据免受未授权访问、篡改和伪造。密码学在信息安全中扮演着核心角色,它不仅帮助保护信息的保密性和完整性,还确保了信息的真实性和发送者的身份验证。

1.4 攻击

1.4.1 攻击者

        在信息安全领域,攻击者的类型多样,不同类型的攻击者有着不同的目标、资源和动机。了解不同类型的攻击者对于设计有效的安全策略至关重要。以下是两种常见的攻击者类型:

1.4.1.1 政府或国家支持的攻击者

        这类攻击者通常针对其他国家的政府机构,无论是竞争对手还是盟友。他们的目的可能包括间谍活动、破坏或影响其他国家的政策和战略。

        国家级攻击者拥有显著的资源,包括高度专业化的人员和先进的技术。他们能够执行复杂的网络攻击和持续的间谍行动。

        动机:主要是为了维持或增强对其他国家的战略优势,包括获取敏感信息、技术窃取或干扰对方国家的基础设施和通信。

1.4.1.2 企业间的攻击者

        这类攻击者主要针对商业竞争对手,目的可能包括窃取对方的知识产权、获取竞争敏感信息或通过破坏行动降低对手的业务效率。

        企业间的攻击者同样可能拥有高度专业化的人员和技术资源。他们可能利用各种手段,包括网络入侵、社交工程和内部人员勾结等,来实现他们的目标

        动机:主要是为了获得财务利益,包括提高市场份额、削弱竞争对手的市场地位或直接盗取对方的创新技术和商业秘密。

1.4.1.3 网络犯罪分子(Cyber-criminal)

        定义:个人或团队,以个人利益为动机从事违法行为。这些违法行为包括盗窃财务信息、发起勒索软件攻击、身份盗窃等。

        能力水平:网络犯罪分子的技术能力有高低之分,从利用现成的攻击工具的低级黑客到能够开发复杂恶意软件和破解高级安全系统的高级黑客。

        动机:动机多样,包括财务利益、个人复仇、对特定组织或个人的报复、甚至仅仅是为了获得认可和展示技术能力。

1.4.1.4 网络恐怖主义者(Cyber-terrorist)

        定义:基于个人或集体信仰目的采取网络攻击行动的个人或团体。这些行动旨在通过对信息系统的攻击来传播恐慌、影响公共政策或施加政治压力。

        能力水平:随着时间的推移,网络恐怖主义者越来越专业和技术娴熟。他们通常非常坚定和有目的性,能够执行复杂和精心策划的攻击。

        动机:动机通常是出于政治、宗教或意识形态原因,目标是通过造成恐慌、破坏或干扰关键基础设施来达到其更广泛的目标。

        网络犯罪分子和网络恐怖主义者展示了信息安全领域中人类动机的复杂性和多样性。他们的行为和攻击手段可以从简单的破坏活动到高度复杂和针对性的攻击行动不等。对抗这些威胁的关键在于深入理解它们的动机、技术能力和潜在目标,从而能够设计出有效的防御措施来保护组织和个人的信息资产。

        对于任何一个组织来说,理解可能面临的威胁类型和相关攻击者的动机、能力是构建有效安全防御措施的基础。通过分析可能的攻击者类型和他们的攻击方式,组织可以更好地准备和设计防御策略,以保护自己的信息资产免受侵害。

1.4.2 风险分析矩阵

        这是一个风险分析矩阵,它用于评估不同类型的攻击者对不同目标的风险水平。

        矩阵左侧列出了攻击者类型及其动机,如政府(目的是获得战略优势)、私营企业(动机是获得财务收益)、网络犯罪分子(为了财务利益或复仇)和网络恐怖主义者(出于恐怖主义动机)。

        矩阵上方列出了可能的攻击目标或资产,这些目标分为公共部门和私人部门,包括分类信息、敏感信息、知识产权、非个人数据、关键基础设施(CI)、个人信息和系统。

        矩阵中的格子代表了不同攻击者对不同资产的风险等级,风险等级分为高、中、低三级,由颜色深浅表示,深色代表高风险,中等颜色代表中等风险,浅色代表低风险。

        例如,政府攻击者可能对公共部门的分类信息构成高风险,但对私营企业的非个人数据风险较低。而网络犯罪分子可能对私人部门的系统构成高风险,因为他们可能为了获得财务利益而攻击这些系统。

        通过这样的矩阵,组织可以更好地了解和准备应对各种潜在的安全威胁。

1.4.3 攻击类别

        在网络安全领域,攻击可以根据攻击者的行为和攻击方式被分为不同的类别。这些类别帮助我们理解不同的威胁类型以及如何采取适当的防护措施来保护信息系统和个人数据。

1.4.3.1 被动攻击        

        在这种攻击中,攻击者只是监听网络通信,目的是窃取信息或者对信息系统进行映射。这种攻击很难检测到,因为攻击者没有在网络上执行任何动作。为了保护信息不被窃取,可以采取的防护措施包括数据加密和使用安全的应用程序等。

1.4.3.2 主动攻击

        与被动攻击不同,攻击者在这种攻击中会直接对信息系统发起攻击,如发送恶意流量到网络上。这种攻击相对容易被检测到,因为攻击者的行为会在网络上留下痕迹。防护措施包括使用防火墙、入侵检测系统等。

1.4.3.3 近距离攻击

        在这种情况下,攻击者物理上靠近目标信息系统。由于攻击者的物理接近,他们可能会利用这一点来妥协信息系统。防护措施包括加强物理安全、技术监控等。

1.4.3.4 内部攻击

        这种攻击是由组织内部的可信用户执行的。这类用户通常拥有对组织网络的访问权限,并对组织有较好的了解。内部攻击者可以利用其权限和知识来执行有害的行为,例如数据泄露或系统破坏。防护措施包括加强人员安全措施和访问控制,确保即使是信任的用户也受到必要的限制,从而减少内部攻击的风险。

1.4.3.5 分布式攻击

        这类攻击通过在软件或硬件的设计阶段引入后门来执行。这些后门一旦激活,攻击者就可以利用它们在系统内部进行传播或控制。分布式攻击的复杂性在于,它们通常在系统设计或制造阶段就已经被植入,因此难以在产品完成后检测到。防护措施包括与开发人员建立信任关系,以及在系统运行期间进行完整性检查,以确保系统的安全性没有被内置的后门所破坏。

        通过理解这些攻击类别及其可能的防护措施,组织可以更好地准备应对潜在的安全威胁,保护自己的信息和系统安全。

2. 威胁与对策

2.1 威胁的分类

        对计算机系统威胁的分类,威胁影响系统的所有功能。

        图中展示了三个主要组成部分,及其相互之间的关系:

        Utilisateur(用户):以虚线框表示的人形图标代表用户,用户与系统交互,可能会直接或间接地面临或成为安全威胁的源头。

        Système(系统):以实线框表示的笔记本电脑图标代表计算机系统,这是用户直接使用的设备,可以执行各种任务和操作。

        Matériel(硬件):与“Système”相连的、以绿色虚线框表示的部分是硬件。硬件是系统的物理部件,如处理器、硬盘、内存等,也可能成为威胁的目标。

        Réseau(网络):以红色虚线框表示的另一台笔记本电脑代表网络连接的设备。网络是连接各个计算机系统使它们能够通信的媒介,也是安全威胁经常发生的地方。

        这个图表示,威胁可以来自系统的任何部分,不仅包括用户在内的人为因素,还有硬件和网络等技术方面。为了保护整个系统,需要对每个部分都实施相应的安全措施。

2.2 硬件上的威胁

2.2.1 威胁1 —— 利用与硬件的接近性

2.2.1.1 基本概念

        指的是攻击者可以直接物理接触到计算机系统的硬件和软件部分。在这种情况下,攻击者可能利用其物理接近性来执行各种攻击,这些攻击可以覆盖系统攻击表面的每一个方面,并可能获得系统中高度机密的信息。

        物理接近性:这种威胁涉及攻击者能够物理上接触到计算机系统的硬件。这种接触可能允许攻击者绕过网络安全措施,直接对硬件设备进行操作。

        机密信息访问:由于攻击者可以直接接触到硬件,他们可能会访问到储存在系统内部的敏感信息,如加密的秘密密钥、银行信息等。

        攻击者的身份:这样的攻击可能由负责配置或维护系统的供应商执行,或者可能在设备可以被公众自由访问的环境中进行供应商或维护人员由于其工作性质,可能不受到和普通用户一样的安全检查。

        执行攻击:攻击者可能通过在硬件上执行程序来影响硬件。这可能包括安装恶意软件、利用硬件漏洞、物理损坏或篡改设备等。

        因此,为了防御此类威胁,组织需要实施严格的物理安全措施,如限制对关键硬件的访问权限,监控重要区域,以及确保供应商和维护人员的信任和合法性。此外,也可以使用硬件安全模块(HSM)等技术,来提供针对物理攻击的保护。

2.2.1.2 被动攻击

        被动攻击是指攻击者未直接与系统交互或修改系统数据,而是通过收集系统无意间泄露的信息来实施的攻击。这类攻击通常侧重于对系统的侧信道分析,例如监控系统物理输出的信号来获取敏感信息。

2.2.1.2.1 被动攻击的主要类型及其实施原理

        监控电力消耗:攻击者可以通过测量设备的电力使用模式来推断正在进行的计算任务,因为不同的操作会导致不同的能量消耗模式。

        电磁场分析:每个电子设备在操作时都会产生电磁场,攻击者可能会捕捉这些电磁信号来分析正在处理的数据。

        声学分析:设备在操作过程中会产生声波。例如,键盘击键时的声音或硬盘工作时的声音都可以提供有关系统操作的信息。

        热成像:不同的处理器区域在工作时会产生不同的热量。攻击者可能使用热成像技术来监控处理器的热分布,从而推断出正在执行的操作。

2.2.1.2.2 被动攻击的复杂性在于

        在环境噪音大的情况下,例如在服务器房间,会有大量背景噪音和电磁干扰,这会使得收集和分析这些信号变得更加困难。

        空调等温度控制系统也可能会干扰热量的检测。

        为了有效进行被动攻击,攻击者需要能够尽可能接近目标系统。距离越近,收集到的信号就越清晰,分析也更加准确。因此,对付这种攻击的防护措施包括限制对敏感设备的物理访问,使用屏蔽技术来减少信号泄露,以及在设计时考虑减少侧信道信息泄露的措施。

2.2.1.3 侵入性攻击

        侵入性攻击是指攻击者对硬件执行有意的、主动的干预或修改,以破坏系统的完整性或窃取信息。这种攻击可能会对硬件产生永久性或临时性的损害,或者改变系统操作以获取敏感信息。

2.2.1.3.1 侵入性攻击的特点和实施原理包括

        系统完整性破坏:攻击者通过物理手段直接对硬件进行干预,使得系统的完整性无法得到保障。

        数据修改:攻击者可能会改变或破坏存储在目标系统内的数据

        物理手段:攻击者可能会使用特定的物理设备,如激光器,来对硬件,特别是内存组件,进行精确的干扰。

        故障注入:例如,使用激光器在内存芯片上引发错误,攻击者可以导致内存中存储的数据发生变化。

        侧信道攻击:通过重复访问内存的特定区域,攻击者可能会影响相邻位的值,并基于这些变化推断出原始信息,比如加密密钥。

        这种攻击方式通常要求攻击者拥有对目标硬件高度精确的控制能力,以及对系统工作原理的深入了解。防御措施可能包括使用错误检测和纠正技术,设计更加抵抗物理攻击的硬件,以及实施严格的物理安全措施,如限制对关键硬件的直接访问。此外,某些敏感设备可能被设计为在检测到异常操作时自动关闭,以避免数据泄露。

2.2.2 对策1——控制对硬件设备的物理访问

        针对各种攻击特别是侵入性攻击,控制对硬件设备的物理访问是一个重要的安全措施。这种控制措施的目的是确保只有确实需要访问这些设备的人员才能接触到它们,比如维修人员和系统管理员。这里是一些具体的措施:

        物理限制:设置物理障碍,如锁定的房间、安全门禁系统等,来控制谁可以进入存放敏感设备的区域。

        访问控制政策:确保只有授权的维护人员和管理员能够获得访问权限,并且这些权限应该是最小化的,即仅限于完成其任务所必需的

        远程攻击的复杂性:与物理接触相比,远程攻击通常更加复杂,攻击面限制于可以远程访问的服务。

        物理接触带来的风险:物理访问可以暴露设备的完整攻击面,包括可以通过近距离监控设备来进行的侧信道攻击等。

        通过限制物理访问,组织可以减少攻击者利用物理接近性进行的攻击机会,比如通过USB设备传播的恶意软件、直接破坏或篡改硬件设备、或是利用物理侧信道攻击获取敏感信息

        此外,物理安全措施还能够减少内部人员滥用其物理访问权限的风险 控制物理访问是一种有效的安全层,可以与网络安全措施(如防火墙和入侵检测系统)相结合,共同构成深度防御策略。

2.2.3 利用处理器的漏洞

        利用处理器漏洞是指利用中央处理器(CPU)设计或架构中存在的安全弱点。这些漏洞可能是基于硬件的,如处理器推测执行过程中发现的漏洞,也可能源自在计算堆栈中非常低层次上运行的固件或微码。

        最著名的例子包括2018年发现的Meltdown和Spectre漏洞。它们利用现代处理器的推测执行特性,可能允许攻击者读取本不打算给他们的敏感数据。由于这些漏洞源于处理器的基本工作原理,因此特别难以缓解

2.2.3.1 处理器的原理

        以下是对处理器功能的简要说明:

        指令获取(IF):处理器从系统内存中检索指令。

        指令解码(ID):解码检索到的指令,使其变成处理器能够理解的格式。

        执行(EX):处理器执行指令指定的操作。

        内存访问(MEM):处理器读取或写入系统内存。

        回写(WB):处理器将执行的指令结果写回到CPU寄存器或系统内存中。

        在这个过程的不同阶段都可能利用漏洞进行攻击。例如,在执行阶段,处理器会猜测分支路径以节省时间,这就是推测执行。如果猜测错误,处理器将丢弃推测的工作,但是通过侧信道攻击,一些被丢弃的数据可能仍然可以访问。

        为了防范此类威胁,需要采取硬件和软件的缓解措施硬件制造商可能会发布微码更新来修复或缓解漏洞,软件开发者可能会发布补丁,改变操作系统和应用程序与处理器的交互方式,以最大程度减少被利用的风险。

2.2.3.2 威胁2 ——预测处理器正在执行的操作类型

        预测处理器正在执行的操作类型是一种通过分析特定处理器指令执行所需时间来推断正在进行的操作的技术。这种方法通常在侧信道攻击中使用,特别是在攻击者试图获取加密操作的信息时。以下是针对不同类型的指令如何进行预测的几个例子:

2.2.3.2.1 乘法指令

        在密码学中经常使用乘法指令,因为它是很多加密算法的基础。如果攻击者可以测量处理器上执行加密计算的相同核心上的乘法操作所需的时间,他们可能会发现执行乘法操作的模式,从而推断出是否正在进行加密乘法,并可能获知加密算法的一部分信息。

2.2.3.2.2 浮点数指令

        处理浮点计算的指令在执行时可能需要改变计算单元的上下文,这可能导致执行时间延长。通过观察处理器执行这类指令的时间变化,攻击者可以推断出一个进程是否在使用浮点数指令,甚至可能推断出这些指令在程序执行流中的位置。

2.2.3.2.3 分支指令

        现代处理器通常具有分支预测器,以预测程序中的条件分支如何执行,从而提高执行效率。攻击者通过分析指令的执行时间,如果观察到预期的执行时间减少,可以推断出处理器预测的分支。这有助于攻击者了解程序的执行路径,甚至可能揭示程序的行为或处理的数据。

        这些攻击的实施可能非常复杂,通常需要攻击者能够运行其代码在同一物理处理器上,或者至少能够精确测量跨不同程序的执行时间。作为防御措施,操作系统和处理器可以实施各种隔离和随机化技术,如时间随机化,以及增强安全相关操作的隔离度,使这些测量更加困难或不准确。

2.2.3.3 威胁3 —— 测量处理器缓存访问时间来攻击

        这段文字讲述的是如何通过测量处理器缓存访问时间来执行侧信道攻击的方法。处理器缓存是一种高速存储机制,它存储近期访问的数据和指令,以便快速访问。攻击者可以利用缓存的工作原理来推断出系统中的数据访问模式。

2.2.3.3.1 缓存的使用原理

        如果所需的数据 不在缓存中,系统会从内存中加载这个数据,这个过程相对较慢。

        如果数据 已经存在于缓存中,则可以直接将这个数据提供给指令使用,访问速度快。

2.2.3.3.2 攻击原理

        通过测量访问特定缓存数据的时间,攻击者可以推断出该数据在两次执行之间是否被缓存。

        Evict+Time攻击:如果某个值被受害者加载到缓存中,然后攻击者尝试访问这个值,攻击者会发现访问时间较长,因为攻击者的访问导致受害者之前加载的值被替换出缓存。

        Probe+Time攻击:如果攻击者先加载一个值到缓存中,然后受害者没有进行加载操作,当攻击者再次访问这个值时,访问会很快,因为该值仍然在缓存中。

        通过这种方法,攻击者可以无需直接访问系统内部数据,仅通过分析缓存访问时间,就能够推断出系统内部的一些敏感操作,比如密钥的使用情况等。这种攻击难以被察觉,因为它不涉及到修改系统数据或行为,但可以泄露重要的安全信息。对策包括实施缓存访问的随机化处理,减少这类攻击的有效性。

2.2.3.4 对策3 —— 修改在执行关键操作时对缓存的使用方式

        为了应对通过测量处理器缓存访问时间来推断信息的攻击,可以采取一些措施来修改在执行关键操作时对缓存的使用方式。这些措施旨在提高内存访问和执行数据的独立性,从而增加攻击的难度和不确定性。具体的对策包括:

        访问内存和数据执行的独立性:这意味着在每次访问缓存中的一个值时,系统会同时访问缓存中所有值的集合。这样做的目的是使攻击者难以判断哪个特定的值被访问,因为每次访问看起来都一样。

        访问缓存中每个表的一个块:这种方法要求在访问缓存时,不仅仅是访问目标数据,而是访问与之相关的一个数据块。这样可以进一步混淆攻击者的观察,使其难以推断出正在进行的具体操作。

        每次访问缓存时排列内存元素:通过在每次访问时改变缓存中元素的位置,可以阻止攻击者通过观察特定数据访问模式来推断信息。

        临时禁用缓存写入:在执行敏感操作时,暂时禁用对缓存的写入,可以减少数据泄露的风险。这样,即使攻击者能够观察到缓存访问模式,也难以确定这些访问与关键数据的关系。

        需要注意的是,这些措施虽然可以增加攻击的复杂度和成本,但同时也可能显著影响系统的性能。因此,在实施这些对策时,需要在安全性和性能之间做出平衡考虑。这意味着在设计和配置系统时,要根据系统的具体需求和安全要求来合理选择和调整这些措施。

2.2.3.4 威胁4 —— Meltdown攻击

        Meltdown攻击是一种利用现代处理器执行机制的安全漏洞,特别是它们为了提高执行效率而进行的乱序执行功能。通过这种方式,处理器可以不按程序原本的顺序执行指令,以此来避免执行过程中的停顿(例如缓存未命中)影响整体的执行速度。然而,这种乱序执行的机制也为攻击者提供了突破口,允许他们绕过正常的权限检查,访问本应受到保护的内存区域。

        Meltdown攻击可以分为以下三个步骤:

        加载内存内容到寄存器:首先,处理器被诱导加载一个攻击者无权访问的内存区域(包含敏感信息)的内容到一个寄存器中。尽管正常情况下,攻击者无法直接访问这块内存,但由于乱序执行,这一步操作可以在权限检查之前执行。

        基于寄存器内容的缓存访问:接下来,执行一个基于上一步中寄存器里的敏感信息(即“秘密”)的操作,这个操作会访问缓存中的某一行。由于这个操作依赖于敏感信息,它实际上将这个信息“编码”到了缓存的状态中。

        通过缓存推断信息:最后,攻击者通过测量访问不同缓存行的时间,来判断哪些缓存行被访问过,进而推断出之前步骤中寄存器内的敏感信息。

        Meltdown攻击的危险之处在于,它允许攻击者绕过硬件级别的保护机制来访问操作系统的内核内存,进而可能访问到存储在内核内存中的敏感信息,如密码、密钥等。为了防御Meltdown攻击,操作系统和硬件厂商发布了一系列的补丁和更新,例如通过隔离用户空间和内核空间的内存来减少这类攻击的可能性。然而,这些补丁可能会对系统性能产生一定影响。

这篇关于密码学及其应用 —— 密码学概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069224

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝