中国海洋大学OUC-计算机系统工程导论-曲海鹏-第七次实行-计算机系统安全 ...

打印 上一主题 下一主题

主题 976|帖子 976|积分 2928

实行7. 计算机系统安全

已附加文件:


  • ​编辑 实行7.pdf (765.777 KB)
实行内容:


  • 本次实行内容在【实行7】文档中。每位学生需按时完成实行,并提交实行报告。
  • 本实行推荐在当地虚拟机中完成。
实行报告:


  • 实行报告需包罗实行过程、遇到的题目及解决方法、心得领会等部分。
  • 实行过程中应包含实行要求的详细实现(如详细的代码或指令)以及必要的证明实行结果的截图。
  • 图片克制拍屏、利用网图等不规范举动。笔墨内容克制抄袭抄袭。
提交规范:


  • 实行报告命名 “实行报告7-姓名-学号.pdf” ,格式一律为pdf格式,最多提交3次。
  • 实行报告的截止时间为下次实行课上课前一天的 24:00
《计算机系统工程导论》实行报告

实行名称
计算机系统安全
结果评定

姓名

学号

专业年级
22计算机科学与技术
1. 实行目的

1. 把握数据安全和防御的根本操作;
2. 把握缓冲区溢出攻击和防护的根本技术;
3. 理解如何利用安全技术,筹划实现更安全的系统。
2. 实行过程与习题

2.1 实行内容1 分组暗码算法

过程:

  • 产生32字节的密钥key:os.urandom(32)


  • 产生16字节的初始向量iv



  • 利用cryptography.hazmat.primitives.ciphers模块中的:
-Cipher, algorithms, modes



  • 产生暗码机c:Cipher( algorithms.AES(key), modes.CBC(iv))



  • 加密器e和解码器d:cipher.encryptor() cipher.decryptor()



  • 利用加密器e对消息:b"hello ouc cser!"进行加密
  • 用添补的方法弥补以上错误,重新生成e并得到新消息的ctxt,打印出来


  • -修改消息中1个字符,再次加密并打印密文,对比两次的密文



  • 利用解密器d对密文进行解密


  • 修改ctxt中的1个base64字符,重新解密

题目:
1、iv有什么用处?
IV(初始化向量)在加密范畴饰演着至关告急的角色,它为加密过程提供了必要的安全性和随机性。通过引入IV,可以有效防范诸如暗码本攻击等多种潜在的安全威胁,从而增强了暗码算法的整体安全性能。特别是在应用分组暗码和特定的加密模式,比方CBC(暗码块链接模式)时,对峙利用随机且唯一的IV是遵循良好加密实践的关键一环。

2、利用了什么加密算法?
AES(Advanced Encryption Standard)是一种高效的对称加密算法,它以128位固定巨细的数据块进行加密处理。AES支持三种不同长度的密钥:128位、192位和256位,以顺应不同级别的安全需求。这种算法因其卓越的安全性和性能,被广泛应用于敏感数据的保护,涵盖了数据库加密、文件加密以及网络数据传输等多个范畴。通过采用不同的加密模式,如CBC(Cipher Block Chaining),AES不但确保了数据的保密性,还保障了数据的完整性,使其成为当前加密范畴内广泛认可和采用的加密尺度之一。

3、利用了什么工作模式?这种工作模式有什么优缺点?
工作模式在加密算法中饰演着关键角色,它定义了算法处理数据的详细方法。CBC(Cipher Block Chaining,暗码块链接模式)便是此中一种广泛应用的工作模式。此模式通过将当前明文块与前一个密文块进行异或(XOR)操作,实现了对安全性的增强。这种机制确保了即使相同的明文块在不同位置出现,其加密结果也会有所不同,从而有效阻止了攻击者通过分析加密输出来推断原始明文信息的可能性。
CBC模式的优势在于其增强的安全性和对大数据流的顺应性。然而,它也存在一些范围性,比方在处理过程中必要特定的添补(padding)机制,以及由于其依赖于前一个块的输出,导致加密操作无法实现并行处理,这可能会对性能产生一定影响。

4、出现了什么错误?为什么?

待加密的数据长度不是加密算法分组巨细的整数倍引起的。

