信息安全技术作业5--散列函数的应用及其安全性

作业内容要求:

1)给出散列函数的具体应用。

2)结合生日攻击、以及2004、2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展。问题2的回答可以结合下面给出的第一个链接。

3)结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法来验证软件完整性时可能出现的问题。

链接1:https://www.win.tue.nl/hashclash/

链接2:http://www.win.tue.nl/hashclash/SoftIntCodeSign/



问题一:给出散列函数的具体应用

  • 消息认证

   消息认证是用来验证消息完整性的一种机制或服务。消息认证确保收到的的数据确实和发送时的一样(即没有修改、插入、删除或重放)。通常还要求消息认证机制确保发送方声称的身份是真实有效的。

Hash函数用于提供消息认证功能时,Hash函数值通常称为消息摘要。其本质为:发送者根据待发送的消息使用该函数计算一组Hash值,然后将Hash值和消息一起发送过去。接收者收到后对于消息执行同样的Hash计算,并将结果与收到的Hash值进行对比。如果不匹配,则接收者推断消息(Hash值)遭受了篡改。

Hash码提供消息认证的方法:

1.使用对称密码算法加密消息和Hash码。

2.使用对称密码算法只对Hash码进行加密。

3.不使用加密算法仅使用Hash函数。

4.通过将整个消息和Hash值加密。

  • 数字签名

   在进行数字签名过程中使用用户的私钥加密消息的Hash值,其他任何知道该用户公钥的人都能够通过数字签名来验证消息的完整性。

Hash码用于提供数字签名的方案:

1.使用发送方的私钥,利用公钥密码算法仅对Hash码进行加密。

2.先用发送方的私钥对Hash码加密,再用对称密码中的密钥对消息和公钥算法加密结果进行加密。

  • 产生单向口令文件

存储口令的Hash值而不是口令本身,当用户输入口令时,操作系统将比对输入口令的Hash值和存储在口令文件中的Hash值。

  • 入侵检测和病毒检测

   将每个文件的Hash值H(F)存储在安全系统中,随后就能够通过重新计算H(F)来判断文件是否被修改过。入侵者只能够改变F,而不能改变H(F)。

  • 构建随机函数(或用做伪随机数发生器)

   基于Hash函数的PRF可用于对称密码中的密钥产生。



