数字签名和数字证书——简单指南

在世界开始数字化之前,它严重依赖签名文件来批准、验证交易和不同类型的协议中的不同方并追究其责任。 数字签名和数字证书是标准签名的现代替代品。 

数字签名比通过邮件发送文件和通过传真发送文件要快得多,它为各种业务提供了帮助。 

什么是数字签名? 

数字签名是对文档发送者的电子验证,它允许接收者确定原始内容是否已被中间人更改。 

私钥和公钥是数字签名的两个基本元素,由专用算法同时创建。 即使它们被创建为在数学上相关,但在外观上它们会有所不同。 

数字签名有三个目的: 

  1. 认证 – 接收者可以确定消息的作者身份并确定发送者是否是他声称的那个人。 
  2. 不可否认 – 发件人不能否认后来发送了消息,并且可以对未更改的消息负责。 
  3. 诚信 – 消息未更改。 

事实上,数字签名在美国、欧盟、瑞士、南非、阿尔及利亚、土耳其、印度、巴西、印度尼西亚、墨西哥、沙特阿拉伯、乌拉圭和智利具有法律价值。 

如何创建数字签名? 

要创建数字签名,您需要使用您的私钥对消息进行签名。  

私钥是这个等式中只有你持有的元素,通过提供它,你可以证明你是签署文件的人。 

首先,您对纯文本进行哈希处理,以记录您将要发送的消息的未更改版本。  

旁注. 散列是将任意长度的特定内容转换为较短的固定长度值。 

如今,最受欢迎的散列算法是 SHA256(安全散列算法)。 请记住,散列是一个单向过程,输入的微小变化会改变整个输出。  

接下来,您使用您的私钥加密纯文本的哈希,这将产生数字签名。 

您将数字签名附加到纯文本文档并发送。 

通过 非对称加密,接收方将能够解密您的数字签名,并将纯文本的哈希值与您提供的哈希值进行比较。  

因此,您可能想知道如何散列文档。 幸运的是,您计算机上的程序会自动为您执行此操作。  

这是在 Windows 7/8/10 上生成文档哈希的方法: 

  1. 访问“命令提示符”;  
  2. 输入“certutil – hashfile” 
  3. 将文档拖放到“命令提示符”中。 
  4. 在行尾添加“SHA256”。 

您的最后一行应如下所示: 

certutil -hashfile “C:\User\Computer\Desktop\File.docx” SHA256 

通过这样做,控制台将显示代表文件内容的 256 位 / 64 十六进制字符代码。 

但是你从哪里得到一个私钥和一个公钥? 

这也很简单。  

您可以通过软件、在线平台或通过在证书颁发机构注册的公钥基础设施 (PKI) 生成它们。 

边注。 PKI 是一种公认​​的管理公钥加密的格式,提供最高级别的安全性和普遍接受性。  

那么,如何在文档中添加带有私钥的数字签名呢? 

为此,您必须再次使用专用软件,例如 Sign Server、Safe pdf 或 DocuSign。 

它有什么帮助? 

让我们假设一个数字签名如何保护您的虚构场景。  

您以数字方式与国外供应商签订外包服务合同。  

在同意条款和条件以及 20 美元/小时的费率后,您对文档进行哈希处理并签名,然后将其发送回提供商。 

问题来了。  

签订的合同需要交给外包公司的经理,但一个贪婪的推销员将费率改为 30 美元/小时,这样他就可以赚取更大的佣金。 到了付钱的时候,你突然发现费率比你约定的要高。 

如何证明文件被篡改?  

经理不知道,但愿意澄清情况。 因此,您要求他使用公钥解密您的签名并检查哈希。 通过这样做,他将能够发现哈希输出中的差异并确定合同已被更改。  

即使经理不愿意合作,你也可以将他们告上法庭,证明你是对的,并追究他们的责任。 

区块链中的数字签名 

比特币的区块链利用 SHA256 算法和数字签名来确保存储在比特币上的信息的不变性 blockchain. 数字签名有助于跟踪交易并防止双重支出。 