5、从两次的密文对比来看,有多少个Base64字符出现了变革?这阐明加密算法应该有什么样的性子?
通过对比两次加密得到的密文,我们观察到有14个Base64字符发生了变革。这一现象展现了加密算法应具备的扩散性和漂移性这两个关键特性。扩散性意味着即使是输入数据的微小变动,也能在输出结果中引起显著的颠簸,从而增强了加密的安全性。漂移性则确保了输出数据中的每一个位都与输入数据中的相应位相关联,这不但提拔了算法的安全性,也加强了其在隐私保护方面的能力。这两个特性共同作用,确保了加密算法在面临各种攻击时的鲁棒性,为数据的保密性和完整性提供了坚实的保障。

6、对比两次解密结果,思考其表现出的算法性子
通过对比两次解密的结果,我们可以验证加密算法所具备的核心安全属性。首先,该算法表现出确定性特性:相同的密文输入总是导致相同的明文输出,这一点对于解密过程的可猜测性和可靠性至关告急。其次,算法的扩散性和漂移性表现突出,即密文中的微小变革能够引起解密后明文的显著差异,这表明算法能够确保每个输入位对输出结果产生全局性的影响。最为关键的是,算法的不可逆性,这意味着仅凭密文无法推导出原始的明文信息,必须依赖精确的密钥和初始化向量(IV)来精确还原数据。这些特性共同构成了加密算法的安全性和数据保护的坚实基础。


2.2 实行内容2 序列加密算法

过程:

  • 随机生成32字节key,16字节nonce

2、用ChaCha序列暗码算法生成暗码机c,以及加密器e、解密器d:
- Cipher(algorithms.ChaCha20(key,iv),mode = None)

3、对b"hello ouc cser!"进行加解密


题目:

  • ChaCha是个什么样的算法,其安全性如何?
ChaCha是由丹麦暗码学家Dennis Nielsen筹划的流暗码算法,其核心机制利用256位的密钥和64位的初始化向量进行加密处理。这种算法通过多阶段的加密运算,实现了高效的加密性能,因而被广泛应用于TLS(传输层安全协议)、VPN(虚拟私家网络)等安全通信协议中。ChaCha的安全性得到了专家的广泛认可,目前尚未发现有效的攻击本领。这种算法的筹划确保了数据传输的安全性和可靠性。

2、为什么本次操作不必要进行添补?
在本次操作中,由于采用了ChaCha20算法,一种高效的流暗码算法,数据处理变得极为灵活。ChaCha20算法逐字节地处理数据流,实现了实时的加密与解密功能,避免了传统块加密算法中数据块分割的必要。这种算法的筹划消除了对添补数据的需求,简化了整个加解密过程,同时包管了操作的实时性和效率。因此,ChaCha20算法在必要快速、一连数据传输的场合,如实时通讯和流媒体服务中,具有显著的优势。


2.3 实行内容3 公钥暗码算法


过程:
1、rsa模块
2、生成私钥priv
3、生成公钥pub



  • 导入单向散列(hash)和添补模块


  • 产生添补


  • 加密b"OUC CSE GRADE 99",再次加密b"OUC CSE GRADE 99"



  • 选择sha-256算法
8、生成hash器h
9、对消息求散列值d



  • 导入util模块


  • 生成添补pad
12、对消息署名得到sig
13、验证署名



题目:
1、2048的含义是什么?假如换成其他数字会怎么样?
2048位密钥是当前推荐利用的RSA密钥长度,提供了良好的安全性和性能平衡。不同的密钥长度选择会直接影响到安全性和性能,数越大,性能降落,安全性上升,反之,性能上升,安全性降落。 

  • 为什么第二级的模块名叫做hazmat?
在Cryptography库中,“hazmat”这一术语遵循了特定的命名习惯,它源自“hazardous materials”(高危材料)的缩写。在暗码学范畴,此术语被用来指称那些直接操作敏感数据、密钥或加密算法底层实现的模块或函数。这些模块的筹划初志是为高级用户提供直接访问底层加密机制的能力,但同时也提醒开发者,这些模块的利用必要格外谨慎,以避免不当操作可能带来的安全风险。
将这些模块归类于“hazmat”子模块下,是一种策略上的安排,旨在提醒开发者在利用这些功能时必须保持警觉,确保操作的精确性和安全性。通过这种方式,Cryptography库鼓励开发者采用更安全、更高条理的接口来处理加密任务,从而降低因直接操作底层加密机制而引发的错误或安全漏洞的可能性。


  • 两次加密的结果是否相同?为什么?
