您的位置:首页 > 其它

SSL 及其相关知识

2010-06-27 18:34 183 查看





SSL 及其相关知识
收藏

摘要:

1. TCP/IP

2. SSL

3. HTTPS

4. How SSL works

5. 如何申请SSL证书

6. SSL证书的数据结构

7.网上银行安全证书工作原理

1. TCP/IP

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定
任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协
议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

  应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

  传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议
(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

  互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

  网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

2. SSL

Transport Layer Security
(TLS
) and its predecessor, Secure Socket Layer
(SSL
), are cryptographic protocols
that provide security
for communications over networks such as the Internet
. TLS and SSL encrypt the segments of network connections at the Application Layer
to ensure secure end-to-end transit at the Transport Layer
.

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record
Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL
Handshake
Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

  SSL协议提供的服务主要有:

  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

  2)加密数据以防止数据中途被窃取;

  3)维护数据的完整性,确保数据在传输过程中不被改变。

3. HTTPS

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了
Netscape的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进
行通信。)SSL使用40
位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

4. How SSL/TLS works



A TLS client and server negotiate a stateful connection by using a
handshaking procedure. During this handshake, the client and server
agree on various parameters used to establish the connection's security.

The handshake begins when a client connects to a TLS-enabled server
requesting a secure connection, and presents a list of supported CipherSuites
(ciphers
and hash functions
).

From this list, the server picks the strongest cipher and hash
function that it also supports and notifies the client of the decision.

The server sends back its identification in the form of a digital certificate
. The certificate usually contains the server name, the trusted certificate authority
(CA), and the server's public encryption key
.

The client may contact the server that issued the certificate (the
trusted CA as above) and confirm that the certificate is authentic
before proceeding.

In order to generate the session keys used for the secure
connection, the client encrypts a random number (RN) with the server's
public key (PbK), and sends the result to the server. Only the server
should be able to decrypt it (with its private key (PvK)): this is the
one fact that makes the keys hidden from third parties, since only the
server and the client have access to this data. The client knows PbK
and RN, and the server knows PvK and (after decryption of the client's
message) RN. A third party may only know RN if PvK has been compromised.

From the random number, both parties generate key material for encryption and decryption.

This concludes the handshake and begins the secured connection,
which is encrypted and decrypted with the key material until the
connection closes.

If any one of the above steps fails, the TLS handshake fails, and the connection is not created.

5. 如何申请SSL证书

  申请SSL证书主要需要经过以下3个步骤:

  5.1、制作CSR文件。

  CSR就是Certificate Secure
Request证书请求文件。这个文件是由申请人制作,在制作的同时,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器
上。要制作CSR文件,申请人可以参考WEB
SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用
KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。

  5.2、CA认证。

  将CSR提交给CA,CA一般有2种认证方式:1、域名认证,一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业
的名称;2、企业文档认证,需要提供企业的营业执照。一般需要3-5个工作日。也有需要同时认证以上2种方式的证书,叫EV证书,这种证书可以使IE7以
上的浏览器地址栏变成绿色,所以认证也最严格。

  5.3、证书的安装。

  在收到CA的证书后,可以将证书部署上服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPD.CONF文
件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改
SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。

6.SSL证书的数据结构

  Certificate证书

  --Version 版本

  --Serial Number 序列号

  --Algorithm ID 算法标识

  --Issuer 颁发者

  --Validity 有效期

  >Not Before 有效起始日期

  >Not After 有效终止日期

  --Subject 使用者

  --Subject Public Key Info 使用者公钥信息

  -- Public Key Algorithm 公钥算法

  --Subject Public Key 公钥

  --Issuer Unique Identifier (Optional) 颁发者唯一标识

  --Subject Unique Identifier (Optional) 使用者唯一标识

  --Extensions (Optional) 扩展

  ...

  Certificate Signature Algorithm 证书签名算法

  Certificate Signature 证书签名

7. 网上银行安全证书工作原理

何谓数字证书?  

  数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的数据文件。认证中心的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。  

  数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。  

  认证中心(CA)作为权威的、可信赖的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心颁发的数字证书均遵循X.509 V3标准。X.509标准在编排公共密钥密码格式方面已被广为接受。  

  数字证书的功能主要包括:身份验证、信息传输安全、信息保密性(存储与交易)、信息完整性、交易的不可否认性。  

  数字安全证书的工作流程  

  如果客户A想和银行B通信,他首先必须从数据库中取得银行B的证书,然后对它进行验证。如果他们使用相同的CA(证书认证中心),事情就很简单,客户A 只需验证银行B证书上CA的签名。如果他们使用不同的CA,问题就较为复杂。客户A必须从CA的树形结构底部开始,从底层CA往上层CA查询,一直追踪到同一个CA为止,找出共同的信任CA。目前个人获取网上银行安全证书的途径都是通过银行申请,所以双方肯定采用同一证书认证中心颁发的证书。  

  现在假设客户A向银行B传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下:

  (1)客户A准备好要传送的数字信息(明文)。  

  (2)客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。

  3)客户A用自己的私钥(SK)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。  

  4)客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。

  5)客户A用双方共有的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。  

  6)银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。  

  7)银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。  

  8)银行B用双方共有的公钥(PK)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。  

  9)银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: