Randol
2021-01-17T04:58:34+00:00
公钥加密,私钥解密:B有公钥私钥,B发给A公钥,A用B的公钥加密报文,发回给B,B用私钥解密
私钥解密,公钥加密:B有公钥私钥,B将自己的公钥发给CA,CA使用自己的私钥生成数字证书,CA将证书发给B,B将报文使用私钥加密后连同证书一同发送给A,A使用CA公钥解开证书,得到B的公钥,再使用B的公钥解密报文
流程算了懂了,但请问这两种方式分别用在哪方面?为什么这么用?不理解的话感觉记不住...谢谢大佬们...
解开数字证书后,得到的公钥,能传递给别人么?B发送的报文还是安全的么?
建行的某种U盾证书就是RSA256……其余没怎么特别注意过,你自己随便找个电脑找找本地证书,应该有用的。
一般来讲就加密密码,避免明文传输。保密性高的项目会要求整个表单加密。
第二种的话对外https网站生成用语加密后续数据的对称密钥会用,第一种银行的U-key?
这门学问 有两个个前提
一是公钥加密的 只有由对应的私钥解密 其他私钥解不了 用私钥加密的 一样只能对应的公钥解密
二是私钥不会随意传播 只有一个人会部分人有 公钥倒是可以谁都给
我用私钥加密 给你 你用公钥解密:因为私钥只有我有 所以意味着这个内容一定是我发布的 其他人伪造不了
我用公钥加密 给你 你用私钥解密:因为私钥只有你有 所以这个内容只有你能解密出明文来
只要脱离当前环境的需要验证安全的数据都可以用这种方式
比如手机的指纹识别
Android 系统分为 REE 和 TEE 两种环境,REE 就是 linux 操作系统所在环境,TEE 是另一套安全系统所在的环境
用户发起一次指纹认证,由 REE 侧的指纹服务向 TEE 侧的应用发起请求,于是从指纹采集芯片读图以及识别的操作都是在 TEE 侧完成,然后将识别结果返回给 REE。
那么,REE 如何确定这次拿到的识别成功的结果是在自己的 TEE 环境里计算得来得呢?所以就需要双方都有一个共同的鉴定人。
在 REE 有一个模块 keystore,它主要是用来校验数据的,在 TEE 有一个相对应的模块 keymaster,主要用来依据不同的需求生成一个公钥。
keystore拿到需要校验的数据,就将加密部分的数据发回到 keymaster 进行解密,然后再校验数据是否一致。
于是就是 TEE的指纹应用得到识别成功的结果,然后通过keymaster拿到一个公钥,再将数据加密,与结果打包一起发送到 REE, REE 拿到识别结果,就去找 keystore 校验结果,结果一致,才认可这次识别成功。