[每周一更]-(第106期):DNS和SSL协作模式

news2024/11/16 1:29:31

在这里插入图片描述

文章目录

    • 什么是DNS?
      • DNS解析过程
      • DNS解析的底层逻辑
    • 什么是SSL?
      • SSL证书
      • SSL握手过程
      • SSL的底层逻辑
    • DNS与SSL的协同工作过程

什么是DNS?

DNS(Domain Name System,域名系统)是互联网的重要组成部分,其主要作用是将人类可读的域名(如 www.example.com)转换为机器可读的IP地址(如 192.0.2.1)。这一过程称为DNS解析。DNS类似于互联网的电话簿,通过查询DNS服务器获取相应的IP地址,从而实现网络通信。

DNS叫做域名系统:由解析器和域名服务器组成,域名服务器保存着该网络中所有主机的域名和对应的IP地址,域名有唯一对应的IP地址,但是IP地址不一定对应一个域名,我们就是根据DNS来上网的。

DNS解析过程

DNS解析的过程通常涉及以下几个步骤:

  1. 客户端查询:用户在浏览器中输入域名,浏览器向本地DNS缓存查询是否存在该域名的IP地址。

  2. 递归查询:如果本地缓存中没有,浏览器会向递归DNS服务器(通常是由ISP提供的)发起查询请求。

  3. 根DNS服务器:递归DNS服务器首先查询根DNS服务器,获取顶级域(如 .com)的权威DNS服务器地址。

  4. 顶级域DNS服务器:然后,递归DNS服务器查询顶级域DNS服务器,获取该域名注册商的权威DNS服务器地址。

  5. 权威DNS服务器:最后,递归DNS服务器向权威DNS服务器查询,获取目标域名的IP地址。

  6. 返回结果:递归DNS服务器将查询结果返回给客户端,客户端通过该IP地址与目标服务器建立连接。

DNS解析的底层逻辑

工作过程

步骤描述
1. 浏览器解析当用户在浏览器中输入域名时,浏览器会首先解析域名,提取出主机名和顶级域名。
例如,对于域名 “www.example.com”,主机名是 “www”,顶级域名是 “com”。
2. 本地缓存查询浏览器会查询本地缓存,看是否存在该域名的解析结果。如果存在,则直接返回 IP 地址,节省了网络查询的时间。
3. 递归查询如果本地缓存中没有找到结果,浏览器会将域名发送给其配置的 DNS 服务器,通常是用户的 ISP 提供的 DNS 服务器。
这个 DNS 服务器会首先检查自己的缓存。如果缓存中有结果,则直接返回 IP 地址。
如果没有结果,这个 DNS 服务器会将域名发送给更高层的 DNS 服务器,并继续进行递归查询。
每个 DNS 服务器都会检查自己的缓存,并向更高层的 DNS 服务器查询,直到找到授权的 DNS 服务器。
4. 权威查询授权的 DNS 服务器会查询其包含的域名数据库,并返回该域名的 IP 地址。
5. 返回结果DNS 服务器会将 IP 地址返回给查询它的 DNS 服务器,并逐级返回给用户。
6. 缓存结果每个 DNS 服务器都会将查询结果缓存起来,以便以后更快地响应相同的查询。
7. 用户访问浏览器收到 IP 地址后,就会使用它来连接到相应的网站或服务器。
  • 浏览器:用户用来访问互联网的软件
  • DNS 服务器:将域名转换为 IP 地址的服务器
  • 缓存:存储最近查询结果的临时存储
  • 授权的 DNS 服务器:包含要查询的域名的域名数据库的服务器
  • IP 地址:用于标识互联网上设备的数字地址

DNS解析是互联网正常运作的关键机制之一,其底层逻辑涉及多个步骤和组件:

  1. 域名层级结构:DNS采用层级结构,包括根域、顶级域(TLD)、二级域和子域。每一级都有相应的DNS服务器。

  2. DNS服务器类型

    • 根DNS服务器:位于顶层,维护顶级域(如 .com、.org、.net)的信息。
    • 顶级域DNS服务器(TLD):维护特定顶级域下的域名信息。
    • 权威DNS服务器:维护特定域名的实际DNS记录(如A记录、CNAME记录)。
    • 递归DNS服务器:由ISP或第三方提供,负责递归查询,帮助客户端找到所需的IP地址。
  3. DNS记录类型

    • A记录:将域名映射到IPv4地址。
    • AAAA记录:将域名映射到IPv6地址。
    • CNAME记录:将一个域名别名映射到另一个域名。
    • MX记录:邮件交换记录,指向邮件服务器。
    • TXT记录:任意文本信息,一般用于域名验证。
  4. DNS查询过程

    • 本地缓存检查:客户端首先检查操作系统的DNS缓存。

    • 主机文件检查:检查系统的hosts文件。

    • 递归查询:如果缓存和主机文件没有匹配项,递归DNS服务器开始递归查询。

      1. 根服务器查询:递归服务器查询根DNS服务器,获取TLD服务器地址。
      2. TLD服务器查询:递归服务器查询TLD服务器,获取权威DNS服务器地址。
      3. 权威服务器查询:递归服务器查询权威DNS服务器,获取最终的IP地址。
    • 返回结果:递归DNS服务器将查询结果返回给客户端,客户端使用该IP地址与目标服务器建立连接。

