09葵花宝典Openssl和DNS

栏目: 服务器 · 发布时间: 6年前

09葵花宝典Openssl和DNS

本节主要介绍网络上相关数据加密和DNS知识,以及在 linux 上的实现。

一、常见加解密知识

数据加密是现代网络应用的基础之一。加密技术好比人类的衣服,第一实现了抵御自然环境的变化,第二使人类迈向了文明。

通常来讲,加密就是使用密钥K将数据从A变成B,而解密就是将数据从B通过K(或者与K成对的K1)将其还原为A。其中B可以公开,得到B的人,如果没有密钥K或者K1,将无法或者A是什么。

有三个方面:对称加密、单项加密、公钥加密(非对称加密),每种加密类型都有其特点和相应的应用场景。

1、对称加密。

对称加密使用的加密密钥和解密密钥是相同的,即使用K来加密,也使用K来解密。加密方A和解密方B同时拥有密钥K。在传输数据时,双方必须事先约定好需要使用的密钥K。

常见的对称加密算法有:des,3des,AES等

2、单项加密。

单项加密主要是用于提出数据的特征码或者说指纹信息的。就是将给定的信息A,变成一个固定长度的数据(固定大小)B,这个B就称为A的特征码(指纹)。变化过程成为单项加密。其特点是只要A不变,变化过程使用的算法不变,B就一定不会变。当A有些许的变化时,B就有很大的改变

常见的单项加密算法有:MD5,sha1,sha256等

3、公钥加密。

公钥加密也叫非对称加密,其特点是加密和解密所使用的密钥是成对出现,加密时使用K,解密时使用与其成对的K1,或者加密时使用K1,解密时使用K。一般而言,我们将K和K1分别称为私钥和公钥。其中,公钥可通过私钥导出。

公钥加密有三个作用:一是加密。它可以像对称加密一样,对数据进行加密,但一般而言,公钥加密的计算量是对称加密的3个数量级以上,如果用其对大量数据进行加密,效率是非常低的。二是数字签名。如果用一个公钥能解密一段数据,那么这段数据必然是用与其对应的私钥进行加密的,私钥的拥有着,对其不能否认。第三是密钥分发。前面说到对称加密时,加密双方必须有约定相同的密钥,并且这个密钥不能被第三方获知,否则,加密将没有意义。公钥加密,即可实现双方实时的约定这个密钥,且密钥本身并不在信息传播路径上传送。

实现数据加密功能的公钥加密方法有:RSA,DSA,ElGamal等;实现数字签名功能的公钥加密算法有:RSA;实现密钥分发的公钥加密方法有:RSA,D-H等。

在公钥加密算法中,还有一个重要问题,就是公钥对由谁产生,由谁认证的问题。例如,在数字签名过程中,使用私钥对数据进行签名,那么,这个私钥由谁来认可,这就是一个认证的过程。通常,在网络上,有专门的认证机构,它们之间互相信任,然后,由这些认证机构对其他机构和个人签发证书,证书中包括了该证书的公钥以及使用人相关的信息,相当于电子身份证一样。这个专门的认证机构,称之为CA。在我们练习和某些小规模的生产环境中,需要建立一个私有的CA来签发证书。

二、下面,介绍Linux上面,使用Openssl工具,来实现数据的对称加密、单项加密、以及建立私有CA颁发证书等功能。Openssl命令有三类子命令,即标准命令、消息摘要命令(单项加密)、加解密命令,下面分别说明。

openssl工具的配置文件是/etc/pki/tls/openssl.cnf,定义了openssl的相关默认设置,特别是在用openssl创建私有CA时,也定义了其默认设置。

1、对称加密

]# openssl des3 -e -base64 -in /tmp/fstab -out /tmp/fstab1

使用des3算法,用base64格式,对/tmp/fstab文件进行加密,加密后文件为/tmp/fstab1

]# openssl des3 -d -base64 -in /tmp/fstab1 -out /tmp/fstab1-jie

