产品与需求
卓安Claw 电子签适配层设计 v0.1
本页目录
版本:v0.1(草案)
日期:2026-11-06
适用范围:内部审批签署、对外合同/委托书签署、CA 厂商适配、证据链
依据:《业务流蓝图 v0.1》《接口清单 v0.1》《待确认事项总表 v0.1》
状态:需求/设计草案,不改代码
0. 结论摘要
- 自研签署流程和证据链,不自研 CA 信任根。
- 内部审批(用章/报销/采购/费用/个人账发款):自研账号 + 企业微信确认 + 哈希 + 时间戳 + 审计即可。
- 对外合同/委托书:接有资质的 CA/电子签厂商(e签宝、法大大、上上签等),做厂商无关适配层。
- V1 厂商未就位时,走“线下签署 + 扫描上传 + 登记”,不阻塞业务。
- 哪些文件必须纸质原件,由卓安法务出清单;系统保留“纸质原件已收”登记。
- 可靠电子签名的法律边界要在合同/产品说明里写清楚,不能把“点一下确认”宣传成可靠电子签名。
1. 法律边界
《电子签名法》第 13 条的可靠电子签名,核心是:
- 签名制作数据用于签名时,属于签名人专有;
- 签署时,签名制作数据仅由签名人控制;
- 签署后,对签名的任何改动能够被发现;
- 签署后,对数据电文内容和形式的任何改动能够被发现。
结论: - 自研可以做“签署流程、身份确认、哈希、时间戳、证据链、审计”; - 但“专有控制”和“可信身份”最好由 CA 证书/可信时间戳锚定; - 对外合同不要用“自研点选签名”替代可靠电子签名; - 具体哪些文件可电子签、哪些必须纸质,由卓安法务确认。
2. 范围
2.1 V1 范围内
- 内部审批签署(用章/报销/采购/费用/个人账发款)。
- 对外合同/委托书/授权委托书的厂商签署流程(厂商就位后)。
- 线下签署登记 + 扫描件上传。
- 证据链:哈希、时间戳、签署人、IP/设备、审计。
- 与案件、合同、归档打通。
2.2 范围外
- 自建 CA。
- 自建可信时间戳服务。
- 法院/仲裁机构的电子提交。
- 公章电子化的物理制作。
3. 架构
业务页面(合同/审批)
│
[SignService 签署服务]
├─ EnvelopeService 信封/签署顺序
├─ IdentityService 身份校验(企业微信 + 短信/人脸,按厂商)
├─ ProviderAdapter 厂商适配
│ ├─ VendorA Adapter
│ ├─ VendorB Adapter
│ └─ Offline Adapter(线下登记)
├─ EvidenceService 证据链(哈希/时间戳/存证)
└─ CallbackService 回调/验签
│
[Document/OSS] + [AuditLog]
3.1 适配层接口
| 方法 | 用途 |
|---|---|
createEnvelope |
创建签署信封(文件、签署人、顺序、截止) |
addSigner |
添加签署人(姓名、手机、企业微信、身份信息) |
send |
发送签署 |
getStatus |
查询状态 |
downloadEvidence |
下载存证/签署报告 |
verify |
验签 |
cancel |
取消 |
handleCallback |
处理厂商回调 |
3.2 厂商无关原则
- 业务层只依赖
ESignProvider接口,不直接调厂商 SDK。 - 厂商字段映射在 Adapter 内完成。
- 回调统一转成内部事件
esign.completed/esign.rejected。 - 换厂商只改 Adapter,不改业务页面/合同流程。
4. 数据模型
| 对象 | 关键字段 | 说明 |
|---|---|---|
| Envelope | id, contract_id, case_id, status, provider, created_by | 签署信封 |
| Signer | id, envelope_id, name, phone, wecom_userid, role, order, status | 签署人 |
| Signature | id, signer_id, signed_at, ip, device, cert_serial, hash | 签名记录 |
| Evidence | id, envelope_id, file_id, sha256, timestamp, provider_evidence_id | 证据链 |
| Certificate | id, provider, subject, serial, valid_from, valid_to | 证书信息 |
| SignEvent | id, envelope_id, event, at, payload | 事件日志 |
状态机:
草稿 → 待发送 → 签署中 → 已完成 → 已归档
异常:已拒绝 / 已过期 / 已取消 / 验签失败
5. 签署流程
5.1 对外合同(厂商)
- 业务选择合同/模板,生成 PDF。
- 创建 Envelope,添加签署人(客户/律师/律所盖章人)。
- 身份校验(厂商能力:短信/人脸/企业微信)。
- 按顺序签署;每次签署写 Signature/Evidence。
- 厂商回调;验签;状态更新。
- 下载存证/签署报告;归档到案件/合同。
- 审计:谁发起、谁签、何时、什么设备、什么证书。
5.2 内部审批(自研)
- 审批单提交,附文件。
- 审批人企业微信确认 + 短信/密码二次确认(按安全等级)。
- 记录哈希、时间戳、审批人、IP/设备。
- 审批通过后生成带水印 PDF;归档。
- 审计可回放。
5.3 线下签署(兜底)
- 上传签字/盖章扫描件。
- 登记:签署人、日期、地点、原件份数、保管人。
- 标记“纸质原件已收/未收”。
- 归档;审计。
6. 厂商准入清单
| 项 | 要求 |
|---|---|
| 资质 | CA 机构/电子认证服务许可;可靠电子签名能力 |
| 能力 | 实名认证、证书、可信时间戳、存证、验签、API/SDK |
| 集成 | 企业微信/小程序;回调;批量签署 |
| 数据 | 境内存储;数据委托协议;删除/导出 |
| 合规 | 等保、ISO 27001、隐私政策 |
| SLA | 可用性、响应、故障赔付 |
| 商务 | 按份/按年/按席位;发票;试用 |
| 退出 | 存证可导出;换厂商可迁移 |
7. 安全与审计
- 文件哈希 SHA-256;签署前后哈希比对。
- 时间戳由厂商/可信时间源提供。
- 证书序列号、签署人、IP、设备、时间入审计。
- 下载水印;批量下载审批。
- 证据链只追加,不修改。
- 厂商回调验签;防重放(nonce/时间窗)。
- 密钥/证书不落前端;服务端保管。
8. V1 范围与降级
| 场景 | V1 |
|---|---|
| 内部审批签署 | 自研(企业微信确认 + 哈希 + 时间戳 + 审计) |
| 对外合同 | 厂商(就位后);未就位走线下登记 |
| 委托书/授权书 | 优先纸质原件;电子签需法务确认 |
| 法院提交材料 | 按法院要求,不强制电子签 |
| 证据保全 | 厂商存证 + 本地哈希/归档 |
9. 验收用例
| 编号 | 用例 | 期望 |
|---|---|---|
| ES-01 | 创建信封并发送 | 签署人收到通知 |
| ES-02 | 签署人身份校验失败 | 不能签署;记录原因 |
| ES-03 | 签署完成回调 | 状态更新;证据可下载 |
| ES-04 | 文件被篡改 | 验签失败;告警 |
| ES-05 | 重复回调 | 幂等;不重复归档 |
| ES-06 | 厂商不可用 | 降级线下登记;不阻塞 |
| ES-07 | 内部审批签署 | 审批人/时间/哈希可回放 |
| ES-08 | 换厂商 | 只换 Adapter;业务无感 |
10. TBD
| ID | 事项 | 级别 |
|---|---|---|
| E-04 | CA/电子签厂商 | B1 |
| E-05 | 哪些文件必须纸质原件 | B1 |
| — | 厂商报价/按份计费 | B1 |
| — | 是否支持企业微信原生签署 | B2 |
| — | 存证保留年限 | B2 |
本文为设计草案,不构成法律意见;电子签合规性由卓安法务/合规最终确认。