大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
PKI简介
公开密钥基础建设(英语:Public Key Infrastructure,缩写:PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施、公开密码匙基础建设或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。
概念
对称加密
- 特点:加解密使用相同密钥,加解密过程速度快
- 算法:DES、3DES、AES
非对称加密
- 特点:加解密各用密钥对其中之一,密钥对公开的部分为公钥,所有人都可以获取,另一个作为私钥,不公开
- 使用:公钥加&密私钥解密用于传输数据,私钥加密公钥解密用于做校验
- 算法:RSA、ECC(椭圆加密算法)
PKI解决的问题
问题一:网络环境下,用户A、B想互相通信,不希望通信内容被第三方知道
方案:使用对称加密方式保护数据
- 用户A在向B发送数据前,将内容使用对称加密方式加密(私密性)
- 用户B接收数据后,使用相同的密钥解密数据
问题二:用户A怎么将密钥告知B?怎么保证第三方不会从网络中获取到这个密钥?
方案:使用非对称加密方式保护密钥传输
- 用户A使用B的公钥加密数据密钥,与加密后的通信内容一块发送给B
- 用户B向使用私钥解密获取数据的加密密钥,再解密通信内容
问题三:用户A怎么在网络环境下获取B的公钥?如何证明公钥不会是攻击者发送的?
方案:引入CA作为公信机构
- 所有通信方都通过安全的方式获取CA的证书(如浏览器内置了一些机构的证书),证书中包含了CA的公钥及身份信息
- 用户B向CA提交一个证书申请,提交的信息包含用户B的身份信息及公钥等内容
- CA审批通过后,使用私钥为B签发证书,该证书包括了B的公钥及身份信息(身份唯一性),还有CA使用私钥对这些信息作的签名(完整性)
- 用户A从B获取证书,先通过CA的公钥验证该证书是否有效,再看身份信息是否属于B。验证通过后,获取证书中B的公钥以通信
问题四:证书是公开的,用户B收到数据后,怎么判断该数据是A发送而不是C冒充发送的?或者A发送了该数据后不认账怎么办?
方案:通信双方都使用证书
- 用户A将发送的内容的hash值用私钥签名,一起发送出去(不可抵赖性)
- 用户B获取A的证书,使用证书中的公钥校验接收内容的签名,校验通过证明数据确实是A发送的
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171997.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...