NIST:
保密性:
数据保密性
数据隐私性
完整性:
数据完整性
系统完整性
可用性
安全攻击:
被动攻击:窃听
主动攻击:伪装,重放,消息篡改,拒绝服务
安全机制:
加密、数字签名、访问控制、数据完整性、认证交换机制、流量填充、路由控制
安全服务:
认证
访问控制
数据保密性
连接保密性
无连接保密性
选择域保密性
流量保密性
数据完整性
不可否认性
密码算法和协议:
对称加密
公钥加密
单向加密
认证协议
linux系统:OpenSSL,gpg(pgp)
加密算法和协议:
对称加密:加密和解密使用同一个密钥;
DES:Data Encryption Standard
3DES:
AES:
Blowfish
IDEA
RC6
CAST5
特性:
1.加密、解密使用同一个密钥
2.将原始数据分割成固定大小的块,逐个进行加密
缺陷:
1.密钥过多
2.密钥分发
公钥加密:密钥是成对出现
公钥:公开给所有人;pubkey
私钥:自己留存,必须保证其私密性 secret key
特点:用公钥加密得而数据,只能使用与之配对的私钥进行解密;反之亦然。
数字签名:主要在于让接收方确认发送方的身份
密钥交换:发送方用对方的公钥加密一个对称密钥,并发送给接收方
数据加密
常见算法:RSA,DSA,ELGamal
单向加密:只能加密,不能解密;提取数字指纹
特征:定向输出、雪崩效应
算法:
md5:128bits
sha1:160bits
sha224
sha256
sha384
sha512
功能:
完整性
密钥交换:IKE
公钥加密:
DH(Deffie-Hellman)
PKI:Public Key Infrastruction 签证机构:CA 注册机构:RA 证书吊销列表:CRL 证书存取库 X509:定义了证书的结构以及认证协议标准 版本号 序列号 签名算法ID 发行者名称 有效期限 主体名称 主体公钥 发行者的唯一标识 主体的唯一标识 扩展 发行者签名 ssl:secure socket layer
tls: transport layer security
1995:SSL2.0 Netscape
1996:SSL3.0
1999:TLS 1.0
2006:TLS 1.1 RFC 4346
2008 TLS 1.2
2015 TLS 1.3
分层设计:
1.最底层:基础算法原语的实现,aes,rsa,md5
2.向上一层:各种算法的实现
3.再向上一层:组合算法实现的半成品
4.用各种组件拼装而成的种种成品密码学协议/软件
openssl:开源项目
三个组件:
openssl:多用途的命令行工具
libcrypto:公共加密库
libssl:库,实现ssl及tls
openssl命令:
openssl version:程序版本号
标准命令、消息摘要命令、加密命令
标准命令:
enc,ca,req
对称加密:
工具:openssl enc,gpg
算法:3des,aes,blowfish,twofish
enc命令:
加密:~]# openssl enc -e -des3 -a -salt -in fstab.ciphertext
解密:~]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
单向加密:
工具:md5sum,shalsum sha224...openssl dgst
dgst命令:
penssl dgst -md5 /PATH/TO/SOMEFILE
MAC:Mesage Authentication Code 单向加密的延伸应用,用于实现在网络通信中保证数据的完整性
机制:
CBC-MAC
HMAC:使用md5或sha1算法
生成用户密码:
passwd命令
openssl passwd -1 -salt SALT
生成随机数:
openssl rand -base64|-hex NUM
NUM:表示字节数:-hex时,每个字节4位,出现的字符数为NUM*2
公钥加密:
加密:
算法:RSA,ELGamal
工具:openssl rsautl,gpg
数字签名:
算法:RSA,DSAT,ELGmal
密钥交换:
算法:dh
DSAl:DIgital Signature Algorithm
DSS:Digtal Signture Standard
RSA:
生成密钥对:
openssl genrsa -out /PATH/TO/PRINVATEKEY.FILE NUM_BITS
#(umask 077; openssl genersa -out key.pri 2048)
提取出公钥:
#openssl rsa -in /PATH/FROM/PRINVATEKEY.FILE -puboot
随机数生成器:
/dev/random:仅从熵池返回随机数,随机数用完,阻塞
/dev/urandom:从熵池返回随机数,会利用软件生生成伪随机数,非堵塞