使用des3算法,对使用base64格式的加密文件/tmp/fstab1进行解密,解密后文件为fstab1-jie

-e 加密(encode) -d 解密(decode) -base64 编码格式(同-a),-in 指明要加密或解密的文件,-out 指明加密后或解密后的文件。

可选的常见对称加密算法可用 openssl ? 来查看 Cipher commands

2、单项加密

]# openssl dgst -md5 fstab

MD5(fstab)= f91e11874e54184589b273386c49c81a

可使用md5sum命令来验证,该命令也是使用md5算法来计算输入数据的特征码

]# md5sum fstab

f91e11874e54184589b273386c49c81a fstab

使用-sha1、-sha256等算法选项,与sha1sum、sha256sum等命令相同,即只要输入数据相同,算法相同,输出必定相同。

使用openssl的dgst自命令对/tmp/fstab来进行单项加密,使用的单项加密算法为sha256,使用openssl ?来查看可使用的单项加密算法

3、公钥加密

3-1、生成私钥

]# openssl genrsa -out /tmp/private.key 1024

但是,通常情况下,私钥文件是不能被除root以外的用户读取的,默认情况下,生成私钥文件的权限时644,需要将其修改为600,可以这样操作:

]# (umask 077; openssl genrsa -out /tmp/private.key 1024)

]# ll private.key

-rw——-. 1 root root 887 May 10 22:29 private.key

3-2、生成CA的自签名证书

CA的自签名证书,需要一个私钥,在openssl.cnf文件中,默认私钥文件存放路径为:private_key = $dir/private/cakey.pem# The private key,其中,$dir 为/etc/pki/CA

生成的证书文件为:certificate = $dir/cacert.pem # The CA certificate

1、生成私钥:]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048

2、生成CA自签名证书:]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert/pem

-new 指明这是一个新的证书签署请求

-x509 outputs a self signed certificate instead of a certificate request,输出自签证书

-key 私钥

-out 自签证书文件

执行上述命令后,会出现交互式命令行,需要输入该自签证书的相关信息,后面请求CA签署的签名除

输入完成后,即可生成CA的自签证书

创建CA所需的目录和文件,其中目录3个,文件2个

mkdir /etc/pki/CA/{certs,newcerts,crr}

touch /etc/pki/CA/{serial,index.txt}

echo 01 > /etc/pki/CA/serial

3、证书请求者生成请求签名的私钥,方法同1,

生成证书请求文件:openssl req -key file/to/private.key -out /file/to/certs.csr

4、使用相应的工具,将请求签名的私钥安全拷贝至CA上,如scp命令

scp root@ipaddr:/path/tofile /path/to/dest/file

将ipaddr主机中/path/tofile文件拷贝至本机的/path/to/dest/file中,前面表示源文件,后面表示目标,也可以源是本机,目标是远程主机。

5、使用ca命令对请求进行签署

]# openssl ca -in /etc/pki/CA/certs/certs.out -out /etc/pki/CA/newcerts/certs.crt

6、使用openssl x509查看以签署证书相关信息

]# openssl x509 -in certs.crt -noout -serial -subject

serial=01

subject= /C=CN/ST=SHANNXI/O=xfy/OU=cb/CN=cb.koala.com/emailAddress=admin.koala.com

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

思考的乐趣

思考的乐趣

顾森 / 人民邮电出版社 / 2012-6 / 45.00元

本书是一个疯狂数学爱好者的数学笔记,面向所有喜爱数学的读者。从2005年7月开始,作者已经写了连续六年的博客,积累下来了大量的数学文章。 部分文章内容被广泛关注,在网络上大量分享转载。 这本书有意挑选了初等的话题,让大大小小的读者都能没有障碍地阅读。文章内容新,让有数学背景的人也会发现很多自己没见过的初等问题。 文章是独立的。一篇文章一个话题,文章与文章之间基本不会做参考,读者可以随意跳着看......一起来看看 《思考的乐趣》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试