密码技术应该怎么用第六天!

不可否认性,有时候是必须的,那么还需要讲一下CA相关的知识

  • CA基本概念

负责专门颁发数字证书的系统称为CA系统

负责管理并运营CA的机构称作CA中心

所有与数字证书相关的各种概念和技术统称为PKI

  • CA作用
  1. 身份认证-证书包含个人身份,证书合法性,私钥个人私有。PIN保护私钥
  2. 保密性-加密密钥对,公钥加密,只有私钥可解。
  3. 完整性-整体防纂改,单独修改某一项或者几项能发现数据被修改。用哈希算法完成,但是单独的哈希是不能防止整体被替换。
  4. 抗抵赖性-签名私钥用户独有,PIN保护,签名是用户的操作。

密码的四个特性:真实性、保密性、完整性、不可抵赖性。

机密性(保密性):保证信息不被泄露给非授权实体的性质。

数据完整性:数据没有遭受非授权方式所作的改变的性质。

真实性:一个实体是其所声称实体的这种特性。真实性适用于用户、进程、系统和信息之类的实体。

不可否认性:证明一个已经发生的操作行为无法否认的性质

  • CA和数字证书关系

CA 是证书权威,是密钥管理中心,拥有自己的公钥和私钥,负责给用户颁发证书

数字证书的文件格式,包含用户信息,用户公钥信息,CA中心私钥的签名

RA

RA(Registration Authority),数字证书注册审批机构。RA系统是CA的证书发放、管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘,USBKEY等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分。

  RA作为CA认证体系中的一部分,能够直接从CA提供者那里继承CA认证的合法性。能够使客户以自己的名义发放证书,便于客户开展工作。

RA验证用户材料,明确是否接受用户注册(信任等级不一样,实名面签才具备合法性)

若用户是组织,则检验营业记录、历史文件和信用证明;

若用户是个人,则需要简单证明,如手机号,姓名、电子邮件地址等

1)通过向邮箱发送邮件来确认本人身份

2)通过第三方数据库来确认本来人身份

3)通过当面认证和身份证明确认本人身份

PKI/CA的一些基本组成

LDAP : Lightweight Directory Access Protocol 轻量目录访问协议,提供证书查询或下载服务证书与证书撤销链发布是指CA把新签发的证书与证书撤销链送到LDAP目录服务器,以供用户查询、下载。

KMC : KMC Key Management Center密钥管理中心,管理加密私钥。备份防止数据丢失

CRL : Certificate Revocation List 证书作废列表,一段时间(24小时内)生成一次且发布成功一次

OCSP : Online Certificate Status Protocol 在线证书状态协议,提供实时查询接口。

SOCSP : Simple Online Certificate Status Protocol 简易在线证书状态协议

OCSP查询返回的证书状态:已撤销、 未知 、良好

双证书

签名证书,设备内生成,只用作签名,私钥不出硬件,私钥丢失不能恢复

加密证书,外部导入,只用于加密,CA生成,KMC管理,签名密钥对和加密密钥对只是用途不同

对称密钥,通过加密密钥对导入,在0016中,重启设备会失效。

证书操作

在线申请(实时生成证书并下载),注销(实时),验签(实时),证书下载,状态查询

注意证书注销后,证书必须立即无法验签通过!

实时获取证书状态,使用OCSP/SOCSP 。本地验签如何做到实时,业务状态和证书状态都要业务系统来管理即可。

引入标准CA可以用标准CA提供的接口验签,如果需要自己实现那么考虑如下:

  • 签名
  • 读证书
  • 原始数据应包含随机数等(时间,事件),随机数应该由应用服务端生成,保证唯一,使用一次失效!
  • 时间需验证有效性,时间一般为配置为N分钟失效,N可配置,N一般不超过5分钟
  • 随机数使用一次失效(服务器生成,一般使用随机数签名即可,为了使签名有意义,可以加一下操作描述)
  • 签名原值=SM3(原始数据)
  • 签名值=私钥(签名原值)
  • 签名数据至少包括:签名原值,签名值,证书,最好包含操作的描述(哪个事件和本次签名的操作,在服务端保证完整性)
  • 验签
  1. 证书有效性
  • 是否在有效期
  • 是否注销
  • 是否自身签发证书
  • 证书单项信息是否匹配(姓名等)

2.  数据有效性

  • 签名值有效
  • 解析证书唯一标识用于业务判断(如需要)

X.509证书格式

Certificate ::= SEQUENCE {

        tbsCertificate       TBSCertificate, -- 证书主体

        signatureAlgorithm   AlgorithmIdentifier, -- 证书签名算法标识

        signatureValue       BIT STRING --证书签名值,是使用signatureAlgorithm部分指定的签名算法对tbsCertificate证书主题部分签名后的值.

}

   TBSCertificate ::= SEQUENCE {

        version         [0] EXPLICIT Version DEFAULT v1, -- 证书版本号

        serialNumber         CertificateSerialNumber, -- 证书序列号,对同一CA所颁发的证书,序列号唯一标识证书

        signature            AlgorithmIdentifier, --证书签名算法标识

        issuer               Name,                --证书发行者名称,根据颁发者一层层往上找, 直到找到可信任根证书。

        validity             Validity,             --证书有效期

        subject              Name,               --证书主体名称(公钥所有者)

        subjectPublicKeyInfo SubjectPublicKeyInfo,--证书公钥

        issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,

        -- 证书发行者ID(可选),只在证书版本2、3中才有,主要为了兼容v2版本证书格式,不允许出现在v1格式中,v3格式中不建议使用

        subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,

        -- 证书主体ID(可选),只在证书版本2、3中才有,主要为了兼容v2版本证书格式,不允许出现在v1格式中,v3格式中不建议使用

        extensions      [3] EXPLICIT Extensions OPTIONAL

        -- 证书扩展段(可选),只在证书版本3中才有

        }

用户身份鉴别完成后,加密密钥对与信息系统进行SM2密钥协商,协商出会话密钥,利用SM4算法和基于SM3的HMAC算法进行通信数据的机密性和完整性保护。

1)issuer  :证书发行者名称,根据颁发者一层层往上找, 直到找到可信任根证书。

2)KeyUsage :确定证书类型(签名证书或加密证书)

3)CRL 发布点  查看 cRLDistributionPoits 项并验证  

4)OCSP  查看 authorityInfoAccess 项并验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值