科技的发展,我们越来越多的接触电子合同,比如金融借贷合同、员工劳务合同等。当我们拿到一个电子合同的时候,怎么判断这个合同是否真实有效呢?
其中核心条款包括
第⼗三条 电⼦签名同时符合下列条件的,视为可靠的电⼦签名:
(⼀)电⼦签名制作数据⽤于电⼦签名时,属于电⼦签名⼈专有;
(⼆)签署时电⼦签名制作数据仅由电⼦签名⼈控制;
(三)签署后对电⼦签名的任何改动能够被发现;
(四)签署后对数据电⽂内容和形式的任何改动能够被发现。
当事⼈也可以选择使⽤符合其约定的可靠条件的电⼦签名。
第⼆⼗⼋条 电⼦签名⼈或者电⼦签名依赖⽅因依据电⼦认证服务提供者提供的电⼦签名认证
服务从事⺠事活动遭受损失,电⼦认证服务提供者不能证明⾃⼰⽆过错的,承担赔偿责任。
第三⼗⼆条 伪造、冒⽤、盗⽤他⼈的电⼦签名,构成犯罪的,依法追究刑事责任;给他⼈造成损失的,依法承担⺠事责任。
5.2.3.9 时间戳服务
CA 提供时间戳服务的,时间戳服务应遵循 GB/T 20520 2006 的要求。
6.4.6 数字签名时间戳要求
对于时间敏感且业务双方认为需要采用可信时间标识的业务:
a) 各机构应向电子认证系统申请对“交易行为”加盖时间戳;
b) 时间戳数据可嵌入到 数字签名 中,或单独分离出来保存。
《GB/T 20520-2006信息安全技术 公钥基础设施 时间戳规范》
5 时间戳系统的组成
时间戳系统至少要包括三个部分:
a) 可信时间源:即TSA的时间来源,TSA系统中的所有部件的时间都应以这个可信时间源作为标准,
尤其在颁发的时间戳中填写的时间应严格按照可信时间源填写。而作为可信时间源自身,
其或者就是国家权威时间部门发布的时间,或者是用国家权威时间部门认可的硬件和方法获得的时间。
此外,TSA应估算从可信时间源到TSA的时间传递过程中可能出现的误差,TSA应公布最大可能误差
作为其可信程度的一个标志。
b) 签名系统:负责接收时间戳请求,验证申请合法性以及产生和颁发时间戳,最后将时间戳存储到数据库中。
这个过程中,申请消息和颁发时间戳格式都要符合第8章所规定的格式,而时间戳的产生和颁发应符合
第6章给出的要求。
c) 时间戳数据库:负责保存TSA系统颁发的时间戳,而且应定期备份。对时间戳数据库的存储、
备份和检索应符合第7章给出的规定。
6 时间戳的产生和颁发
6.2 可信时间的产生方法
可信时间的最初源头应来源于国家权威时间部门(如国家授时中心),或者使用国家权威时间部门认可的
硬件和方法获得的时间。
可以使用以下的一种或多种方法获得时间:
a) 使用某种无线接收装置,通过无线手段获得国家权威时间部门的时间发布,如长波信号、卫星信号等。
b) 使用某种时间同步协议从一个指定的网络地址获得时间。该网络地址发布的时间和使用的时间同步协议
都应是可信的,且通过了国家权威时间部门的认可。
c) 使用某种通过国家权威时间部门认证的硬件获得时间,如使用原子钟等。
密码算法专业性比较强,这篇文章里面不细说。
简单描述说,技术上存在两套密码体系:国际算法和国密算法。国密算法由国家密码局发布,国内正在逐渐推广;国际算法由美国的安全局发布,是现今全球最通用的商用算法。
数字证书简单理解为包括两部分:身份信息 + 一对密钥。
密钥包括公钥和私钥;公钥是跟随证书公开分发的,任何人都能看到;私钥只能自己保存。
用户用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
本文查看使用国际算法的电子合同,暂不考虑国密算法;相关软件支持的还不够。通常,国际算法生成的电子合同文档为PDF格式。
针对使用国际算法的电子合同,使用Adobe公司的 Adobe Acrobat Reader可以查看,去官网下载最新版即可。使用Mac电脑的同学,使用系统内置的预览
应用也可打开,不过这个应用不识别PDF中的签名数据,而且签名图片可拖动,容易导致签名数据失效,请谨慎使用。
在我电脑上安装的PDF版本
国内电子合同文档,通常使用的是国内合法CA厂商的数字证书。这些CA公司的证书,操作系统还没有提供缺省支持,需要我们自己手工去CA公司官网下载根证书并导入到本机操作系统中。
具体导入方法可以在网络查询。希望国内的CA厂商可以更努力一些,早日把自己的根证书植入到Mac/Windows的预置受信任根证书列表。
使用PDF Reader打开pdf文件。
打开电子合同后,会看到“签名面板”,打开后可以看到文档中的所有签名。比如这份合同,里面含两个签名信息,属于标准的双方合同。
在左侧的签名上右键,点击 显示签名属性...
下图是一个这个签名数据的展示窗口。注意有效性小结部分,有如下一句 自应用本签名以来,“文档”未被修改
。
查看时间戳证书信息
点击显示证书...
可以查看时间戳服务器的证书信息
签名者证书信息
属性 | 值 | 说明 |
---|---|---|
签名时间 | 2020/12/17 19:50:24 +08‘00’ | |
有效性小结 | 自应用本签名以来,“文档”未被修改 | 有这句话,基本证明签名后文档未被修改 |
时间戳时间 | 2020/12/17 19:50:24 +08‘00’ | 理论上两个时间相同,但也可能存在细微差异 |
属性 | 值 | 说明 |
---|---|---|
主题 | cn=令狐冲ou=residentIdNum:28a96e****c46ec=CN | 不同CA公司的证书主题可能不同。重点是CN项,必须是自己的完整姓名。 |
序列号 | 0700012020073111854949 | 同一个CA公司的证书,序列号不能重复。 |
有效起始日期 | 2020/07/31 15:29:49 +08'00' | 签名时间不能早于这个时刻 |
有效截止日期 | 2021/07/31 15:29:49 +08'00' | 签名时间不能晚于这个时刻 |
公钥 | RSA (2048bit) | 可用该公钥验证数字签名的有效性 |
仅当时签名调用了时间戳服务器时有效;有些签名服务,在签名时没有调用时间戳服务,仅仅使用服务器本地时间。
属性 | 值 | 说明 |
---|---|---|
主题 | cn=??? TimeStamping Signerou=??? Trust Network o=???Service Co., Ltd. c=CN | 不同CA公司的证书主题可能不同。重点是CN项,必须是签发给时间戳服务器的Title |
序列号 | 070001201906250117421 | 同一个CA公司的证书,序列号不能重复。 |
有效起始日期 | 2018/12/24 13:59:43 +08'00' | 时间戳时间不能早于这个时刻 |
有效截止日期 | 2028/12/23 13:59:43 +08'00' | 时间戳时间不能晚于这个时刻 |
公钥 | RSA (2048bit) | 可用该公钥验证时间戳数据的有效性 |
查看到这些信息后,如何判断合同是否可信呢。
回看电子签名法中的第十三条,
(⼀)电⼦签名制作数据⽤于电⼦签名时,属于电⼦签名⼈专有;
(⼆)签署时电⼦签名制作数据仅由电⼦签名⼈控制;
(三)签署后对电⼦签名的任何改动能够被发现;
(四)签署后对数据电⽂内容和形式的任何改动能够被发现。
我们总结一下,如果是自己作为参与方的一个电子合同,判断真伪可以简单分为几个角度:
1. 文档和签名信息被篡改过吗?
2. 数字证书确实是我的吗?
3. 只有我自己才能使用我的证书做签名吗?
4. 签名时间是真实有效的吗?