摘要:

本文从政策法规和技术标准方面,梳理了信息系统密码应用的必要性及要达到的目标,并重点从技术要求入手,说明数字证书在保障身份真实性、数据机密性、数据完整性、不可否认性方面的技术实现。希望能为密码应用开发者提供参考价值。

Abstract:

This article base on the national laws, regulations and technical standards, straighten up the necessity of information system cryptography application and the goal to be achieved. Focuses on the technical requirements to explain the technical realization of digital certificate in the protection of identity authenticity, data confidentiality, data integrity and non repudiation. Hope to provide reference value for cryptography application developers.

关键词:密码应用 数字证书 CA 电子签名

1.引言

当前,很多信息系统还在使用MD5、DES、RSA这些比较久远的,安全强度已经不够的密码算法,严重影响到我们的网络安全。为了加强和规范密码应用,国标委今年3月发布了技术标准--GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》,该标准将于今年10月1日是起实施。

2.密码应用政策法规

为了保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展,国家发布了《中华人民共和国网络安全法》。其第十条提到:“建设、运营网络或者通过网络提供服务,应当依照法律、行政法规的规定和国家标准的强制性要求,采取技术措施和其他必要措施,保障网络安全、稳定运行,有效应对网络安全事件,防范网络违法犯罪活动,维护网络数据的完整性、保密性和可用性”。而保障网络与信息安全,“密码是解决网络与信息安全最有效、最可靠、最经济的手段”[1]。

为了规范密码应用和管理,促进密码事业发展,保障网络与信息安全,维护国家安全和社会公共利益,保护公民、法人和其他组织的合法权益,国家发布了《中华人民共和国密码法》。其第二十七条提到:“法律、行政法规和国家有关规定要求使用商用密码进行保护的关键信息基础设施,其运营者应当使用商用密码进行保护,自行或者委托商用密码检测机构开展商用密码应用安全性评估”。

为了规范商用密码应用安全性评估工作,发挥密码在保障网络安全中的核心支撑作用,国家密码局发布了《商用密码应用安全性评估管理办法(试行)》。其第二条提出:“本办法所称商用密码应用安全性评估,是指在采用商用密码技术、产品和服务集成建设的网络和信息系统中,对其密码应用的合规性、正确性和有效性等进行评估”。

3.密码应用技术要求

如何做到密码应用的合规性、正确性和有效性,国家最新发布了GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》。该标准根据等级保护的五个级别进行划分,从物理和环境安全、网络和通信安全、设备和计算安全、应用和数据安全四个方面提出了密码应用技术要求,从管理制度、人员管理、建设运行和应急处置四个方面提出了密码应用管理要求。

密码应用技术要求方面,主要是实现四性:“机密性、完整性、真实性、不可否认性”。需要使用密码加密功能实现机密性;使用消息鉴别码(MAC)或数字签名实现完整性;使用对称加密、动态口令、数字签名等实现真实性;使用数字签名等密码技术实现实体行为的不可否认性。

4.数字证书在密码应用上的作用

数字证书一般是指公钥数字证书,是由CA(电子认证服务)机构发行的一种电子文档,用于在计算机网络上验证网络用户身份。数字证书格式参考[6] GB/T 20518-2018《信息安全技术 公钥基础设施数字证书格式规范》。数字证书主要包括用户身份信息、公钥信息、证书有效期、颁发者及签名信息等。由持有电子认证服务许可的第三方CA机构签发的数字证书,具有用户身份真实、证书不可伪造等特点,可广泛应用于网络世界进行身份鉴别、法律有效的电子签名等。

用户数字证书的存储介质一般为智能密码钥匙,俗称“USBKey”、“U盾”等。对数字证书的调用可以参考[7]GM/T 0020-2012《证书应用综合服务接口规范》。

从GB/T 39786密码应用技术要求方面可以看出,数字证书可用于保障用户身份真实性、数据机密性、数据完整性和不可否认性。

5.数字证书在密码应用上的技术实现