在RSA加密算法中,即使利用相同的公钥对同一数据进行加密,由于加密过程中引入了随机性,每次得到的密文也会有所不同。这种随机性重要泉源于两个方面:首先是添补方案中利用的随机数,其次是加密算法本身的筹划。这种筹划策略不但增长了加密过程的复杂性,而且有效提拔了算法的安全性。通过这种方式,即使攻击者得到了相同的密文,也无法轻易地通过对比分析来推断出原始的明文信息。这种特性对于防止暗码分析攻击,如频率分析或模式辨认等,具有告急意义。因此,RSA算法的这种随机性是其安全性的一个告急构成部分。


  • 假如筹划的加密算法未考虑添补,会有什么题目?
添补机制在加密过程中至关告急,它不但确保了算法能够无缝处理任何长度的数据,而且通过引入随机性,有效提拔了加密结果的不可猜测性。这种筹划策略对于反抗明文模式或长度分析至关告急,从而显著增强了数据的安全性和保密性。因此,在筹划和实现加密算法时,必须审慎地考虑添补策略,以确保其符合最高的安全尺度,并有效防范潜在的安全威胁。


  • 暗码学中的hash函数应具有什么性子?
暗码学中的哈希函数应具备单向性(不可逆转性,即难以从哈希值反推出原始输入)、抗碰撞性(难以找到两个不同的输入数据产生相同哈希值)、快速计算性、输入敏感性(微小变革应导致输出大变革)、确定性(相同输入应产生相同输出)、以及雪崩效应(输入变革引起输出变革),这些性子共同确保了哈希函数在暗码学中的安全性和有效性。



  • 验证署名的函数,是如何返回验证乐成或失败的消息给调用者的?为什么?
署名验证函数通过返回布尔值来明确指出署名是否有效,这种简便明白的筹划不但便于调用者快速辨认验证结果,而且遵循了普遍的编程准则。这种实践不但简化告终果的处理过程,还显著提拔了代码的易读性和维护性。




2.4 实行内容4 缓冲区溢出防护技术

过程:

  • 阅读


  • canary保护


假如栈保护机制被乐成禁用,将不会看到输出结果中包含类似 __stack_chk_fail 的符号。




  • Fortify保护


  • NX(DEP)


  • PIE(ASLR)


  • RELRO保护


题目:

  • 用5-10句话大抵阐明ROP的根本原理
ROP(Return-Oriented Programming),作为一种高级的漏洞利用技术,它利用了程序中存在的栈溢出漏洞。攻击者通过经心构造的攻击载荷,覆盖函数的返回地址,进而控制程序的执行流程。这种技术的核心在于辨认并串联一系列以`ret`指令结尾的短小指令序列,这些序列被称为"gadgets"。通过这些gadgets,攻击者能够操纵寄存器或内存状态,从而绕过今世操作系统中如NX(No eXecute)等栈保护机制,实现对系统的恶意控制,比方获取一个shell,进而得到系统的完全控制。为了应对操作系统中的地址随机化(ASLR)策略,ROP攻击者可能必要通过泄漏的环境信息来确定这些gadgets的确切位置。这个过程要求攻击者具备对目标系统和程序的深入理解,以及对ROP技术的高度把握。通过精确的地址定位和经心筹划的攻击载荷,攻击者能够绕过ASLR带来的障碍,乐成执行其恶意操作。


  • Canary一词的泉源是什么?借此解释Canary保护的原理
金丝雀(Canary)这一术语的劈头可追溯至煤炭开采业,其时矿工们利用金丝雀对有毒气体的敏感性作为预警系统。金丝雀在袒露于有害气体之前,会表现出异常举动,从而为矿工提供安全警报。在计算机安全范畴,Canary机制鉴戒了这一概念,通过在程序的栈帧中嵌入一个难以猜测且在函数执行过程中保持稳定的特殊值。该值被称为Canary值,其重要作用是监测缓冲区溢出攻击。一旦Canary值发生改变,即表明可能存在攻击举动,此时系统将采取必要的防御措施,以确保程序免受此类安全漏洞的侵害。




  • 当检测到溢出时,程序的举动有何变革?
当检测到缓冲区溢出变乱时,程序通常会采取立即终止执行的措施,以防止潜在的恶意举动利用该漏洞进一步操控程序。此外,系统可能会发出警告信息或生成日志记录,为管理员和开发者提供关键信息,使他们能够辨认和理解安全变乱的性子,并据此采取相应的应对策略。


  • 如何检察内存页的各项权限?
