前引
事件 1:
很久以前,和一位做工程投标的朋友聊天,不经意间,朋友和我谈起,投标工作压力很大,曾经就碰到过因为 CA 驱动安装的问题,导致解密超时进而失去评标资格,至今难以忘怀,并告之我,现在电子标书,各种 CA、软件工具、驱动,一定要提前测试,盖章、上传、解密。
事件 2:
在日常电子加密标书维护中,发现竟然有极少数的供应商在开标的前 1小时内,才开始上传电子加密标书,说到这里,不禁有小伙伴要问,为什么会有供应商会冒着极大的风险,在极短的时间内,才开始上传电子标书呢?其实原因很简单,供应商认为,一旦电子标书上传至三方运营平台,电子标书不再安全,其本质是平台信任的问题;
事件 3:
曾经和一位做技术的朋友,探讨过电子标书加解密的系统架构,这位朋友认为,电子标书解密必然要使用到密钥,有密钥必然产生安全隐患,万一平台愉愉私藏了密钥或密钥被非法窃取了,会对电子标书的安全性产生了威胁,进而影响评标的公平性;
基于上述身边真实事件,我会从电子加密标书的安全性,及解密时系统高可靠性,这两方面浅谈电子标书加解密那些事,用文字的力量大声告诉大家:政采云平台是一个值得信任的平台,有足够的安全机制,保障电子加密标书安全性,以及有足够的技术力量保障解密时系统的高稳定性;
1 加密及解密流程解析
在解说电子标书加解密之前,我们先了解一下电子标书加解密流程,以及在流程中遇到的一些名词。
1.1 名词解释
- 电子投标客户端:是指电子开标项目中,投标单位制作电子投标文件使用的软件,其功能主要满足投标单位可以按照招标文件的各项要求,方便快捷的完成投标文件的编制、加密等操作;
- 电子标书:是指与纸制标书具有同等功能和法律效力的标书电子文件;
- 供应商:是指向采购人提供货物、工程或者服务的法人、其他组织或者自然人,在电子开标项目中,其角色为投标单位。
- 采购代理机构:政府采购活动中根据采购人的委托代理政府采购事宜的机构,包括集中采购机构和集中采购机构以外的采购代理机构。
- 三方 CA 认证机构:依据《中华人民共和国电子签名法》,依法设立的电子认证服务机构,颁发用以代表企业或个人网上法律身份并用以实施电子签名的法律工具,其颁发的 CA 工具,相当于企业的身份证和企业的公章;
- CA 锁(数字证书及电子签章):将 CA 锁插入电脑即可进行标书加密、上传、解密等操作,其中,CA 数字证书可以为招投标双方安全通信提供电子认证,使用电子签章可以从法律和技术上保障电子招投标文件的真实性和完整性,能够实现身份识别和电子信息加密,通过验证识别信息的真伪来实现对证书持有者身份的认证。
- 加密:数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
- 解密:加密逆过程为解密,即将该编码信息转化为其原来数据的过程。
1.2 流程节点
- 制作电子标书:供应商在政采云电子投标客户端,按照电子标书规范和流程制作电子标书,制作过程包含 CA 加密、CA 预解密、打包生成特定内容格式和规范的电子标书;
- 上传电子标书:供应商在政府采购云平台,将电子标书上传至云平台文件服务器,上传过程会进行标书解压,并进行标书签名、信封、版本、mac、项目更正处理等校验;
- 开启解密:在供应商标书执行解密动作前,需要代理机构手动开启标书解密,或在解密时间到了之前设置自动开启解密;
- 标书解密:在进行电子评标前,需要供应商签到并进行标书解密;标书解密过程包含 CA 解密、标书文件解析、相关数据落库等多项操作,为下一步的电子评标提供数据支持。
2 电子标书加密和解密
2.1 如何对电子标书进行加密和解密?
| 加解密类型 | 优点 | 缺点 |
|---|---|---|
| 招标人和投标人联合密钥加密和解密 | 各方信任度高 | 参与操作解密的主体增多,解密失败的风险相对较高。 |
| 平台运营机构密钥加密和解密 | 不存在投标人操作不当造成加密和解密失败而影响开标顺利进行的风险 | 容易出现平台运营机构失误和对其不信任的风险;因为信任问题,为了标书保密会在临近投标截止前才上传投标文件,从而导致交易平台系统压力大,拥堵等,无法完全保证开标前文件被解密。 |
| 投标人密钥加密和解密 | 投标人更放心,不存在对交易平台运营机构失误和是否信任的问题 | 通常解密失败,和投标人自身原因有关,如忘记解密操作或电脑出问题、CA 故障损坏导致等。 |
目前主流的电子招投标系统,网上开标时标书解密方式主要是:插入硬件 CA + 密码信封解密,对比上述三种加解密类型,其本质是投标人密钥加密和解密,硬件 CA 充当了密钥角色;在这种模式下面,硬件 CA 锁由供应商自己保管,密码信封由平台运营机构保管,只有 CA 锁+密码信封+电子加密标书上,三者结合起来,方可成功解密出电子标书;其中密码信封,是在 CA 环境下,根据电子加密标书生成的,一个密码信封唯一对应着一个电子加密标书;
从加密和解密流程解析图中,我们得知,电子标书生成后,从加密到解密,至少要经过如下三个阶段:
- 在制作电子加密标书阶段,插上 CA 锁加密电子标书的同时,会生成一个唯一的密码信封,该密码信封和 CA 锁、加密电子标书绑定;
- 在上传电子加密标书阶段,将加密电子标书及密码信封,上传到平台运营机构进行管理;
- 在解密电子加密标书阶段,插上 CA 锁,输入 CA 锁 PIN 码,这个时候,解密端向平台发出获取电子标书解密信封指令;解密端得到解密信封后,在 CA 锁环境下面,根据解密信封,本地实时计算得到电子标书解密密钥;投标客户端携带电子标书解密密钥,再次向平台运营机构发起解密指令。
2.2 关于密码信封
电子标书密码信封,是在 CA 锁驱动环境下,加密电子标书时的产物,同一个电子标书加密多次,产生的密码信封是不一样的;这里,我们要强调的是,密码信封不是解密电子加密标书的密钥,即使密码信封被非法盗取了,也是解密不了电子加密标书的;只有 CA 锁的持用者在电脑上插上 CA,并正确安装 CA 驱动,根据加密信封,才能实时生成电子标书解密密钥。
2.3 这是谣言
从制作、上传和解密电子标书流程中,我们可以看出,在硬件 CA+密码信封解密模式下,平台并没有私藏密钥一说,真正的密钥(硬件 CA 锁)一直在供应商手里;平台偷偷私藏密钥或密钥被非法窃取会对电子标书的安全性产生威胁,进而影响评标的公平性,这种说法,纯属猜想或谣言。
3 解密服务架构
软件可靠性 (software reliability )是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。
3.1 电子加密标书大小
电子加密标书,是一个电子文件,除了它是加密的,最令我们印象深刻的,莫过于其文件大小,绝大多数电子标书都在 500M 以内,电子标书与我们日常处理的文件相比,确实属于大文件了。
3.2 解密服务架构,需要考虑的因素
- CPU 资源:众所周知,解密属于典型的 CPU 密集型操作,解密过程所消耗的 CPU 资源是非常惊人的;
- 内存资源:如此大的电子加密标书文件解密和解析,对解密服务器的内存大小发起了无情的考验;在文件解密过程 中,电子标书是要加载于服务器内存中的,内存消耗的速度很快,特别是多个大于 1G 的电子标书并行解密和解析,所消耗的内存资源足于让人绷紧神经;在解密的同时,其它项目上传电子标书等行为,也会和解密行为一起抢占内存资源,内存一直是我们重点监控和优化的对象;
- 网络带宽资源:电子加密标书存储于远程文件服务服,通常存储于 OSS,解密时,必须把电子标书下载于解密服务器进行解密,而电子标书属于大文件,应用的网络带宽出入口大小会直接影响电子标书文件的解密和解析时长;
- 流量高峰:解密行为具有瞬间流量高峰的特性,这一特性是电子招投标流程决定的,供应商会在约定的开标有效时间范围内,执行电子标书在线远程解密动作,而这一时刻,会有多个投标项目在并行开标,一个项目又有多家供应商投标;高峰值的流量,是压垮系统的很重要的原因;
- 综合上述因素,单纯的增加服务器数量,或升级服务器配置,已经不能满足系统高可靠性的要求,这个时候,我们引入了排队系统来解决问题。
3.3 解密失败 0 容忍
在文章开篇,我们讲述了客户因为 CA 驱动安装的问题,导致解密超时进而失去评标资格的案例,这毕竟是因为客户自己的原因导致的解密失败;解密服务最怕遇到的场景,就是因平台解密服务集群崩溃等原因,造成客户解密失败,进而导致客户失去评标资格的情况,该情况的出现,平台将会面临法务风险;所以解密服务,对于非客户原因导致的解密失败事件,我们是 0 容忍的,在系统可用性和稳定性方面,是我们一直努力的方向。
4 总结
针对业务场景与痛点,结合现有的技术有针对性的提供解决方案,为业务提供更好的支撑和推动力,并在实践中不断完善我们的系统架构,让业务更好的为平台赋能。
推荐阅读
招贤纳士
政采云技术团队(Zero),一个富有激情、创造力和执行力的团队,Base 在风景如画的杭州。团队现有 500 多名研发小伙伴,既有来自阿里、华为、网易的“老”兵,也有来自浙大、中科大、杭电等校的新人。团队在日常业务开发之外,还分别在云原生、区块链、人工智能、低代码平台、中间件、大数据、物料体系、工程平台、性能体验、可视化等领域进行技术探索和实践,推动并落地了一系列的内部技术产品,持续探索技术的新边界。此外,团队还纷纷投身社区建设,目前已经是 google flutter、scikit-learn、Apache Dubbo、Apache Rocketmq、Apache Pulsar、CNCF Dapr、Apache DolphinScheduler、alibaba Seata 等众多优秀开源社区的贡献者。如果你想改变一直被事折腾,希望开始折腾事;如果你想改变一直被告诫需要多些想法,却无从破局;如果你想改变你有能力去做成那个结果,却不需要你;如果你想改变你想做成的事需要一个团队去支撑,但没你带人的位置;如果你想改变本来悟性不错,但总是有那一层窗户纸的模糊……如果你相信相信的力量,相信平凡人能成就非凡事,相信能遇到更好的自己。如果你希望参与到随着业务腾飞的过程,亲手推动一个有着深入的业务理解、完善的技术体系、技术创造价值、影响力外溢的技术团队的成长过程,我觉得我们该聊聊。任何时间,等着你写点什么,发给 zcy-tc@cai-inc.com
微信公众号
文章同步发布,政采云技术团队公众号,欢迎关注