什么是SSL?

SSL(Secure Sockets Layer,安全套接层)是一种安全协议,旨在为在计算机网络之间进行通信提供安全性。SSL现已被TLS(Transport Layer Security,传输层安全)取代,但仍常用“SSL”这一术语。SSL/TLS通过加密数据、验证服务器身份和确保数据完整性,保护用户与服务器之间的通信。

SSL证书

SSL证书是由受信任的证书颁发机构(CA)签发的数字证书,用于验证网站的身份并加密与该网站之间的通信。SSL证书包含以下信息:

  • 域名
  • 证书所有者的信息
  • 证书颁发机构
  • 公钥
  • 有效期

SSL握手过程

SSL握手是客户端和服务器之间建立安全连接的过程,主要包括以下步骤:

  1. 客户端问候:客户端发送支持的SSL/TLS版本、加密套件和其他信息给服务器。
  2. 服务器回应:服务器选择SSL/TLS版本和加密套件,并发送服务器证书(包含公钥)给客户端。
  3. 证书验证:客户端验证服务器证书的有效性和真实性,确保服务器的身份。
  4. 密钥交换:客户端生成一个会话密钥,并使用服务器的公钥加密会话密钥,然后发送给服务器。
  5. 建立安全连接:服务器使用私钥解密会话密钥,双方使用会话密钥加密后续通信。

SSL的底层逻辑

工作过程

阶段描述
1. 客户端发起连接客户端向服务器发送 HTTPS 请求,其中包含客户端支持的加密套件和一个随机数(ClientHello)。
2. 服务器响应服务器会选择一个客户端支持的加密套件,并向客户端发送其数字证书、服务器的随机数和一个包含握手消息的 ServerHello 消息。
3. 客户端验证证书客户端会验证服务器的数字证书,以确保其真实性和有效性。这包括检查证书是否由受信任的证书颁发机构 (CA) 签发,以及证书是否已过期或被撤销。
4. 客户端生成预主密钥客户端会生成一个随机预主密钥,并使用服务器的公钥对其进行加密。然后,客户端会将加密后的预主密钥和一个包含握手消息的 ClientHello 消息发送给服务器。
5. 服务器生成主密钥服务器会使用自己的私钥解密客户端发送的预主密钥。然后,服务器会生成一个主密钥,并使用它来加密和解密后续的通信。
6. 完成握手客户端和服务器会交换一些额外的消息来完成握手过程,例如验证消息的完整性。
7. 应用层通信一旦握手完成,客户端和服务器就可以使用对称加密来保护他们的通信。这通常使用 TLS 协议来实现。
  • 客户端:用于访问网站或服务器的用户设备
  • 服务器:托管网站或服务的计算机
  • 数字证书:用于验证服务器身份的电子文件
  • 加密套件:用于加密和解密通信的算法和协议
  • 随机数:用于确保通信安全的一次性值
  • 预主密钥:用于生成主密钥的随机值
  • 主密钥:用于加密和解密通信的加密密钥
  • TLS 协议:用于在客户端和服务器之间建立安全连接的协议

SSL/TLS协议是为了保护互联网通信而设计的,主要通过加密、认证和完整性检查来确保数据的安全性。其底层逻辑包括以下步骤:

  1. 对称加密和非对称加密
    • 对称加密:加密和解密使用相同的密钥,适合大量数据的快速加密。
    • 非对称加密:使用公钥加密,私钥解密,适合安全密钥交换。
  2. SSL握手过程
    1. 客户端问候(Client Hello):客户端发送支持的SSL/TLS版本、加密套件、压缩方法和随机数。
    2. 服务器回应(Server Hello):服务器选择SSL/TLS版本、加密套件,并发送服务器证书和随机数。
    3. 证书验证:客户端验证服务器证书的有效性和真实性,确保服务器身份。
    4. 密钥交换:客户端生成一个会话密钥(对称密钥),并使用服务器公钥加密会话密钥后发送给服务器。
    5. 服务器解密:服务器使用私钥解密会话密钥,并发送一个加密的完成握手消息给客户端。
    6. 握手完成:客户端和服务器使用会话密钥加密后续通信。
  3. 数据传输
    • 加密数据:使用会话密钥对数据进行加密。
    • 完整性校验:通过消息认证码(MAC)确保数据未被篡改。
    • 加密传输:加密后的数据通过网络传输到对端,对端使用会话密钥解密数据。

