TLS

来自站长百科
跳转至: 导航、​ 搜索

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议(TLS Record)和TLS握手协议(TLS Handshake),较低的层为TLS记录协议,位于某个可靠的传输协议(例如TCP)上面,TLS 记录协议是一种分层协议,每一层中的信息可能包含长度、描述和内容等字段,记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用MAC地址 、加密以及传输结果等,对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机

TLS握手协议[ ]

TLS 握手协议由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件,三个字协议分别如下:

  • 警惕协议。
  • 握手协议。
  • 改变密码规格协议。

TLS握手协议特性[ ]

  • 协商是可靠的,没有经过通信方成员的检测,任何攻击者都不能修改通信协商。
  • 可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。
  • 共享加密密钥的协商是安全的,对偷窃者来说协商加密是难以获得的,此外经过认证过的连接不能获得加密,即使是进入连接中间的攻击者也不能。

TLS记录协议[ ]

TLS记录协议用于封装各种高层协议,作为这种封装协议之一的握手协议允许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥,TLS记录协议提供的连接安全性具有两个基本特性:

1、私有――对称加密用以数据加密(DES 、RC4 等),对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商,记录协议也可以不加密使用。

2、可靠――信息传输包括使用密钥的 MAC 进行信息完整性检查。安全哈希功能(SHA、MD5等)用于MAC计算,记录协议在没有MAC的情况下也能操作,但一般只能用于这种模式,即有另一个协议正在使用记录协议传输协商安全参数。

TLS的优势特点[ ]

TLS是独立于应用协议,高层协议可以透明地分布在TLS协议上面,然而TLS标准并没有规定应用程序如何在TLS上增加安全性;它把如何启动TLS握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断,其中TLS包含三个基本阶段:

  • 对等协商支援的密钥算法。
  • 基于私钥加密交换公钥、基于PKI证书的身份认证。
  • 基于公钥加密的数据传输保密

TLS协议的应用[ ]

  • 地面三维激光扫描(TLS)是在地面利用激光扫描装置自动、系统、快速(准实时)获取对象表面的三维坐标的测量技术,它是一种高精度的测量手段,激光扫描与传统的单点测量(如全站仪、GPS测量)不同 ,可以获取被扫对象表面成千上万个点的三维坐标 ,但却无法对某一指定点进行测量从而精确获取其坐标。
  • TLS全称为Thread Local Storage,是Windows为解决一个进程中多个线程同时访问全局变量而提供的机制,TLS可以简单地由操作系统代为完成整个互斥过程,也可以由用户自己编写控制信号量的函数。当进程中的线程访问预先制定的内存空间时,操作系统会调用系统默认的或用户自定义的信号量函数,保证数据的完整性与正确性。
  • 当用户选择使用自己编写的信号量函数时,在应用程序初始化阶段,系统将要调用一个由用户编写的初始化函数以完成信号量的初始化以及其他的一些初始化工作,此调用必须在程序真正开始执行到入口点之前就完成,以保证程序执行的正确性。

TLS的数据结构[ ]

TLS是Windows的可执行文件为PE格式,PE格式专门为TLS数据开辟了一段空间,具体位置为IMAGE_NT_HEADERS.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS],其中DataDirectory的元素具有如下结构:

typedef struct _IMAGE_DATA_DIRECTORY {

DWORD VirtualAddress;

DWORD Size;

}

IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;

其中对于TLS的DataDirectory元素,VirtualAddress成员指向一个结构体,结构体中定义了访问需要互斥的内存地址、TLS回调函数地址以及其他一些信息。

相关条目[ ]

参考来源[ ]