技术Android服务端

TLS详解

2018-05-03  本文已影响4032人  freagle

一、为什么使用TLS

在SSL/TLS出现之前,很多应用层协议(http、ftp、smtp等)都存在着网络安全问题,例如大家所熟知的http协议,在传输过程中使用的是明文信息,传输报文一旦被截获便会泄露传输内容;传输过程中报文如果被篡改,无法轻易发现;无法保证消息交换的对端身份的可靠性。为了解决此类问题,人们在应用层和传输层之间加入了SSL/TLS协议。

二、什么是TLS

TLS(Transport Layer Security,安全传输层),TLS是建立在传输层TCP协议之上的协议,服务于应用层,它的前身是SSL(Secure Socket Layer,安全套接字层),它实现了将应用层的报文进行加密后再交由TCP进行传输的功能。

TLS的作用

TLS协议主要解决如下三个网络安全问题。

  1. 保密(message privacy),保密通过加密encryption实现,所有信息都加密传输,第三方无法嗅探;
  2. 完整性(message integrity),通过MAC校验机制,一旦被篡改,通信双方会立刻发现;
  3. 认证(mutual authentication),双方认证,双方都可以配备证书,防止身份被冒充;

TLS的发展过程

TLS是怎样实现的

TLS协议可以分为两部分

  1. 记录协议(Record Protocol)
    通过使用客户端和服务端协商后的秘钥进行数据加密传输。

  2. 握手协议(Handshake Protocol)
    客户端和服务端进行协商,确定一组用于数据传输加密的秘钥串。

TLS握手过程

TLS握手

TLS记录协议

TLS记录协议

TLS Java编程示例

上一篇下一篇

猜你喜欢

热点阅读