DNS与SSL的协同工作过程

DNS和SSL在建立安全的互联网通信中扮演着不同但互补的角色:

  1. DNS解析:DNS负责将用户输入的域名转换为IP地址,确保用户连接到正确的服务器。
  2. SSL证书验证:SSL证书验证确保用户连接的服务器身份真实,并对通信内容进行加密。

结合DNS和SSL,可以实现安全、可靠的网络通信。例如,当用户访问一个使用SSL证书的网站时:

  1. 用户输入域名并发起DNS查询,获取目标服务器的IP地址。
  2. 浏览器与目标服务器建立连接,并通过SSL握手过程验证服务器身份,建立安全连接。

DNS和SSL的协同工作过程确保了用户能够安全地访问目标网站:

  1. 域名解析
    • 用户在浏览器中输入域名,浏览器通过本地DNS缓存、主机文件、递归DNS服务器查询,最终获取目标服务器的IP地址。
    • 浏览器使用该IP地址与目标服务器建立连接。
  2. SSL握手
    • 浏览器与目标服务器建立TCP连接后,开始SSL握手过程。
    • 客户端发送Client Hello消息,服务器响应Server Hello消息,并发送服务器证书。
    • 客户端验证证书,并生成会话密钥,通过加密方式与服务器交换会话密钥。
    • 双方使用会话密钥加密后续通信。
  3. 安全通信
    • 所有传输的数据都经过加密,确保数据的机密性和完整性。
    • 双方通过加密通道进行安全的数据交换。

DNS解析和SSL/TLS协议是互联网安全和正常运作的基石。

  • DNS负责将域名解析为IP地址,确保用户能够连接到正确的服务器;
  • SSL/TLS通过加密和认证机制,保护用户数据在传输过程中的安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑马程序员MySQL基础学习,精细点复习【持续更新】

文章目录 数据库Mysql基础一、数据库1.数据库2.数据库管理系统3.SQL4.Mysql目录结构5.关系型数据库6.SQL基础概念 mysql高级一、数据库备份和还原1.图形化界面备份与还原 二、约束1.分类:2.主键约束3.唯一约束4.非空约束5.默认值约束6.外键约束 三、表关系1.概述2.一…

《Windows API每日一练》13.1 打印基础

在Windows中使用打印机时,在调用一系列与打印相关的GDI绘图函数的背后,实际上启动了一系列模块之间复杂的交互过程,包括 GDI32库模块、打印机设备驱动程序库模块(带.DRV后缀的文件)、Windows后台打印处理程序&#xff…

5. harbor镜像仓库

harbor镜像仓库 一、镜像仓库1、类型2、构建私有仓库的方案 二、部署harbor仓库(单机版)1、安装docker(略)2、安装docker-compose工具3、安装harbor4、生成harbor需要的证书、密钥(V3版本证书)4.1 创建CA4.2 创建harbor仓库需要的证书 5、编辑harbor配置文件6、启动harbor 三、…

【C++】17.AVL树

一、AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种…

Linux实用操作二

文章目录 Linux实用操作二日期、时区:date命令查看日期时间作用:语法:字段解释:操作: 修改Linux系统时区作用:操作: 使用ntp进行时间同步和校准作用:操作: IP地址、主机名…

buuctf web 第五到八题

[ACTF2020 新生赛]Exec 这里属实有点没想到了,以为要弹shell,结果不用 127.0.0.1;ls /PING 127.0.0.1 (127.0.0.1): 56 data bytes bin dev etc flag home lib media mnt opt proc root run sbin srv sys tmp usr var127.0.0.1;tac /f*[GXYCTF2019]Pin…

【数学建模】多波束测线问题(持续更新)

多波束测线问题 问题 1建立模型覆盖宽度海水深度重叠长度重叠率 问题二问题三问题四 问题 1 与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为 α \alpha α的斜线(如下图),称 α \alpha α为坡度。请建立多波束测深的覆盖宽度及…

