CA不能承受之重

时间:2022-10-04 04:46:06

1977年麻省理工学院的三名数学家发表了一种非对称加密算法,并且以其名字的字头命名此算法为“RSA”算法。与人们熟知的对称加密算法不同,RSA算法每次一对密码,用户可以用其中一个对数据加密,用另外一个来解密,但是几乎不可能从一个密码推算出另外一个密码。说几乎不可能,是因为我们大多数人都不掌握并行计算机或者量子计算机这样的强大计算资源,也缺乏耐心等待几个月让系统完成计算。此算法如此强大,以至于发明出来之后立刻就被美国五角大楼列为“非民用技术”,以防止他人用此技术来屏蔽军方的通讯监听。直到1983年麻省理工学院拿到了此技术的专利,才逐步放开了商业应用。

现在非对称算法已经演化为一系列的算法体系,RSA的专利也在2000年到期。基于非对称算法的数字证书认证机构服务(CA),也成为电子商务时代交易安全的金标准。

由于非对称算法的加密特性,CA通过私钥加密,公钥解密的简单办法可以认证加密人的身份(称为CA文件签名服务),如同一个办公室里人人能听懂上海话,但是纯正上海口音的人只有一个,这样他一开口大家就知道谁在讲话,而其他人很难伪装成他。

作为扩展应用,还可用私钥来加密登录系统的用户名和密码,称为CA加强的系统用户认证服务;或者用服务器私钥来加密时间标志,称为CA时间戳服务。

上述三种CA服务是我们在医疗机构做CA应用时最常用到的内容,其实其他行业也是如此。医疗行业真正落地的难度在于:应用系统应当在什么流程节点上使用CA签名,在什么时间节点上使用时间戳服务。在电子商务领域,上述问题很好解决,因为大家都是在互联网上工作,所以任何数据一旦离开本地机构进入互联网立刻就需要用发件人的证书做签名,同时附加时间戳。比如在发电子邮件的时候,只有在“发送”按钮被按下的时候所有CA服务才被引发,只有在邮件到达服务器的时候时间戳才被附加。给一个现实一点的比喻,公司的打卡钟只放在公司大门口,所有标记是放在内外边界上的。

看到这里,2011年~2012年在医院部署过CA的各位同仁可能要来倒苦水了:我们的系统是要求每次医嘱数据保存和执行都加入CA签名的;要求每次病历修改都加入签名的;要求每次数据修改都做CA签名加时间戳。

看来是要求用CA做精细化管理,把人民警察请到田间地头、厨房里、炕桌旁;把打卡钟装到工位上,如厕、喝水、开会都打卡。

那么这样做的代价是什么呢?主要的应用系统都和CA做了集成,要从数据源头抓起只能这样了;数据库服务器的处理器压力暴增,也就不奇怪所有的关键数据表插入更新都工作量加倍;存储容量加速消耗,肯定因为临时文件都有了CA签名不能删除了。

经过这样一番折腾,目的达到了吗?现在数据库里面是保留了所有的数据新增修改记录,不过要通过签名来验证是谁操作的,还需要CA的外部程序来处理,一般还是以数据库记录为准;存储里面放满了不同历史版本的临时文件和最终文件,但是在应用系统中看到的还是最后的版本,想用众多版本的文件来回溯文档修改历史,甚至自动显示历次修改痕迹,还需要另外想办法。

那么在CA部署之前,医嘱修改记录、病历修改痕迹、数据访问修改监控都是怎么解决的呢?医嘱修改记录是医嘱应用系统本身应当具备的数据服务功能;病历修改痕迹是电子病历编辑器的基本功能;而数据访问修改监控是数据库审计软件的功能范围。

为什么不把CA放在大门口呢?让每个用户登录系统的时候用一下CA的用户认证服务;让每次数据进入病案室封存的时候,统一调用签名和时间戳服务。这样让人民警察守住路口,把打卡钟放在前台,岂不是更加简洁清晰?

CA有时候难用不是技术不够强大,只是被放错了地方,承受了CA不能承受之重。

上一篇:个人健康卡制造商获巨额融资等 下一篇:评审带来信息整合新启示