一、TLS和SSL介绍
应用程序和网站用来保护其传输数据的最常用方法是传输层安全(TLS)。TLS的前身是安全套接字层(SSL)协议。SSL由Netscape在1994年开发,然后被Internet工程任务组(IETF)采用为RFC 2246。
SSL V3.0是最后一个SSL版本,所有新的协议开发都在TLS下继续进行。考虑到IETF采用TLS时协议之间的相似性,TLS V1.0有时被称为SSL V3.1。在撰写本文时,最新的协议版本是TLS V1.2。虽然TLS不能与SSL互操作,但它提供了在服务器或网站与不支持TLS的合作伙伴通信时恢复到SSL的功能。然而,由于协议中已知的弱点,不再推荐使用SSL。
在本文档中,我们将交替使用术语SSL和TLS,除非另有说明,但是最好使用最新的协议版本来实现最佳的连接安全性。
TLS和SSL都依赖于公钥基础设施(PKI)来标识和验证通信伙伴。PKI基于X.509数字证书,使用可信的第三方证书颁发机构(CA)来保证连接的一个或两端的身份。
保持某些数据的私密性很重要,包括:
信用卡信息
私人信件
个人信息
敏感的公司信息
银行帐户信息
当数据通过网络时,TLS/SSL使用许多加密方法来保护数据,让客户相信他们的数据将保持安全。加密是一种重要的加密方法,加密系统一般分为两类:
对称密钥加密
公钥加密或非对称加密
对称密钥加密
对称密钥加密涉及使用一个由加密数据的发送方和接收方都知道的秘密。该密钥用于加密和解密数据。高级加密标准(AES)是一种常用的对称算法。对称加密可以在软件或硬件中有效地实现,因此它是加密大量数据的良好选择。在对称加密系统中,通信系统之间安全地共享密钥是一个挑战。如果密钥公开给发送方或接收方以外的任何人,则会话的安全性受到威胁。通常至少有两个秘钥(每个方向一个)用于共享对话。在互联网世界中,人们希望网站和应用程序能够与数百甚至数千个合作伙伴保持安全对话,因此对称加密本身并不是在互联网上保护对话安全的实际手段。
公钥加密(不对称)
公钥加密或非对称加密使用一对数学上相关的密钥对数据进行加密和解密。使用其中一个密钥加密的数据只能通过使用这对密钥中的另一个来解密。Rivest-Shamir-Adleman (RSA)可能是最著名的非对称算法。在公钥加密中,一对密钥中的一个是保密的(私钥),而另一个是公开的(公钥)。使用公钥有助于解决我们在对称加密中看到的密钥分发问题。然而,非对称加密比对称加密(按数量级)需要更多的计算能力,因此它不是加密大量数据的好选择。
非对称密码术的另一个有用的应用是数字签名,其中消息的压缩值(散列)用发送方的私钥加密。然后,这个签名值与生成散列值的原始明文消息一起发送。接收方通过使用发送方的公钥来显示散列值来解密签名,然后对接收到的明文消息运行相同的散列算法来获得自己的压缩值。然后将这个散列值与使用发送方的公钥解密后发送的散列值进行比较。如果两个哈希值匹配,则表示:
1. 未修改接收到的消息,因为接收处的散列值与发送的散列值相同。
2. 由于数字签名是使用发送方的公钥解密的,因此对消息的来源进行了身份验证。
数字证书是由证书颁发机构(CA)进行数字签名的文件,CA是SSL会话中两个通信器都信任的第三方。证书包含证书的所有者信息,包括所有者的电子邮件地址,名称,证书使用,有效时间,一个专有名称(DN),包括一个网站或电子邮件地址),分配一个序列号,由CA和CA的证书标识标志这个信息。它还包含证书所有者的公钥。CA的签名是使用CA的私钥加密的证书内容的散列,这不仅证明了证书是真实的,而且还证明了其内容没有被意外修改。
通常,浏览器或应用程序已经加载了众所周知的CA或根CA证书的根证书。CA维护所有已签名证书的列表和已撤销证书的列表。证书在签名之前是不安全的。证书一旦签署,就不能修改。所有根CA证书都是自签名的。在接收数字证书时,可以使用CA公钥检查CA的数字签名。验证签名可以证明数字证书的完整性和来源。如果CA是受信任的,那么它还确保这个公钥值属于证书的所有者。
当与HTTPS一起使用时,TLS/SSL如何工作
浏览器请求安全页面(以https://开头的URL),启动TLS/SSL握手。在握手过程中,会发生以下步骤:
web服务器发送它的数字证书,其中包含它的公钥。
浏览器检查证书是否由受信任的CA颁发,证书是否仍然有效,证书是否与所联系的站点相关。根据SSL配置,浏览器还可以将自己的证书发送回服务器,以便服务器可以对浏览器进行身份验证。
浏览器和服务器交换消息,以就密码套件(密码算法和密钥长度的集合)和二进制数据达成一致,二进制数据最终将充当对称会话密钥(称为密钥材料)。在此交换期间,浏览器使用服务器的公钥加密包含所选密码套件和密钥材料的消息。
web服务器使用其私有密钥解密密码套件和密钥材料,派生对称会话密钥,然后使用这些算法和密钥完成握手。
在完成TLS/SSL握手之后,通信系统使用商定的密码算法和会话密钥来提供数据隐私、消息身份验证和消息完整性。
TLS / SSL服务
对等身份验证是通过使用一个或两个通信伙伴的数字证书来实现的,并通过使用签署证书的CA的公钥来验证这些证书的真实性。然后,通信伙伴使用自己的公钥或私钥对消息内容进行加密和解密,从而完成身份验证。为此,他们同意一组加密算法(密码套件)和二进制值,这些二进制值最终将作为对称加密密钥,用于保护通过安全SSL会话发送的应用程序数据。对等身份验证、密码套件和会话密钥协议在TLS/SSL协议的第一阶段(称为SSL握手)完成。
数据隐私是通过使用在SSL握手期间建立的对称加密算法和密钥实现的。
消息验证和完整性:TLS/SSL使用其他加密方法,通常基于安全散列算法(SHA)等散列算法,以确保通过安全连接接收到的每个消息都来自正确的通信伙伴(消息验证)。TLS/SSL还确保在发送消息和接收消息之间不更改消息(消息完整性)。与数据隐私一样,消息身份验证和完整性保护由在SSL握手期间建立的算法和密钥应用。
二、DB2 Connect中的SSL支持
DB2 Connect支持SSL。命令行接口(CLI)、命令行处理器(CLP)和. net数据提供程序客户端应用程序,以及使用IBM Data Server驱动程序进行JDBC和SQLJ (type 4连接)的应用程序也支持SSL。
关于SSL和DB2 Connect,需要记住以下几点:
要加密客户机和DB2数据库之间传输的数据,可以使用DATA_ENCRYPT身份验证类型或Secure Sockets Layer (SSL)的DB2数据库系统支持。
客户端和HADR主服务器之间支持SSL。使用SSL连接到HADR主服务器的客户机可以使用SSL重新路由到HADR备用数据库。但是,HADR主服务器和备用服务器之间不支持SSL。
三、DB2 SSL配置方法
网友评论