交易被视为输入并通过散列算法运行,然后作为具有固定长度的输出返回。 然后将数据添加到块中。 该块还包含一个指向前一个块的哈希指针。  

哈希指针包含前一个块内所有数据的哈希值。 对块中包含的数据的任何轻微修改都会对哈希进行剧烈修改。 修改不仅适用于当前块,还适用于所有先前的块,因此使它们无效。 

什么是数字证书? 

正如您可能已经猜到的那样,制作数字签名并使用它并不复杂。 这正是它的弱点所在。  

恶意方可能会尝试创建数字签名和公钥来伪装成其他人。 如果某人收到这样的数字签名消息并断定该文档是合法的,则该人将受到来自恶意方的信息攻击。  

仅数字签名并不能验证发送者的真实身份和他的公钥,因此缺乏身份验证。 

但是,这个问题可以通过数字证书解决。 数字证书是由证书颁发机构颁发的电子证书。  

认证机构通过 PKI 注册所有者的身份,并验证所有者实际上拥有公钥。 

数字证书通常包含所有者的姓名、公钥、证书颁发机构和数字签名。 这样,从恶意方接收数字签名的风险显着降低。 

如何创建数字证书? 

创建数字证书主要有两种方式: 

  1. 您创建一个自签名证书。 
  2. 您向证书颁发机构 (CA) 请求它。 

1. 自签名证书 

创建自签名证书有多种方法,但要了解该过程,我们将参考自签名 X509 证书。 您可以在 OpenSSL 中自己创建它。 

只需打开命令提示符并输入“openssl”。 

接下来,输入“OpenSSL req -x509 -days 365 -newkey rsa:2048 -keyout my-key.pem -out my-cert.pem”。 

虽然对你们中的一些人来说,这可能看起来像胡言乱语,让我们看看这一切意味着什么: 

  • 'req' 表示它是一个证书请求; 
  • 'x509' 指定证书的类型; 
  • “365”表示有效期的天数; 
  • 'newkey' 表示它将是一个新证书;
  • “Keyout”将成为密钥文件。

之后,您将能够创建私钥并添加标识信息。  

您可以找到分步指南 此处

但是,自签名数字证书仅提供加密,不提供信任。 这样的证书很容易成为黑客的目标。 他们可以复制它并假装是“发行者”并开始网络钓鱼以获取个人信息。 

事实上,使用自签名 SSL 证书的网站会被互联网浏览器标记为“不受信任”。 

2. CA颁发证书 

由证书颁发机构验证的数字证书是更值得信赖和更安全的方法。 它也更容易获得,但它可能意味着收费。  

证书颁发机构通常会收取颁发证书的费用,您可以只申请他们的证书,也可以要求他们处理所有的 PKI。 

如果您需要简单的证书,可以通过电话或电子邮件与他们联系。 他们将验证您的身份,然后给您一个证书,其中应包含公钥、证书颁发机构的标识和用户的标识。 

除了数字认证,您可以要求一些公司处理 PKI、访问令牌和用户、设备和机器的多因素身份验证的所有方面。 

在网站的情况下,证书签名请求是作为网络服务器的命令来的。 

关键精华 

  • 数字签名是对发件人的电子验证。 它依赖于非对称加密,使用私钥加密消息,使用公钥解密。 
  • 消息的内容经过哈希处理以保持完整性。 但是,哈希是一种单向过程,用于验证内容是否未被更改。 
  • 收到的消息用公钥解密,内容的哈希值必须与发送者提供的哈希值相匹配。 否则,接收方有理由相信内容已被更改。 
  • 仅数字签名就缺乏身份验证。 因此,它需要有证书颁发机构颁发的数字证书作为后盾。 

* 本文中的信息和提供的链接仅供一般参考,不应构成任何财务或投资建议。 我们建议您在做出财务决定之前进行自己的研究或咨询专业人士。 请确认,对于因本网站上的任何信息而造成的任何损失,我们概不负责。

来源:https://coindoo.com/digital-signature/