安全网络通信.ppt

安全网络通信

主要内容 SSL简介 JSSE简介 创建基于SSL的安全服务器和安全客户 SSL简介 SSL(Server Socket Layer)是一种保证网络上的两个节点进行安全通信的协议。 IETF(Internet Engineering Task Force)对SSL作了标准化,制订RFC2246规范,并将其称为TLS(Transport Layer Security)。 从技术上讲,目前的TLS1.0与SSL3.0的差别非常微小。 SSL简介 SSL简介 用户在网上商店购物,当输入信用卡信息,进行网上支付交易时,存在以下不安全因素: (1) 信用卡信息在网络上传输时有可能被他人截获。 (2)用户发送的信息在网络上传输时可能被非法篡改,数据完整性被破坏。 (3)用户正在访问非法Web站点,专门从事网上欺诈活动,比如骗取客户的资金。 加密通信 数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。这样,在网络上传输的是经过加密的数据。 如果有人在网络上非法截获这批数据,由于没有解密的密钥,就无法获得真正的原始数据。 接收者接收到加密的数据后,先对数据解密,然后再处理。 加密通信示意图 安全证书 除了对数据加密通信,SSL还采用身份认证机制,确保通信双方都可以验证对方的真实身份。 SSL通过安全证书证明客户或服务器的身份。 当客户通过安全连接和服务器通信时,服务器会先向客户出示它的安全证书,这个证书声明该服务器是安全的而且的确是这个服务器。 安全证书 每一个证书在全世界范围内都是惟一的,其他非法服务器无法假冒原始服务器的身份。 可以把安全证书比作电子身份证。 获取安全证书的两种方式 方式一:从权威机构购买证书。 方式二:创建自我签名的证书。 从权威机构获得证书 安全证书可以有效的保证通信双方的身份的可信性。安全证书采用加密技术制作,他人几乎无法伪造。 安全证书由国际权威的证书机构(CA,Certificate Authority)如VeriSign()和Thawte()颁发,它们保证证书的可信性。 申请安全证书时,必须支付一定的费用。一个安全证书只对一个IP地址有效。 公钥加密 安全证书既包含用于加密数据的密钥,又包含用于证实身份的数字签名。 安全证书采用公钥加密技术。 公钥加密是指使用一对非对称的密钥进行加密或解密。每一对密钥由公钥和私钥组成。 公钥被广泛发布。私钥是隐密的,不公开。用公钥加密的数据只能够被私钥解密。反过来,使用私钥加密的数据只能被公钥解密。 创建自我签名证书 某些场合下,通信双方只关心数据在网络上可以安全传输,并不需要对方进行身份验证。 这种情况下,可以创建自我签名(self-assign)的证书,比如通过Sun公司提供的keytool工具就可以创建这样的证书。 制作证书的工具keytool JDK1.4以上版本中包含这一工具,它的位置为:JDK根目录\bin\keytool.exe,此外,也可以到以下站点单独下载keytool: /products/jsse/ 通过keytool工具创建证书的命令为: keytool -genkey -alias mystore -keyalg RSA -keystore C:\test.keys keytool命令将生成包含一对非对称密钥和自我签名的证书,命令中参数的意思: genkey: 生成一对非对称密钥。 alias: 指定密钥对的别名,该别名是公开的。 keyalg: 指定加密算法,本例中采用通用的RSA算法。 keystore: 指定安全证书的存放路径。 SSL握手 客户与服务器通信时,首先要进行SSL握手。 SSL握手主要完成: (1)协商使用的加密套件。 加密套件中包括一组加密参数,这些参数指定加密算法和密钥的长度等信息。 (2)验证对方的身份。此操作是可选的。 (3)确定使用的加密算法。 主要内容 SSL简介 JSSE简介 创建基于SSL的安全服务器和安全客户 JSSE(Java Secure Socket Extension) JSSE封装底层复杂的安全通信细节,使开发人员能方便的利用它开发安全的网络应用程序。 JSSE具有以下特征 纯粹用Java语言编写。 可以出口到大多数国家。 提供支持SSL2.0和SSL3.0的JSSE API,,并且提供SSL 3.0 的JSSE实现。 提供支持TLS1.0的JSSE API和JSSE实现。 提供用于创建安全连接的类,如SSLSocket、SSLServerSocket和SSLEngine。 JSSE具有以下特征 支持加密通信。 支持客户端和服务器端的身份验证。 支持SSL会话。 支持一些常用加密算法,比如RSA(加密长度2048位)、RC4(密钥长

文档评论(0)

1亿VIP精品文档

相关文档