Linux加密和安全篇(一)gpg、对称和非对称加密、哈希算法
对于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、对称和非对称加密、哈希算法相关推荐
- (二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
引言 在上篇文章中,已经讲明了当下计算机网络的基础知识,其中对网络体系结构.分层模型.TCP/IP协议簇.....等多方面内容进行了阐述,而在本章会分析到网络知识中另外两个大名鼎鼎的协议:HTTP/H ...
- 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)
网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...
- 网络安全 —— 对称与非对称加密
1. 对称非对称 信息的加密可分为对称和非对称两种方式,前者表示加密后的信息可以解密成原值,而后者无法根据加密后的信息还原为原值(public key 用于加密,secret key 用于解密). 对 ...
- 隐私计算加密技术基础系列(下)对称与非对称加密的应用场景
本章是<隐私计算加密技术基础>系列文章的最后一篇,感慨下,终于写完了,这个春节假期除了陪家人就是写着三篇文章了.其实写之前并没有觉得是多么难的事情,感觉这些原理自己都比较清楚,但是随着写的 ...
- 非对称加密 密码传输_密码学:对称与非对称加密
非对称加密 密码传输 Before the modern age of cryptography, where the focus has expanded from the confidential ...
- 数字证书原理-HTTPS通信如何保证通信安全?只用对称和非对称加密就可以了吗?为什么需要数字证书?
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理, ...
- 在线支付系列【3】支付安全之对称和非对称加密
有道无术,术尚可求,有术无道,止于术. 文章目录 前言 信息安全 加密机制 核心概念 对称加密 非对称加密 JCE 对称加解密 1. 创建密钥 2. 加密 3. 解密 非对称加解密 1. 创建密钥 2 ...
- 【加密技术】对称与非对称加密简介
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 一.加密技术 二.加密算法 三.对称加密算法-私钥算法 3.1几种对称加密算法 3.2 图解对称加密算法 3 ...
- HTTPS加密那点事--轻松秒懂HTTPS非对称加密
本文转载自微信公众号(苦逼的码农),原文地址: https://mp.weixin.qq.com/s/j-ss95ItMnWsZHLpUGBMkQ 用漫画的形式解释技术问题是不是有眼前一亮的感觉呢?以 ...
最新文章
- 左侧宽度固定,右侧宽度自适应-----两种布局样式
- mysql distinct、group_concat
- python面试题库——3数据库和缓存
- 两个不同分支之间的代码合并
- Linux Shell基础 - 流程控制 - for循环 - while 循环 - until循环
- mysql 添加远程连接_为 mysql 添加远程连接账户
- HTML5本地存储——IndexedDB(二:索引)
- 模拟登录新浪微博(Python)
- 修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
- uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)...
- hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
- Spotfire 连接mysql数据库
- eclipse启动报错,显示找不到指定路径的JRE
- Spring Boot(二):整合 JPA 及 事务控制
- Knowledge-aware Graph Neural Networks with Label Smoothness Regularization for Recommender Systems
- html+css实现三角形的三种方法
- mysql安装 张宴_Linux_centos5 源码安装Nginx + mysql + apache + php的方法,主要依照的是张宴的一篇博文 - phpStudy...
- 三星礼包 android,SAMSUNG 三星 Galaxy S8 智能手机 移动合约版(伪开箱)
- 移动互联应用开发基础知识简答
- System32下文件说明
热门文章
- 差分进化算法_想用遗传算法?来看看这些已为你做好的开源优化框架
- preg_replace函数去除字符串中的空格,逗号(,)等
- ubuntu绘图软件
- 润盈益通保本型理财产品优势
- reactive函数实现响应式数据
- 向上累积频数怎么算_累计频数怎么求(怎样计算频数和频率)
- 【故障处理】队列等待之enq: TX - row lock contention
- 分布式算法-Paxos
- excel更改页眉页脚_如何在Excel的页眉和页脚中键入“&”号
- 支付宝小程序 支付时订单处理失败 报ALI38173