数字签名

哈希Hash定义

醉酒当歌 提交于 2019-12-20 00:10:26
Hash,一般翻译做"散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 HASH主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系 MD5就可以说是目前应用最广泛的Hash算法 Hash算法在信息安全方面的应用主要体现在以下的3个方面: 1) 文件校验 我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。 MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令。 2) 数字签名 Hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。 对 Hash 值,又称"数字摘要

2 - 数字证书

≡放荡痞女 提交于 2019-12-19 04:11:27
  上文介绍了数字签名,它能够(1)确认发送方身份(2)保证发送数据完整性   但是存在一定漏洞,这个漏洞不在数字签名技术本身,而在于它所以来的密钥,只有密钥真是可靠,使用数字签名才是安全有效的。   考虑这种可能的情况:在上述发送方向接收方传送报文的例子中,如果发送方所持有的公钥来路有问题或是被替换了,那么,持有对应私钥的冒充接受方就有可能接收到发送方发送的报文。这里的问题就是:对于请求方来说,它怎么能确定它所得到的公钥一定是从目标主机那里发布的,而且没有被篡改过呢?亦或者请求的目标主机本本身就从事窃取用户信息的不正当行为呢?这时候,我们需要有一个权威的值得信赖的第三方机构(一般是由政府审核并授权的机构)来统一对外发放主机机构的公钥,只要请求方这种机构获取公钥,就避免了上述问题的发生。这种机构被称为证书权威机构(Certificate Authority, CA),它们所发放的包含主机机构名称、公钥在内的文件就是人们所说的“数字证书”。   数字证书的颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动

https协议

不问归期 提交于 2019-12-19 02:32:14
1. 什么是Https HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL 2. Https的作用 内容加密 建立一个信息安全通道,来保证数据传输的安全; 身份验证 确认网站的真实性; 数据完整性 防止内容被第三方冒充或者篡改。 3. HTTPS协议的劣势 需要进行 非对称 的加解密,且需要 三次握手 。 (出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control: Public,缓存就会被写到硬盘上。IE只要http头允许就可以缓存https内容,缓存策略与是否使用HTTPS协议无关。) 4. HTTPS和HTTP的区别 https协议需要到 CA申请证书 http是信息时明文传输;https则是具有安全性的ssl加密传输协议 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443 http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全 二、加解密相关知识 1. 对称加密 对称加密(也叫 私钥加密 )指加密和解密使用相同密钥的加密算法。有时又叫 传统密码算法 ,就是加密密钥能够从解密密钥中推算出来

数字签名和数字证书的原理解读(图文)

只谈情不闲聊 提交于 2019-12-14 21:36:56
每篇一句 平生能几到,好处欲穷寻 —— 宋 · 陈著《同袁通判游越中三首·禹庙》 正文 数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。对于数字签名和数字证书的运用原理,相信有不少朋友还不清楚,下文将为大家解疑答惑。 数字签名和数字证书原理 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 鲍勃给苏珊回信,决定采用“数字签名”。他写完后先用Hash函数,生成信件的摘要(digest)。 然后,鲍勃使用私钥,对这个摘要加密,生成“数字签名”(signature)。 鲍勃将这个签名,附在信件下面,一起发给苏珊。 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

图解公钥与私钥

主宰稳场 提交于 2019-12-14 17:57:41
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5. 鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7. 鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10. 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11. 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate

究竟什么是苹果ios超级签名源码系统?

自古美人都是妖i 提交于 2019-12-13 08:16:39
关于ios企业签名大家应该也不陌生了,那我们今天就再来一起看一下有关签名的一些知识吧! 数字签名想必大家应该会陌生一些,数字签名他又叫做公钥数字签名,或者电子盖章,就是一种类似于写在纸上的普通物理签名,但是使用了公钥加密领域的技术实现,他主要是用来鉴别一些数字信息的,他有两种互补的运算,一个呢用于签名,另一个则用于验证。 然而数字签名只是信息的发送者才能生产的,别人是无法伪造的,而且这段数字同时也是对信息发送者发送的信息是否真实的一个有效证明。 那么什么是超级签名呢,超级签名是使用苹果个人开发者账号实现的ios自动化签名,帮助App实现快速分发,告别企业签名掉签的烦恼,超级签名相对来说是很稳定的。 超级签名的原理就是利用描述文件或许用户的设备ID,然后再根据设备ID在服务端把安装包进行重新打包,然后再对开发证书进行修改,然后再进行分发。 那么超级签名也是有难点的,需要熟悉OpenSSL,对于苹果签名的流程,对ios开发打包的熟悉,还要有一定的逆向技术的了解,Mac sever、Linux的调用。 但是它的优势就是掉钱率远远低于传统的企业签名,无需企业签名、无需越狱、无需苹果的审核、也无需上架App Store,下载安装之后就可以使用了。 如何超级签名?   1、自己研究苹果机制、开发程序   优点:可控性高、稳定、成本低   缺点:开发,调研成本高,打磨程序周期长   2

