1元虚拟主机

当前位置:  首页 >  产品资讯 >  图解SSL加密和解密原理

图解SSL加密和解密原理

来源:景安网络

作者:秩名

更新时间:2016-05-03 17:01

景安网络—专业的多线服务器托管商!提供快云服务器,快云VPS,虚拟主机,域名注册,网站空间,服务器托管,服务器租用,SSL证书。1元试用30天vps活动,活动进行中!查看详情

    1.SSL原理

    Secure Sockets Layer(安全的套接字层)位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。用于保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。

    2.SSL的会话过程

    SSL会话主要分为三步:

    1.客户端向服务器端索要并验正证书;

    2.双方协商生成“会话密钥”;对成密钥

    3.双方采用“会话密钥”进行加密通信;

    

 
    3.加密算法和协议

 
    
 
    3.1 对称加密

    加密和解密使用同一个密钥

    常见的加密算法:

    DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5

    特性:

    1、加密、解密使用同一个密钥;

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

    缺陷:

    1、密钥过多;

    2、密钥分发困难;

    3.2 公钥加密

    密钥分为公钥与私钥

    公钥:从私钥中提取产生;可公开给所有人;

    私钥:通过工具创建,使用者自己留存,必须保证其私密性;

    特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

    用途:

    数字签名:主要在于让接收方确认发送方的身份;

    密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;

    数据加密:

    3.3 单向加密

    提取数据指纹(特征码);只能加密,不能解密;

    常见算法:md5、sha1

    特性:定长输出、雪崩效应;

    功能:完整性;

    3.4 密钥交换

    IKE(Internet Key Exchange互联网密钥交换)

    1.公钥加密

    2.DH(Deffie-Hellman地狱男爵)

    4.PKI

    PKI是Public Key Infrastructure的首字母缩写,翻译过来是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范

    公钥基础设施主要包含以下四个:

    签证机构:CA

    注册机构:RA

    证书吊销列表:CRL

    证书存取库

    5.openssl命令

    openssl有众多子命令,基本可分为三类:

    1.标准命令

    2.消息摘要命令(dgst子命令)

    3.加密命令(enc子命令)

    5.1 对称加密

    加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

    解密:~]# openssl enc -d -des3 -a -salt -out fstab -in fstab.ciphertext

    5.2 单向加密

    ~]# openssl dgst -md5 /PATH/TO/SOMEFILE

    5.3 生成用户密码

    ~]# openssl passwd -1 -salt $(openssl rand -hex 5)

    5.4 生成随机数

    ~]# openssl rand -hex NUM

    ~]# openssl rand -base64 NUM

    5.5 公钥加密

    生成私钥:~]# (umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE NUM_BITS)

    提取公钥:~]# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

    6.构建私有CA

    1.在CA的服务器上生成私钥

    [root@ch sysroot]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

    2.生成自签证书

    [root@ch sysroot]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

    Country Name (2 letter code) [XX]:CN

    State or Province Name (full name) []:Beijing

    Locality Name (eg, city) [Default City]:Beijing

    Organization Name (eg, company) [Default Company Ltd]:CH

    Organizational Unit Name (eg, section) []:Ops

    Common Name (eg, your name or your server's hostname) []:ch

    Email Address []:

    3.为CA提供所需的目录及文件

    [root@ch sysroot]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}

    [root@ch sysroot]# touch /etc/pki/CA/{serial,index.txt}

    [root@ch sysroot]# echo 01 > /etc/pki/CA/serial

    以上步骤是在CA服务器端操作

    http服务器向CA请求签署证书

    a.主机生成私钥

    [root@localhost ~]# mkdir /etc/httpd/ssl

    [root@localhost ~]# cd /etc/httpd/ssl

    [root@localhost ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 1028)

    b.生成证书签署请求

    [root@localhost ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

    Country Name (2 letter code) [XX]:CN

    State or Province Name (full name) []:Beijing

    Locality Name (eg, city) [Default City]:Beijing

   Organization Name (eg, company) [Default Company Ltd]:CH

    Organizational Unit Name (eg, section) []:Ops

    Common Name (eg, your name or your server's hostname) []:www.test.com

    Email Address []:

    Please enter the following 'extra' attributes

    to be sent with your certificate request

    A challenge password []:

    An optional company name []:

    c.将请求通过可靠方式发送给CA服务器

    [root@localhost ssl]# scp httpd.csr root@172.18.20.4:/tmp/

    以上操作是在http服务器端操作

    4.在CA主机上签署证书

    [root@ch tmp]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

    Certificate Details:

    Serial Number: 1 (0x1)

    Validity

    Not Before: Mar 26 04:17:02 2016 GMT

    Not After : Mar 26 04:17:02 2017 GMT

    Subject:

    countryName = CN

    stateOrProvinceName = Beijing

    organizationName = CH

    organizationalUnitName = Ops

    commonName = www.test.com

    Certificate is to be certified until Mar 26 04:17:02 2017 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

    5.查看证书中的信息

    [root@ch tmp]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

    serial=01

    subject= /C=CN/ST=Beijing/O=CH/OU=Ops/CN=www.test.com

    如果http服务的私钥丢了,这个时候我们需要吊销证书

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

    [root@localhost ssl]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

    serial=01

    subject= /C=CN/ST=Beijing/O=CH/OU=Ops/CN=CH

    (2).CA服务器根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致

    [root@ch tmp]# cd /etc/pki/CA/

    [root@ch CA]# cat index.txt

    V 170326041702Z 01 unknown /C=CN/ST=Beijing/O=CH/OU=Ops/CN=www.test.com

    (3).CA服务器吊销证书

    [root@ch CA]# openssl ca -revoke /etc/pki/CA/newcerts/01.pem

    Using configuration from /etc/pki/tls/openssl.cnf

    Revoking Certificate 01.

    Data Base Updated

    (4).生成吊销证书的吊销编号(仅在次吊销证书时执行)

    [root@ch CA]# echo 01 > /etc/pki/CA/crlnumber

    (5).更新证书吊销列表

    [root@ch CA]# openssl ca -gencrl -out /etc/pki/CA/httpd.crl

    查看crl文件

    [root@ch CA]# openssl crl -in httpd.crl -noout -text



本文链接:http://ssl.zzidc.com/chanpinzixun/2016/0503/384.html

关键字:SSL加密

若无特别注明,文章皆为景安网络原创,转载请注明出处。

域名1元
 
返回顶部

联系我们

SSL产品
24小时客服热线:

4006-598-598

0371-9618961