对于linux运维工作者而言,加密技术已经很早就用于数据的存储和数据之间的交换。我们可以会为了防止你的网站、服务器或者系统,我们会使用一些手段来防止一些恶意的攻击或者访问。一下就对linux的安全和加密依据个人学习经验做以下总结。

学习的章节内容:

目录

安全机制

对称和非对称加密

散列算法

gpg

PKI和CA

openssl

证书管理

ssh服务和dropbear

aide

Sudo

TCP Wrappers

PAM模块


安全机制

信息安全防护的目标
保密性                                                         Confidentiality
完整性                                                          Integrity
可用性                                                          Usability
可控制性                                                     Controlability
不可否认性                                                 Non-repudiation

安全防护环节

物理安全:各种设备/主机、机房环境
系统安全:主机或设备的操作系统
应用安全:各种网络服务、应用程序
网络安全:对网络访问的控制、防火墙规则
数据安全:信息的备份与恢复、加密解密
管理安全:各种保障性的规范、流程、方法

对称和非对称加密

什么是加密?加密总的来说就是将一串数据或者一个文件从明文转为密文的过程;对于已经加密的数据或者文件,使用某种方法将其从密文转为明文的过程就是解密了。

加密的过程分为两种:对称加密和非对称加密。

    所谓对称加密,就是加密和解密的过程中使用同一个密钥。它的实现过程是:使用钥匙对数据或者文件进行加密,然后用户可以使用这把钥匙对数据或者文件解密。这样做的好处是,在处理数据或者文件时效率很高,但是同时安全性就较低。想想看,如果想让两个用户查看你的文件,你需要把你的钥匙复制两把分别给这两个用户,但由于你的文件锁只有这一个,所以如果这两个用户把你的钥匙复制送给了别人,别人是不是也可以轻而易举的打开你的锁?这样就会造成密钥过多,安全性降低。那么这个问题就由非对称加密来解决了。

非对称加密就比较厉害了。非对称加密的钥匙是成对出现的。即我们常听说的公钥和私钥。顾名思义,公钥就是公共的钥匙,即这把钥匙大家都可以有,你好我好大家好。那私钥就是自己私人的钥匙呗,自己小金库的钥匙你总不能给人家吧?一个道理。那么非对称加密是怎么实现加密过程的呢?如果只想将一个文件给固定的一个用户看,使用用户的公钥对文件加密,用户如果想要查看,就要使用自己的私钥进行解密,这样是不是就保证了只要用户才能查看文件的内容,而其他人看到的只能是加密过的文件。但是这样做也同时带来一个缺点,就是效率问题。密钥过长,加密解密耗时长。这就是非对称加密的实现原理。

常用密码算法和协议

  • 常用的对称加密算法:DES (56)、3DES、AES (128,192,256,384,512)、Blowfish、Twofish、IDEA、RC6、CAST5等 ;
  • 公钥加密:也叫非对称加密,是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。
  • 常用的公钥加密算法:RSA, DSA, EIGamal等;
  • 单向加密:是不可解密的加密方法,是非可逆的;
  • 常用的公钥加密算法:MD5、SHA1、SHA256、SHA384、SHA512等;

认证协议:

  • IKE协议(英特网密钥交换协议):常用来确保虚拟专用网络***与远端网络或者宿主机进行交流时的安全;
  • SSL( 安全套接字层): 网络通信提供安全及数据完整性的一种安全协议。
  • TLS(传输层安全): 是仿照SSL制定,用于在两个通信应用程序之间提供保密性和数据完整性。

对称加密算法

对称加密:加密和解密使用同一个密钥

  • DES: Data Encryption Standard, 56bits
  • 3DES:
  • AES: Advanced (128, 192, 256bits)
  • Blowfish, Twofish
  • IDEA, RC6, CAST5

特性:

  • 1、加密、解密使用同一个密钥,效率高
  • 2、将原始数据分割成固定大小的块,逐个进行加密

缺陷:

  • 1、 密钥过多
  • 2、密钥分发
  • 3、数据来源无法确认

Linux上有一个加密的小工具,即gpg,使用它可以实现对称和非对称加密。

【实验】gpg对称加密

现在我们有两台机器,分别是centos6和centos7,利用gpg来实现对称加密。

现有一个test文件,使用gpg -c 对文件进行加密:

输入密钥口令:

回车后系统会生成后缀为.gpg的已经加密过的文件:

使用scp命令将文件发给centos6:

在centos6上查看文件:

解密过程:

输入密钥口令: 

对称加密的整个实现过程很简单,因此也验证了我们上面所说的安全性低的问题。

非对称加密算法

