白话电子签章原理及风险

白话电子签章原理及风险

因为业务需要近来在对接一个线上的电子签章平台, 签完的效果就是在PDF上盖一个红色的章。内部过程沟通中发现,对这个红色章背后的证明逻辑,技术原理,能够了解的比较清楚的人还是很少的。甚至连锅叔自己,对其中的一些细节也感觉有些模糊不清,经常一时想不起,不能对答如流-_-||。

签名证书类的技术博文其实很多, 但有个问题,很多只提技术原理,不提证明逻辑,证明逻辑需要自己去领悟。 于是在这里再回忆梳理下,会着重从证明逻辑来说,补充下其他博主日常省略的部分-_-|| ,做个分享,也顺便备忘。

一、签字画押的逻辑

日常生活中大家应该都有签字,按手印的经验,对签字按手印的意义也十分清楚。就是对签字内容的认可,接受。不接受的合同肯定不能随便签,手印也不能随便按。例如”你欠我几十个W”这种,肯定是不会随便签的。同样我写一个”你欠我几十个W”这样的欠条如果没有你的签字,法官大人是不会认可的,如果我帮你签一个字,笔迹鉴定多半会被识破,我更没有你的指纹。这其中其实就隐含了一个证明逻辑问题。

因为:

  1. 别人的签字,指纹与你的不可能相同

  2. 签字,指纹不可能在纸张上被复制,粘贴

  3. 这张纸上有你的签字,手印

所以:

你本人肯定是接触过这张纸,看过了纸上的内容,签字表示了对内容的认可。

抽象概括下:

  1. 笔迹与指纹是唯一的,并且与签字画押的人是天然绑定的,不可分离的,即可以代表本人

  2. 按的指印,写的签名,与纸张上的其他内容,是绑定的(因为同一张纸上,无法拼接,复制)。 即 签名与内容是绑定的

因此,可能证明笔记指纹所属人,对纸上上内容的认可。

二、一些安全基础

1.非对称加密

一种基于数学原理(不需要怀疑)的算法,生成一对秘钥A,a。特性:

  • A与a 不相同
  • 由A加密的内容,能且只能被a成功解密,反之亦然。
  • 由A不能得出a,反之亦然。

2.数字摘要

一种基于数学原理(不需要怀疑)的算法,对任意长度的内容 A 进行计算后,得出一个固定长度的内容B 。特性:

  • 当A内容发生变化后。用该算法重新计算得出的b,与B一定不同。
  • 由B 不能计算出A

上面两个东西可以理解为客观规律,下面两个是对上面客官规律的利用,用于解决实际问题。

3.数字签名

作用:与纸质签名对应, 期望实现纸张上签字画押的效果。 即证明生物上的一个人,对电子文档内容的认可。

实现逻辑:

  1. 小明自己偷偷的生成一对儿秘钥AB,然就他对其他人说 “我生成了一对非对称秘钥AB,B除了我本人谁都不会知道,打死我,我也不会说”,即B这个秘钥只有小明知道,对于不认识小明的人来说,可以认为掌握秘钥B的人就是小明。

  2. 对电子文档的内容执行 数字摘要算法,得到摘要 H, 这个H 与文档内容即唯一绑定。

  3. 小明使用自己藏好的秘钥B,对上面的摘要结果 H,进行加密,得到了一个秘钥B加密摘要H后的加密摘要 HB. 并把HB附在了文档后面. 代表小明的秘钥B,与代表文档内容的H被关联到了一起。因为只有小明可以用B对H进行加密。所以HB的产生,代表了小明对文档内容认可。

  4. 其他人拿到这个据说是小明”签过字”的文档后,拿出前面小明公开给大家的B的对应秘钥A,用公钥A去解密负载文档后的加密摘要HB, 根据非对称加密的特性。如果能成功解密,则证明该密文一定是A的配对秘钥B加密的,而B只有小明知道,所以这个签名肯定是小明本人签的。

5.小明签字的内容即H对应的内容,其他人会再对文档做一次摘要计算,得到一个当前文档摘要h, 如果解密后的摘要H 与 当前文档内容的摘要h一致则证明,小明用私钥B加密(签名)的内容就是这份文档。 如果h 与 H 不同,根据 数字摘要的特性,证明,文档已经被修改过了。小明签的文件内容不是现在的这一个。

4.数字证书