根据《商用密码应用安全性评估量化评估规则》,应用和数据层面的数据保护是重中之重。这里主要针对应用和数据层面的密码应用要求,采用数字证书及相关技术来实现。

5.1身份真实性保护

流程如下:

图1 基于数字证书的身份鉴别流程

流程中,第5步,签名算法采用国密算法SM3withSM2[3],Signed-Data数据参考技术标准GB/T35275-2017《信息安全技术SM2密码算法加密签名消息语法规范》。第9步,签名验签服务器验证证书有效性时,会通过信任证书链、证书有效期、密钥用法、证书策略、证书约束、证书注销状态等去验证。

本过程符合GB/T15843.3-2016《信息技术安全技术实体鉴别第3部分:采用数字签名技术的机制》规范里的“两次传递单向鉴别机制”。

用户提交到应用系统的鉴别信息主要是数字证书和对随机数的签名信息,这些信息都是非私密和非敏感的,不怕攻击者的截获。被签名信息是服务端产生的一个随机数,这样能防止重放攻击。攻击者那怕拿到了一个鉴别信息,但下次登录认证时,由于服务端产生的随机数不同,攻击者无法拿上一次的鉴别信息去登录系统。

用户的数字证书由持有电子认证服务许可的CA机构颁发。CA机构会充分审核用户的身份再签发证书,能充分保证登录用户的身份真实性,防止假冒的用户。用户的数字证书密钥介质采用具有国密产品资质的USBKey设备,以保证算法和私钥的安全。

5.2数据机密性保护

流程如下:

图2 基于数字证书的数据加密流程

流程中,第A3步,发送方产生随机数作为对称密钥,采用SM4对称加密算法对数据进行加密,再采用接收方加密证书公钥对对称密钥进行加密,最后组装成EnvelopedData数据结构,符合GB/T 35275标准。第A5步,服务端虽然保存EnvelopedData数据,但由于其不掌握加密证书对应私钥,所以无法解密信息,保障了敏感信息的机密性。第B3步,接收方采用加密证书私钥(在USBKey里面)解密EnvelopedData的对称密钥,再采用对称密钥解密出敏感数据。

采用EnvelopedData数据结构加密,既利用了对称加密算法的高效性,又利用了公钥证书的认证性,保证只有合法的用户才能解密出数据原文。

 5.3数据完整性、不可否认性保护

采用数字证书电子签名技术,既可满足数据完整性保护,亦可满足数据不可否认性保护。

流程如下:

图3 基于数字证书的数据签名流程

流程和“4.1 身份真实性保护”类似。第4步,可以根据业务的需要,选择是否附署上时间戳签名。时间戳签名由第三方时间戳服务机构提供,用于保证数字签名时间的准确性、权威性。

数据经过数字签名后,无论是对数据原文进行修改还是对签名值进行修改,在接收方验证时均会提示数字签名无效。因此,数字签名能保证签名后的数据的完整性。另外,由于只有签名者才掌握有对应的私钥,其他人无法伪造出相同的数字签名出来,因此,能证明签名的来源是来自于私钥持有人,私钥持有人是不可否认的。

6.结束语

综上所知,采用数字证书和电子签名技术,能保障密码应用的身份真实性、数据机密性、数据完整性、不可否认性。另,采用持有电子认证服务许可的第三方机构颁发的数字证书,符合《中华人民共和国电子签名法》要求,具有法律效力,可应用于电子合同签名、电子招投标等应用场景。

7.参考文献:

  1. 《商用密码知识与政策干部读本》,人民出版社,2017年10月第1版
  2. GM/T 0054—2018《信息系统密码应用基本要求》,国家密码管理局,2018年2月发布
  3. GB/T 33560-2017《信息安全技术 密码应用标识规范》,国家标准化管理委员会,2017年5月发布
  4. GB/T 35275-2017《信息安全技术 SM2密码算法加密签名消息语法规范》,国家标准化管理委员会,2017年12月发布
  5. GB/T 15843.3-2016《信息技术 安全技术 实体鉴别第3部分:采用数字签名技术的机制》,国家标准化管理委员会,2016年4月发布
  6. GB/T 20518-2018《信息安全技术 公钥基础设施数字证书格式规范》,国家标准化管理委员会,2018年6月发布
  7. GM/T 0020-2012《证书应用综合服务接口规范》,国家密码管理局,2012年11月发布
  8. GB/T 38629-2020《信息安全技术 签名验签服务器技术规范》,国家标准化管理委员会,2020年4月发布

