安全加密(使用gpg工具实现公钥加密)

对称加密算法

特性:
加密、解密使用同一个密钥,效率高
将原始数据分割成固定大小的块,逐个进行加密
缺陷:
密钥过多
密钥分发
数据来源无法确认
算法
DES     : 是一种使用密钥加密的块算法,采用56位加密算法。
3DES    : 三重数据加密算法,进行三次DES加密。
AES     : 高级加密标准目前对称加密中最常用的算法之一,采用128、192、256、512位算法。
Blowfish: 是一个64位分组及可变密钥长度的对称密钥分组密码算法。
 IDEA    : 国际数据加密算法,采用128位加密算法。
 CAST-128: 是类似于DES的置换组合网路加密系统,是一种12或16循环的Feistel密码,块长度是64位,密码长度最大128位
查找/etc/sysconfig/下的普通文件进行哈希运算(2者效果一样)
[root@centos7 /app]# find /etc/sysconfig/ -type f -exec sha512sum {} \;
[root@centos7 /app]# find /etc/sysconfig/ -type f |xargs sha512sum
重定向到文件中
[root@centos7 /app]# find /etc/sysconfig/ -type f |xargs sha512sum >/app/f1.log   
[root@centos7 /app]# sha512sum --check /app/f1.log      检查是否改变

[root@centos7 /app]#openssl passwd -1                   做口令加密  
Password: 
Verifying - Password: 
$1$45Gqame0$DPzKaPrj4ymsi.FJiiVWn0                       #1代表md5

密钥交换

密钥交换: IKE(Internet Key Exchange )
公钥加密:
DH (Deffie-Hellman):生成会话密钥,参看:
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hel
lman_key_exchange
DH:
1、 A: a,p 协商生成公开的整数a, 大素数p
B: a,p
2、 A:生成隐私数据 :x (x<p ),计算得出 a^x%p,发送给B
B:生成隐私数据 :y,计算得出 a^y%p,发送给A
3、 A:计算得出 [(a^y%p)^x] %p = a^xy%p, 生成为密钥
B:计算得出 [(a^x%p)^y] %p = a^xy%p,生成为密钥

a=2,p=11
A
x=3 5
B
y=4 8

2^3=8%11=8
2^4=16%11=5

[5^3]%11=4
[8^4]%11=4

应用程序: RPM

文件完整性的两种实施方式
被安装的文件
• MD5单向散列
• rpm --verify package_name (or -V)
发行的软件包文件
• GPG公钥签名
• rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEYredhat*
• rpm --checksig pakage_file_name (or -K)

rpm包校验  文件哈希值变化
5 digest (formerly MD5 sum) differs
T mTime differs

使用gpg实现对称加密

对称加密file文件
gpg -c file
ls file.gpg
在另一台主机上解密file
gpg -o file -d file.gpg

单向散列Hash

特性
将任意数据缩小成固定大小的数值
任意输入长度的数据。
输出固定长度是加密数值。
若修改数据,生成的数值也会改变,不会和原来的数值产生冲突。
无法从数值中推算生成数据,不可逆。
功能
验证数据完整性
提高数字签名的有效性
常见算法
md5    : 把不同长度的数据块进行暗码运算成一个128位的数值
sha1   : 对任意长度的数据运算生成一个160位的数值
sha224 : 对任意长度的数据运算生成一个224位的数值
sha256 : 对任意长度的数据运算生成一个256位的数值
sha384 : 对任意长度的数据运算生成一个384位的数值
sha512 : 对任意长度的数据运算生成一个512位的数值
MAC    :是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息,常见的是HMAC(用于消
息认证的密钥散列)。
Linux中的常用工具
md5sum 
sha1sum  file、sha1sum --check file 
openssl
gpg
示例
[root@CentOS6.9 ~]#echo "test" > hash              #生成一个文件
[root@CentOS6.9 ~]#ls                              #查看
admin.pubkey  anaconda-ks.cfg  bin  hash  install.log  install.log.syslog  test  test.gpg
[root@CentOS6.9 ~]#md5sum hash                     #md5运算产生hash值
d8e8fca2dc0f896fd7cb4cb0031ba249  hash             #hash值
[root@CentOS6.9 ~]#echo "123" >> hash              #在文件的中加一行123
[root@CentOS6.9 ~]#md5sum hash                     #再用md5运算产生hash值
4145c486d60a3d078fc57ac0e7de44bd  hash             #hash值和原来的已经不同了
[root@CentOS6.9 ~]#echo "test" > hash              #把文件重置
[root@CentOS6.9 ~]#md5sum hash                     #再次运算
d8e8fca2dc0f896fd7cb4cb0031ba249  hash             #hash值和原来的相同
[root@CentOS6.9 ~]#md5sum hash > hash.key          #hash运算并把hash值写入hash.key文件中
[root@CentOS6.9 ~]#md5sum -c hash.key              #用这个文件判断原文件的数据有没有改变
hash: 确定                                          
[root@CentOS6.9 ~]#echo "123" >> hash              #把123追加到hash文件
[root@CentOS6.9 ~]#md5sum -c hash.key              #再次判断
hash: 失败
md5sum: 警告:1/1 生成的校验和不匹配
[root@CentOS6.9 ~]#

非对称加密

特点,采用公钥和私钥加密和解密
 公钥:公开给所有人
私钥:自己留存,必须保证其私密性
用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
 数字签名:主要在于让接收方确认发送方身份
对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
数据加密:适合加密较小数据
缺点:密钥长, 加密解密效率低下
算法:
RSA     :RSA是目前最有影响力的公钥加密算法,安全性依赖于大数分解。(数据加密,数字签名) 
DSA     :是Schnorr和ElGamal签名算法的变种,基于整数有限域离散对数难题,一个重要特点是两个素数
 公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是
作了手脚,RSA算法却做不到。(数字签名)
ELGamal : 公钥密码体制和椭圆曲线加密体,其安全性依赖于计算有限域上离散对数。(数据加密,数字签)

使用gpg工具实现公钥加密

在hostB主机上用公钥加密,在hostA主机上解密
在hostA主机上生成公钥/私钥对
gpg --gen-key
在hostA主机上查看公钥
gpg --list-keys
在hostA主机上导出公钥到wang.pubkey
gpg -a --export -o wang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上
scp wang.pubkey hostB
实验ctntos7传给centos6文件(加密到解密)
centos6加密
gpg --gen-key
生成秘钥
输入密码(可以不输入密码)
提示密码简单
OK
查看秘钥生成
gpg --list-key 查看秘钥生成
将centos6公钥拷贝到centos7主机
切换到centos7主机
gpg --gen-key 添加centos7秘钥
生成秘钥
把centos6公钥导入到centos7的 .gnupg
用centos6公钥给文件加密
把加密文件传输到centos6主机上
切换centos6主机上
删除centos6的秘钥
删除centos7秘钥
gpg --delete-keys centos7 提示删除公钥先删除私钥
gpg --ddelete-keys centos7 删除公钥
完成
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容