对称加密 非对称加密总结

喜夏-厌秋 提交于 2019-12-10 09:48:50
对称加密 :A与 B 之间之间的通讯数据都用同一套的密钥来进行加密解密。 优点 简单快捷,密钥较短,且破译困难。 缺点 如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之间怎么确定密钥也需要考虑,这其中就会有密钥泄露的风险,以及存在更换密钥的需求。 对称加密通常有 DES,IDEA,3DES 加密算法。 非对称加密 :用公钥和私钥来加解密的算法。打个比方,A 的公钥加密过的东西只能通过 A 的私钥来解密;同理,A 的私钥加密过的东西只能通过 A 的公钥来解密。顾名思义,公钥是公开的,别人可以获取的到;私钥是私有的,只能自己拥有。 缺点 加解密比对称加密耗时. 优点 比对称加密安全. 但是非对称加密也是存在漏洞,因为公钥是公开的,如果有 C 冒充 B 的身份利用 A 的公钥给 A 发消息,这样就乱套了,所以接下来就采用非对称加密+摘要算法+数字签名的机制来确保传输安全。 常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) Hash算法(摘要算法) Hash算法的特点是单向不可还原,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。只要源数据不同,算法得到的摘要必定不同。

数字签名和数字证书

点点圈 提交于 2019-12-09 13:20:52
参考链接:    http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html    https://blog.csdn.net/weixin_37887248/article/details/82805508 这里涉及到了非对称加密的原理,一般加密和解密过程使用的是不同的密钥:公钥和私钥   对要传输的内容,使用公钥加密的话,只能用私钥解密   对要传输的内容,使用私钥加密的话,则只能用公钥解密。 而常说的数字签名,就与以上的第2个步骤有关,当然实际上还有其他步骤 比较典型的有RSA加密,算法安全性依赖于:大素数难以分解。因此其算法复杂度比较大,加解密效率相对来说不高。 通过下面的例子来说明数字签名和证书中心的作用 通信双方:A、B; A的公钥和私钥:PuA、PrA; B的公钥和私钥:PuB、PrB RSA通信过程,简单使用一次加密和解密,然后问题多多的方式如下   1. A准备发送内容,对内容使用公钥PuB进行加密,然后将密文传输给B   2. B收到A发送的数据,使用私钥PrB,解密并得到明文;读取之后,B现在要给A回复,因此使用公钥PuA对内容进行加密,将密文传输给A   3. A收到B的回复,使用公钥PuB对内容进行解密,得到明文。至此,一次完整的通信过程完成。  

PKCS#7

橙三吉。 提交于 2019-12-06 18:10:25
参考:PKCS#7 地址:https://baike.baidu.com/item/PKCS%237 PKCS#7,也叫做加密消息的语法标准,由RSA安全体系在 公钥加密系统 中交换 数字证书 产生的一种加密标准。 概述 编辑 PKCS#7描述 数字证书 的语法和其他加密消息——尤其是, 数据加密 和 数字签名 的方法,也包含了算法。当使用PKCS#7进行数字签名时,结果包含签名证书(一列相关证书撤回列表)和已证明路径上任何其他证书。如果使用PKCS#7加密数据,通常包含发行者的参考消息和证书的序列号,它与用于解密已加密数据的公共密钥相关。 PKCS#7也支持另外一些特征,如: ·递归,在一个 数字信封 上附上一个数字信封,还可再附上一个数字信封,如此等等。 ·加密消息和数字签名的时间标记。 ·签名计数和用户定义属性。 实现 编辑 PKCS#7可用于加密两类数据: (1)基本数据:没有加密的数据,并且包含了的附带物如散列或 数字签名 。 (2)增强的数据:数据已加密或包含了的附带物,或两者都有。增强的内容以一种形式压缩进另外的内容里面。 PKCS#7标准定义了多种内容类型,包括下面这些: ·数据:字节或8 位元组 串。 ·签名设计:随加密数据摘要一起的数据。一个信息摘要是一个 哈希算法 的结果(术语摘要和散列是相同定义的)。使用信息摘要保证原始消息在传输过程中没有被篡改

消息摘要算法

巧了我就是萌 提交于 2019-12-06 16:54:09
参考:消息摘要算法 百度百科 地址:https://baike.baidu.com/item/%E6%B6%88%E6%81%AF%E6%91%98%E8%A6%81%E7%AE%97%E6%B3%95/3286770?fr=aladdin 消息摘要算法的主要特征是加密过程不需要 密钥 ,并且经过加密的数据无法被解密,目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于 分布式网络 上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用 不可逆加密算法 加密的。近年来,随着计算机性能的飞速改善,加密速度不再成为限制这种 加密技术 发展的桎梏,因而消息摘要算法应用的领域不断增加。 简介 消息摘要算法的主要特征是加密过程不需要 密钥 ,并且经过加密的数据无法被解密,目前可以解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当可观,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的。近年来,随着计算机性能的飞速改善