SSL是什么?
SSL是https,不是只能用在http上,http协议数据在互联网中传输不是安全的。
- 没有保密性,可能被窃取。
- 身份不确定。 加密,解决信息的保密性。 java加密方式:
- MD5(认证,不能加密)
- BASE64(没有起到真正加密)
- AES(对称加密,使用同一个秘钥,加密,解密)
- RSA(非对称加密,生成秘钥是,加密解密使用的是不同的秘钥)
什么是http协议:
- TCP/IP 1971
- SMTP 收发邮件 1971
- FTP 传输文件 1971
- Telnet 远程登录
- HTTP(Hypertext Transfer Protocol) 超文本传输协议(允许用户链接访问网页) HTML,超文本标记语言(统一网路访问、交流的语言)。 URL,统一资源定位符。 Web浏览器:www浏览器。 Web服务器:info.cern.ch
HTTP请求格式
-
请求行: POST(请求方法)/article/1001.html HTTP 1.1(HTTP协议版本)
-
请求头:
Accept image/jpeg, application/x-ms-application,...,(接受的响应数据类型) Referer: http://localhost:8080/article/1000.html(从哪个地址发起的请求) Accept-Languce:zh-CN(接受的语言) UserAgent: MoziIIa/4.0(浏览器类型) Content-Type: application/x-www-form-urlencode(发出的数据类型) Host:localhost:8080(发起请求的主机地址) Content-Length:112(发起请求的数据长度) Connection:Keep-Alice(连接状态) Cache-Control:n0-cache(缓存配置) Cookie:XXXXXXXXXXXX -
请求头:name=wuya&password=123456
HTTP响应格式
- 响应头: 协议、版本,200(状态码),OK(描述)
- 响应头:
server:nginx1.8(服务器类型)
Content-Type:(application/json)(响应类型)
Transfer-Encoding:chunked(编码方式)
Date:Fir, 14 May 2021 14:48:22 GMT
- 响应体:
Http响应状态码
1XX:信息,服务器收到请求,需要请求者继续执行操作
2XX:成功,操作被成功接收并处理
3XX:重定向,需求进一步的操作以完成请求
4XX:客户端错误,请求包含语法错误或无法完成请求
5XX:服务器错误,服务器在处理请求的过程中发生错误。
http不安全
- 泄露(没有加密,明文传输,抓包工具可以获得,可能被窃听)
- 篡改(修改传输的信息,比如修改银行卡号)
- 冒充(不能验证通信双方的身份) 解决:
- 加密:比如:
计算机底层只有1和0,加密就是经过计算位移得到新的字符串
下面如何解决密钥传输的问题?
1、密钥的私密性问题 2、秘钥的存储、管理
- 解决办法就是:非对称加密算法
非对称加密算法计算变慢了。传输过程中,公钥被黑客替换(接收到的公钥不够权威),解决办法数字证书。证明公钥的公信力和权威性。
https的证书是要收费的。
https
证书颁发机构,安装在了操作系统中,如果没有安装,则会弹出警告。
非对称加密,认证,密钥是可用的,对称加密用来通信,双方协商一个会话密钥,流程如下:
SSL/TLS协议,由网景公司(Netscape)提出