Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226723
  • 博文数量: 36
  • 博客积分: 3044
  • 博客等级: 中校
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-20 18:31
文章分类

全部博文(36)

文章存档

2010年(36)

分类: LINUX

2010-02-26 08:05:45

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任.http://U16.cublog.cn 
 
Openssl学习笔记
 
        tls全称"transport  layer  security"指的是传输层安全,传输层是OSI参考模型的第四层,提供数据可靠或不可靠的传输,我们这里只讲可靠的传输.可以说现在没有绝对安全的网络,比方说Randy和Merry通信,网络上有个Hacker使用Sniffer,他很容易就能抓到他们之间通信的数据包,而且还可以对数据进行篡改,你想想,若是像国家银行这样的部门的数据被人嗅探走了进行篡改,那会是什么样的结果,岂不乱了套...所以我们要对传输的数据进行加密,这样会安全些...
 
下面我们谈谈加密的方式....
 
单向加密:保证数据完成性...(双方进行通信的时候,防止被第三方将嗅探到的数据进行更改在发给受害者.所以要检查数据的完整性..)

对称加密:加密数据...(对数据进行加密,对称加密需要双方有共同的密码.使用密码变换机制.即使hacker捕获到数据包,也是一堆乱码.他要进行破解会得很长时间..)

非对称加密:身份验证,密钥交换..(Randy和Merry通信,Randy必须保证他是在和Merry通信,而不是冒充Merry的人,所以两人要进行密钥的交换,确保是对方后再通信.)
  
先简单介绍一下openssl的一些用法...
#openssl   version          (显示当前使用openssl版本信息..)
#openssl   version   -a    (除了显示当前openssl版本信息外,还显示加密算法..)
#openssl  ?                   (我们可以使用此命令来查看openssl支持的加密命令...)
#openssl  speed            (分别显示所有加密算法的速度,也可以指定某个算法.查看其加密速度..)
#openssl  ciphers          (显示常用的加密算法...)
 
    下面我们来举个加密档案的列子,比方说我们现在又个档案名字叫test,指定加密方式为des3,默认使用MD5...

#openssl  enc  -des3   -a  -salt  -in  test   -out   test.des3 (执行完此命令后输入密码,密码为redhat,记住test.des3是加密后的文件,后面指定加密方式,为了以后解密时用到..)
#rm   -rf   test
#openssl  enc  -d    -des3  -a  -salt  -in  test.des3  -out   test  (输入密码redhat,解密文件后输出到test文件中,然后我们用cat命令去查看会发现和以前test文件内容一样..)
#openssl   rand   -base64   5  (生成一个随机数...在创建密钥的时候用到..)
单向加密用来提取一段数据的特征码...

sha是指安全的哈希算法,sha1安全但是据算起来很慢...所以一般采用MD5
 
#sha1sum   FILENAME > FILENAME.SHA  (计算一个文件的效验码追加到FILENAME.SHA中)
#openssl   dgst   -sha1  FILENAME  (也是计算文件效验码,和上一个命令差不多,只是显示结果格式不同而已)
#sha1sum   --check  FILENAME.SHA  (可以查看FILENAME中的内容是否被改动过,这些我第一测试过,如果文件内容被改动执行结果会报错,否则就显示OK,证明没改动过..)
 
接下来我们配置一个CA服务器,这个至关重要,很多一些重要的机构中都要用到....
 
配置一个CA服务器...(这儿我们把CA服务器也当成客户机,方便测试用)
#cd  /etc/pki/CA

为CA服务器生成一个2048位的密钥追加到cakey.pem中...
#openssl  genrsa 2048 > private/cakey.pem 

CA服务器为自己签发证书,有效期限为3655天...
#openssl  req  -new  -x509  -key   private/cakey.pem  -out  .cacert.pem   -days   3655
 
编辑此文件找到[ CA_default ]
#Vim  /etc/pki/tls/openssl.cnf
将dir  =  ../../CA改成dir   =  /etc/pki/CA
 
创建工作目录和所需要的文件...
mkdir   ./newcerts
touch   ./{serial,index.txt}
向serial文件中写入一个编号,这里我们就以00开始...
echo  "00"  > ./serial
 
客户端的配置...
创建工作目录...
mkdir  /root/testcrt ;cd  /root/testcrt
 
为客户端生成一个1024位的密钥追加到test.key中...
openssl  genrsa   1024  > test.key
 
从客户端的私钥中提取公钥放到test.pub中...
openssl   rsa   -in   test.key  -pubout   -out   test.pub
 
用自己的密钥生成一个请求提交给CA服务器...
openssl   req   -new  -key  test.key  -out   test.csr
 
查看自己提交的请求,确认没有错误然后提交请求...
openssl   req   -in   test.csr   -noout    -text
 
CA签发来自客户机请求的证书
openssl   ca   -in   test.csr   -out    test.crt
 
查看签发的证书...
openssl   x509   -in   test.crt   -noout   -text
阅读(3543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~