加密与安全

申请证书& ssh 服务基于key验证

一、安全设计原则:

使用成熟的安全系统
以小人之心度输入数据
外部系统是不安全的
最小授权
减少外部接口
缺省使用安全模式
安全不是似是而非
从STRIDE思考
在入口处检查
从管理上保护好你的系统

常用安全技术:认证、授权、审计和安全通信。

二、密码算法和协议:对称加密、公钥加密、单向加密和认证协议。

1、对称加密算法:加密和解密使用同一个密钥。

常见的对称加密算法有:

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

特性:

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

缺陷:

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

2、非对称加密算法

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

公钥:公开给所有人;public key
私钥:自己留存,必须保证其私密性;secret key

特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
数字签名:主要在于让接收方确认发送方身份
对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
数据加密:适合加密较小数据
缺点:密钥长,加密解密效率低下
算法:
RSA(加密,数字签名),DSA(数字签名),ELGamal

实现数字签名:
•发送者
生成公钥/密钥对:P和S
公开公钥P,保密密钥S
使用密钥S来加密消息M
发送给接收者S(M)
•接收者
使用发送者的公钥来解密M=P(S(M))
结合签名和加密
分离签名

数字证书:

证书类似第三方机构,由AB都信任的机构颁发,CA顶级机构叫rootCA

 

1

3、单向散列
将任意数据缩小成固定大小的“指纹”
•任意长度输入
•固定长度输出
•若修改数据,指纹也会改变(“不会产生冲突”)
•无法从指纹中重新生成数据(“单向”)
功能:数据完整性
常见算式
md5: 128bits、sha1: 160bits、sha224
sha256、sha384、sha512
常用工具
•md5sum | sha1sum [ –check ] file
•openssl、gpg
•rpm -V

 

实验:

一、使用gpg工具实现公钥加密

在Centos7主机上用公钥加密,在Centos6主机上解密
1、在Centos6主机上生成公钥/私钥对
gpg –gen-key

1
2、在Centos6主机上查看公钥
gpg –list-keys

2

3、在Centos6主机上导出公钥到pony.pubkey
gpg -a –export -o pony.pubkey

3
4、从Centos6主机上复制公钥文件到需加密的centos7主机上
scp pony.pubkey 192.168.158.7:/root/.gnupg

4

5、在需加密数据的centos7主机上生成公钥/私钥对
gpg –list-keys
gpg –gen-key

5
6、在centos7主机上导入公钥
gpg –import pony.pubkey
gpg –list-keys

6
7、用从centos6主机导入的公钥,加密centos7主机的文件file,生成file.gpg
gpg -e -r magedu /etc/fstab
7

8、复制加密文件到centos6主机
scp fstab.gpg 192.168.158.6:/data

9、在hostA主机解密文件
gpg -d fstab.gpg
gpg -o f1 -d fstab.gpg

8
10、删除公钥和私钥
gpg –delete-keys magedu
gpg –delete-secret-keys magedu

实验二、创建CA和申请证书

1、创建所需要的文件
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

1
2、 CA自签证书
生成私钥
cd /etc/pki/CA/
(umask 066; openssl genrsa -out  private/cakey.pem 4096)

2

自签证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

3

3、颁发证书

在需要使用证书的主机生成证书请求
给web服务器生成私钥
(umask 066; openssl genrsa -out  /etc/pki/tls/private/test.key 2048)
生成证书申请文件
openssl req -new -key /etc/pki/tls/private/test.key  -days 365 -out etc/pki/tls/test.csr

4

将证书请求文件传输给CA

5
CA签署证书,并将证书颁发给请求者
openssl ca -in /etc/pki/CA/test.csr –out  /etc/pki/CA/certs/test.crt -days 365

6
注意:默认国家,省,公司名称三项必须和CA一致

实验三、基于key认证

在centos6, centos7.4, centos7.5三台主机上实现基于key认证的免密登录。

实验之前用ssh服务连接远程主机需要登录密码

1

1、在centos6主机生成密钥对
ssh-keygen

2

2、在centos6主机生成公钥文件

ssh-copy-id 192.168.158.6

3

3、将.ssh复制远程主机家目录

scp  -pr /root/.ssh  192.168.158.7:/root

.scp  -pr /root/.ssh  192.168.158.75:/root

4

现在去连接远程主机可以免密登录了,并且三台主机之间互联都可以免密登录。

5

78

至此实现了三台主机之间的互联免密登录。

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98863

(1)
ponypony
上一篇 2018-05-19
下一篇 2018-05-19

相关推荐

  • vim

    vim

    Linux笔记 2018-05-08
  • ssh等

    SSH端口转发 SSH会自动的加密和解密所有SSH客户端与服务器之间的网络数据;同时也可以将其他TCP端口的数据加密转发,这一过程叫“隧道”,这样也可以减少防火墙开启的端口。 实现过程是数据首先通过连接本机的某一个端口,被当做ssh协议数据发送给ssh服务器,ssh服务器解密再发给远程主机的端口 本地转发: -L localport:remotehost:r…

    2018-05-28
  • Linux下history的用法

    Linux下history的用法 如果你经常使用Linux命令,那么使用history命令无疑会提升你的工作效率。history命令主要用于显示历史指令记录内容, 通过快捷键快速下达历史纪录中的指令, -c: 清空命令历史 清空内存中的历史记录 -d offset: 删除历史中指定的第offset个命令 例如 history -d 153 删除第153条记录…

    2018-04-01
  • Homework_week3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。        who | cut -d’ ‘ -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。       who | tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。       cut …

    Linux笔记 2018-06-26
  • Linux第1-5天的基础命令。

      alias 是显示当前shell中所有别名。 我们可以将一些常用且较长的命令进行简化,就是别名。 alias 新的命令 = ‘原命令’     unalias 删除别名 -p  是查看系统中已经设置的别名   bc   是linux中的计算器语言    ^C  退出   clock 显示硬件时间 -s 使系统时间和硬件时间同…

    Linux笔记 2018-03-31
  • 软件包管理 rpm yum的使用

    软件包管理 链接主要作用是吧各个模块之间互相引用的部分处理好, 使得各个模块之间能够正确的链接,分为静态和动态 静态链接  以.a为后缀  把程序对应的依赖库复制到包           升级难 需重新编译  占用空间多 迁移容易 动态链接  以.so为后缀 把依赖加做动态链接    占用空间少  升级方便           若一个库被删,那么所有依赖此库…

    Linux笔记 2018-04-22