文章结构____________________________________________________________
1、概述
2、handshanke步骤简述
3、java对SSL的支持
4、用到的技术
1、概述____________________________________________________________
SSL:Secure Sockets Layer,网景公司(Netscape)在推出Web浏览器首版的同时提出的协议。目前已成为互联网上保密通讯的工业标准,
TLS:Transport Layer Security其继任者。
TLS与SSL在传输层对网络连接进行加密。
参考:
http://tools.ietf.org/html/rfc2246
http://rrsongzi-gmail-com.iteye.com/blog/600816
1、SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器,认证对方身份。
2)防止对方抵赖。
3)维护数据的完整性,确保数据在传输过程中不被改变。
4)加密数据以防止数据中途被窃取;
2、SSL 握手协议主要负责如下工作:
算法协商:协商密钥加密算法(非对称)、数据加密算法(对称)、摘要算法。
身份验证:在密钥协商完成后,客户端与服务器端通过证书互相验证对方的身份。
确定密钥:双方各自根据协商好的密钥交换算法计算出加密密钥,用来对数据进行加密的密钥,不是确认密钥算法;
2、handshanke步骤简述____________________________________________________________
SSL-双向-full-handshake,大致步骤
1、Client
发送Client端支持的所有密钥套件,包括非对称加密算法,对称加密算法,摘要算法
2、Server
server端收到密钥套件列表后,检查套件(是否也支持这个套件,被禁用,符合出口限制),选择第一个通过检查的套件,并通知client。
发送服务器证书链,自己的证书放最前头,根CA证书放列表最后。
请求客户端证书
3、Client
验证服务器证书,发送自己的证书,生成预主密码,用服务器证书的公钥加密后发送。
4、server
验证client证书,用自己的私钥取出预主密码,计算出加密数据用的对称密钥
5、client
计算出加密数据用的对称密钥.
借用囧囧有神的图片:
3、java对SSL的支持____________________________________________________________
JCE: Java Cryptography Extension,用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。
它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。
JSSE: Java(TM) Secure Socket Extension 。SSL(Secure Sockets Layer)是JSSE中的重要的部分。
Bouncy Castle
java开放源码的轻量级密码术包。它支持大量的密码术算法,并提供 JCE 1.2.1 的实现。它是在 MIDP 上运行的唯一完整的密码术包。
Security.addProvider( new BouncyCastleProvider() );
Security.getProviders();
4、用到的技术____________________________________________________________
1、非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,常见的有RSA
有两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
用公开密钥对数据进行加密,只有用对应的私有密钥才能解密,可以用来加密数据。
用私有密钥对数据进行加密,只有用对应的公开密钥才能解密,可以用来数字签名。
缺点:非对称密钥加密速度慢。
实例:RSA,D-H,ECC
2、数字摘要
目的:验证数据完整性,未被增加,删除,修改
不同明文的摘要总是不同(相同概率非常非常小,取决于选择的Hash函数),相同明文的摘要总是相同,
方法:用单向Hash函数将明文(不管大小)“摘要”成一串固定长度短消息,
实例:
SHA-1(Secure Hash Algorithm)160bits
MD5(Message Digest)128bits,128/4=32位16进制数,
一般官方下载文件时,会提供这两个值,供验证
3、数字摘要算法与加密算法的区别
摘要是单向加密,不可还原出原来明文。
加密算法是可以还原出明文的。
4、数据签名
目的:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
依赖:非对称密钥加密、数字摘要
方法:将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,
然后根据原文产生一个摘要,与解密的摘要信息对比。如果相同,证明信息是完整的。
5、证书及私钥
提供身份认证的实体,包含了公钥等身份信息
依赖:数字签名
私钥:包含私钥等身份信息
6、证书认证中心Certificate Authority (CA)
CA是自签名的证书,用户必须信任。信任CA意味着信任CA签名的所有证书
7、为什么需要CA
假设如下情况:user-A用自己的私钥A-private-key加密数据,user-B接受到数据后,用user-A的公钥A-public-key解密,借此user-B认证为是A发的消息。
但是现在有个user-C,C拦截intercepted修改消息,用自己的私钥C-private-key加密,然后把C的公钥C-public-key发送给B,并告诉B是A-public-key...
这种情况下就需要CA,来证明B接受的是不是A的公钥了。
8、证书验证
安装CA证书,即代表信任CA证书
用证书链某个证书的公钥,验证前一个证书。
证书还有吊销机制。
分享到:
相关推荐
SSL协议的分析和应用 作者黄林,朱卫东
SSL协议详解.pdf
table of description SSL协议概述 SSL记录层协议 SSL握手协议 SSL协议的安全性分析
SSL协议的分析及实现.doc、SSL协议的分析及实现.doc、SSL协议的分析及实现.doc
网络安全课程的PPT,讲述了SSL协议的原理、工作原理及在电子商务中的应用
java实现 SSL双向认证,java ssl包使用
SSL是一种在客户端和服务器端之间建立安全通道的协议。SSL一经提出,就在Internet上得到...OpenSSL包含一套SSL协议的完整接口,应用程序应用它们可以很方便的建立起安全套接层,进而能够通过网络进行安全的数据传输。
计算机 网络安全 SSL协议 网络论文 从网络上收集整理的。
ssl协议 过很多个规划韩国
为了人们在网络上的安全性,人们积极的提出解决办法,Netscape公司发布SSL协议,保障数据包在Internet传输的安全性。随着SSL的使用,暴露出了SSL存在的某些缺陷,比如容易遭受DOS攻击,握手时间较长,连接速度慢等。...
gsoap wsdl SSL WSDL支持HTTPS SSL协议,已经编译好的wsdl,通过wsdl获取https的wsdl协议没有问题 如果遇到问题,可以用QQ问我,每天在线。 另外本人对gsoad熟悉,欢迎咨询
基于流谱理论的SSLTLS协议攻击检测方法.docx
SSL加密技术学习总结
首先分析了安全套接层(SSL)协议在握手阶段的信任不足问题,然后讨论了信任协商机制的原理,提出了采用信任协商机制来扩充SSL协议,并给出了具体的实现方案。
本报告就如何配置SSL/TLS以提供最先进的身份验证和加密技术提出了一般性建议。ssl引擎提供的选项是从 自从Netscape开发SSL2.0以来的早期。TLS的引入使问题变得更具有挑战性,因为服务器和客户端根据各个ssl引擎提供...
ssl协议的详细解读,详细!!!!!!!!!!!!!!!
SSL协议简介、握手过程、工作原理、及其面临的安全问题和安全威胁
SSL是一种安全传输协议,其全称是Securesocketlayer(安全套接层)。该协议最初由Netscape企业发展而来,现已成为网络上用来鉴别网站和网页浏览者身份,以及在浏览器使用者及...本文主要从SSL协议的原理和主要应用进行介绍。
SSL及HTTPS协议实例源码,java https server and ssl server.
SSL协议pcap数据包下载,支持抓包软件(如:wireshark)打开并学习SSL协议报文解析。需要其他协议,请查看我发布的其他资源。