问题二:说明散列函数的安全性以及目前安全散列函数的发展

   1.生日攻击:

   生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。这种攻击对Hash函数提出了一个必要的安全条件,即消息摘要必须足够长。生日攻击并没有利用任何Hash函数的性质,是对任何Hash都适用的普适的攻击方法,应对方法也很简单,增加Hash的长度。生日攻击这个术语来自于所谓的生日问题,在一个教室中最少应有多少学生才使得至少有两个学生的生日在同一天的概率不小于1/2?这个问题的答案为23。

   2.MD5安全性:

   Message Digest Algorithm 5(消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

2、容易计算:从原数据计算出MD5值很容易。

3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

   3.SHA-1安全性:

   安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1有如下特性:

1.不可以从消息摘要中复原信息;

2.两个不同的消息不会产生同样的消息摘要,(但会有1x10 ^ 48分之一的机率出现相同的消息摘要,一般使用时忽略)。

2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto‘2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。(并非是真正的破解,只是加速了杂凑冲撞)。2005年2月,王小云教授又破解了另一国际密码SHA-1。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。

   4.散列函数的安全性:

   密码学Hash函数的安全性需求如下:

  • 输入长度可变;
  • 输入长度固定;
  • 效率;
  • 抗原像攻击(单向性);
  • 抗第二原像攻击(抗弱碰撞性);
  • 抗碰撞攻击(抗强碰撞性);
  • 为随机性;

前3条特性是Hash函数实际应用的需求,第4个条件单向性是指,有消息很容易计算出Hash码,但由于Hash码却不能计算出相应的消息。第5个性质抗弱碰撞性可以保证。若一个Hash函数满足前5个要求,称为弱散列函数;满足前6个性质,称为强散列函数。

3个安全特性抗原像攻击、抗弱碰撞攻击、抗强碰撞攻击之间的联系:

安全散列函数的发展:

有两种方法可以攻击安全散列函数:密码分析法和暴力攻击法。散列函数抵抗暴力攻击的强度完全依赖于算法生成的散列码长度。单向散列函数或者安全散列函数之所以重要,不仅在于消息认证(消息摘要,数据指纹),还有数字签名(加强版的消息认证)和验证数据的完整性。散列函数目前还是使用最为广泛的加密算法,尽管会出现安全性的问题,在找到新的更为有效的算法之前,应该会持续发展,更新算法并且网站也开始随之更新。但是旧的算法尽管使用的人数更少了,也依旧会有可能被继续发现安全性能的缺失。



问题三:说明md5算法来验证软件完整性时可能出现的问题。

   1.前缀碰撞:

将碰撞合并到一对文件中时,除了构成碰撞的相对较小的随机查找字节块之外,构造碰撞的原始方法要求文件完全相等。实验中所选择的前缀冲突只有在碰撞后文件应该完全相等的要求。之前碰撞的两个文件的碰撞可以是任何事情:前缀碰撞查找方法总是会产生一个碰撞,该碰撞可以合并到两个文件中,而不管在碰撞之前存在什么数据。随机字节可以附加到各种格式,而不会改变它们的功能。这个想法也适用于可执行文件。因此,通过附加一个选择前缀的冲突,任何完全无害的程序都可以与任何其他程序(如恶意软件)相冲突。这两个文件在执行时显示不变的行为,一个是好的,另一个是坏的,但现在这些文件具有相同的MD5散列值。

   2.执行helloworld.exe和goodbyworld.exe 两个文件文件:

   

   3.md5算法来验证软件完整性时可能出现的问题:

结合链接2中的实验报告,可知:

为了滥用软件完整性保护或代码签名方案中的选择前缀冲突,攻击者应能够在文件被散列和/或签名之前对其进行操作。这可能意味着攻击者需要内部人员访问运行可信软件完整性保护或代码签名过程的一方。具有此类访问权限的攻击者无论如何都可能会造成更多伤害,而无需选择前缀冲突,从而获得恶意软件上的“官方”数字签名。 
   另一方面,存在依赖方的观点,即用户下载哈希或签名的代码需要一些保证该软件是可信的。该依赖方无法确定发布的散列值或数字签名是否仅对他下载的可执行文件有效。很可能有一个具有相同散列值或数字签名的兄弟文件,而这些兄弟姐妹中只有一个经历了适当的散列或签名过程。特别是当软件完整性验证发生在引擎盖下时,由于用户不知道操作系统或某个隐藏的应用程序正在静默地验证要安装的软件上的数字签名,攻击者无需从源代码构建两个可执行文件。从任何来源获取可执行文件的第一个文件并将其作为第二个可执行文件生成恶意软件是完全可能的。然后可以找到要附加到两个文件的字节块,以便生成的文件具有相同的MD5散列值。如果攻击者随后可以获得第一个文件的签名,例如由原始软件供应商签名,则此签名对于攻击者构建的恶意软件也是有效的。 
   所以,MD5再也不应该用作软件的完整性或一个Hash函数代码签名的目的。

原文地址:https://www.cnblogs.com/malings/p/9020665.html

时间: 2024-08-30 15:31:57

信息安全技术作业5--散列函数的应用及其安全性的相关文章

【信息安全技术】作业五 散列函数的应用及其安全性

一.给出散列函数的具体应用 数字签名 也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法和密码算法对该电子文档进行关键信息提取并进行加密而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接受者用来验证该电子文档在传输过程中是否被篡改或伪造. 消息认证 消息认证是指通过对消息或者消息有关的信息进行加密或签名变换进行的认证,目的是为了防止传输和存储的消息被有意无意的篡改,包括消息内容认证(即消息完整性认证).消息的源和宿认证(即身份认证0).及消息的序号和操

散列函数的应用及其安全性(信息安全技术作业5)

一.给出散列函数的具体应用. 1)文件校验 MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验算法. 2)数字签名 因为非对称算法的运算速度比较慢,所以在数字签名协议中应用单向散列函数.对 Hash 值进行的数字签名,在统计上可以认为与对文件本身进行数字签名是等效的.通过HASH处理我们可以使其仅仅作用于HASH摘要上,从而提高效率. 3)鉴权协议 如下的鉴权协议又被称作"挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简

Gartner: 2017年11大信息安全技术(解读版)