公钥加密: 密钥是成对出现

  • 公钥:公开给所有人; public key
  • 私钥:自己留存,必须保证其私密性; secret key (private)
  • 特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然

功能:

  • 数字签名:主要在于让接收方确认发送方身份
  • 对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
  • 数据加密:适合加密较小数据

缺点:密钥长, 加密解密效率低下

算法:

  • RSA(加密,数字签名) bob----> alice                       alice公钥加密【bobS(data)】用bob私钥加密
  • DSA(数字签名)
  • ELGamal

公钥私钥文件:

[root@centos6-->01:08:46~]#cd /etc/ssh[root@centos6-->02:17:13/etc/ssh]#lsmoduli ssh_host_dsa_key ssh_host_key.pubssh_config ssh_host_dsa_key.pub ssh_host_rsa_keysshd_config ssh_host_key ssh_host_rsa_key.pub

检查包的完整性:

先导入公钥:

[root@centos6-->01:08:46~]# rpm --import /misc/cd/RPM-GPG-KEY-Centos-7
[root@centos6-->01:08:46~]# rpm -K /misc/cd/Packages/tree-1.5.3-3.el6.x86_64.rpm

/misc/cd/Packages/tree-1.5.3-3.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

【实验】非对称加密的实现

在hostB主机上用公钥加密,在hostA主机上解密

1、在centos 7主机上生成公钥/私钥对

gpg --gen-key

2、在centos7主机上查看生成的公钥

gpg --list-keys

3、在centos7主机上导出公钥到zhang.pubkey

gpg -a --export -o zhang.pubkey

4、从centos7主机上复制公钥文件到需加密的B主机上

scp zhang.pubkey hostB:

scp zhang.pubkey 192.168.161.129

完成第一阶段。

第二阶段:在主机B上生成非对称公钥/密钥对

1、在需加密数据的centos6主机上生成公钥/私钥对

[root@centos6-10 ~ 12:10:38]# gpg --list-keys            ##查看公钥私钥
[root@centos6-10 ~ 12:10:38]# gpg --gen-key              ##生成公钥私钥对

2、在centos6主机上导入公钥

[root@centos6-10 ~ 12:10:38]#  gpg --import zhang.pubkey    ###导入centos7中的公钥
[root@centos6-10 ~ 12:10:38]#  gpg --list-keys

3、用从centos7主机导入的公钥,加密centos6主机的文件file,生成file.gpg

[root@centos6-10 ~ 12:10:38]#gpg -e -r centos7 test*****注意:这里选定用谁的公钥进行加密,就是当初创建公钥私钥时候起的名字*****

4、复制加密文件到centos7主机

scp test.gpg 192.168.161.130:

5、在centos7主机解密文件

[root@centos7-4 data]#gpg -d test.gpg     ###解密文件并打印
[root@centos7-4 data]# gpg -o file -d test.gpg   ###解密后生成文件

删除公钥和私钥

  • gpg --delete-keys centos7
  • gpg --delete-secret-keys centos7

单向散列(又成哈希算法)

任意数据缩小成固定大小的“指纹”

  • • 任意长度输入
  • • 固定长度输出
  • • 若修改数据,指纹也会改变(“不会产生冲突”)
  • • 无法从指纹中重新生成数据(“单向”)

功能:数据完整性

常见算法

  • md5: 128bits、 sha1: 160bits、 sha224、 sha256、 sha384、 sha512

常用工具

  • • md5sum | sha1sum [ --check ] file
  • • openssl、 gpg
  • • rpm -V

常见工具使用方法:

计算哈希值:

[root@centos7-->19:39:52/data]#sha1sum /dev/sr0 4eead850afed0fc7d170c23bfabfed379419db79 /dev/sr0

或者

[root@centos7-->19:39:52/data]# sha1sum  test

md5sum all.sh md5sum + file

83b567b32827ce7f26f528676653097e all.sh

例子:

[root@centos7-4 data]# sha1sum test > sha1.log
[root@centos7-4 data]# cat sha1.log
73ff2b0e6866c7da5cb8d5ed4961077e1dd65666  test[root@centos7-4 data]# sha1sum fstab2 >> sha1.log
[root@centos7-4 data]# cat sha1.log
73ff2b0e6866c7da5cb8d5ed4961077e1dd65666  test
9f93eb08a16db59d0522bdc79c187381bc466dc8  fstab2[root@centos7-4 data]# sha1sum --check sha1.log
test: OK
fstab2: OK###检查文件的内容是否被修改,修改后可以校验哈希值是否有变化###

sha1sum --check file

[root@centos7-->20:00:51/data]#cat check.log