世界华人国学泰斗级人物颜廷利:人类史上全球公认最伟大的思想家

世界华人国学泰斗级人物颜廷利:人类史上全球公认最伟大的思想家 颜廷利教授,一位在21世纪东方哲学、科学界具有深远影响力的人物,同时也是当代中国教育界的知名教授、周易起名与易经姓名学的专家,以及现代国学的杰出代表。他在其著作《升命学说》中提出了一系列独到的理论,包括…

Mybatis--分页查询

一、分页查询 分页查询则是在页面上将本来很多的数据分段显示,每页显示用户自定义的行数。可提高用户体验度,同时减少一次性加载,内存溢出风险。 1、真假分页 分页分为:真分页和假分页。 假分页:一次性查询所有数据存入…

笔记小结:卷积神经网络之多输入多输出通道

本文为李沐老师《动手学深度学习》笔记小结,用于个人复习并记录学习历程,适用于初学者 彩色图像具有标准的RGB通道来代表红、绿和蓝,需要三个通道表示,故而只有单输入单输出是不够的。 对于单个输入和单个输出通道的简化例子&…

Yolo-World网络模型结构及原理分析(一)——YOLO检测器

文章目录 概要一、整体架构分析二、详细结构分析YOLO检测器1. Backbone2. Head3.各模块的过程和作用Conv卷积模块C2F模块BottleNeck模块SPPF模块Upsampling模块Concat模块 概要 尽管YOLO(You Only Look Once)系列的对象检测器在效率和实用性方面表现出色…

【引领未来智造新纪元:量化机器人的革命性应用】

在日新月异的科技浪潮中,量化机器人正以其超凡的智慧与精准的操作,悄然改变着各行各业的生产面貌,成为推动产业升级、提升竞争力的关键力量。今天,让我们一同探索量化机器人在不同领域的广泛应用价值,见证它如何以科技…

CSA笔记4-包/源管理命令以及本地光盘仓库搭建

包/源管理命令 1.rpm是最基础的rmp包的安装命令,需要提前下载相关安装包和依赖包 2.yum/dnf是基于rpm包的自动安装命令,可以自动在仓库中匹配安装软件和依赖包 注意:以上是安装命令,以下是安装源 3.光盘源:是指安装系统时后的…

Air780EP- AT开发-阿里云应用指南

简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式,其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具: AT固件获取在线加/解密工具阿里云平台 准备工作 Air780EP_全IO开发板一套,包括天线SIM卡&#xff0…

华为云技术精髓笔记(四)-CES基础入门实战

华为云技术精髓笔记(四) CES基础入门实战 一、监控ECS性能 1、 远程登录ECS 步骤一 双击实验桌面的“Xfce终端”打开Terminal,输入以下命令登录云服务器。注意:请使用云服务器的公网IP替换命令中的【EIP】。 LANGen_us.UTF-8 ssh rootEIP说明&#x…

中国自然灾害影响及损失数据

自然灾害往往会导致大量的人员伤亡和财产损失,数据集详细记载了2014-2020年中国自然灾害影响以及灾害造成的损失情况。其中包括地震、台风、雨雪、阵雨、雪灾、暴雨、旱灾、龙卷风、泥石流、山崩、泥石流、滑坡、洪涝等灾害事件。 数据集主要以excel的格式存储。属性…

【学术会议征稿】第二届人工智能与自动化控制国际学术会议(AIAC 2024)

第二届人工智能与自动化控制国际学术会议(AIAC 2024) The 2nd International Conference on Artificial Intelligence and Automation Control 随着技术的迅猛发展,人工智能与自动化控制已经深入到工业、交通、医疗、教育等各个领域&#x…

【Linux】-----权限详解

目录 一、Linux下的权限概念 Ⅰ、是什么? Ⅱ、Linux下的两种角色 角色 如何添加普通用户 身份的转化方式 身份的提权 添加普通用户至白名单 二、Linux下的权限管理 Ⅰ、文件访问者的分类(Linux下的“人”) Ⅱ、文件类型和访问权限(事物属性) 1.文件类型 …

为什么阿里巴巴超级喜欢java开发?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 我猜可能是因为&#xff0…

GD32 MCU是如何进入中断函数的

用过GD32 MCU的小伙伴们都知道,程序是顺序执行的,但当有中断来的时候程序会跳转到中断函数,执行完中断函数后程序又继续回到原来的位置继续执行,那么你们知道MCU是如何找到中断函数入口的吗? 今天我们就以GD32F303系列…