1 Star 0 Fork 91

wudong / Linux学完就忘系列

forked from baoke / Linux学完就忘系列 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
44.通信加密和解密、公钥、私钥、CA.md 4.81 KB
一键复制 编辑 原始数据 按行查看 历史

OpenSSL

传输层协议:TCP、UDP、SCTP
port:进程地址,进程向内核注册使用某端口(独占)

同一主机上的进程间通信:IPC,message queue,shm,semerphor
不同主机上进程间通信:socket
ClientIp:port <-- --> ServerIp:port
cip:55673 <-- --> sip:80

监听模式:LISTEN (Ip:port)

SSL:Secure Sockets Layer
http --> ssl --> https

安全的目标:
保密性:confidentiallty
完整性:integrity
可用性:availability

攻击类型:
威胁保密性攻击:窃听、通信量分析;
威胁完整性的攻击:更改、伪装、重放、否认
威胁可用性的攻击:拒绝服务(DOS)

解决方案:
技术(加密和解密)、服务(用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务)

加密和解密:
传统加密方法:替代加密方法、置换加密方法
现代加密方法:现代加密方法、

服务:
认证机制
访问控制机制

Linux系统:OpenSSL(ssl)、GPG(pgp)

OpenSSL由三部分组成:
libencrypto库
libssl库
openssl多用途命令行工具

密钥算法和协议

对称加密:加密和解密使用同一个密钥;

对称机密算法:
DES:Data Encryption Standard;
3DES:Triple DES;
AES:Advanced Encryption Standard;(128bits,192bits,256bits,384bits)
Blowfish
Twofish
IDEA
RC6
CAST5

特性:
1、加密、解密使用同一密钥;
2、将原始数据分割成为固定大小的块,逐个进行加密;

缺陷:
1、密钥太多;
2、密钥分发困难;

公钥加密

密钥分为公钥和私钥
公钥:从私钥中提取产生;可公开给所有人;pubkey;
私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

用途:
数字签名:主要在于让接收方确认发送方的身份;用于完成身份认证;
实现方式:
发送方用自己的私钥去加密数据特征码,接收方用对方的公钥去解密,如果能解开,从而就让接收方确认了发送方的身份
发送方用自己的私钥去加密数据特征码的这个结果就叫做数字签名

密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
数据加密

公钥加密算法:RSA、DSA、ELGamal
DSA和RSA不同的地方在于,DSA仅能实现签名,而不能用于加解密.RSA即能签名,又能加解密.
DSA:Digital Signature Algorithm也叫作DSS:Digital Signature Standard.

假设:Alice和Bob进行通信加密过程:
加密过程:
1、Alice为了保证数据安全无误保密的送达给Bob.Alice先用单向加密算法,计算出这段数据的特征码.
2、而后用自己的私钥加密这段特征码,将特征码附加在这段数据的后面,生成数字签名.
3、Alice生成一个临时的对称密钥,并使用对称密钥加密整段数据(也就是之前的数据和特征码),生成一个对称加密后的密码.
4、Alice会获取到Bob的公钥,并用公钥加密上一步生成的密码,并附加在整段数据之后.发送给Bob.
解密过程:
5、Bob先用自己与公钥配对的私钥解密.这个过程就叫做密钥交换.
6、对称加密的密钥解密数据.
7、用Alice的公钥去解密特征码.能解密则代表Alice的身份得到了验证.
8、Bob再用同样的单向加密算法去计算数据的特征码,并与解密出来的特征码相比较,如果一样说明数据的完整性得到了验证.
以上步骤保证了保密性和完整性同时完成了身份验证;

单向加密

即提取数据指纹;只能加密,不能解密;
特性:定长输出、雪崩效应;
功能:完整性验证;

单向加密算法:
md5:Message Digest 5,128bits
sha1:Secure Hash Algorithm 1,160bits
sha224,sha256,sha384,sha512

密钥交换:IKE(Internet Key Exchange)

公钥加密
DH(Deffie-Hellman)

PKI:公钥基础设施 Public Key Infrastructure
签证机构:CA
注册机构:RA
证书吊销列表:CRL 证书存取库:CB

X.509v3:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法ID
发行者名称
有效期限
主体名称
主体公钥
发行者的唯一标识
主体的唯一标识
扩展信息
发行者签名

SSL:Secure Sockets Layer
Netscape:1994
V1.0,V2.0,V3.0
有安全性问题已经废弃

TLS:Transport Layer Security
IETF:1999 V1.0,V1.1,V1.2,V1.3

分层设计:
1、最底层:基础算法原语的实现,aes,ras,md5;
2、向上一层:各种算法的实现;
3、再向上一层:组合算法实现的半成品;
4、用各种组件拼装而成的各种成品密码学协议软件;

协议开源实现:OpenSSL

Shell
1
https://gitee.com/wudongmeng/linux.git
git@gitee.com:wudongmeng/linux.git
wudongmeng
linux
Linux学完就忘系列
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891