Day26【Web】TCP 安全协定:SSL/TLS

SSL 安全通讯协定
(Secure Socket Layer)和
TLS 传输层安全性协定
(Transport Layer Security)
都是网路传输的加密安全协议。

其中 SSL 是 TLS 的前身,
於 1995 年被开发出来,
用保障网路数据传输的安全性,
但 SSL 的机制并不完善,
於是在 1999 年推出了 TLS,
现在大多数设备则都已支援 TLS 1.2。

现在两者多被并称,使用「SSL/TLS」
这样的写法来表述网路加密协议。


SSL/TLS 的用途

HTTP(超文本传输协定)
是一种网际网路的传输协议,
能将浏览网页传递到浏览器上。

但 HTTP 连线本身并没有安全机制,
传送的数据会公开发送在网路上,
相当容易受到中间人攻击,
被窃取其中的私密资料。

结合 HTTP 传输技术与 SSL/TLS 加密技术,
HTTPS(超文本传输安全协议)因此诞生,
让数据传输有了安全保障。

SSL/TLS 的主要功能

  • 认证网站,确保数据确实发送到正确的网站,而非假冒的钓鱼网站。
  • 建立加密连线,以防止数据中途被窃取
  • 确保数据的完整性,确保数据在传输过程中不会被改变。

运作方式

  • SSL/TLS 握手协议(SSL handshake)
  • SSL/TLS 纪录层

SSL 握手协议

主要目的是建立安全的沟通方式,
会在传输前沟通双方(用户端与服务器端)
所使用的加密演算法或密钥交换演算法
以及身分认证等,并交换传输用的密钥。

具体方式是先以非对称式加密交换金钥,
再用金钥进行对称式加密。

  1. 客户端发出请求,将客户端支援的 SSL 版本和加密演算法发送给网页服务器。
  2. 服务器收到客户端的请求并回应请求,接着传送 SSL 证书和公钥。
  3. 客户端拿到服务器的公钥後即可进行非对称式加密,客户端用服务器的公钥建造「pre-master secret」,并发送给服务器,以建造「对话金钥(session key)」,也就是保证之後对话安全的钥匙。
  4. 服务器收到「pre-master secret」後进行解密拿到金钥,此後两端对话都使用这把金钥,成为对称式加密,传输速度比非对称式更加速迅有效率。

SSL/TLS 纪录层

纪录层中有一个『记录协定』(Record Protocol),
功能是加密传输资料,
根据加密演算法不同,也可能会压缩数据,
数据在加密後就会传送至传输层,
并在传输层决定以何种方式发送讯息。


SSL 凭证

支援 TLS 的网页服务器都必须安装「SSL凭证」,
在 SSL/TLS 握手过程中
拥有凭证的网站才能提供安全连线。

SSL 凭证由受信任的数位凭证认证机构
(Certificate Authority,CA)核发,
如 TWCA 台湾网路认证公司。

协议与凭证并相不同,
连线期间将使用 SSL 或 TLS 协议
取决於浏览器和服务器的设定,
所以也可能存在具有 HTTPS
但使用过时 SSL v3.0 协议的网站。

这种连线很容易受到攻击,
多数新版浏览器会在网址列中提示 HTTPS 连线状况,
通常出现锁头符号代表安全连线。
如果担心意外连到只支援 SSL v3.0 的网站,
可以手动停用 SSL 连线,但可能导致连线中断。

SSL 凭证皆设有到期日,并注明签发单位,
SSL 凭证必须定期更新以维持凭证有效性,
如果网站的SSL凭证过期,
浏览器会将网站视为不安全。
如果网站安装非 CA 机构核发的凭证或伪照凭证,
浏览器也会将网站视为不安全。


参考资料


<<:  【Day29】反馈元件 - Toast

>>:  Day27 - Linux 提权(1)

#14-撒花~Button庆祝动态自己来!~ (JS)

敝人很常踩到诈骗网站,第一屏就是一个庆祝的小动画, 恭喜我中奖(好想中威力彩啊) 网页也很常有这种奖...

Python API Lab 1.0 –增加更多API需求

构造API请求 这是当前版本实验室中使用的API请求范例。该GET请求使用vms API,并列出所选...

Day 17 (Ps)

1.笔刷填色 (云对话框) (影片Ps7) (1)选云图层Ctrl(载入选取)>选前景色>...

Day43 ( 电子元件 ) 触碰开灯 ( 引脚按下 )

触碰开灯 ( 引脚按下 ) 教学原文参考:触碰开灯 ( 引脚按下 ) 这篇文章会介绍如何使用「当引脚...

[Day27] 实战 - 撰写均线金三角交叉的策略

影片在这里 分类:选股 型态 重点整理 金三角交叉:5 日均线先向上突破 10 日均线後再突破 20...