基本概念:

 

加密作为数据安全保障的一种方式,它不是近代才产生的,历史已经相当久远;加密算法就是加密的方法.

 

数据加密解密:

数据加密的基本过程就是对原来为明文的文件或数据按特定算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程

 

为什么需要对数据加密:加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取;比如个人的银行账户信息,电话号码等泄露,引来的后果可想而知。

 

明文和密文

密码学中,明文是指传送方想要接收方获得的可读信息。 明文经过加密所产生的信息被称为密文,而密文经过解密而还原得来的信息被称为明文。

 

加密技术通常分为两大类:"对称式"和"非对称式"

 

对称式加密:

对称加密就是将信息使用一个密钥进行加密解密时使用同样的密钥,同样的算法进行解密。

 

特点:1.速度快,一般用于加密数据

  2.将原始数据分割成固定大小的块,逐个进行加密;       

常用的加密算法:

  DES56bits):数据加密标准

  3DES

  AES128bits):高级加密标准

  Blowfish 对称加密

  Twofish

  IDEA

  RC6

  CAST5

  Serpent

 

非对称式加密:

 

加密和解密用的匙不同,通常一个是公开的,称,另一个保密,称

加密和解密所使用的不是同一个密,通常有两个密,称"公"和"私",它两个必需配使用,否

能打开加密文件。里的"公"是指可以外公布的,"私"不能,只能由持有人一个人知道。它的优越性就

在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能

被别窃听到。而非对称式的加密方法有两个密钥,且其中的"公"是可以公开的,也就不怕人知道,收件人解

只要用自己的私即可以,这样就很好地避免了密传输安全性问题

特点:相称加密速度要慢,

算法:RSA,EIGmal,DSA

 

单向加密

一般不用于加密,而是提取数据的特征码。

特点:不可逆,通过算法计算从数据中提取到特征码,不能由特征码算出源数据

          算法:

      md5128bits

     sha1160bits

      sha512512bits

---------------------------------------------------------------------------------------------------------------------------

PKI概念:

 

公开密(英:Public Key Infrastructure,写:PKI)

是一由硬件、件、参与者、管理政策与流程成的基架构,其目的在于造、管理、分配、使用、存

及撤数字证书

 

CA

数字证书认证机构(英:Certificate Authority,CA),也称为电子商务认证中心、子商务认证授权

机构,是负责发放和管理数字证书威机构,并作为电子商交易中受信任的第三方,承担公体系中公

合法性检验任。

 

CA 也有一个证书(内含公和私)。网上的公众用过验证 CA 的字从而信任 CA ,任何人都可以得到

CA 的证书(含公),用以验证它所签发证书

如果用想得到一份属于自己的证书,他先向 CA 提出申。在 CA 判明申者的身份后,便他分配一个公

,并且 CA 将与申者的身份信息在一起,并字后,便形成证书发给者。

 

如果一个用鉴别另一个证书的真,他就用 CA 的公钥对那个证书上的验证,一旦验证该证

就被认为是有效的。证书实际是由证书签证机关(CA)签发的公认证

证书的内容包括:子签证机关的信息、信息、公威机构的字和有效期等。

------------------------------------------------------------------------------------------------------------------------------------------

SSL介绍:

安全套接字(Secure Socket LayerSSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

SSLNetscape1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。

目前有三个版本:233.1,最常用的是第3版,是1995年发布的。

SSL协议的三个特性

 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

 鉴别:可选的客户端认证,和强制的服务器端认证。

 完整性:传送的消息包括消息完整性检查(使用MAC)。

-------------------------------------------------------------------------------------------------------------

Openssl创建私有CA:

---------------------------------------------------------------------------

CA服务器自签名

创建私有CA服务器

1.生成密钥对

[root@ca ~]# cd /etc/pki/CA
[root@ca CA]#  (umask
077; openssl genrsa -out private/cakey.pem 2048)

2.CA服务器自签名证书

