OpenSSL(1)
传输层协议:TCP,UDP,SCTP
port:进程地址,进程向内核注册使用某端口(独占)
同一主机上的进程间通信:IPC, message queue, shm, semerphor
不同主机的进程间通信:socket
cip:port <-- --> sip:port
cip:55673 <-- --> sip:80
监听模式:LISTEN (ip:port)
SSL: Secure Sockets Layer
http --> ssl --> https
安全的目标:
保密性:confidentiality
完整性: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
DSS: Digital Signature Standard
DSA:Digital Signature Algorithm
单向加密:即提出数据指纹;只能加密,不能解密;
特性:定长输出、雪崩效应;
功能:完整性;
算法:
md5:Message Digest 5, 128bits
sha1:Secure Hash Algorithm 1, 160bits
sha224, sha256, sha384, sha512
密钥交换: IKE(Internet Key Exchange)
公钥加密
DH(Deffie-Hellman)
A:p, g
B:p, g
A: x
--> p^x%g ==> B
A: (p^y%g)^x=p^yx%g
B: y
--> p^y%g ==> A
B: (p^x%g)^y=p^xy%g
PKI:Public Key Infrastructure
公钥基础设施:
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库:
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, rsa, md5
2、向上一层:各种算法的实现;
3、再向上一层:组合算法实现的半成品;
4、用各种组件拼装而成的各种成品密码学协议软件;
协议的开源实现:OpenSSL