数字证书在密改项目中的作用与应用实现相关推荐

  1. 工时表软件在项目中的作用 帮助企业管理项目成员的工时

    企业的不断发展离不开每一个成功交付的项目,但在任何一个项目中,人力成本是主要的成本之一,员工的工作效率高低影响着项目成本和质量的关键点.如果想要降低整个项目的成本那就需要对员工工时更加精准的把控,所以 ...

  2. 业务分析师在敏捷项目中的作用

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 下午12时35分 社区 Agile 主题 客户及需求 标签 补充实践 敏捷软件开发实践的文化中存 ...

  3. 业务分析师在敏捷项目中的作用(ZT)

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 领域 过程 & 实践, 架构 & 设计 主题 客户及需求 , 敏捷 , 补充实践 ...

  4. Https背景与证书在spring boot项目中的使用

    https背景(本人学习参考中觉得不错的几篇文章) https如何解决安全问题 HTTPS 理论基础及其在 Android 中的最佳实践 什么是https 关于https的个人总结 总所周知http是 ...

  5. XML在JAVA项目中的作用

    java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...

  6. tomcat一类的中间件在项目中的作用是什么

    记得跟着老师写的第一个web,老师让我们去下载tomcat,然后把项目扔进去,启动tomcat,却没有告诉我们,为什么需要这样做...       如今已经工作了一年多,已经参与了不少web项目,这阵 ...

  7. 数据结构在编程项目中的作用和认识

    几天前就想写一篇关于<数据结构>方面的文章,一直没写,忍不住今天终于动手写了.我最开始学习<数据结构>课程使在大学二年级,当时编程基础薄弱的我认为它是一门很难的课程,将其和&l ...

  8. 浅谈https\ssl\数字证书

    在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本 ...

  9. 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...

    一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...

最新文章

  1. webview加载本地资源的各种尝试
  2. html超链接button
  3. 李飞飞团队最经典计算机视觉课更新!斯坦福出品,深度学习入门必备
  4. 构造函数和析构函数中抛出异常
  5. 【转】后勤自动过帐(OBYC)详细配置说明
  6. 全排列函数next_permutation
  7. 深入了解RabbitMQ工作原理及简单使用
  8. php获取表所有数据类型,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?...
  9. 灰光和彩光_通信行业5G招标系列点评之二:一文读懂5G前传-光纤、灰光、彩光、CWDM、LWDM、MWDM...
  10. tf.one_hot函数用法
  11. 使用qt制作License(原理)
  12. matlab求两向量夹角_向量法解几何问题
  13. html5客户端页面,iphoneX 适配客户端H5页面的方法教程
  14. Ubuntu各版本代号
  15. 各国网络标识码表(MCC MNC表)
  16. Critical Reviews | 南农邹建文组综述全球农田土壤抗生素与耐药基因分布
  17. 7-95 深入虎穴 (树的深搜)
  18. cad重新加载php命令,cad清理图层命令如何使用
  19. paper 77:[转载]ENDNOTE使用方法,常用!
  20. linux操作系统之常用远程管理命令:关机和重启命令shutdown详解 简单易懂~

热门文章

  1. 分数换算小数补0法_小学数学概念+知识点顺口溜汇总+常用单位换算汇总
  2. Tomcat学习笔记(三)—— Server组件
  3. 短距离的无线连接技术--蓝牙
  4. TIPC Cluster5
  5. sap增加税码注意事项
  6. CentOS安装Docker CE
  7. glusterfs删除节点步骤
  8. Python通过标点符号断句
  9. 沉睡者 - 微信内测一个手机可注册2微信号
  10. 情人节数码好物推荐,值得入手的四款数码好物分享