Linux安全机制与加密工具使用
作者:运维部落 发布时间:[ 2016/9/26 11:32:28 ] 推荐标签:操作系统 Linux
二、常用加密工具使用详解
1.OpenSSL开源项目
1)三个组件:
openssl: 多用途的命令行工具
libcrypto: 加密算法库
libssl:加密模块应用库,实现了ssl及tls
2)openssl命令
两种运行模式:交互模式和批处理模式
opensslversion:程序版本号
标准命令、消息摘要命令、加密命令
标准命令: enc, ca, req, ... enc查看命令的详细使用方法
3)对称加密
工具:opensslenc, gpg
算法:3des, aes, blowfish, twofish
4)enc命令:man enc
加密:
openssl enc -e -des3 -a -salt -in /tmp/fstab -out fstab.cipher
解密:
openssl enc -d -des3 -a -salt -in fstab.cipher -out fstab
5)opensl dgst -md5 fstab==md5sum fstab
6)单向加密:
工具:md5sum, sha1sum, sha224sum,sha256sum…
openssldgst
7)dgst命令:man dgst
openssldgst -md5 [-hex] /PATH/TO/SOMEFILE
openssldgst -md5 fstab
md5sum /PATH/TO/SOMEFILE
8)MAC: Message Authentication Code,单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制
CBC-MAC
HMAC:使用md5或sha1算法
9)生成用户密码:
passwd命令:man sslpasswd
opensslpasswd -1 -salt SALT(多8位)
opensslpasswd -1 –salt centos
10)生成随机数:man sslrand
opensslrand -base64|-hex NUM
NUM: 表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2
11)公钥加密
算法:RSA, ELGamal
工具:gpg, opensslrsautl(man rsautl)
12)数字签名
算法:RSA, DSA, ELGamal
13)密钥交换
算法:dh
DSA: Digital Signature Algorithm
DSS:Digital Signature Standard
RSA:
14)密钥生成过程
生成密钥对儿:man genrsa
生成私钥:
openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS
(umask077; openssl genrsa -out key.pri –des 2048)
从私钥中提取出公钥:
openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE
openssl rsa -in aaa.key -pubout -out aaa.pub
随机数生成器:伪随机数字
键盘和鼠标
块设备中断
/dev/random:仅从熵池返回随机数;随机数用尽,阻塞
/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞
2.OpenSSL的CA机制
1)PKI:Public Key Infrastructure
CA:证书认证
RA:证书注册
CRL:证书吊销
证书存取库2)建立私有CA:
OpenCA
openssl3)证书申请及签署步骤 1.生成申请请求 2.RA核验 3.CA签署 4.获取证书4)创建CA和申请证书
openssl的配置文件:/etc/pki/tls/openssl.cnf
(1) 创建所需要的文件
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
(2)CA自签证书
生成私钥
cd /etc/pki/CA/
(umask066; openssl genrsa -out /etc/pki/CA/private/cakey.pem2048)
生成自签名证书
openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300
-out /etc/pki/CA/cacert.pem
-new: 生成新证书签署请求;
-x509: 专用于CA生成自签证书;
-key: 生成请求时用到的私钥文件;
-days n:证书的有效期限;
-out /PATH/TO/SOMECERTFILE: 证书的保存路径
(3)颁发证书
(a) 在需要使用证书的主机生成证书请求;
给web服务器生成私钥
(umask066; openssl genrsa -out/etc/httpd/ssl/httpd.key 2048)
生成证书申请文件
openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
(b) 将证书请求文件传输给CA
(c) CA签署证书,并将证书颁发给请求者;
opensslca -in /tmp/httpd.csr –out /etc/pki/CA/certs/httpd.crt -days 365
注意:证书中,省,公司名称必须和CA一致(配置文件中有定义,如果想要不一致也可以,则可以去修改配置文件完成)
(d) 查看证书中的信息:
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|subject|serial|dates
(4) 吊销证书
(a) 在客户端获取要吊销的证书的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
(b) 在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致
吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/ SERIAL.pem
注:在index.txt中保存的证书信息前是V为有效证书,如果是R则为已吊销的证书
在文件/etc/pki/CA/newcerts中有每个证书对应的序列号
(c) 生成吊销证书的编号(第一次吊销一个证书时才需要执行)
echo 01 > /etc/pki/CA/crlnumber
(d) 更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl
查看crl文件
openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text
注:客户端中配置的有关于证书的吊销列表从互联网哪里下载,以保证证书的有效性
3.应用程序RPM
1)文件完整性的两种实施方式2)被安装的文件
MD5单向散列
rpm -versify package_name(or -V)3)发行的软件包文件
GPG公钥签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat*
rpm --checksig pakage_Pfile_name(or -K)
4.gpg工具的使用
1)使用gpg实现对称加密
对称加密file文件
gpg -c file
ls file.gpg
解密file
gpg -o file2 -d file.gpg
注:如果加密和解密在同一台主机上,解密的时候不需要输入密码2)使用gpg工具实现公钥加密
在hostA主机上生成公钥/私钥对
gpg --gen-key
在hostA主机上查看公钥
gpg --list-keys
在hostA主机上导出公钥wang.pubkey
gpg -a --export -o wang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上
scp wang.pubkey hostB
在需加密数据的hostB主机上生成公钥/私钥对
gpg --list-keys
gpg --gen-key
在hostB主机上导入公钥
gpg --import wang.pubkey
gpg--list-keys
用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg
gpg -e -r wangedu file
file file.gpg
复制加密文件到hostA主机
scp fstab.gpg hostA
在hostA主机解密文件
gpg -d file.gpg
gpg -o file -d file.gpg
删除公钥和私钥
gpg --delete-secret-keys wangedu
gpg --delete-keys wangedu
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Linux下开源的DDR压力测试工具曝Linux恶意软件:让树莓派设备挖掘数字货币linux系统中不同颜色的文件夹及根目录介绍软件测试工程师必知必会Linux命令Linux下DNS服务器配置如何成为不可替代的Linux运维工程师?详解Linux进程(作业)的查看和杀死Linux 日志定时轮询流程详解比特币勒索病毒不只Windows系统有,Linux版的来了Linux日志定时轮询流程详解Linux iommu和vfio概念空间解构Linux系统如何低于TCP洪水攻击Linux无损调整分区大小Linux下防火墙配置实例Linux使用Jexus托管Asp.Net Core应用程序Linux中引号的那些事
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南