博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础知识之密码学和证书
阅读量:5836 次
发布时间:2019-06-18

本文共 1660 字,大约阅读时间需要 5 分钟。

hot3.png

本次使用证书方式实现vpn链接。所以这篇主要讲解证书和密码学相关知识。

基本思想

数据加密的基本思想是通过变换信息的表示形式来伪装需要保护的敏感信息,使非授权者不能了解被保护信息的内容。网络安全使用密码学来辅助完成在传递敏感信息的的相关问题,主要包括:   1.机密性:仅发送方和接收方知道数据内容,即使被截获也不会知晓内容。   2.可靠性:确保第三方不能冒充对方和你通信。   3.报文完整性:确保数据的完整。   4.不可否认性:消息发送者不能否认自己发送过报文。

对称秘钥:

使用同一把秘钥加密解密数据,常见有DES,3DES.   优点:1. 相对非对称加密而言,他的加密速度更快。        2.密钥的位数大的会话很难攻破。   缺点:1.对称式加密算法需要一个安全的机制来分发密钥。每一个使用者都需要一对唯一的密钥,因此密钥的数量会随着使用者增加成倍的增加,这对密钥的管理造成了很大难度。        2.使用对称式加密只能保证数据的机密性,无法保证数据来源的确认和数据的完整性。 对称加密只能保证上述思想1。

非对称秘钥:

通过一定的算法生成公钥和私钥,私钥负责加密,公钥负责解密。公钥公开,私钥私有。  使用公钥加密的特点: 1.保证数据的机密性,同样拥有公钥的机器无法得到数据。 2.无法保证鉴别,别人拥有公钥,可以冒充他人和你通信。   使用私钥加密的特点: 1.不能保证机密性,私钥加密的数据所有公钥都可以机密 2.可以保证数据的可靠性,因为私钥只有一个人拥有。

如图所示,此时A只需要一对公私钥便可以和BCD通信。

消息摘要算法:

信息摘要算法保证数据的完整性。具有不可逆性。通过将数据编码成固定长度的摘要。常见的信息摘要算法MD,SHA,MAC   特点1.不可逆性,编码后的摘要不能还原数据   特点2.等长性,编码后长度固定。

Diffie-Hellman秘钥交换算法:

一种确保共享KEY安全穿越不安全网络的算法。DH算法在strongswan第一次数据交换是就会被确定下来。用于确定两边的秘钥。

数字签名与证书:

数字签名保证数据的可靠性和不可否认性。

###数字签名使用示例如下:

1.使用私钥A对数据加密。  2.使用信息摘要算法将数据编码成固定长度的摘要。  3.将摘要使用私钥A加密。加密的数据就是签名。此加密有两层作用。一是保证信息是A发送来的(如果不是由A发送的,用A的公钥将无法解密或者解密后的数据不对),二是保证信息的完整性。  4.发送给B  5.解密数据和签名,使用和A一样的摘要算法编码数据。用以确保数据的完整性。第2,3步就是签名。

###证书 证书的使用前提是:如何保证A的公钥是A的呢?我们假设C用户偷偷的将B所使用的A公钥换成C公钥。

如上图,c将A的公钥替换成c的公钥。C就可以伪装成A,和B通信。这种情况在浏览器中经常出现。因为浏览器无法判断自己所管理的公钥是否属于正规网站。  证书的体系中引入第三方。也就是我们常说的签名证书。

1.百度公司将自己公司的信息、公钥、当前证书的信息发送给google公司。google公司使用自己的私钥加密这些信息。加密后的信息就是证书。  2.百度接收到信息,将该证书发送给用户。  3.用户使用浏览器里面google的公钥将证书解密。得到百度公司的公钥、证书信息、百度公司信息。  4.用户使用百度公司的证书和百度公司通信。最后,google公司将自己的公钥、google公司信息使用对应的私钥加密所得到的证书,我们一般称之为CA证书。CA证书为权威的自签名证书。

openssl生成证书:

该链接用于证书生成: https://blog.csdn.net/zzsfqiuyigui/article/details/39533479 待补充

pki检查证书

pki --print --in ca.cert

转载于:https://my.oschina.net/u/2259252/blog/2252677

你可能感兴趣的文章
Java基础之String,StringBuilder,StringBuffer
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>