Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何安全地访问互联网

如何安全地访问互联网

作者头像
张高兴
发布于 2025-05-21 06:00:49
发布于 2025-05-21 06:00:49
1620
举报
文章被收录于专栏:张高兴的博客张高兴的博客

当你深夜在浏览器中输入 www.baidu.com 时有没有想过,除了月黑风高的夜和本机的浏览记录,还有谁知道你访问了它呢?要搞清楚这件事,首先我们要了解一下访问网站时,这其中发生了什么。

如果你在 10 年之前访问网站,大概率会在浏览器的地址栏中看到这样的网址 http://www.baidu.com ,这其中网址前面的 http 表明访问网站使用的是 HTTP 协议。当你按下回车键↩︎,访问网站也拉开了序幕。我们知道 IP 地址是设备在互联网上的唯一标识,而要访问的网站是部署在互联网上的某一台设备中(服务器),那么这台设备会有一个固定的 IP 地址。那么怎么将网址和 IP 地址建立起联系呢?访问网站的第一步就是使用 DNS 服务把网址转换成服务器的 IP 地址。DNS(Domain Name System)即域名系统,就是提供域名(网址)与 IP 地址相互映射的服务,方便人们访问网站。当浏览器知道了 IP 地址后,会通过端口 80 向该 IP 地址发送 TCP 连接请求,最终给你呈现出网站的内容。简单来说,使用 HTTP 访问网站有这样几步:

  1. 浏览器向 DNS 服务器请求将网址解析为 IP 地址;
  2. 浏览器通过端口 80 向该 IP 地址发送 TCP 连接请求;
  3. 浏览器发送 HTTP 请求,接收服务器 HTTP 响应并渲染网页。

那么哪些环节会泄露隐私呢?由于 HTTP 协议不加密🔓数据,任何人都可以在数据传输过程中截获和查看信息。你的底裤会在网络出口被扒的一干二净。

如果你现在访问网站,基本上会在浏览器的地址栏中看到这样的网址 https://www.baidu.com ,这其中网址前面的 https 表明访问网站使用的是 HTTPS 协议。HTTPS 协议简单来说 HTTPS = HTTP + TLS。前面提到了 HTTP 是一种不加密的协议,数据在网络中是以明文传输的,所以并不安全。而 TLS(Transport Layer Security)是一种安全协议,可以将浏览器与服务器的通信进行加密🔐,从而向第三方隐藏网站的内容。简单来说,使用 HTTPS 访问网站有这样几步:

  1. 浏览器向 DNS 服务器请求将网址解析为 IP 地址;
  2. 浏览器通过端口 443 向该 IP 地址发送 TCP 连接请求,并开始 TLS 握手过程;
  3. 浏览器验证服务器的安全证书,和服务器协商加密算法和交换加密密钥;
  4. 浏览器发送加密的 HTTP 请求,接收服务器加密的 HTTP 响应,解密并渲染网页。

那么使用 HTTPS 后就安全了吗?虽然 HTTPS 本身是加密的,但是在访问网站的过程中还是有可能暴露你访问的网址。例如:

  • DNS 查询:即使是 HTTPS,DNS 查询默认情况下也是未加密的,这意味着在网络出口仍然能知道你访问的是哪个网站;
  • 流量分析:即使使用 HTTPS 对数据进行加密,在不知道传输内容的情况下可以对数据包的特征进行分析,当访问一些特定的网站时,可能出现大小和顺序相似的数据包,这种方式也可能暴露你访问的网站。

那么如何安全地访问互联网呢?流量识别技术的提高,网络中不断增加的监视节点,导致没有绝对的匿名性👁️。但是通常可以使用下面的技术提高访问过程中的安全性。

VPN(Virtual Private Network)即虚拟专用网络,是一种加密通讯技术。它允许用户通过加密的通道发送和接收数据,从而保护数据不被未授权的人访问或窃取。其工作原理是通过远程服务器重定向网络流量,这样真实的 IP 地址就被隐藏起来,使得网络请求对可能的监视者变得不可见。这好比将你的设备加入到另一个网络中,同时分配个另一个网络的 IP 地址。VPN 是一个统称,它有很多的具体实现,常见的协议包括 PPTP、L2TP、IPSec 和 GRE。目前,绝大部分 VPN 协议的流量特征均能被精确识别。

VPN 的传输过程

Proxy 即代理,是一种网络服务,它充当客户端和服务器之间的中介。代理服务器的主要功能是代理网络用户去获取网络信息。在客户端和目标服务器之间建立一个中介,使得客户端可以通过代理服务器的 IP 地址和位置信息来发送请求,从而隐藏客户端的真实 IP 地址和位置信息。代理就相当于一位中间人,只提供了匿名服务,并不加密传输的数据。所以还需要使用一些其他的技术对数据进行加密,例如流量混淆。流量混淆通过改变数据包的外观和行为,使得网络流量难以被识别和追踪。可以通过随机改变数据包的大小、时间间隔等特征,使流量看起来更像是随机数据,而不是特定类型的通信。也可以模仿其他常见的网络协议或应用的流量特征,使混淆后的流量看起来像是正常的网络流量。随着时间的推移,混淆特征也最终会被识别。

