制证书、制电子印章、签章 -- 演示程序说明
ofd签章系统涉及证书的制作、电子印章制作、签章、验章等环节。关于ofd签章原理,本人写过多篇文章进行了阐述; 见文章《ofd板式文件 电子签章实现方法》、《一款简单易用的印章设计工具》、《签章那些事 -- 让你全面了解签章的流程》。
为了进一步加深对签章过程的理解,我开发了签章演示程序。本文就介绍该程序的使用。该程序有三个功能:制作x509格式证书、制作电子印章、对ofd文件签章。
1 制作x509格式证书
证书生成过程其实就是颁发者使用私钥,对生成的证书(包含使用者的公钥等信息)做签名。
正常流程,证书是由CA机构颁发的。每个城市基本都有一个CA机构,这些机构的证书是在可信目录列表中的。技术上来讲,CA机构生成证书与本程序生成的证书并无区别。
注:密钥号就对应着一对私钥公钥信息,程序就是根据密钥号查找对应的私钥公钥。这些信息是存储在SignKeyManage.json文件中。
颁发者就是CA机构,其密钥号为860。使用者密钥号为866。就是使用860对应的私钥对证书做签名。证书就包含866密钥号对应的公钥信息。
2 生成印章
电子印章是包含使用者签名信息、证书信息等的文件。电子印章有多个国家标准,本程序使用印章标准如下:
电子印章包含制章者证书、签章者证书、印章图片等信息。这些信息经过制章者私钥签名,就生成了电子印章。
注:制章者对应的密钥号为866,通过该号就能找到其私钥。值章者和签章者可以为同一个人,就是使用同一个证书。
3 签章
签章的目的是为了保护文件的完整性、不可抵赖性。
电子印章有两个作用:1 电子印章中的图片信息,会在ofd文件上显示。2 签章者证书可用于验章。
比如李四.esl,包含李四的证书信息;李四对应的密钥号为866。所以,如果使用李四的印章,就必须使用866对应的私钥对ofd文件签章。
后记:作者对ofd相关技术做了多年研究,写了一系列这方面的文章,编写了大量程序。本程序从技术原理上揭示了签章涉及的流程。虽然只是演示系统,但是与真实系统比较,技术原理是完全一致的。