【Android 网络协议 三】HTTPS协议
2018-02-15 11:15
302 查看
1. HTTPS协议简介
(1)HTTPS是什么?
HTTPS不是一个单独的协议,而是工作在加密连接(SSL/TLS)上的常规HTTP协议。通过在TCP和HTTP之间加入TLS(Transport Layer Security)来加密。
HTTPS就是HTTP协议加上了“加密、认证、数据完整性保护”。
(2)SSL/TLS协议
SSL协议,是一种安全的传输协议,TLS是SSL v3.0的升级版。
(3)传输速度
a. 通信慢:除去TCP连接、发送HTTP请求和响应,必须处理SSL/TSL通信。
b. SSL必须进行加密处理
2. 密钥、密码、加密
(1)密钥是一种参数,它是在明文转换为密文或密文转换为明文的算法中输入的参数。
(2)密码是一种特定的暗号或口令。常在个人取款或保密通信中用到。
(3)加密包含算法和密钥两个元素。算法将密钥和密钥数据结合产生一个不易理解的密文。
3. 对称加密&非对称加密
(1)对称加密
又称共享密钥,对称密钥在加密和解密的过程中使用的密钥是相同的,常见的对称加密算法有DES、3DES、AES、RC5、RC6。
缺点是发送方和接收方需要协商共享同一把密钥。
优点是计算速度快。
(2)非对称加密
又称公开密钥,服务端会生成一对密钥,一个私钥保存在服务端,仅自己知道;另一个是公钥,可以发布供任何人使用。客户端通过公钥加密的明文,需要服务端用私钥解密。之所以称为不对称加密,是因为其加密和解密需要不同的密钥。
4. RSA加密过程
(1)服务端生成公钥和私钥
(2)私钥保存在服务端,公钥发送给客户端
(3)客户端使用公钥加密明文传输给服务端
(4)服务端使用私钥解密密文得到明文
5. 数字签名
在对数据进行了加密后,如何保证数据在传输过程中不被替换呢?这里就用到了数字签名。
(1)验证传输的内容是不是真实服务器发送的数据,发送的数据有没有被错改过。
(2)它是用私钥来加密,用公钥来解密。
(3)数字签名的过程:
第一步:服务端把报文经过哈希处理,生成摘要信息,把这个摘要信息用私钥加密,得到一个签名。
第二步:当客户端接收到数据,把签名抽取出来,用公钥来解密,如果可以解密,就可以确认是对方发的。
第三步:客户端将报文提取出来做同样的hash处理,得到digest1,与digest2比较,如果相等则确认没有被篡改过。
6. 数字证书
如何保证现在使用的公钥就是真实服务器发送的呢?
(1)数字证书就是互联网通讯中标志通信双方身份信息的一串数字,它只是一个文件。
(2)为什么要有数字证书?
请求方要确定它得到的公钥是它的目标主机发来的而没有经过第三方数据篡改,这时就需要一个权威机构发放的密钥。
(3)数字证书的颁发过程
用户产生自己的密钥-->将公共密钥和私人密钥交给认证中心-->认证中心确认后,给用户数字证书
6.
SSL/TLS握手的整个过程
7.
最后
以上就是我总结的HTTPS基本知识,后续我还会陆续纠正更新。如有疑问,请有疑问请留言提问,博主每天都会查看。
(1)HTTPS是什么?
HTTPS不是一个单独的协议,而是工作在加密连接(SSL/TLS)上的常规HTTP协议。通过在TCP和HTTP之间加入TLS(Transport Layer Security)来加密。
HTTPS就是HTTP协议加上了“加密、认证、数据完整性保护”。
(2)SSL/TLS协议
SSL协议,是一种安全的传输协议,TLS是SSL v3.0的升级版。
(3)传输速度
a. 通信慢:除去TCP连接、发送HTTP请求和响应,必须处理SSL/TSL通信。
b. SSL必须进行加密处理
2. 密钥、密码、加密
(1)密钥是一种参数,它是在明文转换为密文或密文转换为明文的算法中输入的参数。
(2)密码是一种特定的暗号或口令。常在个人取款或保密通信中用到。
(3)加密包含算法和密钥两个元素。算法将密钥和密钥数据结合产生一个不易理解的密文。
3. 对称加密&非对称加密
(1)对称加密
又称共享密钥,对称密钥在加密和解密的过程中使用的密钥是相同的,常见的对称加密算法有DES、3DES、AES、RC5、RC6。
缺点是发送方和接收方需要协商共享同一把密钥。
优点是计算速度快。
(2)非对称加密
又称公开密钥,服务端会生成一对密钥,一个私钥保存在服务端,仅自己知道;另一个是公钥,可以发布供任何人使用。客户端通过公钥加密的明文,需要服务端用私钥解密。之所以称为不对称加密,是因为其加密和解密需要不同的密钥。
4. RSA加密过程
(1)服务端生成公钥和私钥
(2)私钥保存在服务端,公钥发送给客户端
(3)客户端使用公钥加密明文传输给服务端
(4)服务端使用私钥解密密文得到明文
5. 数字签名
在对数据进行了加密后,如何保证数据在传输过程中不被替换呢?这里就用到了数字签名。
(1)验证传输的内容是不是真实服务器发送的数据,发送的数据有没有被错改过。
(2)它是用私钥来加密,用公钥来解密。
(3)数字签名的过程:
第一步:服务端把报文经过哈希处理,生成摘要信息,把这个摘要信息用私钥加密,得到一个签名。
第二步:当客户端接收到数据,把签名抽取出来,用公钥来解密,如果可以解密,就可以确认是对方发的。
第三步:客户端将报文提取出来做同样的hash处理,得到digest1,与digest2比较,如果相等则确认没有被篡改过。
6. 数字证书
如何保证现在使用的公钥就是真实服务器发送的呢?
(1)数字证书就是互联网通讯中标志通信双方身份信息的一串数字,它只是一个文件。
(2)为什么要有数字证书?
请求方要确定它得到的公钥是它的目标主机发来的而没有经过第三方数据篡改,这时就需要一个权威机构发放的密钥。
(3)数字证书的颁发过程
用户产生自己的密钥-->将公共密钥和私人密钥交给认证中心-->认证中心确认后,给用户数字证书
6.
SSL/TLS握手的整个过程
7.
最后
以上就是我总结的HTTPS基本知识,后续我还会陆续纠正更新。如有疑问,请有疑问请留言提问,博主每天都会查看。
相关文章推荐
- Android之HttpsURLConnection访问网络(android https协议)
- android 网络协议等socket,http,HTTPS,get。post请求 等详解
- Android网络编程之TCP/IP,HTTP,HTTPS协议了解
- android--(http协议、显示网络中的图片、https)
- Android之HttpsURLConnection访问网络(android https协议)
- Android 4.x 在 https 协议下无法利用 okhttp 进行网络访问的临时解决办法
- 在android上实现ffmpeg的pipe功能,实现除了file和网络协议以外的流媒体播放
- NetWork——关于HTTP、HTTPS的知识总结(以及Android网络优化建议)
- android 网络协议
- Android Socket网络编程 UDP协议
- 《Android中高级工程师面试指南 — 网络协议和网络框架面试讲解 — OKHttp》
- Android Https网络连接失败,图片加载不出
- Android产品研发(九)-->App网络传输协议
- HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)
- Http标准协议Android网络框架——NoHttp
- Android网络请求详解,从HTTP协议到httpUrlConnection
- Android网络协议总结
- Android中进行基于 HTTP协议的网络访问
- Android网络连接,HttpsURLConnection还是ApacheHTTPClient?
- OTA服务器和android客户端添加HTTPS协议