频道栏目
首页 > 系统 > Linux > 正文

linux中的openssl的使用

2011-08-11 10:09:47           
收藏   我要投稿

 

 随着网络的发展,安全成了一个很严重的问题,也就是在安全的方面要有更高的可信度,这样才能保证用户在internet上传输数据的时候能够更加的安全,但是在我们Linux中,主要使用openssl和gpg两个方法来实现安全机制。

   首先简单介绍一下加密技术:

    加密技术可以分为单向加密,对称加密,非对称加密。

    单向加密即使计算一段数据的特征码,这个特征码值是独一无二的,对数据完整性进行校验,且输出定长。其常见的加密算法有MD5(128位)、SHA1(160位),看起来SHA1加密生成的校验码会比MD5的长,当让加密的效果会更好,但是由于加密的程度更强,所有就会导致速度会慢,所以安全和速度是两个相对的概念,只有中和了两者,才能更好的实现最终的目的。

     对称加密就是加密方和解密方使用相同的密钥,这样就会导致加密和解密的速度更快,但是其有一个缺点,如果一个用户和很多用户有通信,那么这个用户要么得记住很多的密钥,要么使用一些相同的密钥,这样就在使用相同密钥的用户中,可以使用自己的密钥解密其他用户的加密信息,从而获取他人的信息。常见的加密算法有DES(128位)、AES(128、192、256位)、3DES。

   非对称加密就是加密和解密使用的不是一个密码,常见的算法有DSA(支持认证)、RSA(支持认证和加密)。

     但是为了为了两个初次通信的用户能彼此知道对方的公钥,采用了IKE(internet key exchange)机制,这样两个用户在internet上传输数据的时候就知道彼此的公钥,然后使用对方的公钥来解密发来的加密的数据,而如何在通信的过程中来确定对方的身份,这就需要借助PKI(公钥基础设施),也就是说通过第三方来出示证明,在这里也就是使用证书机制来验证用户的信息,通常一个证书中存放着通信人的公钥。所以接下来就从加密开始,然后到颁发证书,最终实现验证的实验过程。

 

1、首先,提到的加密算法,使用openssl对文档加密的方法如下

#mkdir /opentest

#cd /opentest

#cp /etc/fstab  ./

#cat inittab 文件查看如下所示:

\

 

#openssl  enc -des3 -salt -a  -in inittab -out inittab.des3

加密算法的时候,我们将会看到如下的内容:

\

 

如果我们解压出来加密后的文件,可以看出文档还是恢复到原来的样子:

#openssl  enc -d  -des3  -salt  -a    -in inittab.des3 -out inittab

\

#cat inittab 如下图所示:

\

 

如果使用openssl -X(X为任意参数)可以看到openssl的参数信息

\

 

这是对文件进行简单的加密和解密的。

 

计算文件单向加密的特征码

#openssl  dgst -sha inittab

\

原本特征码的值是唯一的,但是我对inittab的文件做了一下修改,就是在第一行加了一个“#”结果发现特征码的值扬中不一样,这就是所谓的“雪崩效应”,牵一发而动全身,所以特征码是用来检验一个用户的所发信息的完整性的指标,可以看出其在传输的过程中是否被修改。这样就不会根据获取的特征码来逆向解析原文件,这就是单向加密算法的优点。

 

 

使用openssl passwd -1可以机密密码

就会生成如下的加密的密码:

[root@server64 open]# openssl passwd -1
Password: 
Verifying - Password: 
$1$MECaB7dA$FUqQcS1r.LroaXLYgeQHl0

当然可以使用whatis passwd 查看passwd 信息:

\

所以使用 man sslpasswd 来查看passwd的信息,

当让sslpasswd中有一个-salt选项,只要-salt是一样的,加密后的密码就是一样的

如图所示:

 

\

 

 

2、接下来我们将介绍关于证书方面的知识

   证书包括证书的颁发,证书的撤销,证书的

  一个机构要想有颁发证书的权限,他自己也要取得别人的信任,所以要有自己的钥展示给大家,但是公钥可以很Easy的从私钥中获取的,接下来先讲讲私钥和公钥的生成方法:

#cd /opentest

#(umask 66;openssl genrsa 1024 >my.key)  //生成私钥

#openssl  rsa -in my.key -pubout -out my.pub //生成公钥

然后使用#cat my.key 和cat my.pub可以看到两个文件内容,公钥是从私钥中提取出来的,所以他两个是紧密结合,成对出现的。

 

CA的步骤:

    首先用户要有一对公钥和密钥,然后向CA机构发起证书发出请求:

但是作为CA机构自己也要有自己的证书,所以需要生成

# cd /etc/pki/CA

#(umask 66 ; openssl genrsa 2048 > private/cakey.pem) //为自己生成一个证书

#openssl  req -new -x509  -key private/cakey.pem  -out  cacert.pem -days 3650然后执行下面交互式的回答,完成之后就能生成一个证书。

 

接下来就是用户自己也要有一对公钥和密钥,接下来我们建立一对新的公钥和密钥,

#cd /tmp/opentest

#(umask 66 ; openssl  genrsa 1024>server.key)生成密钥

#openssl  rsa -in server.key -pubout -out server.pub

#openssl req -new -key server.key -out server.csr //CA申请

 

 

接下来就是CA机构进行审核然后颁发证书:

#openssl ca -in /tmp/opentest/server.csr -out /tmp/opentest/server.crt -days 3650

 

但是在CA颁发证书的之前还要进行一系列的设置,如

编辑/etc/pki/tls/openssl.cnf文件

在/etc/pki/CA 下建立一些列的目录

#mkdir  certs newcerts crl  //建立证书、新证书、证书撤销的目录

#touch index.txt serial

#echo 01>serial   //初始化序列号

 

这样就建立了一个简单的CA创建,颁发请求的过程

 

 

 

本文出自 “IT梦-齐-分享” 博客

上一篇:vcenter converter 转换xenserver下linux的错误
下一篇:linux下的磁盘管理(1)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站