数字签名

作者: 时海观察者 | 来源:发表于2018-12-12 18:57 被阅读6次

简介

数字签名技术结合Hash算法和加密算法,来防止消息被篡改和进行身份认证。

消息认证码

消息认证码(Hash-based Message Authentication Code,HMAC),利用对称加密,对消息的完整性进行保护和身份认证。

基本过程如下:

  1. 通讯的双方事先约定好Hash算法、对称加密算法以及共享秘钥;
  2. 发送方在发送消息前对消息先应用Hash算法计算其指纹摘要,然后使用对称加密技术对数字摘要进行加密,生成的密文就是消息认证码;
  3. 接收方在收到消息后,对消息认证码进行解密并与计算出的消息摘要进行比对,来确认消息未被篡改并且来自共享秘钥的发送方。

消息认证码可以实现简单的身份认证,其安全问题主要在于需要事先共享秘钥(可能发生秘钥泄露),并且当多方共享秘钥时,无法追踪消息的真实来源。

数字签名

数字签名使用非对称加密,保护数据的完整性和追踪消息的来源。

基本过程如下:

  1. 发送方生成非对称加密算法的公钥和私钥对,并公布其公钥和签名算法(例如sha256WithRSAEncryption);
  2. 发送方对发送的消息先计算其数字摘要,然后使用私钥对摘要进行加密,生成数字签名;
  3. 接收方在接收到声称来自XXX的消息时,先去查询XXX的公布的公钥和签名算法;
  4. 接收方使用公钥对数字签名解密并与计算出的数字摘要进行比对,如果比对一致,那么消息来自于XXX并且未被篡改。

上述过程的安全前提基于以下两点:

  • 发送方的签名算法无法被破解,且私钥未发生泄露
  • 接收方查询的公钥以及签名算法属实

上述的第二个安全前提就是数字证书与PKI体系的由来,如何管理和分发公钥。

多重签名

多重签名(Multiple Signature),即 n 个签名者中,收集到至少 m 个(n >= m >= 1)的签名,即认为合法。

其中,n 是提供的公钥个数,m 是需要匹配公钥的最少的签名个数。

多重签名可以有效地被应用在多人投票共同决策的场景中。例如比特币系统中,利用多重签名来实现多个人共同管理某个账户的比特币交易;在Fabric中使用多重签名来对某个事务进行背书。

安全性

目前常见的数字签名算法需要选取合适的随机数作为配置参数,配置参数不合理的使用或泄露都会造成安全漏洞和风险。

切记一定不要使用自己写的代码或使用编程语言内建的简易随机数生成器来获得一个随机数。建议使用密码学安全的伪随机数生成器(CSPRNG),并且需要有一个来自具有足够熵值的源的种子。使用随机数发生器的程序库时,需仔细研读其文档,以确保它是加密安全的。对CSPRNG的正确实现是密钥安全性的关键所在。

相关文章

  • IOS 逆向开发(三)应用签名

    @[TOC](IOS 逆向开发(三)应用签名) 1. 数字签名 什么是数字签名? 数字签名(digitally s...

  • 008——逆向之APP重签名

    前言在先了解APP重签名之前我们先来了解一下数字签名 数字签名 数字签名过程中,就是利用了RSA加密来进行数字签名...

  • 数字签名和数字证书

    数字签名 数字签名是什么?--阮一峰数字签名--百度百科 数字签名的流程 用哈希函数先对报文生成摘要 用私钥对摘要...

  • 数字签名与数字证书

    一、数字签名 数字签名的主要技术是非对称密钥加密技术。数字签名并不能保证信息在传输过程中不被截获。 1.数字签名技...

  • 密码学相关概念总结

    数字签名 数字签名(又称公钥数字签名,英语:Digital Signature) 发送报文时,发送方用一个哈希函数...

  • iOS逆向-应用签名原理(Ⅲ)

    数字签名(digitally signed) 概念数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名/...

  • 数字签名

    数字签名的概念 1.所谓数字签名(Digital Signature)(又称公开秘钥数字签名、电子签名) 是一种类...

  • Https 编程

    目录 数字签名 数字证书 Https 编程 数字签名 数字签名是非对称加密与数字摘要的组合应用 应用场景 校验用户...

  • 区块链开发——数字签名扩展 #C02

    本篇为资料整理 数字签名算法 常见的数字签名算法主要有RSA、DSA、ECDSA三种。 RSA数字签名算法 RSA...

  • Python RSA数字签名实践

    之前讲到RSA可以用来加密和数字签名,这里是RSA用作数字签名。Python的pycrypto库实现的数字签名有一...

网友评论

    本文标题:数字签名

    本文链接:https://www.haomeiwen.com/subject/eyephqtx.html