18/6/5开发日记: 证书和密钥

本文详细解释了公钥和私钥的概念及其在安全通信中的应用,并介绍了数字证书的构成及验证流程,帮助读者理解信息安全的基础。

公钥和私钥

公钥和私钥可理解为两个有关系的数字密码。经公钥加密的数据只可以被私钥解密。经私钥加密的数据也只可以被公钥解密。通常情况下公钥是对外公开的,私钥是保密的。

例:A与B通信,通信内容不想被他人知道,可以采用如下方式进行通信

1)  A与B互相交换公钥(A与B各自有自己的公钥和私钥)。

2)  A使用B的公钥加密通信内容后发给B(这样只有B手上的私钥才能解密)。

3)  B收到A发的信后,使用自己的私钥解密,再用A的公钥对回信内容进行加密后发给A。

4)  A收到B的回信,使用自己的私钥进行解密。

数字证书

一个数字证书包含的内容有:

1、一个公钥(证书使用者的公钥) 

2、证书的基本信息,主要包括使用者的名字(通常是IP或域名)、证书有效期、加密算法等公开信息                                        3、签发该数字证书的颁发者(称为CA)的信息和签名(使用颁发者的私钥加密的一段数据,只有使用颁发者的公钥才能解密)。

正式的数字证书的颁发者必须是权威机构,权威机构的证书(包含权威机构的公钥的数字证书,也就是权威机构的CA证书)是公开的,所以只要拿到权威机构的CA证书,我们就能对其签发数字证书的签名进行解密,解密成功证明该数字证书是权威机构所签发的。

    于是,A与B之间的通信就变成这样:

1)  A与B互相交换数字证书

2)  A收到的证书为“某权威机构C签发给B的证书”

3)  A拿到权威机构C的CA证书,对B证书上的签名(权威机构C的签名)进行解密,解密成功,证明这个证书是权威机构C签发给B的证书。如果A信任权威机构C,则也信任权威机构C签发给B的证书,再使用B证书中的公钥对通信内容进行加密发给B。

4)  B收到A的证书也做类似处理。

说明:    

     自签名的证书是由开发者自己签发的证书。一般情况下,先制作根证书(CA证书,开发者持有对应的私钥),再用根证书的私钥签发子证书。当然,由于开发者持有自签名根证书的私钥,也可以直接使用自签名根证书作为通信过程中的数字证书。

订阅推送成功了!!!!!!!!

接下来就是写接口了!!

学习GO语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值