作用: 笔迹,指纹与其所属的人的关系是不需要证明的,天然一体,无法分离,不可能被盗被抢。但上面说的数字签名的逻辑中,对代表小明的私钥B 与小明并不是无法分割的。在实际生活中,小明签完了,说这个秘钥B,不是我所有的,跟我没关系,这个秘钥对AB是小芳生成持有的, 你们有问题去找小芳去。或者,对于一些不认识小明的人,他们也无法识别,面前的这个小明是不是就是传说中的小明。所以需要有一种机制来固定”秘钥与持有人的关系”。数字证书与公司公章体系对应,拥有公司公章的,就代表公司行为。同样,持有证书中公钥所对应私钥的人,就是向我申请证书的小明——注意与现实中证书,证件含义不同,是持有私钥的,而不是拥有证书的。电子证书是数字形式,是可以任意复制分发的,证书中不含私钥。

实现逻辑:

1: 小明为了广而告之”上面拥有B秘钥的就是小明我本人”,这件事,小明把它的公钥A 和 他的身份证 和钱,户口本提交给了一个全球说了算很有威望的组织。这个组织检查了下材料,确认小明确实是 小明,而且验证了小明确实掌握所提交的公钥A对应的私钥B后,于是给他了一份证明。 证明上说,兹证明, 小明 持有 公钥A 对应的私钥B——有私钥B的就是传说中的小明, 他的身份证户口本我都检查过了。

2:在小明申请证书前,这个全球很有威望的组织,自己也生成一对秘钥对,X/Y. 其中的Y 打死也不跟其他人说,其中的公钥X,通过各种非常可靠的渠道,通知到各国各省各辖区派出所。已经让世界上所有人相信,拥有公钥X对应的私钥Y的人,就是这个全球权威组织。

3:权威组织在给小明生成的证书上,也有他的私钥X结合证书内容摘要H,生成了HX的数字签名。

4:人民群众看到这个证书时,可以像验证小明签名一样验证权威机构的签名。如果验证没问题,那证明,小明拥有A公钥对应的B私钥这件事情,是有一个非常可信的人给他背书的,不需要怀疑——即固定了小明与私钥B的关联。

  • 证书的验证实际情况会涉及多层CA,即证书链。会附有多个证书,依次证明,最顶层的证书是自签名。自己签发给自己。其公钥是通过可靠途径通知给所有人的。证书链的中间证书需要秘钥用途包含 Certificate Signing(证书签发)——权威机构授权的可以签发证书的机构的数字证书。需要验证证书的场景,如浏览器,阅读器,会将顶层的根证书预先放置于程序内。用上一级证书的公钥,验证下一级证书的证书签名。

三、PDF电子签章原理(云签)

白话电子签章原理及风险

pdf 的电子签章,显然那个红色的图形章,只是一个形式,是不具有任何效力的,因为谁都可以做一个图形加上去。背后显然也是依赖于数字签名和证书技术的。但目前的电子签章平台,已经封装的非常高级了。 使用过程中基本不涉及数字签名底层技术,可以对数字签名,数字证书完全无感,但方便的同时,也带来了隐患,后面会讨论。

PDF云签的流程原理:

  1. 百度电子签章,选个电子签章平台进去注册账号,企业实名认证。

—— 平台用你提供的信息,帮你自动去CA 申请了对应的数字证书,私钥保存在了签章平台。

  1. 发起一个签署流程,提供一个待签署 pdf文件 以及 涉及到的签署方的联系人。

—— 上传的pdf 文件会通过短信等方式,引导需要签文件的各方到平台链接,进行签署操作。相关的签署方,都要有相应的数字证书(么有的,在流程中引导认证)。平台使用各签署方私钥对文件内容摘要进行签名。同时将数字证书和加密摘要附在PDF文件的签名区域中。pdf 文件格式是支持数字签名的, 可以保证符合规范的pdf 阅读器,都能正常的显示,校验签署信息。同时,文档上也会加上一个视觉形式上的图章图片。

  1. 取回签署文件,pdf浏览器打开,验证签名。

—— pdf 文件阅读器打开签名文档后对签名及证书进行验证。通过证书证明,签署方的真实身份及确实持有对应公钥。用签署方公钥验证,签署方私钥正确及摘要未修改。

四、电子签章效力风险

从上面的PDF 云签流程中可以看出,整个流程中基本没有体现数字签名的摘要及加密签署过程,都是平台封装完成的。锅叔认为对应的也引入了风险。

1. 数字证书并非由本人直接申请,如果在用户协议中没有很好的约定及取证,在证明用户与证书关联性方面可能存在瑕疵,用户可以否认从未申请过数字证书。