代理的传输过程

代理有两种常见的技术,一个是 SOCKS5,一个是 Tor。SOCKS5 是 SOCKS 协议的第五个版本,位于 OSI 模型中的第五层会话层,因此可以处理任何类型的网络流量。由于数据是以明文传输的,SOCKS5 更多用在本地代理,即同一网段下的所有设备都可以共用一个代理网络出口。Tor(The Onion Router)即洋葱路由,是一种由上千台中继服务器组成的分布式网络,用来转发网络请求,从而保护隐私性。

Tor 的传输过程

网络请求在进入 Tor 网络之前会被加密三次,然后通过选择的三个节点(入口节点、中间节点和出口节点)传输(如上图的 TOR RELAY),请求在传入下一个节点之前会被去除一次加密。每个节点只能解密一层加密,从而无法单独确定用户的身份和访问的内容。在三个节点中,第一个能够看到来自用户设备的加密 Tor 流量,但它不知道用户正在用 Tor 做什么,它仅仅能看到“这个 IP 地址正在使用 Tor”。第三个节点能够看到用户发送的 Tor 流量,但它不知道是谁发送的这些流量,如果使用了加密传输(例如 HTTPS 协议),它仅能知道目标网址。当然 Tor 也有缺点,经过了多次加密和节点的转发网络速度会变得很慢。Tor 也不能提供绝对的安全,如果监听者能够同时监测入口和出口节点,对流量进行计时关联也是可能的(如上图的 NSA美国国家安全局🫵)。

