已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HTTPS简介,1,第一节HTTPS简介,引入:随着网络通信和电子商务等服务和资源进入人们的日常生活,人们在享受网络带来的各种便利的同时,面临各种各样的安全隐患。我们经常接触到的就有邮箱登录,网上购物,电子银行等等。这很多是基于HTTP协议的。但HTTPRFC2616最初是在INTERNET上不用密码的应用。因此随着人们对安全性的要求增加。HTTPS协议,为我们提供了面向通道的安全性。,2,目录,目录HTTPS简介SSL协议介绍SSL记录协议SSL握手协议,3,HTTPS简介,HTTPS(全称:HypertextTransferProtocoloverSecureSocketLayer)是HTTP的安全版HTTPS默认使用TCP端口443,也可以指定其他的TCP端口。URI格式https/:URL一个URI例子:,4,SSL协议介绍,HTTPS中S,实际上是SSL(SecureSocketsLayer)协议。SSL是Netscape公司发明的一种用于WEB的安全传输协议。随着时间的推移由于Netscape失去了市场份额,它将SSL的维护工作移交给因特网工程任务组(IETF)。第一个后Netscape版本被重新命名为安全传输层协议(TLS),TLS(TransportLayerSecurity:RFC2246)是基于SSL上研发的,但是与SSLv3.0有细微的差别。因此,SSL协议有时也称为TLS协议。目前常用的是TLSv1.0的协议。,5,SSL协议介绍,SSL协议的功能1)保证传输数据的保密性2)保证传输数据的完整性3)实现通信双方的互相身份认证,6,SSL协议介绍,SSL协议在协议栈的位置,IP协议,TCP协议,HTTP、TELNET、FTP等应用层协议,7,SSL协议介绍,SSL协议是一个分层的协议,共有两层组成。高层协议包括:SSL握手协议(SSLHandshakeProtocol)、改变加密约定协议(ChangeCipherSpecProtocol)、报警协议(AlertProtocol)处于SSL协议的底层的是:SSL记录层协议(SSLRecordProtocol),8,SSL记录协议,SSL的记录协议记录层协议实际上是一个简单的封装或者说是“打包”协议。记录可能是明文传送的,也可能是被加密传送的,纪录协议的功能保证消息的完整性机密性,9,SSL记录协议,SSL记录的结构示意图:,类型:有握手协议、报警协议、改变加密约定协议、应用数据等四种,加密数据,可分解为,数据,HMAC,填充*,填充长度*,注:HMAC:Keyed-HashMessageAuthenticationCode(消息验证码),10,SSL记录协议,MAC(MessageAuthenticationCode)消息验证码消息验证码也称为消息摘要,是实现数据完整性的主要手段。主要目的是认证消息、检验数据是否被篡改。目前常用的消息摘要算法有MD5(Message-DigestAlgorithm5)和SHA(SecureHashAlgorithm)。SSL中的摘要算法是:HMAC即Keyed-HashMessageAuthenticationCode。HMAC是在使用消息摘要函数(例如MD5等)的同时,增加了一个“密钥”作为输入。,11,SSL记录协议,SSL记录协议封装过程,类型,版本,长度,数据,HMAC*,填充*,填充长度*,1、填写”记录头信息”中的”版本”和”类型”,*2、如果协商了压缩算法则压缩“数据”,3、计算并附加MAC,*4、计算“填充长度”,填写“填充字段”并“加密”,5、填写记录头信息中的“长度”,12,SSL记录协议,SSL记录协议解封装过程,类型,版本,长度,数据,HMAC*,填充*,填充长度*,1、读取”记录头信息”中的”版本”,2、根据长度读入记录“数据”部分,3、去掉“填充长度”和“填充“字段,*4、检查并去掉MAC,5、如果协商了压缩算法则解压“数据”,13,SSL握手协议,SSL握手协议是SSL协议中最重要同时也是最复杂的协议。SSL握手协议主要负责如下工作:算法协商身份验证确定密钥,14,SSL握手协议,SSL握手过程分为四种:FullHandshake:全流程握手,C/S双方从无到有建立SSL连接;ResumsessionHandshake:C/S双方曾经建立过连接,但中途断了,SSL会话信息还有保留,只需要执行部分握手流程就可建立SSL连接;ServerRe-negotiationHandshake:已经建立了SSL连接,但server端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执行部分握手流程;ClientRe-negotiationHandshake:已经建立SSL连接,但client端为了某些原因要求重新协商,只需执行部分握手流程。,15,全流程握手(FullHandshake),携带客户的SSL版本号,加密套件列表,压缩算法列表,客户端随机数,sessionid=0;传送给服务器,ServerHelloServerCertificate*ClientCertificateRequst*ServerHellodone,*ClientCertificateClientKeyExchang*CertificateverifyChangeCipherSpecClientfinishedMessage,Clienthello,ChangeCipherSpecServerfinishedMessage,ApplicationData,ApplicationData,服务器选择版本,确定要用的加密套件、压缩算法,计算sessionid,以及随机数发给客户端,服务器将自己的证书发送给客户端,服务端向客户端索要证书,服务端通知客户端握手消息发送完成,客户端向服务器端发送自己的证书,客户端密钥交换(产生预主密钥(preMasterKey),客户端证书验证,让服务器验证发消息的客户端和客户端证书的真实所有者,改变加密约定消息,通知服务端,之后的消息开始启用加密参数,客户端的SSL协商成功结束,发送握手验证报文确保消息的完整性,服务器端的SSL协商成功结束,发送握手验证报文确保消息的完整性,改变加密约定消息,通知客户端,之后的消息开始启用加密参数,应用数据传送,下一页,16,携带客户的SSL版本号,加密套件列表,压缩算法列表,客户端随机数,sessionid=0;传送给服务器,Clienthello,客户端给服务器端发个hello的问候,问候里包含有它使用的SSL版本号、加密套件列表,压缩算法列表,客户端随机数,sessionid=0;,服务器收到客户端的问候后,会从客户端提供的版本号中选出双方都支持的最高版本,从加密套件列表选择一种支持也安全性强的加密套件,从压缩算法列表选择压缩算法(一般为空)。,返回,Clienthello,17,服务器端将上述选择的加密套件,压缩算法(NULL),且计算一个session_id,和服务器端随机数发送给客户端,服务器选择版本,确定要用的加密套件、压缩算法,计算sessionid,以及随机数发给客户端,Serverhello,客户端收到serverhello的报文会将加密套件,压缩算法(NULL),session_id,和服务器端随机数缓存起来。接着继续握手过程。,返回,Serverhello,18,服务器将自己的证书发送给客户端,ServerCertificate*,服务器端将自己的证书发送给客户端,证明自己的身份。证书中包含有服务器的身份信息,以及服务器的公钥。,客户端收到Certificate报文会验证该证书是否过期,并将服务器的公钥缓存起来。,返回,ServerCertificate*,19,ClientCertificateRequst*,如果是SSL的双向认证的话,那么服务器端会向客户端发送clientcertrequest消息,索要客户端的证书,证书中包含有server端支持的证书类型,和所信任的所有证书发行机构(CA(CertificateAuthority)列表。,客户端收到ClientCertificateRequst报文将消息中的证书类型列表和可信任证书发行机构列表保存下来,可在后面发送客户端证书时候拿来筛选证书用。,服务端向客户端索要证书,返回,ClientCertificateRequst*,20,ServerHellodone,服务器端通知客户端这一步的握手消息发送完成。等待客户端确认。,服务端通知客户端握手消息发送完成,返回,ServerHellodone,21,*ClientCertificate,客户端从之前收到server端发的certrequest消息中的支持的证书类型列表和信任的根CA(CertificateAuthentication)列表中选择满足条件的第一个证书发送给服务器。,客户端向服务器端发送自己的证书,服务器端会缓存客户端的公钥。,返回,*ClientCertificate,22,ClientKeyExchang,若为RSA加密,客户端则产生一个48位随机数作为pre-master(预主密钥)并用服务器公钥加密后发出去。,客户端向服务器端发送一个48位的预主密钥,服务器端缓存预主密钥。,返回,ClientKeyExchang,23,*Certificateverify,客户端证让服务器验证发消息的客户端和客户端证书的真实性,由于之前的ClientCertificate消息中包含有客户端的公钥,因此用公钥解密该消息,验证客户端的真实性。,Certificateverify这个消息中要包含一个签名,签名里头内容就是从clienthello开始到目前为止所有握手消息(不包括本消息)的摘要,然后用客户端的私钥加密。,返回,*Certificateverify,24,ChangeCipherSpec,改变加密约定消息,通知服务端,之后的消息开始启用加密参数,在发送该消息的同时,客户端会把之前的客户端随机数,服务器端随机数、以及预主钥产生一个主密钥。并将主密钥进行密钥导出(服务器端的写MAC密钥、客户端写MAC密钥、服务器端的写密钥、客户端的写密钥),该过程只在本地进行,不发送给对方。,ChangeCipherSpec该消息只有一个值为1的字节。不属于握手协议,和握手协议同一级别的改变加密约定协议。发送该消息的作用是为了告诉对方接下来的消息将采用新协商的加密套件和密钥进行通信。,返回,ChangeCipherSpec,25,ClientfinishedMessage,客户端的SSL协商成功结束,发送握手验证报文确保消息的完整性,这是客户端SSL协商成功结束的消息。也是第一个用协商好的密钥加密的消息。会把从clienthello一直到现在的数据摘要,用客户端密钥加密,发送给服务器。确保握手过程的完整性和机密性。,返回,ClientfinishedMessage,26,SSL握手协议,加密套件列表:列表中包含了Client端支持的所有密钥套件。一个密钥套件定义了一个密钥规格,其中描述如下内容:密钥交换算法(非对称加密算法),是否出口对称加密算法支持的最高对称密钥位数MAC(MessageAuthenticationCode)算法(或摘要算法)。例:SSL_RSA_WITH_RC4_128_MD5=0 x0004/*非对称加密算法或密钥交换算法为RSA,采用高强度128位对称加密算法RC4,摘要或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年增值税法立法进展与税率调整预期
- 上海立达学院《Android 移动应用开发》2025-2026学年第一学期期末试卷(A卷)
- 2026年矿泉水资源开采与旅游业融合发展模式
- 上海立信会计金融学院《安全防范系统工程》2025-2026学年第一学期期末试卷(B卷)
- 2026年公司部门职责划分与协作机制优化
- 2026年村卫生室结核病防治讲座
- 2026年施工现场成品保护管理办法
- 2026年演唱会突发事件处置预案
- 上海立信会计金融学院《AI 设计基础》2025-2026学年第一学期期末试卷(A卷)
- 大连东软信息学院《Android 应用开发》2025-2026学年第一学期期末试卷(B卷)
- 2025中国五矿集团(黑龙江萝北石墨园区)石墨产业有限公司招聘考试历年参考题附答案详解
- (新版)中国联通政企智慧运营考试题库(含答案)
- 2025年卫生监督协管培训试题及答案
- 学平险介绍课件
- 货代公司操作管理制度
- 低空空域管理课件
- 《青蒿素:人类征服疾病的一小步》课件 2024-2025学年统编版高一语文必修下册
- 羽毛球合同协议
- 《应急救援技能培训》课件
- SMT生产工艺流程介绍
- 展望未来的智能船舶技术
评论
0/150
提交评论