Linux安全机制与加密工具使用

发表于:2016-9-26 10:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:运维部落    来源:51Testing软件测试网采编

  二、常用加密工具使用详解
  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
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号