`

Web Service修炼之六加密签名技术

 
阅读更多

1、为什么要使用加密技术

1、防止假冒

     使用数字签名

2、防止伪劣

     使用文件加密

2、什么是文件加密技术

    文件加密技术是用来阻止以任何非法获取方式夺得文件后进行阅读、修改等操作,主要是确保文件在传输过程中的安全。



 

3典型数据加密算法

3.1.基于“消息摘要”的算法

  “消息摘要”(Message Digest)是一种能产生特殊输出格式的算法。这种加密算法的特点是无论用户输入什么长度的原始数据,经过计算后输出的密文都是同定长度的。这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是“摘要”,被“摘要”的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此基于这种原理的算法能对数据完整性提供较为健全的保障。



 
 但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是“不可逆”的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证,而不能作为原数据内容的加密方案使用,否则谁也无法还原。

    由于“摘要”算法加密的数据仅能作为一种完整性和正确性验证的凭据使用,如果要对整个文档数据进行加密,就不能采用这种“不可逆”的算法

3.2.常用摘要算法有MD5, SHA.1

3.2.1.对称密钥

    此类算法通过一个被称为“密钥”的凭据进行数据加密处理,接收方通过加密时使用的“密钥”字符串进行解密,即双办持有的“密钥”相同(对称)。如果接收方不能提供正确的“密钥”,解密出来的就不是原来的数据了。

    通过定期在通信网络的源端和目的端同时改用新的密钥,便能更进一步提高数据的保密性

    常用算法:DESRC2RC4RC5



 
3.2.2.非对称密钥

    非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。 

    常用算法:RSA



 

 

4如何实现签名和加密

1)信息发送方将要发送的信息通过信息摘要方法产生一个信息摘要,并对信息摘要用自己的私钥进行加密,形成数字签名,然后将其附在要发送信息的后面。

2)信息发送方将文件(信息和数字签名)用随机生成的对称密钥加密

3)信息发送方再用信息接收方的公钥对对称密钥进行加密后通过网络发送给信息接收方。 

4)信息接收方对收到的对称密钥用自己的私钥进行解密。 

5)信息接收方用得到对称密钥对文件(信息和数字签名)进行解密

6)信息接收方用发送方的公钥对数字签名进行解密得到信息摘要,同时对收到的信息再用相同的信息摘要方法产生一个信息摘要。 

7)信息接收方将解密后的信息摘要与重新产生的信息摘要进行比较。如果二者一致,说明信息在传输过程中没有改变;如果不一致,说明该信息在传输过程中已被人篡改过。



 

 

5PKI公钥组织

如何确认公钥的身份即对应的对象

    PKI 是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。

PKI 的核心组成部分CA( Certification Authority),即认证中心,它是数字证书的签发机构。数字证书,有时被称为数字身份证,是一个符合一定格式的电子文件,用来识别电子证书持有者的真实身份。 
    就象公安局发放的身份证一样,认证中心发放一个叫"数字证书"的身份证明。 
    这个数字证书包含了用户身份的部分信息及用户所持有的公钥。象公安局对身份证盖章一样,认证中心利用本身的私钥为数字证书加上数字签名。任何想发放自己公钥的用户,可以去认证中心申请自己的证书。认证中心在鉴定该人的真实身份后,颁发包含用户公钥的数字证书。其他用户只要能验证证书是真实的,并且信任颁发证书的认证中心,就可以确认用户的公钥。

根证书

根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。

    从技术上讲,证书其实包含三部分,用户的信息,用户的公钥,还有CA中心对该证书里面的信息的签名,要验证一份证书的真伪(即验证CA中心对该证书信息的签名是否有效),需要用CA 中心的公钥验证,而CA中心的公钥存在于对这份证书进行签名的证书内,故需要下载该证书,但使用该证书验证又需先验证该证书本身的真伪,故又要用签发该证书的证书来验证,这样一来就构成一条证书链的关系,这条证书链在哪里终结呢?答案就是根证书,根证书是一份特殊的证书,它的签发者是它本身,下载根证书就表明您对该根证书以下所签发的证书都表示信任,而技术上则是建立起一个验证证书信息的链条,证书的验证追溯至根证书即为结束。所以说用户在使用自己的数字证书之前必须先下载根证书。



说明

1、如果需要发送加密的文件,需要使用密钥(对称)公钥(非对称)加密

   这样的结果是只有拥有密钥(对称)或者私钥(非对称)的人才能阅读。

2、如果需要在加密的文件上签名,需要和加密文件同时发送签名文件,并用私钥加密签名

   这样的结果是只要拥有公钥的人都能阅读,但只有拥有私钥的人才能修改

3、如果需要保证文件的完整性和正确性,需要使用信息摘要技术,并把该摘要和文件同时加密发送

    这样的结果是可以保证文件在传输过程中可能发生的信息丢失被发现

4、接收者的文件加密公钥和发送者的签名公钥需要有CA颁发的数字证书来证明真伪

    这样的结果是避免发送方收到伪造的公钥并错误的使用其去加密文件或者接收方收到伪造的公钥并用其错误的验证签名的真伪。

  • 大小: 16.8 KB
  • 大小: 7.4 KB
  • 大小: 17.7 KB
  • 大小: 16.3 KB
  • 大小: 16.2 KB
  • 大小: 12.6 KB
  • 大小: 16 KB
  • 大小: 40.9 KB
分享到:
评论

相关推荐

    Web服务加密与签名技术研究

    Web服务加密与签名技术 简单对象访问协议; web服务; Xml Encryption; Xml Ditigal signature;

    数据加密与数字签名系统

    数据加密与数字签名系统,转发非原创,走过路过不要错过。

    webconfige加密解密

    webconfige加密解密webconfige加密解密webconfige加密解密webconfige加密解密webconfige加密解密

    net传值加密技术 web窗体案例

    net传值加密技术 web窗体案例 net传值加密技术 web窗体案例

    加密签名与验签

    该代码实现了如下功能 1)密钥对生成与写文件 2)数据与文件加密 3)数据与文件签名 4)数据与文件验签

    安卓APK资源混淆加密重签名工具1.2.0

    安卓APK资源混淆加密重签名工具,可以对安卓APK文件的代码和资源文件进行混淆加密处理,可以对安卓APK文件进行加固,对代码和资源文件进行混淆,重新签名等功能. 可以保护APK,增加破解难度, 防止APK被篡改,重签名...

    数字签名是非对称密钥加密技术与数字摘要技术的综合应用

    信息技术的发展,大致分为电讯技术的发明,19世纪30年代开始 , 计算机技术的发展,20世纪50年代开始 ,和互联网的使用 20世纪60年代开始三个阶段。...5.数字签名是非对称密钥加密技术与数字摘要技术的综合应用

    安卓APK混淆加密重签名工具1.5.0

    安卓APK资源混淆加密重签名工具,可以对安卓APK文件的代码和资源文件进行混淆加密处理,可以对安卓APK文件进行加固,对代码和资源文件进行混淆,重新签名等功能. 可以保护APK,增加破解难度,防止误报毒等功能. 主要...

    HTML基于Web的数据库加密与密文检索系统源码.zip

    HTML基于Web的数据库加密与密文检索系统源码HTML基于Web的数据库加密与密文检索系统源码HTML基于Web的数据库加密与密文检索系统源码HTML基于Web的数据库加密与密文检索系统源码HTML基于Web的数据库加密与密文检索...

    加密解密签名验签通用工具

    SM2算法可以生成密钥和公钥,支持SM2的签名和验签;AES加密解密,支持各种常用的堆成非对称的加密算法的加密解密和验签

    Microsoft.NET签名和加密(附源码)

    本源码用.NET实现了发送方数字签名、再加密,以及接收方的解密和签名认证过程。 技术文章在:http://blog.csdn.net/lion888/archive/2010/07/11/5727647.aspx 在软件安全领域,经常要用到数字签名和加密功能,在...

    java通信安全 加密 数字签名 消息摘要

    java通信安全主要包括:md5 密码加密与验证 对称加密与解密 非对称加密以解密 基于MD5信息摘要算法实现密码加密与验证 凯撒加密算法 数字签名与验证 消息验证码 消息摘要 所有程序都经过了测试

    PGP加密及签名实验

    PGP加密及签名实验 用于加密文档文件的软件,通过这个实验使我们加密算法有一定的了解

    C#RSA加密解密签名和验证签名的小例子

    C#RSA加密解密签名和验证签名的小例子,代码都加了注释,可以很容易看懂.如果应用到消息收发,发送方用公钥加密,接收方用私钥解密.如果是应用到软件注册方面,则需要客户端保留公钥,程序开发者保留私钥.使用签名和验证...

    论文研究-基于身份的签名和可验证加密签名方案.pdf

    基于提出的方案,构造了一个可证安全的可验证加密签名方案,其不可伪造性依赖于提出的基于身份的签名方案,不透明性依赖于基于身份的签名方案和BLS短签名。与已有方案相比,该方案的优势是基于身份,不需要证书,...

    java web 项目打包、加密工具

    要想彻底保护您的项目不被反编译、破解,最大限度保护您的知识产权和劳动成果,保护您的产品不被轻易的模仿和盗版,对项目进行真正意义的加密才是保护之道。 Jinstall打包工具通过对class文件进行256位高强度加密...

    易语言实现多种加密签名方法

    实现多种加密,签名方法,包括各种md5,sha,md4,加密包括ads,des,hmac等

    Web虎-python软件加密保护-Windows专用软加密版-永久免费版本

    软件介绍:《Web虎-python软件加密保护-Windows专用软加密版》推出永久免费版本,最适合通过互联网快速+大面积推广自己产品的用户朋友们,把源码/文件加密后,发布到互联网上做免费下载,使用。不需版权保护,提供...

    各种加密签名工具合集

    AES加密,SHA1校验,等工具合集,保存下来,留验证代码使用

Global site tag (gtag.js) - Google Analytics