签署文件的人和核验文件的人,在同一套系统里
本模块一次性搭好四条签署路径:使用智能卡或 USB 令牌的合格电子签名、基于 GSM 号码的移动签名、在屏幕上手绘的手写签名,以及从文件上传的手写签名图像。每一份已签署文件都会写入台账,并可凭验证码回查。
- 签名密钥不会进入浏览器合格签名通过运行在用户自己电脑上的本地签名服务完成。卡片 PIN 码与私钥绝不离开设备;只有已签署的成果会送往服务器端。
- 签名记录与文件绑定每一次签署事件都会写入台账,包含签署人、文件标题、文件类型、签名类型、签署时间、文件的 SHA-256 摘要以及一个 16 位验证码。
支持的签名类型
下面四种在模块中各自是一个独立标签页。不在此列的签名类型,本模块并不存在。
合格电子签名
使用智能卡或 USB 令牌签署。本地签名服务查找设备、读取证书、校验 PIN 码并生成已签署成果;摘要算法为 SHA-256。
移动签名
通过绑定 GSM 号码的移动签名基础设施签署。先查询该号码的开通状态,随后签署请求推送到手机,等待批准期间持续轮询该笔交易。
手绘手写签名
用鼠标、手写笔或触摸屏在画布上手绘的签名。可选择笔色,可清除重画;结果以 PNG 保存为该用户的默认签名。
上传手写签名
从文件上传已有的签名图像。支持 PNG 与 JPEG,最大 5 MB;图像会在服务器端缩放至 600×200 范围内并转换为 PNG。
签名格式
格式按被签文件的类型选定;模块通过查看扩展名自动挑选正确的一种。
| 格式 | 适用于哪类文件 | 如何选定 |
|---|---|---|
| PAdES-BES | PDF 文件 | 扩展名为 .pdf 时自动选用;导出的报告以该格式签署。 |
| XAdES-BES | XML 文件 | 扩展名为 .xml 时自动选用。 |
| CAdES-BES | 其他文件类型 | 除 PDF 与 XML 之外所有文件的默认格式。 |
三种格式的摘要算法都是 SHA-256。已签署的成果作为独立文件与被签文件一并下载;源文件不会被改动。
合格电子签名流程
六个步骤各自在界面上呈现为一种状态;用户能看清正在等待哪一步、卡在了哪里。
- 服务检测先检测网络连接,再探测电脑上运行的本地签名服务。若服务未运行,界面会同时给出启动链接和重试按钮。
- 设备扫描列出已连接的智能卡读卡器与 USB 令牌。没有设备时提示插入卡片;有多台设备时可在其间切换。
- 读取证书读取所选设备的证书;证书持有人、身份证件号码、签发机构、有效期区间与设备型号会显示在界面上。
- PIN 校验PIN 码只能是数字,最长 8 位,且不能粘贴进输入框。Caps Lock 开启时会有提示;如有需要,可让已输入的内容可见。
- 签署进度条显示三个阶段:校验 PIN、签署、完成。签署请求最长等待 30 秒,超时未返回结果即报错。
- 结果与记录生成已签署的成果,并把本次签署事件写入台账。首次签署后,系统会询问是否把 PIN 码与该设备绑定保存;您可以拒绝。
移动签名流程
移动签名以异步方式工作:发出请求,在手机上批准,系统则通过轮询等待结果。
- 开通状态查询先查询所填号码是否已开通移动签名。若未开通,流程在开始前就停止,并在界面上写明原因。
- 签署请求请求连同将显示在手机上的说明文字一并发送;用户在自己的屏幕上看清正在批准哪份文件。
- 交易编号请求被异步受理后会返回一个交易编号,界面随即进入"等待手机批准"状态。
- 状态轮询每 3 秒查询一次结果,最长等待 90 秒。超时后该笔操作以超时结束,须重新发起。
- 结果三种结果分别处理:已签署、用户取消、超时。签署 PDF 时,签名会嵌入文件并生成一份已签署副本。
现场会遇到的情形
本模块的设计前提是:签署很少一次成功;下面八种情形逐一作了处理。
保存 PIN 码
在用户同意的前提下,PIN 码会与设备序列号绑定保存。下次签署时该字段不再为空;已保存的 PIN 码可一步删除。
PIN 码错误
输入错误的 PIN 码时,提示会连同剩余尝试次数一并显示;到最后一次尝试时,提示会更加醒目。
卡片锁定
PIN 码被锁定时,界面进入警告状态,重试按钮禁用,并说明如何解锁该卡。
Caps Lock 提示
Caps Lock 处于开启状态时,PIN 输入框旁会出现警告图标和简短说明;在浪费一次尝试之前就先避免输错。
卡片被拔出
每 5 秒探测一次已连接设备。若操作过程中卡片被拔出,界面会退回设备扫描并说明连接已断开。
第二标签页锁定
若同一浏览器的第二个标签页也开始签署,另一个标签页会被锁定;避免同一台设备同时应对两个请求。
证书即将到期
证书到期前不足 30 天时发出提醒,不足 7 天或已到期时发出严重警告;证书过期后无法进入签署。
设备临时性错误
遇到卡片会话中断等临时性错误时,系统会自动重试两次,不向用户报错。若错误仍然存在,则连同错误码一并写明。
签署台账与验证
已签署文件下载之后,谁在何时签了什么,依然可以查询。
- 台账记录每一次签署事件都会连同签署用户、所属机构、文件类型、文件标题、签名类型、签署时间、IP 地址与浏览器信息一并写入。
- 文件摘要记录文件的 SHA-256 摘要;用同一摘要查询时,就能找到该文件所属的签名记录。
- 验证码每条记录生成一个分四段、共 16 位的验证码;码中不使用容易混淆的字母和数字。
- 扫二维码验证导出的文件上会打印一个带验证地址的二维码;扫码即可查询该记录是否有效。
- 台账列表签名记录可按文件类型、签名类型与用户筛选;也可按文件标题和验证码检索。
用电子签名登录
同一套基础设施既用于文件签署,也用于身份认证。
凭证书登录
从签名证书中提取的身份证件号码或电子邮箱会与用户记录比对;比对不上就不会建立会话。
凭移动签名登录
登录请求会推送到手机,批准后会话即建立;若请求未被签署或被取消,登录即被拒绝。
会话 Cookie
验证结束后,会话令牌以仅服务器可读的 Cookie 形式签发,并在有限时间内有效。
常见问题
关于签名类型、环境准备与验证,最常被问到的五个问题。