要检查历程的内存页权限,存在多种技术本领。一种广泛采用的方法是利用pmap下令,该下令能够展示历程的内存映射和相应的权限设置。通过在下令行界面执行pmap -x <pid>,此中<pid>代表目标历程的历程标识符,可以获取到每个内存段的详尽权限信息,比方可读(r)、可写(w)、可执行(x)等。
除此之外,还可以通过分析/proc/<pid>/maps文件来审视历程的内存映射环境。执行cat /proc/<pid>/maps下令能够列出特定历程<pid>的全部内存段及其对应的权限标志。这些权限标志通常由字符r(可读)、w(可写)、x(可执行)和p(私有,不共享)构成。


  • 攻击者如何绕过NX防御?给出简单的步调阐明
攻击者可能企图规避NX(克制执行)防护措施,其过程通常遵循以下步调:首先,攻击者辨认目标程序中的缓冲区溢出缺陷。随后,攻击者筹划并生成特定的输入数据,这些数据嵌入了恶意代码片段,即所谓的shellcode。通过利用这一溢出缺陷,攻击者能够覆盖程序的返回地址,将其重定向至含有恶意代码的内存区域。若目标程序允许在栈上执行代码,攻击者便有机会直接在栈上部署shellcode并执行之。若栈执行受到限制,攻击者可以转而利用ROP(基于返回的编程)技术,通过经心挑选并串联程序中已存在的代码片段——即gadgets——来构建一系列连贯的执行路径,以达成其攻击目的。

6、PIE和PIC的区别?
Position Independent Executable(PIE)和Position Independent Code(PIC)是两种旨在提拔程序安全性与可移植性的关键技术。PIE是一种特殊的可执行文件格式,它允许程序的代码和数据在内存中的恣意位置执行,这重要实用于那些必要用户直接运行的应用程序。PIE文件可以通过编译时利用-fpie选项以及链接时利用-pie选项来生成。相对地,PIC指的是在库文件中,代码段被筹划为与内存加载位置无关,这使得PIC特别得当用于动态链接库和共享对象。PIC的生成可以通过在编译时利用-fPIC选项来实现。这两种技术都利用了位置无关性的特点,以增强程序的安全性,防止潜在攻击者利用已知的内存地址进行攻击,同时确保了程序在不同系统环境中的兼容性和可执行性。

7、如何检察程序的虚拟地址,如何表现地址随机化?
要检查程序的虚拟地址和地址空间结构随机化(ASLR)特性,可以采用多种技术本领。一种方法是利用pmap下令或分析/proc/<pid>/maps文件,这两种方法都能提供历程的内存映射信息,包罗程序的虚拟地址范围和内存段的分配环境。通过反复启动同一程序,并对比其内存映射的输出结果,可以观察到地址随机化的效果:每次执行时,程序及其依赖库的基址都会发生随机变革。这种随机性增长了攻击者猜测和利用固定内存地址的难度,从而提高了程序的安全性,尤其在防御常见的内存攻击本领时显示出显著的保护效果。

8、什么是GOT表?如何检察GOT表权限?
全局偏移表(Global Offset Table,简称GOT)是一种关键的数据结构,它在程序执行期间用于存储全局变量和函数的地址。GOT通常位于程序的数据段(.data段)内,作为动态链接过程的一部分,它负责解析和访问来自共享库的全局符号。在程序加载时,动态链接器会将GOT表中的条目添补为这些全局符号的实际地址,从而确保程序能够精确地访问这些符号。
要检查GOT表的权限,实质上是检查程序或共享库的数据段权限。利用工具如readelf -S或objdump -h,可以审查目标文件的段信息,包罗数据段的权限设置。通常,包含GOT表的数据段被赋予了可读写权限,这允许动态链接器在程序加载时更新GOT中的符号地址,以维护程序执行的精确性和安全性。

2.5 实行内容5 历程安全防护技术


