1、PKI体系
PKI/CA与数字证书_J.D.的博客-CSDN博客_pki数字证书
PKI/CA与数字证书_J.D.的博客-CSDN博客_pki数字证书
PKI基础设施:CA,RA,KMC,CRL,OCSP用处
PKI组件:
1)认证中心-CA
作用:负责签发、管理和作废证书等操作
ps: 颁发证书使用CA的私钥对证书请求文件进行签名,颁发的证书浏览器要信任,浏览器 使用CA的公钥进行验签(浏览器要内置CA的公钥)
2)注册中心-RA
作用:建立证书持有者和证书之间的联系
3)证书库: 存储证书和证书作废表(CRL).
4)证书验证软件: 验证证书合法性、有效性,如客户端验证程序、OCSP
5)证书持有者(Certificate Holder or EE):人、设备、软件等等
6)安全策略: 设定企业最高层次的安全策略和安全方针,也包括密码系统的使用过程和原则。
7)密钥恢复服务: KMC
为解决私钥的备份与恢复问题,PKI引入了KMC(Key Management Center)。
用户公私钥对由KMC产生,KMC对私钥做备份;公私钥也可由用户自己产生,并将私钥安全提交给KMC做备份。
8)时间服务: 时间服务器
9)签名服务: 签名验证服务器
- 信息的私密性(Privacy) :----> 对称加密
- 信息的完整性(Integrity) ----> 数字签名
- 信息的源发鉴别(Authentication) ----> 数字签名
- 信息的防抵赖性(Non-Reputation) ----> 数字签名 + 时间戳
1)关于数字证书
用户或系统只有拥有自己的公钥和私钥后,才能实现数字签名和加密解密功能,由于公钥是随机产生的,因此从公钥无法直接判断属于哪个用户。
为解决公钥与用户映射关系问题,PKI引入了数字证书。数字证书里包含了用户身份信息,用户公钥信息*(两者用于确定用户)和CA的私钥数字签名(使用CA的公钥可判断证书是否被篡改)*。
私钥一般被保存在硬件密码设备中(像U盾之类的)。
2)数字证书的管理
1、关于CA
为了解决数字证书的签发问题,PKI引入了CA(Certificate Authority), 对数字证书进行集中签发。
它实际是一种特殊的公钥管理中心,对数字证书的全生命周期进行管理,包括:数字证书的签发和更新,数字证书的作废,冻结和解冻,查询或下载,状态查询等。
像广州CA,深圳CA就属于这类,可去他们的官网上进行相关了解。
2、关于KMC
为解决私钥的备份与恢复问题,PKI引入了KMC(Key Management Center)。
用户公私钥对由KMC产生,KMC对私钥做备份;公私钥也可由用户自己产生,并将私钥安全提交给KMC做备份。
3、关于双证书
为防止用户身份被冒用,应保证用户私钥的唯一性,不允许备份恢复;为防止公钥加密后的数据无法解密,应提供用户私钥的备份恢复机制。
为解决这两种矛盾需求,PKI引入了双证书机制:签名证书和加密证书。
签名证书的公私钥对由用户自己产生,KMC不备份私钥;加密证书密钥对由KMC产生,且KMC对加密私钥进行备份。
4、关于LDAP
为解决对CA证书的查询或下载的性能问题,PKI引入 LDAP(Light-weight Directory Access Protocol 轻量目录访问协议)技术。
DAP(Directory Access Protocol 目录访问协议)是对数据管理的读取功能进行特殊优化的技术,适合快速响应和大容量的查询服务,应用系统只需通过X.500协议就能对数据进行快速查询。但由于该协议过于复杂,国际组织对其进行简化,形成了LDAP标准。
5、关于CRL和OCSP
为解决对CA证书有效性方面的查询,PKI引入了CRL(Certificate Revocation List)和OCSP(Online Certificate Status Protocol) 技术。前者需要用户按时定期下载,可用于脱机使用;后者则可实时在线查询。
6、关于RA
为对用户提供 面对面 的证书业务服务,负责用户证书办理/作废申请,用户身份审核,制作证书并移交用户等功能。PKI引入了RA(Registry Authority)
7、关于电子认证服务机构
**为保证CA系统在数字证书管理方面的规范性、合规性和安全性,PKI引入了电子认证服务机构,**以第三方运营的方式对外提供数字证书相关服务。
3) 数字证书的应用
基于数字证书可实现四种基本安全功能:身份认证,保密性,完整性和抗抵赖性。
1、身份认证
如网络身份证。
2、保密性
如不泄露信用卡信息。
3、完整性
如已签订的合同不会被某一方私自修改。
4、抗抵赖性
如发生交易纠纷时,可通过验证对方的私钥签名来确认。
2、pkcs标准
PKCS是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
到1999年底,PKCS已经公布了以下标准:
P1:RSA、raw签
P6:证书结构
P7:attach、detached签
P10:证书请求
P11:USBKey相关
P12:pfx
PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封。
PKCS#3:定义Diffie-Hellman密钥交换协议。
PKCS#5:描述一种利用从口令派生出来的安全密钥加密字符串的方法。使用MD2或MD5 从口令中派生密钥,并采用DES-CBC模式加密。主要用于加密从一个计算机传送到另一个计算机的私人密钥,不能用于加密消息。
PKCS#6:描述了公钥证书的标准语法,主要描述X.509证书的扩展格式。
PKCS#7:定义一种通用的消息语法,包括数字签名和加密等用于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息。
P7的结构-六种内容类型: Data内容类型 ----->明文信息 Data内容类型只是一字节串 Signed-data内容类型 ----->数字签名 由任意类型的内容和该内容的签名数据组成 Enveloped-data 内容类型 ----->数字信封 Signed-and-enveloped-data 内容类型 ----->带签名的数字信封 Digested-data内容类型 ----->信息摘要 Encrypted-data内容类型 ----->加密数据
PKCS#8:描述私有密钥信息格式,该信息包括公开密钥算法的私有密钥以及可选的属性集等。
PKCS#9:定义一些用于PKCS#6证书扩展、PKCS#7数字签名和PKCS#8私钥加密信息的属性类型。
PKCS#10:描述证书请求语法。
PKCS#11:称为Cyptoki,定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备。
PKCS#12:描述个人信息交换语法标准。描述了将用户公钥、私钥、证书和其他相关信息打包的语法。
PKCS#13:椭圆曲线密码体制标准。
PKCS#14:伪随机数生成标准。
PKCS#15:密码令牌信息格式标准。
3、国标
中国自己的标准,GB/T xxxxxx
4、算法
1)RSA算法和国密算法
2)按密钥类型划分:对称,非对称
3)按用途划分:摘要算法,签名算法,加密算法
4)算法强度:根据破译难度等进行区分,弱算法会被淘汰或屏蔽
对称和非对称:速度、安全性、密钥是否相同等方面
对称加密 |
非对称加密 |
|
密钥 |
加密解密使用同一把密钥 |
两把密钥(公钥和私钥) |
速度 |
加密速度快,加密效率高 |
加密解密时间长,不适合加密大数据 |
安全性 |
密钥管理和分发困难,不够安全 |
公钥可以广泛分发,有私钥比较安全 |
类型 |
DES、3DES、RC2、RC4、AES、SM1、SM |
RSA,ECC(椭圆曲线)算法、SM2、DSA |
1)对称加密算法
-
- 介绍:加密和解密都使用同一种密钥,这把密钥可以加密明文,也可以解密加密后的密文,即加密密钥和解密密钥是相同或等价的
- 类型:DES、3DES、RC2、RC4、AES、SM1、SM4
- 特征:
- 优点:算法公开、计算量小、加密速度快、加密效率高。
- 缺点:秘钥的管理和分发非常困难,不够安全。在数据传送前,发送方和接收方必须商定好秘钥,然后双方都必须要保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
2)非对称加密算法
-
- 介绍:
-
-
-
-
- 两把密钥,分别是公钥和私钥,公钥加密的密文只有对应的私钥才能解密,私钥加密的密文只有公钥才能解密。
- 不需要首先共享秘密
- 两个密钥同时产生 :一把密钥(公钥)是公开的,任何人都可以得到。另一把密钥(私人密钥)只有密钥的拥有者知道。
- 用其中一把密钥(公钥或者是私钥)加密的信息,只能用另一把打开。
- 由已知的公钥几乎不可能推导出私钥
- 强度依赖于密钥的长度
-
-
-
-
- 类型:RSA算法,ECC(椭圆曲线)算法、SM2、DSA
- 特征:
-
-
-
- 性能: 加密速度很慢-不适合加密大数据
- 密钥管理: 公钥可以广泛地、开放地分发
-
-
-
-
-
- 使用目的:
-
-
-
-
-
-
-
-
- 加密
- 签名/校验
- 密钥交换
-
-
-
-
-
-
- 优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
- 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
RSA和SM2的区别:(1条消息) SM2算法和RSA算法简介_weixin_30648963的博客-CSDN博客
RSA |
SM2 |
总结 |
美国计算机学家于1977年提出,是最早的公钥加密算法之一 |
国家密码管理局于2010年12月17日发布,是我国自主设计的公钥密码算法 |
|
目前1024位RSA算法已经被证实存在被攻击的风险,美国NIST(国家标准技术研究院)在2010年要求全面禁用1024位RSA算法,升级到2048位RSA算法 |
基于更加安全先进的椭圆曲线密码机制,在国际标准的ECC椭圆曲线密码理论基础上进行自主研发设计,具备ECC算法的性能特点并实现优化改进 |
SM2算法目前更安全 |
基于大整数因子分解数学难题(IFP)设计的,在工程应用中比较易于实现,但它的单位安全强度相对较低 |
抗攻击性强、CPU 占用少、内容使用少、网络消耗低、加密速度快 |
SM2加密速度快、抗攻击性强 |
业界普遍采用2048位RSA证书 |
普遍采用256位密钥长度,加密强度等同于3072位RSA证书 |
SM2加密强度更大 |
RSA算法密钥长度则需呈倍数增长 |
算法密钥长度增长速度较慢 |
SM2密钥长度增长慢 |
在TLS握手过程中,更长的密钥意味着必须来回发送更多的数据以验证连接,产生更大的性能损耗和时间延迟 |
确保相同安全强度的前提下提升连接速度 |
TLS握手中,SM2连接速度更快 |
对称加密和非对称加密的区别:对称加密算法相比非对称加密算法来说,加解密的效率要高得多。
但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。<