2. 私钥由签章平台生成并保管,理论上可以代表用户随意签署任何文件。私钥不是仅由用户掌握。

《中华人民共和国电子签名法》

第十三条电子签名同时符合下列条件的,视为可靠的电子签名:

(一)电子签名制作数据用于电子签名时,属于电子签名人专有;

(二)签署时电子签名制作数据仅由电子签名人控制;

(三)签署后对电子签名的任何改动能够被发现;

(四)签署后对数据电文内容和形式的任何改动能够被发现。

写到这里,欢迎讨论,指正。 ;-)

Original: https://www.cnblogs.com/uncleguo/p/16542731.html
Author: 锅叔
Title: 白话电子签章原理及风险

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607167/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 百度云虚拟主机BCH安装PHP框架CodeIgniter

    注意:fastcgi_param SCRIPT_FILENAME /home/bae/app/index.php;这一项中的路径,这个百度云虚拟主机的手册有说明。 将该配置文件(b…

    Linux 2023年6月13日
    096
  • CentOS7.6 单用户模式下修改root密码

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    089
  • DDR4 SDRAM -时序参数小册子

    如前所述,大神的原文链接如下:https://www.systemverilog.io/ddr4-timing-parameters-cheatsheet 参数 功能 ACTIVA…

    Linux 2023年6月7日
    093
  • typedef

    为类型定义别名 typedef int Int 这样 Int 就是 int类型的别名,就可以使用 Int来定一整形变量. 只需要在类型变量生命的基础上,再加一个关键字 typede…

    Linux 2023年6月13日
    077
  • LVM逻辑卷与磁盘配额

    一、LVM逻辑卷 1、LVM概述 LVM(Logical Volume Manager,逻辑卷管理)重点在于可以弹性地调整文件系统的容量,需要文件的读写性能或是数据的可靠性,LVM…

    Linux 2023年6月6日
    096
  • Typora 最后免费版本也不能用了?简单一招搞定

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 Typora是一款优秀的 Ma…

    Linux 2023年6月6日
    094
  • Shiro结合Redis实现分布式或集群环境下的Session共享

    本篇是Shiro系列第二篇,使用Shiro基于Redis实现分布式或集群环境下的Session共享。在讲Session共享之前先说一下为什么要做Session共享。 什么是Sess…

    Linux 2023年5月28日
    0114
  • Cookie

    题目如下 打开靶机 根据提示,需要admin登录才能得到flag,题目介绍为Cookie欺骗,认证,伪造 打开burpsuite进行抓包,HTTP数据包是可以修改cookie值的 …

    Linux 2023年6月7日
    072
  • ​Linux知识点总结(内附思维导图,建议收藏)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    096
  • gerrit系统如何配置访问控制

    .版本:v0.3作者:河东西望日期:2022-7-13. gerrit系统的上手使用有两个难点: 想要上手使用gerrit的同仁们,搭建部署好gerrit系统之后,会发现gerri…

    Linux 2023年6月7日
    082
  • 鞍点

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0125
  • 004 Linux 揭开神器 vim 面纱

    01 开篇初识 vim vim 功能吊炸天,但我们掌握一些常用的命令即可应对日常的使用了,不记流水账! Linux 中最常用的编辑器是什么? vim ! vi 跟 vim 啥区别?…

    Linux 2023年5月27日
    096
  • podman对容器映像签名和分发

    熟悉podman 如何使用 Podman 对容器映像进行签名和分发 熟悉podman 此示例容器将运行一个非常基本的 httpd 服务器,该服务器仅为其索引页提供服务 [root@…

    Linux 2023年6月7日
    091
  • [转帖]shell学习之shell执行方式及排错

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年5月28日
    079
  • Wine 运行百度云盘 中文乱码解决;wine中文乱码解决;fedora 34 运行百度网盘;

    今天需要下个 imagenet 的 ILSVRC2012 数据集,找到了网友在百度网盘中分享的下载好的; 但是因为本人使用的是 fedora 34 系统,所以尝试下载 百度网盘 l…

    Linux 2023年6月14日
    093
  • 系列文章分类汇总

    尤娜系列 从前,有一个简单的通道系统叫尤娜…… 尤娜系统的第一次飞行中换引擎的架构垂直拆分改造 四种常用的微服务架构拆分方式 尤娜,我去面试了 专业课回顾 …

    Linux 2023年6月14日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球