个人数字证书的核心是通过非对称加密算法来标识身份和单向加密敏感数据。它由证书,公钥,私钥组成,其中证书和公钥同时存在于客户端和服务端,私钥只存在于客户端。证书可以由认证机构颁发,也可以是自签证书,其作用主要是用来匹配服务端和客户端公私钥,在个人数字证书使用过程中,并没有发挥很大作用。
如何标识身份
利用私钥签名,公钥验签的特性,可以验证数据来源的身份。由于私钥具有唯一性和隐秘性,所以经过私钥签名的数据,代表了私钥持有者的身份,其他人是无法伪造的。
短信或者邮箱验证码也能标识身份,但其操作步骤较为麻烦,不适合频繁使用的场景。个人数字证书的使用过程,对用户来讲几乎是透明的。
银行的U盾其实就是在经过多重线下身份验证后(身份证,银行卡,手机号等),把个人数字证书植入到U盾中,并做了物理和网络隔离。使用U盾时,利用私钥对数据进行签名,如果银行服务器中对应的公钥能验签成功,则说明身份是合法的,可以进行转账,提现等敏感操作。
支付类的App中,也有个人数字证书。作用跟U盾类似,只是身份验证条件比较弱(支付密码,手机号等),另外,没有物理隔离,存储于手机中。
如何单向加密敏感数据
利用公钥加密,只有对应的私钥才能解密的特性,可以实现敏感数据的加密。所以这里的单向是指从服务器到客户端的传输。服务端用特定公钥将数据加密后,只有拥有对应私钥的客户端才能解密得到明文。
某支付的付款码,就是以此来保障付款码的离线安全性。
使用流程
颁发流程
个人数字证书的颁发过程.png
使用流程
下面这个流程先进行标识身份,然后把敏感数据单向加密
个人数字证书的使用流程.png