题目:
描述该技术的根本原理和扼要流程,你以为可以如何改进它?
LoadLord 技术的核心原理是通过动态加载函数来优化程序的内存利用和安全性。在程序执行过程中,LoadLord 不将整个程序预加载到内存中,而是根据必要动态加载所需的函数。这种动态加载策略大大降低了程序的攻击面,由于不会将全部代码都袒露在内存中。
关键的流程包罗控制流完整性的维护。LoadLord 确保在加载函数时,程序的控制流是完整的,防止攻击者通过破坏控制流来执行恶意操作。一旦函数执行完毕,LoadLord 立即将其卸载,这有效镌汰了内存中可能存在的可利用 gadgets,特别是那些高风险的 gadgets,这些可能被攻击者利用来进行攻击。
另外,LoadLord 通过精细的内存管理确保只有必要的代码片段在内存中存在。这种内存管理策略进一步降低了被攻击者利用的可能性,提拔了程序的安全性和健壮性。综上所述,LoadLord 技术通过动态加载、控制流完整性的维护、及时卸载和精细的内存管理,有效地提拔了程序的安全性,特别是在面临复杂的攻击场景时表现出色。

改进方法:
优化加载策略:研究和优化函数的加载和卸载策略,以最小化性能影响,同时保持高安全性。
自顺应机制:开发自顺应机制,根据程序的运行模式和安全需求动态调整加载和卸载策略。
多维度防御:结合 ASLR、DEP 等其他安全措施,构建一个多条理的防御体系,提高整体的安全性。
硬件支持:利用硬件特性,如处理器的特定指令集或安全功能,来增强 LoadLord 的实现和效果。
用户自定义:提供用户自定义选项,允许用户根据自己的需求调整安全级别和性能之间的平衡。
攻击检测与相应:集成实时攻击检测系统,一旦检测到攻击迹象,主动调整策略以应对,增强系统的自顺应性和相应能力。

3. 遇到的题目及解决方式
本次无题目,统统正常,多为思考时候的思绪转换,必要学习知识,而非操作方面的不到位,导致的无法执行题目

  • 课后实行与思考(选做)
在暗码学实行中,能够明显观察到对称暗码(如AES)与公钥暗码(如RSA)在加密和解密速度上的显著差异。对称暗码因其利用单一密钥进行加密和解密,操作简便,效率极高,通常在速度上超越公钥暗码。然而,后者虽然加密速度较慢,却因其复杂的数学运算而提供了更高的安全性。
为了实现一种既快速又安全的加密机制,肴杂加密(Hybrid Encryption)方案应运而生。以下是其筹划思绪的精炼表述:
数据加密:
初始阶段,我们采用高效的对称暗码算法(比方AES)对数据进行加密。由于对称暗码在处理大量数据时显示出的速度优势,它成为加密数据的首选。

密钥加密:
随后,利用汲取方的公钥对生成的对称密钥进行加密。尽管公钥暗码在速度上不占优势,但其在密钥传输过程中的安全性是不可或缺的。
数据传输:
加密后的对称密钥与利用对称暗码加密的数据一同发送给汲取方,确保数据的完整性和保密性。

汲取方解密:
汲取方首先利用自己的私钥解密对称密钥,随后利用该密钥解密汲取到的数据,恢复原始信息。
肴杂加密的优势与实施要点:

速度与安全性的双重保障:肴杂加密方案在保持数据传输的高效率的同时,通过公钥暗码确保了密钥的安全性。

实现的精细考量:在筹划过程中,必须对对称暗码和公钥暗码的选择和应用进行周密的考量,以确保系统的安全性和效率。

密钥管理的告急性:密钥的生成、传输和存储必须严格管理,以保障整个加密系统的安全性。
通过这种肴杂加密方案,我们能够在确保数据传输效率的同时,实现高等级的安全性,实用于对速度和安全都有高要求的应用场景,如网络通信和数据存储等。

5. 实行总结

本次实行系统地学习了几种暗码学和安全技术的根本原理与实践,包罗数据安全根本操作、缓冲区溢出攻击与防护技术、安全系统筹划实现、分组暗码算法、序列加密算法、公钥暗码算法及其应用、缓冲区溢出防护技术、以及历程安全防护技术。同时,由于本次涉及内容过多,所以每个暗码防护的部分事实上只是浮光掠影,只是了解暗码学的核心头脑,是通过利用数学和计算机科学的方法,保护信息的隐私和完整性,防止未经授权的访问和篡改。理解了利用安全技术,筹划实现更安全的系统,可以利用身份认证和授权结合加密保护数据,确保系统只有经过验证的用户可以安全地访问和传输敏感信息。

附:实行数据与记录已在实行过程表现




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表