文章结构____________________________________________________________
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协议是一种用于提供互联网上数据加密的技术标准,由网景公司(Netscape)于1994年首次提出。 - 主要功能包括认证用户和服务器、加密数据以防止数据中途被窃取、维护数据的完整性等。 **2. 版本发展** - SSL...
总结,此实验旨在让学生深入理解TLS协议的工作机制,熟悉Apache服务器的HTTPS配置,并掌握基本的网络流量分析技巧,这对于网络安全领域的学习和实践至关重要。通过这样的实验,学生不仅能理论联系实际,也能提高对...
根据给定的文件信息,我们可以总结出以下几个关键知识点: ### 1. CA 服务器与 SSL 加密 #### 搭建 CA 服务器 - **定义**:CA (Certificate Authority) 服务器是一种专门用于颁发数字证书的服务器,它可以验证实体...
4. **安全握手**:成功验证后,客户端和服务器会进行安全握手,确立后续通信的加密方式,如SSL/TLS协议,确保通信内容的隐私性。 5. **获取在线状态及好友信息**:登录成功后,客户端会持续接收服务器推送的在线...
同时,我们还学习了SSL协议的工作原理及其在实际场景中的应用,特别是在通过SSL协议访问Web网站方面的具体实现过程。这些理论知识与实践操作相结合的经验,对于理解网络安全及加密通信具有重要意义。
本书是集理论、协议细节、漏洞分析、部署建议于一体的详尽Web应用安全指南。书中具体内容包括:密码学基础,TLS协议,PKI体系及其安全性,HTTP和浏览器问题,协议漏洞;最新的攻击形式,如BEAST、CRIME、BREACH、...
TCP/IP协议是互联网的核心协议,它定义了网络...总结,TCP/IP协议分析与应用编程是一个广泛且深入的领域,涉及协议理论、网络编程技巧以及安全策略。深入理解和掌握这些知识,对于成为一名优秀的网络开发者至关重要。
1. **启用SSL**:SSL(Secure Sockets Layer)是一种用于加密网络通信的协议,常用于保护Web服务器上的敏感信息,如登录凭据和交易数据。 2. **证书申请与颁发**:对于abc.com网站,需要向CA提交证书申请,包括域名...
**FTP协议详解** ...总结,FTP协议作为互联网中的基础协议,其工作原理、安全特性以及在实际应用中的实现是计算机网络课程中的重要学习内容。通过实验和项目,学生能够巩固理论知识,提升解决问题的能力。
- **安全套接层/传输层安全协议**(SSL/TLS):用于保障Web通信安全。 - **互联网密钥交换协议**(IKE):用于IPSec中的密钥协商。 - **轻量级协议**:适用于资源受限设备的通信安全协议。 #### 7.7 量子密钥...
HTTPS,即超文本传输安全协议,是HTTP的安全版本,它在HTTP的基础上增加了SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议,用于保障网络通信的安全性和数据的完整性。这个实验报告的主要目的是...
总结来说,这份设备通讯协议全面地涵盖了设备间的通信流程、数据格式、安全措施和异常处理,为构建智能设备网络提供了坚实的理论基础和实践指南,是实现CS(Client-Server)架构下物联网设备互联的关键技术文档。
《TCP/IP详解卷一:协议》是一本深入探讨TCP/IP协议族的专业书籍,它为读者提供了全面、细致的TCP/IP理论知识。TCP/IP是互联网的基础,由一系列协议组成,包括网络接口层(如ARP和RARP)、网络层(如IP)、传输层...
总结,LDAP和Radius协议在IT领域扮演着至关重要的角色,分别负责目录服务和网络访问控制。理解并熟练掌握这两个协议,对于网络管理和安全至关重要。提供的资源涵盖了理论知识、软件工具以及编程示例,有助于深入学习...
MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅...总结,这个压缩包是学习和实践MQTT协议的宝贵资源,不仅包含了理论知识,还有实际操作的工具,无论是对开发者还是运维人员,都能从中受益匪浅。
一、鉴别协议的基础理论 鉴别协议是网络安全的一种关键技术,主要用于验证通信双方的身份。在网络打印机中,鉴别协议确保只有合法用户能够发起打印请求,防止恶意攻击者窃取或篡改打印内容。常见的鉴别协议有简单...
- **OpenSSL及SSL相关知识**:理解SSL协议的基本原理及其在不同平台上的应用。 - **程序框架设计**:包括客户端和服务端的程序设计框架,以便实现基于SSL/TLS的安全通信。 - **证书下载及安装**:获取并安装数字证书...
在运维和MySQL相关的面试中,理解网络协议和基础架构是至关重要的。以下是对这些面试题的详细解析: 1. **OSI 参考模型七层网络协议**:开放系统互连(OSI)模型是一...这些都需要结合实际工作经验和理论知识来回答。