确保安全的HTTPS(使用混合加密的HTTPS,前端面试常问)第二篇

苹果已经确定,在iOS9中通信机制采用HTTPS了。

第一篇:http://www.cnblogs.com/ziyi--caolu/p/4742577.html

上一篇详细介绍了为什么要对HTTP进行加密,以及对HTTP进行加密的两种主要手段。也穿插了,在我以前开发过程中,对HTTP内容进行加密的知识。这一篇,主要是讲对通信过程的加密,也就是所说的HTTPS了。

简单的说,其实  HTTPS = HTTP  +  加密  +  认证  +  完整性保护

为了统一解决上一篇中提到的HTTP各种安全问题,需要在HTTP上加入加密处理和认证机制,把加了加密和认证机制的HTTP称为HTTPS。

使用HTTPS通信时,不再是http://     而是https://

A、身披SSL(Secure Socket Layer  安全套接层)的HTTP,即HTTPS

HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL协议(TLS协议)代替而已。通常,HTTP直接和TCP通信。当使用SSL时,则是HTTP先和SSL通信,再由SSL和TCP通信。在采用SSL之后,HTTP就拥有了HTTPS的加密、证书、完整性保护功能,SSL是独立于HTTP协议的,也就是说,不光是HTTP协议,其他运行在应用层的协议,都是可以使用SSL的。

B、相互交换密钥的公开密钥加密技术

SSL采用的是一种叫做公开密钥加密的加密处理方式(近代的加密方法中加密算法是公开的,而密钥是保密的,加密和解密都要用到密钥,没有密钥,也就无法解密,但如果密钥被攻击者得到,那么加密也就失去了意义)。

1、共享密钥加密的困境

加密与解密使用的是同一个密钥的加密方式称之为共享密钥加密(对称密钥加密)。以这种方式加密时,必须将密钥也发给对方,同样的,如果可以确保密钥可以安全的到达,那么数据也是可以安全到达的。

2、使用两把密钥的公开密钥加密

公开密钥加密的方式很好的解决了共享密钥加密的问题。公开密钥加密使用一对非对称的密钥。一把为私钥(私有密钥),一把为公钥(公开密钥),其中私有密钥不能让任何人得知,而公开密钥则可以随意公布。

加密方式:

发送密文的那一端,使用对方的公开密钥进行加密处理,对方接收到被加密的信息后,使用私钥对此密文进行解密。

利用这种方式,不需要发送用来解密的私钥。从而解决了共享密钥加密存在的问题。

3、使用混合加密机制的HTTPS

HTTPS采用共享密钥加密和公开密钥加密的混合加密机制。如果为了实现密钥的安全,那么可以考虑仅使用公开密钥加密技术。(公开密钥加密比共享密钥加密处理速度要慢)

所以,应当充分利用两者的优势,将多种方法组合起来进行通信:在交换密钥环节,使用公开密钥加密技术(比如说,从客户端到服务器,那么在这样一个安全的通信中,客户端可以将共享密钥加密中的密钥用公开密钥加密中的公钥进行加密,发送给服务器,然后服务器使用公开密钥加密技术的私钥进行解密,就拿到了共享密钥加密技术中的私钥),之后建立通信报文交换的阶段则可使用共享密钥加密技术。

时间: 2024-07-31 05:17:33

确保安全的HTTPS(使用混合加密的HTTPS,前端面试常问)第二篇的相关文章

确保安全的HTTPS(对HTTP加密的几种技术,前端面试常问)第一篇

HTTP固然足够好,但是在安全方面有着很大隐患: 1.与服务器进行通信使用的是明文,内容可能会被窃听(HTTP协议本身并不具备加密功能,所以无法对请求和响应的内容进行加密) 2.使用HTTP协议的服务器与客户端都不会验证通信方的身份,可能遭遇伪装.(所谓不验证通信方身份的意思是,比如说服务端,在服务端接收到请求的时候,只要请求的信息正确,服务器并不会去验证,这个请求是否由其对应的客户端发出.并且,服务器会对请求立即做出一次响应,返回相应的数据) 3.使用HTTP协议的服务器与客户端都无法验证报文

AES与RSA混合加密完整实例

前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用RSA来加密传输AES的秘钥,用AES来加密数据,并提供如下思路: 说人话就是前.后端各自生成自己的RSA秘钥对(公钥.私钥),然后交换公钥(后端给前端的是正常的明文公钥,前端给后端的是用后端公钥加密后的密文公钥:PS:其实我觉得直接交换两个明文公钥就行了),后端生成AES的明文key,用明文key进

HTTPS握手-混合加解密过程

SSL协议通信过程 (1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey).对称加密算法种类及其他相关信息返回客户端; (2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发.若是,执行4步;否则,给客户一个警告信息:询问是否继续访问. (3) 客户端浏览器比较证书里的信息,如证书有效期.服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证. (4) 服务器要求客户端发送客户端证书(包含客户端公钥C_

iOS开发之 AES+Base64数据混合加密与解密

2016-04-08 09:03 编辑: liubinqww 分类:iOS开发 来源:liubinqww 投稿 4 889 "APP的数据安全已经牵动着我们开发者的心,简单的MD5/Base64等已经难以满足当下的数据安全标准,本文简单的介绍下AES与Base64的混合加密与解密" AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES

Android接口安全 - RSA+AES混合加密方案

转载请注明出处: http://blog.csdn.net/aa464971/article/details/51034462 本文以Androidclient加密提交数据到Java服务端后进行解密为样例. 生成RSA公钥和密钥的方法请參考: http://blog.csdn.net/aa464971/article/details/51035200 Android端的加密思路须要4步: 1.生成AES密钥: 2.使用RSA公钥加密刚刚生成的AES密钥: 3.再使用第1步生成的AES密钥,通过A

运维学习之Apache的配置、访问控制、虚拟主机和加密访问https

apache 一.安装Apache服务 yum install httpd -y systemctl start httpd systemctl stop firewalld systemctl enable httpd systemctl disable firewalld 二.apache信息 1.apache的默认发布文件 index.html 在默认发布文件内写入要展示的内容,在浏览器中输入本机http://172.25.254.126可以看到内容 2.apache的配置文件 /etc/

面试常考点:http和https的区别与联系

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号.密码等支付信息. 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间

大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理

声明:本系列文章(共约4篇)转发自酷勤网,中间有我个人的修改或者注释. 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP请求跳转成HTTPS.本文重点介绍HTTPS协议, 并简单介绍部署全站HTTPS的意义. HTTPS 协议概述 HTTPS可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 1995 年发布,

大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理(转)

原文链接:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. 2 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS(Transport Layer Security).HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS