SSL/TLS的原理以及互联网究竟是如何工作的(2)—“更合适的架构,大家一起努力!”

话说上回说到我和其他朋友们讨论来讨论去总算是大致解决了任意两台计算机之间的通信问题,不过又有新问题了:

“(我)诸位,我发现上次咱们是依据OSI模型讨论问题的,但这个模型其实并不是那么合适,有一些冗余之处。大家想一想,会话层和表示层实际上都是与应用程序配合工作的,而物理层那些纯硬件层面的问题其实并不是我们的领域,我们最多只要处理到与硬件的接口这一层次上就足够了。”“的确啊。”“(我)工作室需要合并一下:物理层与数据链路层合并为网络接口层,只负责硬件接口相关任务,硬件问题就不要去管它了;网络层改名为网络互连层,更为清晰;传输层不变;会话层,表示层和应用层合并为一层,统称应用层。”

现在实际使用的就是TCP/IP模型,也称作TCP/IP协议栈,由以下4层组成(这些层都不是真实存在的,只是一种抽象概念而已):

1,网络接口层

一般认为对应OSI模型中的物理层和数据链路层,但实际上TCP/IP标准并不定义与OSI数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口,例如PC的网卡驱动程序。

2,网络互连层

一般认为对应OSI模型中的网络层,包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。注意,ICMP其实位于IP层之上,但它却是IP的附属协议,在OSI模型和TCP/IP协议栈中都没法放在一个合适的位置上。没办法,没有哪个模型是完美的。

3,传输层

一般认为对应OSI模型中的传输层,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题,也包括所给数据应该送给哪个应用程序。

4,应用层

一般认为对应OSI模型的会话层,表示层和应用层,该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。应用层的协议是要依赖传输层的协议工作的,应用层协议运行在传输层的TCP或UDP协议之上(这句话的意思是应用层协议负责打包封装数据提供给客户端或服务器端有用信息,再由传输层协议接过封包进行处理和传输)。

“(我)诸位,任务来了:A地的PC用户想要浏览网页,对应的网站服务器在半个地球之外的B地呢。开始吧!”"我先处理用户的请求!(HTTP和其他几位(其中有原来的表示层工作室成员))"“我们一起建立可靠连接!(TCP和IP异口同声。PS:TCP和IP总是配合工作,TCP的查错机制中就有一步是对整个TCP段和伪段头(IP头的一部分)检查和,有些用户参数TCP直接传递给IP层处理),应用层的诸位,数据封装好之后就交给我们来处理传输!”“YES!(应用层)”“然后我们就可以把这些逻辑信息最终转化为物理信息送出去了!(网络接口层的诸位)”“(我)似乎还漏了负责路由器的几位......算了,他们太低调了,有空再介绍吧。”

“咳咳,这样传输的可是明文啊,你们不在乎数据被窃听复制篡改或者落到中间人的手里?”

“(我和其他人)SSL?什么中间人?”

“叫我TLS!算了,这不重要,你们想象一下这样的场景:一个不怀好意的第三方想要窃取用户数据,那么他会在路上伪装成目标网站服务器接收数据......”

“(我)第三方无法满足用户请求的,而且有独一无二的域名做保证......”

“笨蛋!域名系统是很不可靠的,域名欺骗域名劫持域名污染这些都是常有的事![3]还有,第三方完全可以先截取用户数据,再自己当客户端与目标网站建立连接,从目标网站抓取数据之后再转交给用户,这样用户就根本无法察觉自己被中间人攻击了!”

"(我)那你说该怎么办?(生气中)"

“首先,用户数据当然要被从头到尾都被加密了,而且要是强加密,否则分分钟被暴力破解;然后,需要有一个可靠的身份验证机制,保证用户和服务器之间没有第三方;还有,必须要保证一个数据包都不掉队,要知道为了建立加密连接我可是要帮客户端和目标服务器握手呢,这期间要是有数据包丢了而我却不知道,那就搞笑了!所以我要在TCP的帮助下工作(TCP:OK,建立可靠连接,我最擅长了!)最后就是,客户端和目标服务器各自持有不能被第三方截取到的密钥,要不然加密就失去意义了。”

“(我)那么,双方事先准备一对密钥?”

“不现实。鬼才知道用户想要和哪些网站建立HTTPS连接,怎么个事先准备法?又该用什么途径把密钥送到用户手里?网站服务器要是一直都用一个密钥,那么在不知情的情况下被第三方偷走了怎么办?那样后果会相当严重的!必须做到每个连接两个独一无二的密钥!”

“(我)等一下,两个?两个不同的密钥?”

“没错。如果是相同的密钥(采用对称加密,例如你用7zip加密了压缩包,密码设置为123456,那下次打开压缩包解密时也是输入123456,加密密钥和解密密钥是同一个),那么怎么秘密传递密钥就又是一个无解的问题了。你总不能线下交给用户吧(笑),如果加密传递,那么就变成一个先有鸡还是先有蛋的问题了:加密传递时的解密密钥又该如何安全传送?那么只能采用非对称加密了,加密密钥(公钥)是明文传递的,解密密钥(私钥)是秘密的,这样第三方只能干瞪眼。不过如果第三方伪装成目标服务器,那么他还是有办法对付非对称加密的,所以还需要可靠的身份验证机制。”