在2017年6月份举办的第23届Gartner安全与风险管理峰会上,Gartner的Fellow--Neil McDonald发布了2017年度的11个最新最酷的信息安全技术,比往年的10大技术多了一项. 以往都是通过互联网了解Gartner的各种信息和报告.这次,本人有幸亲临现场,参加峰会,自然有更多的感悟.参加峰会期间,获得的信息量实在太大,直到现在,虽然已经过去了2个多月,依然没有消化完. 回到主题,以往我都是聚焦于每年选出来的10大信息安全技术本身,但对这些技术是如何被Gartner选出

Gartner:2016年十大信息安全技术(含解读)

在刚刚结束的2016年Gartner安全与风险管理峰会上,发布了2016年十大信息安全技术(http://www.gartner.com/newsroom/id/3347717).这里提及的10大技术基本上都在以往的报告中详细阐述过.这10大技术分别是: 1)云访问安全代理(CASB):CASB相当于一个应用代理安全网关,安全地连接起用户与多个云服务商,属于云安全身份管理的范畴.这是Gartner在云计算安全领域力推的技术,有多份专门报告,也是Hype Cycle的常客,这里就不多说了.[注:C

Gartner:2014年十大信息安全技术

美国时间6月26日,在Gartner举办的安全与风险管理峰会上,发布了2014年的十大信息安全技术. 这十大技术分别是: 1)云访问安全代理:放置于边界或者云端的PEP(策略执行点),当前云身份管理的热点技术 2)自适应访问控制:基于情境感知的访问控制 3)沙箱普遍化:沙箱不再是一个产品或者一个细分市场,而是跟各种安全产品进行集成,成为了一个功能[我的理解(下同):譬如IDS+沙箱,FW+沙箱,等等] 4)端点检测与响应解决方案:[端点,包括主机和PC,是很重要的一环,不能只考虑网络层面] 5)

关于举办“高级信息安全技术专业人员培训班”和“高级软件性能测试工程师培训班”

大家好!       我中心于2016年2月27日举办“高级信息安全技术专业人员培训班”和2016年3月19日举办“高级软件性能测试工程师培训班” 如有疑问请您及时与我们联系, 感谢您的支持! 如有软件测评服务业务合作,如软件登记测试,确认测试,验收测试,等保测评,渗透测试,风险评估等项目服务,期待您的合作,再次感谢您的支持!           如有培训需求,可以联系我们,劳烦您转发给您相关可能有需求的培训同事,多谢. 祝您工作顺利,健康快乐每一天! 中国赛宝实验室软件评测中心 工业和信息化部

中国(北京)国际智能工业与信息安全技术发展论坛暨2014年中国嵌入式系统年会邀请函

中国软件行业协会嵌入式系统分会中国(北京)国际智能工业与信息安全技术发展论坛暨2014年中国嵌入式系统年会邀  请  函 全国电子与信息技术研发.生产.教学等单位和专业人士. 嵌入式系统分会会员单位和嵌入式系统产业联盟成员单位领导: 为了推动我国嵌入式系统产业和技术发展.促进智能工业建设.提高智能工业中的各类以电子和嵌入式系统为基础的智能终端及系统的研发和应用水平,保障工业信息化的信息安全,由中国软件行业协会和北京经济技术开发区管理委员会联合主办,北京经济技术开发区科技局.中国软件行业协会嵌入式

20155201李卓雯 20155212江振思 20155313杨瀚《信息安全技术》 实验三 数字证书应用

20155201李卓雯 20155212江振思 20155313杨瀚<信息安全技术> 实验三 数字证书应用 实验环境 操作系统:3台基于Win7系统的Windows Server 2003虚拟机 主机编号 角色 IP地址 7D CA 172.168.1.107 7E 服务器 172.168.1.115 7F 客户端 172.168.1.105 工具 IIS组件 证书组件 协议分析器 IE浏览器 实验原理 一.PKI技术 PKI是PublicKeyInfrastructure的缩写,通常译为公钥

2017-2018-1 20155214 《信息安全技术基础》 实验3

2017-2018-1 20155214 <信息安全技术基础> 实验4 木马及远程控制技术 实验目的 剖析网页木马的工作原理 理解木马的植入过程 学会编写简单的网页木马脚本 通过分析监控信息实现手动删除木马 实验内容 木马生成与植入 利用木马实现远程控制 木马的删除 实验步骤 实验流程 (1)用户访问被"挂马"的网站主页.(此网站是安全的) (2)"挂马"网站主页中的iframe代码链接一个网址(即一个网页木马),使用户主机自动访问网页木马. (3)网页