[root@ca CA]#
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
You are about to be
asked to enter information that will be incorporated
into your
certificate request.
What you are about
to enter is what is called a Distinguished Name or a DN.
There are quite a
few fields but you can leave some blank
For some fields
there will be a default value,
If you enter '.',
the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN   #国家
State or Province Name (full name) []:Bei Jing  
#省份
Locality Name (eg, city) [Default City]:Bei Jing  
#城市
Organization Name (eg, company) [Default Company Ltd]:RA Company  
#公司
Organizational Unit Name (eg, section) []:IT  
#部门
Common Name (eg, your name or your server's hostname)
[]:ca.server.com   #主机名
Email Address []:caadmin@server.com    #管理员邮箱


 

-new: 生成新的证书签署请求;
-x509:直接输出自签署的证书文件,通常只有构建CA时才这么用;
-key:私钥文件路径,用于提取公钥;
-days N: 证书有效时长,单位为“天”;
-out:输出文件保存位置;

3.创建需要的文件:

 
[root@ca CA]# touch index.txt serial crlnumber  
#分别创建 :索引文件,证书序号,吊销证书序号
[root@ca CA]# echo 01 >serial  #创建证书序列号 
-----------------------------------------------------------------------------------

1.客户机申请证书步骤

1 生成私钥;

[root@client tmp]#
(umask 077; openssl genrsa -out httpd.key 1024)
Generating RSA
private key, 1024 bit long modulus
........++++++
......++++++
e is 65537 (0x10001)
-------------------------------------------------------

2.生成证书签署请求:

[root@client tmp]#
openssl req -new -key httpd.key -out httpd.csr
You are about to be
asked to enter information that will be incorporated
into your
certificate request.
What you are about
to enter is what is called a Distinguished Name or a DN.
There are quite a
few fields but you can leave some blank
For some fields
there will be a default value,
If you enter '.',
the field will be left blank.
-----
Country Name (2
letter code) [XX]:CN
State or Province
Name (full name) []:China
Locality Name (eg,
city) [Default City]:Shenzhen
Organization Name
(eg, company) [Default Company Ltd]:IT company
Organizational Unit
Name (eg, section) []:IT ops
Common Name (eg,
your name or your server's hostname) []:ca.server.com
Email Address
[]:itadmin@server.com
 
Please enter the
following 'extra' attributes
to be sent with your
certificate request
A challenge password
[]:
An optional company
name []:

 

3.将请求文件发往CA服务器;

[root@client tmp]#
scp httpd.csr 10.76.249.100:/tmp/
The authenticity of
host '10.76.249.100 (10.76.249.100)' can't be established.
RSA key fingerprint
is 52:f6:17:d0:d7:cf:42:96:11:ae:45:ba:2e:fa:0f:61.
Are you sure you
want to continue connecting (yes/no)? yes
Warning: Permanently
added '10.76.249.100' (RSA) to the list of known hosts.
root@10.76.249.100's
password:
httpd.csr                                                                   
100%  708     0.7KB/s  
00:00   
 
-----------------------------------------------------------------------------------------

CA服务器给客户机签署证书:

 

CA服务器签证

[root@ca tmp]# openssl ca -in httpd.csr -out httpd.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Sep 24 15:47:13 2015 GMT
            Not After : Sep 23 15:47:13 2016 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Bei Jing
            organizationName          = RA Company
            organizationalUnitName    = IT company
            commonName                = ca.server.com
            emailAddress              = itadmin@server.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                93:7C:A2:62:5F:31:28:BC:BC:EA:D9:52:D1:3E:12:09:7E:DF:62:65
            X509v3 Authority Key Identifier: 
                keyid:3D:30:B1:5B:BF:68:40:53:4F:93:E0:74:75:AF:16:1F:1D:13:E5:4D
Certificate is to be certified until Sep 23 15:47:13 2016 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

 

 

将签证好的cacert.pem证书发给win客户端修改后缀名为cacert.crt 即可导入

 

 

------------------------------------------------------------------------------------------------------------------------------

吊销证书

 

(4) 吊销证书

(a) 客户端获取要吊销的证书的serial

# openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

 

(b) CA

先根据客户提交的serialsubject信息,对比检验是否与index.txt文件中的信息一致;

 

吊销证书:

# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

 

(c) 生成吊销证书的编号(第一次吊销一个证书)

# echo 01 > /etc/pki/CA/crlnumber

 

(d) 更新证书吊销列表

# openssl ca -gencrl -out thisca.crl

 

查看crl文件:

# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text