“(我)那么你的想法具体是怎样的呢?”

“说来话长,我的想法并不是那么容易理解的,下次再具体说明吧。”

“(我)好吧,TLS,下次就是你的专场了(笑)。对了,你有一个缺点,介意我提出来吗?”

“说吧,幽灵。”

“(我)拜托你能不能改掉这个不打招呼就冷不丁插话的坏毛病!(咆哮)”

时间: 2024-10-22 19:20:08

SSL/TLS的原理以及互联网究竟是如何工作的(2)—“更合适的架构,大家一起努力!”的相关文章

SSL/TLS的原理以及互联网究竟是如何工作的(1) —“每个协议生而平等”

计算机网络里有一个模型非常有名:OSI(Open Systems Interconnection,开放系统互连)模型,几乎所有的计算机网络教学和科研都要在OSI的基础上进行,想要讨论计算机网络中的问题也要依靠这个模型. OSI模型是这样的结构(从底层到最高层): 1,物理层(physical layer) 物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输.它由计算机和网络介质之间的实际界面组成,可定义电气信号.符号.线的状态和时钟要求.数据编码和数据传输用的连接器.有线网络信号有电流脉冲

SSL/TLS的原理以及互联网究竟是如何工作的(3)—TLS的专场

我:hi,TLS!这次是你的专场哦! TLS:OK,那我就开始了!首先,我的大名叫做Transport Layer Security Protocol(传输层安全协议),是SSL的升级版.实际上我的左手和右手都是能用的,左手叫Record Layer(记录层),右手叫Handshake Layer(握手层)...... 我:喂喂,等一下,记录层?握手层?这都是什么啊? TLS:别打断我!听我慢慢解释:TLS是基于TCP的可靠连接,而想要建立一个可靠连接就必须有一个被称为握手的过程,TCP就有啊(

SSL/TLS的原理以及互联网究竟是如何工作的(5)—DNS和他的兄弟

我:话说上次好不容易送走了TLS,这次...... DNS:(突然蹦出来)这次当然是我的专场啦!大家好,我叫DNS(Domain Name System,域名系统),我出生于1987年,在我出生之前计算机科学家们是用hosts.txt文件解决主机名与对应IP地址的对应问题的,但随着互联网中主机数量的增长,hosts文件变得越来越臃肿,也越来越用户不友好,我就横空出世啦!(不过各操作系统中的hosts文件依旧保留至今,历史的遗迹啊) 我主要工作在UDP/IP协议之上,实质是一个分布式的公开数据库系

[转帖]SSL/TLS/WTLS原理

SSL/TLS/WTLS原理 作者:yawl < [email protected] >主页:http://www.nsfocus.com日期:2001-02-19 一 前言 首先要澄清一下名字的混淆:1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议.这种协议在WEB上获得了广泛的应用.2 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从

SSL/TLS/WTLS原理(密钥协商的形象化比喻:用服务器的公钥协商加密格式,然后再加密具体的消息)good

一 前言 首先要澄清一下名字的混淆: 1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议.这种协议在WEB上获得了广泛的应用. 2 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小.由于本文中没有涉及两者间的细小差别,本文中这两个名字等价. 3 在WAP的环境下,由于手机及手持设备的处理和存储

SSL/TLS 原理详解

本文大部分整理自网络,相关文章请见文后参考. SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰.正文开始. 1. SSL/TLS概览 1.1 整体结构 SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下: tls-ssl-_tcp-ip_protocol.png SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(En

SSL/TLS原理详解与WCF中的WS-Security

SSL/TLS作为一种互联网安全加密技术 1. SSL/TLS概览 1.1 整体结构 SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下: SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取.当前版本为3.0.它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输.SSL协议位于TCP/IP协议与各种应

Akka-CQRS(10)- gRPC on SSL/TLS 安全连接

使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点.gRPC是支持ssl/tls安全通讯机制的.用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程.把这次经历记录下来与各位分享. gRPC的ssl/tls的原理是在服务端安装安全证书公用certificate和私钥key, 在客户端安装公共证书就可以了,gRPC代码是这样写的: // Server SslContext sslContext = SslContextBuilder.forServer( new

HTTPS(SSL/TLS) 原理之深入浅出

注:本文参考自网络上的多篇HTTPS相关文章,本人根据自己的理解,进行一些修改,综合. 1. 必要的加密解密基础知识 1)对称加密算法:就是加密和解密使用同一个密钥的加密算法.因为加密方和解密方使用的密钥相同,所以称为称为对称加密,也称为单钥加密方法. 优点是:加密和解密运算速度快,所以对称加密算法通常在消息发送方需要加密大量数据时使用: 缺点是:安全性差,如果一方的密钥遭泄露,那么整个通信就会被破解.另外加密之前双方需要同步密钥; 常用对称加密算法有:DES.3DES.TDEA.Blowfis