一。 html
SSL证书是数字证书的一种,相似于驾驶证、护照和营业执照的电子副本。由于配置在服务器上,也称为SSL服务器证书。 git
SSL证书经过在客户端浏览器和Web服务器之间创建一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。因为SSL技术已创建到全部主要的浏览器和WEB服务器程序中,所以,仅需安装服务器证书就能够激活该功能了),即经过它能够激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,能够防止数据信息的泄露。保证了双方传递信息的安全性,并且用户能够经过服务器证书验证他所访问的网站是不是真实可靠。数位签名又名数字标识、签章 (即 Digital Certificate,Digital ID ),提供了一种在网上进行身份验证的方法,是用来标志和证实网路通讯双方身份的数字信息文件,概念相似平常生活中的司机驾照或身份证类似。 数字签名主要用于发送安全电子邮件、访问安全站点、网上招标与投标、网上签约、网上订购、安全网上公文传送、网上办公、网上缴费、网上缴税以及网上购物等安全的网上电子交易活动。 web
二。 算法
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通讯提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络链接进行加密。 浏览器
SSL协议提供的服务主要有: 安全
一、认证用户和服务器,确保数据发送到正确的客户机和服务器; 服务器
二、加密数据以防止数据中途被窃取; 网络
三、维护数据的完整性,确保数据在传输过程当中不被改变。 socket
建议您在设置邮箱时使用SSL协议,这样会保障您邮箱更安全的使用。 网站
使用方法:当您选择了使用SSL协议时,请您同时修改各收/发件服务器端口号。
注:若您关闭了SSL,请将端口号修改回来,POP3的为110,IMAP的为143,SMTP的为25。
三。SSL/TLS协议详解
SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通讯提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络链接进行加密。
为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程当中不会被截取及窃听。
SSL协议位于TCP/IP协议与各类应用层协议之间,为数据通信提供安全支持。SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它创建在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它创建在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程当中不被改变。
1、什么是SSL?
SSL或者Secure Socket Layer,是一种容许web浏览器和web服务器经过一个安全的链接进行交流的技术。这意味着将被发送的数据在一端被翻译成密码,传送出去,而后在另外一端解开密码,再进行处理。这是一个双向的过程,也就是浏览器和服务器都须要在发送数据以前对它们进行加密。
SSL协定的另外一个重要方面是认证(Authentication)。这就是说,在你开始试图经过一个安全链接与一个Web服务器交流的时候,这个服务器会要求你的浏览器出示一组证件,经过“鉴定”的方式来证实这就是你所声明的网站。在某些状况下,服务器还会要求你的web浏览器的认证书,证实你就是你所说的那我的。这就是所知的“客户认证”,尽管实际状况中,更多地用在商务-对-商务(B2B)交易,而不是对我的用户。大多数有SSL功能的web服务器不要求客户认证(Client Authentication)。
2、证书:Certificate
3、证书格式
主要的证书类型有:
PEM
DER
PKCS#12
PEM
能够包括全部私钥(RSA 和 DSA)、公钥(RSA 和 DSA)和 (x509) 证书。它存储用 Base64 编码的 DER 格式数据,用 ascii 报头包围,所以适合系统之间的文本模式传输。
-----BEGIN CERTIFICATE-----
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
EzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTAT
BgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1UECxMIU2VjdXJpdHkxIzAhBgNVBAMT
GkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9zdXBw
b3J0QGJlYS5jb20wHhcNMDAwNTMwMjEzODAxWhcNMDQwNTEzMjEzODAxWjCBjDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzEZMBcGA1UEAxMQd2VibG9n
aWMuYmVhLmNvbTEeMBwGCSqGSIb3DQEJARYPc3VwcG9ydEBiZWEuY29tMFwwDQYJ
KoZIhvcNAQEBBQADSwAwSAJBALdsXEHqKHgs6zj0hU5sXMAUHzoT8kgWXmNkKHXH
79qbPh6EfdlriW9G/AbRF/pKrCQu7hhllAxREbqTuSlf2EMCAwEAATANBgkqhkiG
9w0BAQQFAANBACgmqflL5m5LNeJGpWx9aIoABCiuDcpw1fFyegsqGX7CBhffcruS
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
-----END CERTIFICATE-----
DER
辨别编码规则 (DER) 可包含全部私钥、公钥和证书。它是大多数浏览器的缺省格式,并按 ASN1 DER 格式存储。它是无报头的 - PEM 是用文本报头包围的 DER。
PKCS#12
公钥加密标准 #12 (PKCS#12) 可包含全部私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件。
4、加密算法
加密算法有俩大类,第一种是不基于KEY的,另外一种是不基于KEY的。
基于KEY的,举个简单的例子,我要加密"fordesign"这么一串字符,就把每一个字符都变成它的后一个字符,那么就是"gpseftjhm"了,这样的东西人家固然看不明白,接收方用相反的方法就能够获得原文。固然这只是个例子,如今应该没人用这么搞笑的加密算法了吧。
不基于KEY,好象一直用到了计算机出现。我记得古中国军事机密都是用这种方式加密的。打战的时候好象军队那些电报员也要带着密码本,也应该是用这种方式加密的。这种算法的安全性以保持算法的保密为前提。
这种加密算法的缺点太明显了,就是一旦你的加密算法给人家知道,就确定挂。日本中途岛惨败好象就是密码给老米破了。设计一种算法是很麻烦的,一旦给人破了就没用了,这也忑浪费。
咱们如今使用的加密算法通常是基于key的,也就是说在加密过程当中须要一个key,用这个key来对明文进行加密。这样的算法即便一次被破,下次改个key,还能够继续用。key是一个什么东西呢?随便你,能够是一个随机产生的数字,或者一个单词,啥都行,只要你用的算法认为你选来作key的那玩意合法就行。
这样的算法最重要的是:其安全性取决于key,通常来讲取决于key的长度。也就是说应该保证人家在知道这个算法而不知道key的状况下,破解也至关困难。其实如今经常使用的基于KEY的加密算法在网络上均可以找到。
基于key的加密算法又包括俩类:对称加密和不对称加密。
对称加密指的是双方使用彻底相同的key, 最多见的是DES. DES3, RC4等。对称加密算法的原理很容易理解,通讯一方用KEK加密明文,另外一方收到以后用一样的KEY来解密就能够获得明文。
不对称加密指双方用不一样的KEY加密和解密明文,通讯双方都要有本身的公共密钥和私有密钥。
举个例子比较容易理解, 咱们们假设通讯双方分别是A、B。
A 拥有 KEY_A一、KEY_A2, 其中KEY_A1是A的私有密钥,KEY_A2是A的公共密钥。
B 拥有 KEY_B一、KEY_B2, 其中KEY_B1是B的私有密钥,KEY_B2是B的公共密钥。
公共密钥和私有密钥的特色是,通过其中任何一把加密过的明文,只能用另一把才可以解开。也就是说通过KEY_A1加密过的明文,只有KEY_A2才可以解密,反之亦然。
通讯过程以下:
A-------->KEY_A2------------>B
A<--------KEY_B2<------------A
这个过程叫作公共密钥交换,老外管这叫key exchange。
以后A和B就分别用对方的公共密钥加密,用本身的私有密钥解密。
通常公共密钥是要发布出去的,而后你经过本身的私有密钥加密明文,人家用你的公共密钥解密,若是能解开,那么说明你是加密人,这就是SSL使用的验证机制。
我若是要发给你,我就用你的公钥加密,这让只有你能用本身的私钥解密。若是我用本身的私钥加密,而后发布出去,这就不属于保密,而是属于认证,证实这条信息是我发的,并且我不能赖账,由于私钥只有我本身知道。
经常使用的不对称加密通常有RSA、 DSA、 DH等。咱们通常使用RSA。
5、数字签名
数字签名也是不对称加密算法的一个重要应用,理解它对于理解SSL很重要的,放在这里一块儿介绍一下。
签名是什么你们都很熟悉吧?证实该东西是你写的,是你发布的,你就用签名搞定。看看那些重要文件都要头头签名。数字签名就是数字化的签名了。记得公用密钥和私有密钥的特征吗?只有你一我的有你本身的私有密钥。而你的公用密钥是其余人都知道的 了。那么你在写完一封邮件以后,用本身的私有密钥加密本身的名字,接收人用你的公共密钥解开一看,哦,是你发的。这就是你的数字签名过程了。
上面的解释是很简化的了,其实数字签名比这个复杂多了,但咱们没有了解的必要,知道数字签名是这么一回事就能够了。
还有一种咱们须要知道的加密算法,其实我不以为那是加密算法 ,应该叫哈希算法,英文是message digest, 是用来把任何长度的一串明文以必定规则变成固定长度的一串字符串。它在SSL中的做用也很重要,之后会慢慢说起的。通常使用的是MD五、SHA、base64不是加密算法,但也是SSL常用的一种算法,它是编码方式,用来把asc码和二进制码转来转去的。
具体的加密解密过程咱们不须要了解,由于SSL根本不关心。但了解加密算法的一些基本原理是必要的,不然很难理解SSL。
参考http://baike.baidu.com/link?url=paEQC-YtsDPLOZzOIOpJvv0BNxBLfypWWZAFJsGEigUKA2WM1rV5MdExsMNhtiRsugwTK6dUXljZgi4h0NxOna
http://help.163.com/10/1111/15/6L7HMASV00753VB8.html
http://www.cnblogs.com/adforce/archive/2012/11/27/2790937.html