CA和证书以及openssl工具基础

CA和证书

CA(Certificate Authority)签证机构

CA的作用是为网络中通信双方的公钥提供可信任数字签名

CA是被公认的的网络信任结构,CA证书的内容包括:

颁发者 
使用者 
版本 
签名算法 
签名哈希算法 
使用者 
公钥 
指纹 
指纹算法 

证书获取 证书类型: 证书授权机构的证书 服务器 用户证书 获取证书两种方法: • 使用证书授权机构 生成签名请求(csr) 将csr发送给CA 从CA处接收签名 • 自签名的证书 自已签发自己的公钥

安全协议

SSL: Secure Socket Layer,TLS: Transport Layer Security

功能:机密性,认证,完整性,重放保护

两阶段协议,分为握手阶段和应用阶段 握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。 应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信

OpenSSL OpenSSL:开源项目 三个组件: openssl: 多用途的命令行工具,包openssl libcrypto: 加密算法库,包openssl-libs libssl:加密模块应用库,实现了ssl及tls,包nss openssl命令: 两种运行模式:交互模式和批处理模式 openssl version:程序版本号 标准命令、消息摘要命令、加密命令 标准命令: enc, ca, req, ...

openssl命令

对称加密: 工具:openssl enc, gpg 算法:3des, aes, blowfish, twofish

enc命令: 帮助:man enc

-e 默认为使用-e选项,所以缺省 -des3 使用3DES加密算法 -salt 使用盐,保证同一个文件的加密生成的密文每次不同 -in 需要openssl处理的文件

-out 处理完输出的文件

加密: openssl enc -e -des3 -a -salt -in testfile-out testfile.cipher

解密: openssl enc -d -des3 -a -salt –in testfile.cipher-out testfile

单向加密**

使用 dgst 子命令完成单向加密

dgst命令: 帮助:man dgst openssl dgst -md5 [-hex默认] /PATH/SOMEFILE openssl dgst -md5 testfile md5sum /PATH/TO/SOMEFILE

生成用户密码: passwd命令: 帮助:man sslpasswd openssl passwd -1 -salt SALT(最多8位) openssl passwd -1 –salt centos

生成随机数: 帮助:man sslrand openssl rand -base64|-hex NUM (NUM: 表示字节数;-hex时,每个字符为十六进制,相当于4位二进制,出 现的字符数为NUM*2)