安全地访问互联网需要采取适当的措施,例如使用 HTTPS、VPN、代理等技术,但每种技术都有其优势和局限性,切记没有绝对的安全😶‍🌫️。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 土味儿编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
程序员初学机器学习的四种方式
本文由 伯乐在线 - XiaoxiaoLi 翻译自 Jason Brownlee 网址 http://machinelearningmastery.com/self-study-machine-learning-projects/ 学习机器学习有很多方法,大多数人选择从理论开始。 如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术、类库和方法。这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上。 要想有效地学习机器学习你
机器学习AI算法工程
2018/03/12
9040
5种无需数学背景也可理解机器学习算法的技巧
在一种自顶向下的研究机器学习的方法中,理论应立足于何处?
Bon
2018/02/06
1.2K1
5种无需数学背景也可理解机器学习算法的技巧
机器学习的5种“兵法"
在研究机器学习中,理论在其整个自上而下方法中试用于哪里呢? 在传统的机器学习教学中,丰富的数学理论知识对于理解机器学习是至关重要的,我的机器学习教学方法通常是教你如何端对端解决问题以及传输结构。 所以此方法哪里要用到理论知识了呢? 在此帖中你将了解我们是如何理解机器学习中的“理论”一词。提示:全部与算法有关。 你会发现一旦你可以熟练解决问题以及传输结果后,你就欲罢不能地想要对机器学习有更深入的理解以及获得更好的结果,没人能拉得住你。 最后,你会发现可以通过应用标准数据集练习机器学习的5个技巧,从而进一步加深
CDA数据分析师
2018/02/05
6000
机器学习的5种“兵法"
【盘点】掌握机器学习的5条必由之路(附学习资料推荐)
【新智元导读】作者在本文提出一种5步入门并应用机器学习的方法。它不是传统的方法。传统的机器学习方法提倡从下往上学,先从理论和数学开始,然后是算法实现,最后让你去解决现实世界的问题。 作者提倡的掌握机器
新智元
2018/03/26
7670
【盘点】掌握机器学习的5条必由之路(附学习资料推荐)
从机器学习开始的4个步骤:初学者开始和实践的自上而下的策略
在这篇文章中,我向你展示了采用自顶向下的策略来入门应用机器学习的方法。我可以看到这个方法分为四个步骤。你应该对这些步骤他们感到熟悉,因为它可能跟你用来学习编程的自上而下的方法相同,亦即,掌握基础知识,大量练习,然后在你找到感觉、进入状态后再深入细节。
花落花飞去
2018/02/05
1.9K0
【机器学习】从零实现来理解机器学习算法
从零开始实现机器学习算法的好处 我推广了从零开始实现机器学习算法的观念。 我认为你可以学到很多关于算法是如何工作的。我也认为,作为一名开发者,它提供了一个学习用于机器学习的数学符号、描述以及直觉的桥梁。 在“从零开始实现机器学习算法的好处”这篇文章里,我已经讨论了从零实现机器学习算法的好处。 在那篇文章,我列出的好处如下: 你获取了知识; 它提供了一个起点; 拥有算法和代码的所属权。 在这篇文章中,我对如何利用现有的教程和书籍来缩短这个学习过程表达了一些个人看法。有一些用于初学的丰富资源,但也要堤防一些绊脚
陆勤_数据人网
2018/02/26
9400
【机器学习】从零实现来理解机器学习算法
机器学习自学指南
有很多途径来学习机器学习。有丰富的资源:有书籍,有课程可以参与,可以参加比赛,有大量供你使用的工具。在这篇文章中,我想围绕这些活动提出一些你机器学习之旅大致会有的阶段并在你程序员通往到机器学习大师之路上给出一个大概的顺序,以及在各个层次上有哪些可供你利用的资源
xixigiggling
2018/02/07
6140
程序员到机器学习工程师的飞跃
“我是一名软件开发工程师,阅读过一些关于机器学习方面的书籍和博客文章,也学习过一些在线的关于机器学习的公开课。但是,我仍然不知道怎么应用到工程实践中……”
fishexpert
2018/11/20
3960
机器学习 从入门到精通的学习方法
我将介绍5个“机器学习”的步骤,这五个步骤是非常规的。
花落花飞去
2018/02/11
2.6K0
机器学习 从入门到精通的学习方法
【干货】开发者如何掌握机器学习?传统方法可能都走了弯路
【新智元导读】作为一名开发者,怎么才能加入时下正火热的机器学习?本文作者Jason认为,传统的方法,包括从经典图书、博客文章或线上课程进行学习成效不大,甚至“错得离谱”。最好的方法其实是动手,不要停留在理论层面,动手实践才能高效的学习。在文章中,作者给出了自己的建议,特别强调机器学习实践过程中的细节,此外,他还推荐了一些可用的机器学习训练平台及数据库。 这篇文章要回答的问题是“我该如何开始机器学习”? “我是一个开发者。我读了一些关于机器学习的文章和书,也在Coursera上学习了机器学习课程。但我仍不知道
新智元
2018/03/23
5990
【干货】开发者如何掌握机器学习?传统方法可能都走了弯路
机器学习自学指南
你有许多方法和资源来学习机器学习:阅读书籍、学习课程、参加比赛和各种可用的工具。在这篇文章中,我想使这些活动更为体系化,并列出一个大致的顺序,以说明在普通程序员到机器学习高手的过程中所要着手什么。
2018/02/06
1.1K0
【越好奇,越强大】伯克利研究人员使用内在激励,教AI学会好奇
来源:Quanta Magazine 编译:Cecilia 【新智元导读】伯克利研究人员正在开发具有好奇心的AI。他们想创造有内在自我驱动能力的AI,而不是依赖人类指令的伪智能。相比外在的奖惩机制,建立方法让智能体拥有内在的好奇心更加重要。研究人员将让AI感到“吃惊”的指数,即对环境预测的误差,作为内在激励函数。吃惊越大,奖励越多,以此让AI迅速掌握环境。 你可能不记得第一次玩“超级马里奥兄弟”是什么感觉,但试着想像一下:蓝色的天空,棋盘石的地面,还有一个蹲着的红色男人在静静等待。他面向右方,你把他推到那个
新智元
2018/03/21
9300
【越好奇,越强大】伯克利研究人员使用内在激励,教AI学会好奇
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。
IT阅读排行榜
2018/08/13
3040
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。 在某种程度上,机器学习与数据挖掘很相似。它们都是通过数据来获取模式。然而,与人类可理解的数据提取方式不同—通常是按照数据挖掘应用的方式——机器学习主要是使用数据去提升程序本身的理解能力。机器学习程序能够在数据中检测出相关模式并相应的进行程序行为的调整。 现在,你是否准备去了解一些获得机器学习工作必备的技术
陆勤_数据人网
2018/02/26
5610
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。 在某种程度上,机器学习与数据挖掘很相似。它们都是通过数据来获取模式。然而,与人类可理解的数据提取方式不同—通常是按照数据挖掘应用的方式——机器学习主要是使用数据去提升程序本身的理解能力。机器学习程序能够在数据中检测出相关模式并相应的进行程序行为的调整。 现在,你是否准备去了解一些获得机器学习工作必备的
CSDN技术头条
2018/02/09
7080
机器学习工作职位需要的7项技能
停止从头开始编写机器学习算法
从头开始实现算法是我看到初学者犯的最大的错误之一。
anthlu
2018/02/08
7920
停止从头开始编写机器学习算法
Kaggle冠军冲顶经验分享:怎样11步搞定机器学习竞赛?
最近,一名来自湖南长沙的小哥仅用15个月时间,就冲上了Kaggle用户排行榜的首位,他的ID是Bestfitting。
量子位
2018/07/24
1.1K0
Kaggle冠军冲顶经验分享:怎样11步搞定机器学习竞赛?
什么是机器学习?
输入“什么是机器学习?” 进入Google搜索将打开一个Pandora的论坛,学术研究和虚假信息框,而本文的目的是在我们的机器学习研究人员小组的直接帮助下简化机器学习的定义和理解。
陈哈哈
2020/07/06
5750
年龄不是上限!我只是按照自己的兴趣专注于机器学习
我只是按照自己的兴趣,尽可能多地专注于学习机器学习。年龄只是一个数字,何时开始以及可以实现多少没有上限。 Philip是Kaggle Competitions Grandmaster,他以17枚金牌名列第 47 位。
炼丹笔记
2022/10/27
3410
Weka机器学习平台的迷你课程
机器学习是个非常吸引人的研究领域,但是您怎么把它真正地应用到您自己的问题上呢?
Bon
2018/02/08
6K0
相关推荐
程序员初学机器学习的四种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档