签章那些事 -- 让你全面了解签章的流程

2023/6/6 14:22:39

本文主要是介绍签章那些事 -- 让你全面了解签章的流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  前言 随着通信、互联网技术的发展,人们接触到的信息纷繁复杂,信息的真真假假让人难以辨认。在严肃性场合,比如电子合同、电子证照等,必须有一种手段确保信息的完整性和真实性,这时签章就派上了用场。

  签章的技术原理并不复杂,签章的基石就是非对称加密算法。但是围绕着签章又衍生出一些列概念,比如证书、电子印章、PKI等,这些概念又对应着一些列国家标准。如果不对这些技术做细致的剖析,总感觉是雾里看花,难以准确把握这些概念,难以对整个签章流程有清晰的认识。

      本文不泛泛而谈概念;而是从实践、具体数据、编程开发等讲起,更加贴近实战的角度入手,这样更容易理解。本人为开发人员,已独立开发了制证书、制电子印章、ofd签章验章、与加密机对接等程序,这些程序都达到商用级别;通过这些程序的开发也加深了我对签章的理解;经过大量的开发,终于从迷雾中走出,再回首,走过的路曲曲折折;希望本文能更好的加深你对签章的理解。

签章基石:非对称加密算法

  常用的非对称加密算法有:RSA、ECC。国标商密算法时SM2,大的范畴属于ECC。

  非对称加密算法会产生一对公钥和私钥。如果对一段数据用公钥加密,私钥解密,这就是加密过程;反之,就是签名。要把这加密和签名这两个概念吃透

加密:我手里有一段明文,我想把这段明文加密发送,并且只能有特定的接受者解密。公钥是公开,私钥只有一个人拥有。如果用公钥加密,只能有私钥拥有者才能查看,这就是加密过程。

签名:我手里有一段明文,用我的私钥对这个明文签名;任何拥有对应公钥的人都可以验证这段明文是我签署的。签名文件是不怕公开,只是需要证明是谁签名的,数据是否完整即可。

我怎么相信这个公钥是你的?

  这里有个术语Public Key Infrastructure(PKI),即公开密钥基础设施;就是解决这个问题的。PKI的主要目的是用来发行“身份证明书”,证书中关键信息就是公钥。证明书的文件构造是一种叫做 X.509 的协议规定的。以下是证书的定义:

   证书包含公钥、证书持有者的一些信息。这个证书是通过权威的CA做签名,确保证书不被伪造。关于认证机关的权威性和可信度的问题,其实是一个社会基础设施建设的话题了。在很多国家认证机关都是由政府在主导建设,常常被视作一个社会性基础设施的一个环节。

   为了便于解释概念,称为刚才的签署的证书为个人证书;下一个问题出现了:我怎么知道这个证书是由权威的CA签署的。其实CA本身也有证书,需要获取CA的证书去验证个人证书的真假。新问题又来了,我怎么知道CA的证书是真实的?这就是鸡生蛋蛋生鸡的问题。最终我们需要从一个可靠的来源获取CA的证书,就认定这个证书是可靠的。

 实体印章盖在证书上就是一个图片,电子印章是啥样?也是一个图片?

   数字签章就是模拟真实的签章的流程和外观。真实印章盖上后,就可以理解为一个图片;如何验证图片的真伪就依赖图形分析,与原始印章对比。电子印章包含:印章图片、签章人证书、制章人证书等信息;所以电子印章不仅仅包含图片,电子印章的真伪验证不依赖图片,而是数字签名

总之:电子印章是图片和其他信息的结合体。

签章实体合同时,有盖章这个动作;对于电子印章,怎么盖章?

  盖章动作对应私钥签名。私钥签名后的数据格式是怎样的,看下图。国家有对应的标准。

 签名后数据包括:电子印章、原文杂凑值等信息。电子印章是包含在签章数据中的;看一个签章后的ofd文件:

  Seal.esl这个文件是可有可无的,因为SignedValue.dat这个文件也包含印章文件。

怎么验章?

  验章必须的三要素:公钥、原文杂凑、签名值;咱看看这三个数据从哪里获取。这三个数据都可以从SignedValue.dat这个文件获取。

  公钥: SignedValue.dat(签章数据)包含 Seal.esl(电子印章),电子印章包含证书,证书包含公钥。

原文杂凑值和签名值

 以上从技术原理上,讲述了签章过程。

如果真的上一套签章系统,流程是怎样的?和谁打交道,买啥设备?

   1 加密机生成和保管私钥:

 2 从加密机导出证书请求文件,发给CA签名,生成证书;

 3 制作电子印章,需要选定制章者和签章者角色。

   需要制章者证书、签章者证书、电子印章制作软件、加密机配合,生成电子印章。

 4 签章

需要输入电子印章、印章位置、待签文件,通过签章软件实现签章。

 后记 本文从原理和实践上,讲述了签章流程。签章基本原理并不复杂,但是签章流程涉及多个环节,为确保每个环节严禁可靠,又衍生出了大量概念。深刻领会这些概念就离不开实践;只有从剖析证书数据、签章后的文件,这些可触摸的数据的入手,才能全面掌握领会签章流程。 



这篇关于签章那些事 -- 让你全面了解签章的流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程