7b7b5b3ef60d9ea7ebf93b4469103caf43059939 all.sh

96f485550c4ad72dd572abef1f26df6b05c42d4e age.sh

[root@centos7-->20:01:01/data]#sha1sum --check check.log

all.sh: OK

age.sh: OK

rpm  -V      可以检查安装包是否被修改过,如果修改过,将会显示修改信息,如果没有修改则返回空值,以下截图为修改过信息后的返回信息。

[root@centos7-4 data]# rpm -V tree

Linux加密和安全篇(一)gpg、对称和非对称加密、哈希算法相关推荐

  1. (二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!

    引言 在上篇文章中,已经讲明了当下计算机网络的基础知识,其中对网络体系结构.分层模型.TCP/IP协议簇.....等多方面内容进行了阐述,而在本章会分析到网络知识中另外两个大名鼎鼎的协议:HTTP/H ...

  2. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

  3. 网络安全 —— 对称与非对称加密

    1. 对称非对称 信息的加密可分为对称和非对称两种方式,前者表示加密后的信息可以解密成原值,而后者无法根据加密后的信息还原为原值(public key 用于加密,secret key 用于解密). 对 ...

  4. 隐私计算加密技术基础系列(下)对称与非对称加密的应用场景

    本章是<隐私计算加密技术基础>系列文章的最后一篇,感慨下,终于写完了,这个春节假期除了陪家人就是写着三篇文章了.其实写之前并没有觉得是多么难的事情,感觉这些原理自己都比较清楚,但是随着写的 ...

  5. 非对称加密 密码传输_密码学:对称与非对称加密

    非对称加密 密码传输 Before the modern age of cryptography, where the focus has expanded from the confidential ...

  6. 数字证书原理-HTTPS通信如何保证通信安全?只用对称和非对称加密就可以了吗?为什么需要数字证书?

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理, ...

  7. 在线支付系列【3】支付安全之对称和非对称加密

    有道无术,术尚可求,有术无道,止于术. 文章目录 前言 信息安全 加密机制 核心概念 对称加密 非对称加密 JCE 对称加解密 1. 创建密钥 2. 加密 3. 解密 非对称加解密 1. 创建密钥 2 ...

  8. 【加密技术】对称与非对称加密简介

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 一.加密技术 二.加密算法 三.对称加密算法-私钥算法 3.1几种对称加密算法 3.2 图解对称加密算法 3 ...

  9. HTTPS加密那点事--轻松秒懂HTTPS非对称加密

    本文转载自微信公众号(苦逼的码农),原文地址: https://mp.weixin.qq.com/s/j-ss95ItMnWsZHLpUGBMkQ 用漫画的形式解释技术问题是不是有眼前一亮的感觉呢?以 ...

最新文章

  1. 左侧宽度固定,右侧宽度自适应-----两种布局样式
  2. mysql distinct、group_concat
  3. python面试题库——3数据库和缓存
  4. 两个不同分支之间的代码合并
  5. Linux Shell基础 - 流程控制 - for循环 - while 循环 - until循环
  6. mysql 添加远程连接_为 mysql 添加远程连接账户
  7. HTML5本地存储——IndexedDB(二:索引)
  8. 模拟登录新浪微博(Python)
  9. 修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
  10. uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)...
  11. hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
  12. Spotfire 连接mysql数据库
  13. eclipse启动报错,显示找不到指定路径的JRE
  14. Spring Boot(二):整合 JPA 及 事务控制
  15. Knowledge-aware Graph Neural Networks with Label Smoothness Regularization for Recommender Systems
  16. html+css实现三角形的三种方法
  17. mysql安装 张宴_Linux_centos5 源码安装Nginx + mysql + apache + php的方法,主要依照的是张宴的一篇博文 - phpStudy...
  18. 三星礼包 android,SAMSUNG 三星 Galaxy S8 智能手机 移动合约版(伪开箱)
  19. 移动互联应用开发基础知识简答
  20. System32下文件说明

热门文章

  1. 差分进化算法_想用遗传算法?来看看这些已为你做好的开源优化框架
  2. preg_replace函数去除字符串中的空格,逗号(,)等
  3. ubuntu绘图软件
  4. 润盈益通保本型理财产品优势
  5. reactive函数实现响应式数据
  6. 向上累积频数怎么算_累计频数怎么求(怎样计算频数和频率)
  7. 【故障处理】队列等待之enq: TX - row lock contention
  8. 分布式算法-Paxos
  9. excel更改页眉页脚_如何在Excel的页眉和页脚中键入“&”号
  10. 支付宝小程序 支付时订单处理失败 报ALI38173