之前整理过几篇关于数字证书的笔记。数字证书技术的是 PKI(Public Key Infrastructure)的重要组成部分,基于数字证书技术的身份认证方式,在在金融、通信、互联网、数据中心等领域发挥着关键作用。但发展多年的 PKI 体系也并非完美,关于数字证书生命周期的管理是其中一个关键问题,而当下受到越来越多关注的技术体系 - 基于标识的密码体系(IBC) ,正在尝试用一种新的方式解决传统 PKI 所面临的难题。趁热打铁写了一篇学习笔记,保持学习,青春永驻。
一、标识密码体系是什么
大家都清楚,在传统 PKI 体系下,一个实体具有一对密钥:一个是公开的公钥;一个是自己保管的私钥。在这样的系统中,信息发送方需要正确获取接收方的公钥,否则就可能出现恶意攻击方可通过提供虚假接收方公钥,即中间人攻击的方式获取信息。
为了证明接收方公钥的可信,传统 KPI 体系就需要一个 受信任的第三方来绑定实体与其拥有的密码对。这个受信第三方即认证中心(CA:Certificate Authority),在对实体进行身份核实后,就为其生成一个公私钥对,并为该实体颁发一个证书,证书中包含实体的标识、公钥以及认证中心的数字签名。信息发送方在发送信息前需要获取接收方的证书。在验证证书的有效性后,发送方使用证书中的公钥加密。这就是基于数字证书的 PKI 系统。
基于数字证书的 PKI 系统有几个问题:
- 发送方在发送信息前必须先获取接收方的证书
- 发送方在收到一个证书后,都需要验证证书的有效性
- 认证中心需要花费大量成本管理和维护证书,非常复杂,难以部署
为了解决传统 PKI 的一些问题,以色列密码学家 Shamir 于1984年提出基于标识的密码体系,即 IBC(Identity-Based Cryptograph)。其最主要观点是 不需要由 CA 中心生成公私钥对,不需要使用证书传递公钥,而是使用用户标识如姓名、IP地址、电子邮箱地址、手机号码等代表用户的标识信息作为公钥,私钥则由密钥中心(Key Generate Center, 简称KGC)根据系统主密钥和用户标识计算得出。
自 Shamir 1984年提出 IBC 思想的十几年,一直停留在概念阶段,直到2000年,D.Boneh 和 M.Franklin, 以及 R.Sakai、K.Ohgishi 和 M.Kasahara 两个团队均提出基于椭圆曲线数学难题的配对构造算法,解决了安全性和实现效率最优化的问题,标识密码终于引发了标识密码的新发展。2008年,我国将 IBC 正式纳入中国国家算法标准,并获得国家商用密码管理局颁发的算法型号 SM9。
二、标识密码体系的原理是什么
IBC 体系标准主要包括 IBE加解密算法组、IBS签名算法组、IBKA身份认证协议 三个个组成部分。理解的时候,对照传统 KPI 体系标准,其实很容易理解。
1.IBE 加解密算法机制
加解密算法由四部分组成:
- 系统参数生成算法(Setup)
- 密钥生成算法(Extract)
- 加密算法(Encrypt)
- 解密算法(Decrypt)
核心步骤描述如下:
- Setup:基于一个安全参数k,输出 系统参数(params) 和 主密钥(MasterKey)。其中,系统参数(params) 是公开的,而 主密钥(MasterKey) 只有密钥生成中心(KGC)才知道,并严加保管
- Extract:利用系统参数(params)、主密钥(MasterKey)和 ID(就是上面提到的姓名、电子邮件、电话、IP地址等)返回 私钥(PrivateKey) ,而 ID 就是 公钥(PublicKey),PrivateKeyID 则作为 解密私钥。
- Encrypt:利用 系统参数(params) 和 公钥(PublicKey) 对明文M进行加密,得出密文C,即 C=Encrypt(params, M, ID)
- Decrypt:利用 系统参数(params) 和 私钥(PrivateKey) 对密文C进行解密,得出明文M,即 M=Decrpyt(params, C, PrivateKeyID)
2. IBS 数字签名机制
数字签名算法也由四个部分组成:
- 系统参数生成算法(Setup)
- 密钥生成算法(Extract)
- 签名算法(Significant)
- 验证算法(Verify)
核心步骤描述如下:
- Setup:同 IBE 加密算法 Setup
- Extract:同 IBE 加密算法 Extract
- Significant:输入 待签的报文M、系统公开参数(params) 和 用户私钥(PrivateKey),生成数字签名S,本质上就是 IBE 加密算法 Decrypt
- Verify:输入 数字签名S、系统公开参数(params) 和 用户公钥(PublicKey),输出验证结果,本质上就是 IBE 加密算法 Encrypt
这个过程是不是看起来和传统 PKI 体系的数字签名是一样的思路?
3. IBKA 身份认证机制
同传统 PKI 体系,身份认证利用的是数字签名与验证原理,协议核心原理如下(以A认证B为例):
- Step1:A生成一个 随机数R 和 一个时间戳T, 发送给B
- Step2:B通过算法将 随机数R 和 时间T 生成 待签报文M ,并使用私钥(PrivateKey)生成 数字签名S 后发送给A
- Step3:A使用 B的公钥(PublicKey),即B的身份标识,对数字签名S进行验证,如果验证通过,则证明B身份可信,完成了对B的身份认证。
这个过程是不是看起来和传统 PKI 体系的身份认证是一样的思路?
三、IBC和PKI的对比
传统 PKI 体系与 IBC 体系都是以公钥密码技术为基础,保证数据的真实性、机密性、完整性和不可抵赖性。IBC体系将代表用户唯一性的身份标识作为用户公钥,确实获得了一些天然优势,使得IBC体系比PKI庞大的证书管理和发布系统更易于应用。
特别要强调,在针对数字证书这个环节上,IBC 确实有优势,但绝不能以偏概全,认为 IBC 就是全面取代传统 PKI 的方案,密码体系可不仅仅指数字证书。
PKI体系 | IBC体系 |
---|---|
公钥是随机数 | 公钥可以是邮箱地址 |
通过证书将用户的公钥与身份关联起来 | 公钥即用户的身份标识 |
信息发送方必须获得接收方的公钥证书 | 信息发送方只需要获知接收方的身份标识(如姓名、IP地址、电子邮箱地址、手机号码等) |
证书颁发和管理系统复杂难以部署 | 无需颁发和管理证书 |
每次发送信息之前,都需要与管理中心通讯交互,验证证书的有效性 | 可以本地离线加解密 |
难于实现基于属性、策略的加密 | 可增加时间或固定IP等方式解密信息的安全策略控制 |
存放的收信方证书随发送邮件数量的增大而增多,在线通讯交互越繁忙,管理负担和管理成本会同比例放大 | 发送邮件数量级越大,管理负担和管理成本的增加并不明显 |
实现成本高、效率低下 | 实现成本低、效率较高 |
系统运行维护成本高 | 运营管理方便,成本低 |
一张被到处引用的 PKI 与 IBC 的流程对比图,比较清晰的展示了二者的不同。
PKI 体系原理图:
IBC 体系原理图:
再次强调,IBC 是对 PKI 的有益补充,但不能简单认为 IBC 是全面取代传统 PKI 的技术体系!
四、IBC的应用与未来
标识密码体系没有证书管理的负担,简化了实施应用,能够快速实现安全通信,尤其适用于安全电子邮件系统、移动通信的客户以及需要向未注册人群发送信息的用户。
国际电信联盟(ITU)已采用 IBC 技术作为下一代移动电话的认证技术手段。美国食品药品管理局(FDA)在各大医疗机构中也在推广 IBC 应用。在电子商务领域,IBC 在美国已经成为 POS 终端和清算中心间保护信用卡信息的主流技术之一。在欧洲,意法半导体的研究人员己经与智能卡厂商 Incard 合作,联合开发实现在智能卡上部署标识密码。而国内,华为、中兴、上海贝尔等公司也在 NGN 中采用了 IBC 技术。
随着囯家密码管理局对 SM9 算法的规范和推广,用户将会越来越熟悉标识密码。标识密码技术有可能会广泛地应用于安全电子邮件、加密短信、加密通话、电子证照管理、电子病历、手机电子钱包、电子图书馆、身份证与社保、医保等的多卡合一后的管理使用等诸多领域。IBC 应用前景可期。
持续学习,青春永驻!