千家信息网

加密、数字签名和数字证书

发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,加密、数字签名和数字证书1 对称加密对称加密算法中,加密和解密使用的是同一个秘钥,所以秘钥的保护是非常重要的,对称加密和解密过程如下图:对称算法加密过程对称算法解密过程尽管对称秘钥能够满足对内容的加密
千家信息网最后更新 2024年11月13日加密、数字签名和数字证书

加密、数字签名和数字证书

1 对称加密

对称加密算法中,加密和解密使用的是同一个秘钥,所以秘钥的保护是非常重要的,对称加密和解密过程如下图:

  • 对称算法加密过程

  • 对称算法解密过程

尽管对称秘钥能够满足对内容的加密了,但是对称算法还是存在以下两个问题的。

1、秘钥泄密风险:务端与客户端彼此之间必须约定将使用的密钥,而这个约定的过程本身就可能存在泄密的风险;

2、如果有100甚至更多的客户端要向服务器发送文件。那么,服务器可能需要有100多次约定密钥的过程。

由此可见,无论是安全性还是可用性上,对称密钥都是存在问题的。而两个问题则是必须解决的。

2 非对称加密

非对称算法加密和解密使用的是不同的秘钥,加密算法有一对秘钥,分别是公钥和私钥,公钥是公开的,私钥则是自己保管。

  • 非对称算法加密过程

  • 非对称算法解密过程

3 数字签名和加密

加密是指对某个内容加密,加密后的内容还可以通过解密进行还原。 比如我们把一封邮件进行加密,加密后的内容在网络上进行传输,接收者在收到后,通过解密可以还原邮件的真实内容。

签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过。签名一般是对信息做一个hash计算得到一个hash值,注意,这个过程是不可逆的,也就是说无法通过hash值得出原来的信息内容。在把信息发送出去时,把这个hash值加密(使用非对称算法的私钥进行加密)后做为一个签名和信息一起发出去。接收方在收到信息后,会重新计算信息的hash值,并和信息所附带的hash(解密后)进行对比,如果一致,就说明信息的内容没有被修改过,因为这里hash计算可以保证不同的内容一定会得到不同的hash值,所以只要内容一被修改,根据信息内容计算的hash值就会变化。当然,不怀好意的人也可以修改信息内容的同时也修改hash值,从而让它们可以相匹配,为了防止这种情况,hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。

数字签名解决了信息安全上面的不可抵赖性和不可篡改性问题。

4 数字证书

基于非对称密钥算法,Bob生成了一对公私钥。Bob将公钥发布在公开的密钥库中。而Alice在向Bob发送加密文件或者验证Bob签名的文件时,均要从公钥库取到Bob的公钥。我们已经知道,一般来说公钥就是一段固定长度的字符串,并没有特定的含义。

为了让Alice能够方便的辨别公钥,我们可以考虑对给公钥附加一些信息,例如该公钥使用的算法,该公钥的所有者(主题),该公钥的有效期等一系列属性。这样的数据结构我们称作PKCS10数据包

公钥的主题我们采用唯一标示符(或称DN-distinguished name),以尽量唯一的标示公钥所有者。以下是基于抽象语法表示法所定义的PKCS10数据结构:

我们已经有了PKCS10数据包,除了公钥信息外,还有公钥的持有者,公钥的版本号等信息。然而这样的数据结构其实并没有任何权威性。例如有一天一个叫做Richard的人想冒充Bob,也生成一对公私钥,并且使用了相同的公钥主题封装为P10数据结构。Alice其实并没有办法分辨哪个是真实Bob的公钥。

为了解决这个问题,就需要一个权威的第三方机构,对P10结构的数据进行认证。就如同对P10文件盖上一个权威的章,防止仿照。这样的权威机构,我们称作CA(Certificate Authority)数字证书认证中心。而CA如何为P10数据盖章呢?非常简单,就是我们前文已经提到的数字签名技术:

① 如上图所示,CA机构其实也持有一张私钥。一般来说,CA会对这份私钥进行特别的保护,严禁泄漏和盗用。

② Bob将自己的公钥附加上一系列信息后,形成了P10数据包(请求包),并发送给CA

③ CA机构通过其他一些手段,例如查看Bob的身份信息等方式,认可了Bob的身份。于是使用自己的私钥对P10请求进行签名。(也可能会先对数据进行一些简单修改,如修改有效期或主题等)

④ 这样的签名结果,我们就称作数字证书。

数字证书同样遵循一个格式标准,我们称作X509标准,我们一般提到的X509证书就是如此。

5 基于数字证书发送文件过程

基于数字证书,我们可以再来看看Bob如何给Alice发送一份不可否认、不可篡改的文件:

第一步:Bob除了对文件进行签名操作外,同时附加了自己的数字证书。一同发给Alice

第二步:Alice首先使用CA的公钥,对证书进行验证。如果验证成功,提取证书中的公钥,对Bob发来的文件进行验签。如果验证成功,则证明文件的不可否认和不可篡改。


可以看到,基于数字证书后,Alice不在需要一个公钥库维护Bob(或其他人)的公钥证书,只要持有CA的公钥即可。数字证书在电子商务,电子认证等方面使用非常广泛,就如同计算机世界的×××,可以证明企业、个人、网站等实体的身份。同时基于数字证书,加密算法的技术也可以支持一些安全交互协议(如SSL)。


参考:https://yq.aliyun.com/articles/54155

公钥 加密 信息 数字 证书 对称 算法 数字证书 内容 数据 文件 过程 密钥 结构 问题 数字签名 主题 就是 数据结构 机构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 信息检索与数据库 物流手机软件开发 网络安全手抄报字少超简单 软件开发人员外包合同模板 网络技术排行榜 数据库中如何创建索引 如何查询网络安全密匙 网络安全教育研究性课题 js 内存数据库 什么时候会查看数据库 软件开发企业培训费 网络安全审查办法提出建议 怀旧服魔兽服务器人数查询 手机软件开发创业 psv还能连服务器吗 森林可以开服务器吗 实用计算机网络技术考试题 简单股票软件开发 人工智能应用软件开发工作总结 网络安全法对企业影响 四合青春网络技术北京有限公司 初中网络安全知识主题班会课 新罗区捷步金网络技术工作室 中学网络安全教育主题活动 华为捐给国家服务器系统叫什么 t3 数据库 安装 互联网科技公司和电商的区别 浙江商业软件开发要多少钱 数字化转型传统数据库问题 药店药品系统数据库设计
0