OpenSSL

412 阅读3分钟
 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:从熵池返回随机数,会利用软件生生成伪随机数,非堵塞