系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全

这篇具有很好参考价值的文章主要介绍了系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本心、输入输出、结果

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全


编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2


如果觉得本文对你有帮助,欢迎点赞、收藏、评论

前言

我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节

我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

Linux 文件系统解释

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

Linux 文件系统过去类似于一个无组织的城镇,人们随心所欲地建造房屋。但是,在 1994 年,引入了文件系统层次结构标准 (FHS) 来为 Linux 文件系统带来秩序。

通过实施像FHS这样的标准,软件可以确保在各种Linux发行版上保持一致的布局。尽管如此,并非所有 Linux 发行版都严格遵守此标准。它们通常包含自己独特的元素或满足特定要求。 要精通此标准,您可以从探索开始。使用诸如“cd”之类的命令进行导航,使用“ls”之类的命令列出目录内容。将文件系统想象成一棵树,从根 (/) 开始。

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

应该知道的 18 个最常用的 Linux 命令

Linux 命令是用于与操作系统交互的说明。它们帮助管理文件、目录、系统进程和系统的许多其他方面。您需要熟悉这些命令,以便有效地导航和维护基于 Linux 的系统

  • ls - 列出文件和目录
  • cd - 更改当前目录
  • mkdir - 创建一个新目录
  • rm - 删除文件或目录
  • cp - 复制文件或目录
  • mv - 移动或重命名文件或目录
  • chmod - 更改文件或目录权限
  • grep - 在文件中搜索模式
  • 查找 - 搜索文件和目录
  • tar - 操作压缩包存档文件
  • vi - 使用文本编辑器编辑文件
  • cat - 显示文件内容
  • top - 显示进程和资源使用情况
  • ps - 显示进程信息
  • kill - 通过发送信号终止进程
  • du - 估计文件空间使用情况
  • ifconfig - 配置网络接口
  • ping - 测试主机之间的网络连接

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

HTTPS如何工作?

超文本传输协议安全 (HTTPS) 是超文本传输协议 (HTTP) 的扩展。HTTPS 使用传输层安全性 (TLS) 传输加密数据。如果数据在网上被劫持,劫持者得到的只是二进制代码。

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

数据是如何加密和解密的?
  • 步骤 1 - 客户端(浏览器)和服务器建立 TCP 连接。
  • 步骤 2 - 客户端向服务器发送“客户端问候”。该消息包含一组必要的加密算法(密码套件)及其可以支持的最新 TLS 版本。服务器以“服务器问候”响应,以便浏览器知道它是否可以支持算法和TLS版本。
  • 然后,服务器将 SSL 证书发送到客户端。证书包含公钥、主机名、到期日期等。客户端验证证书。
  • 步骤 3 - 验证 SSL 证书后,客户端生成会话密钥并使用公钥对其进行加密。服务器接收加密的会话密钥并使用私钥对其进行解密。
  • 步骤 4 - 现在客户端和服务器都持有相同的会话密钥(对称加密),加密的数据在安全的双向通道中传输。
为什么HTTPS在数据传输过程中会切换到对称加密?主要有两个原因:
  1. 安全性:非对称加密只有一种方式。这意味着,如果服务器尝试将加密数据发送回客户端,任何人都可以使用公钥解密数据。
  2. 服务器资源:非对称加密增加了相当多的数学开销。它不适合长时间会话中的数据传输

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

用简单的术语解释 Oauth 2.0

OAuth 2.0 是一个功能强大且安全的框架,允许不同的应用程序代表用户安全地相互交互,而无需共享敏感凭据

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

OAuth 中涉及的实体是用户、服务器和身份提供程序 (IDP)。

OAuth 代币可以做什么?
  • 使用 OAuth 时,您将获得一个表示您的标识和权限的 OAuth 令牌。此令牌可以执行一些重要操作:
  • 单点登录 (SSO):使用 OAuth 令牌,您只需一次登录即可登录多个服务或应用程序,让生活更轻松、更安全。
  • 跨系统授权:OAuth 令牌允许您在各种系统之间共享您的授权或访问权限,因此您不必在任何地方单独登录。
  • 访问用户配置文件:具有 OAuth 令牌的应用可以访问您允许的用户配置文件的某些部分,但它们不会看到所有内容。
  • 请记住,OAuth 2.0 旨在确保您和您的数据安全,同时使您的在线体验在不同的应用程序和服务之间无缝无忧

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

身份验证机制的 4 种使用最多的形式

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

  1. SSH Keys: 加密密钥用于安全地访问远程系统和服务器
  2. OAuth Tokens:: 提供对第三方应用程序上的用户数据的有限访问权限的令牌
  3. SSL Certificates:: 数字证书可确保服务器和客户端之间的安全和加密通信
  4. Credentials: 用户身份验证信息用于验证和授予对各种系统和服务的访问权限

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

会话、cookie、JWT、令牌、SSO 和 OAuth 2.0 - 它们是什么?

这些术语都与用户身份管理有关。当您登录网站时,您声明了您是谁(身份识别)。您的身份已验证(身份验证),并被授予必要的权限(授权)。过去已经提出了许多解决方案,并且还在不断增长

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

排序从简单到复杂

  1. WWW-身份验证是最基本的方法。浏览器要求您输入用户名和密码。由于无法控制登录生命周期,因此今天很少使用它。
  2. 对登录生命周期的更精细控制是会话cookie。服务器维护会话存储,浏览器保留会话的 ID。Cookie 通常仅适用于浏览器,对移动应用程序不友好。
  3. 若要解决兼容性问题,可以使用令牌。客户端将令牌发送到服务器,服务器验证令牌。缺点是令牌需要加密和解密,这可能很耗时。
  4. JWT 是表示令牌的标准方式。此信息可以验证和信任,因为它是经过数字签名的。由于 JWT 包含签名,因此无需在服务器端保存会话信息。
  5. 通过使用 SSO(单点登录),您只能登录一次并登录到多个网站。它使用 CAS(中央身份验证服务)来维护跨站点信息
  6. 通过使用OAuth 2.0,您可以授权一个网站访问另一个网站上的信息

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

如何将密码安全地存储在数据库中以及如何验证密码?

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

不安全的操作
  • 以纯文本形式存储密码不是一个好主意,因为任何具有内部访问权限的人都可以看到它们。
  • 直接存储密码哈希是不够的,因为它被修剪为预计算攻击,例如彩虹表。
  • 为了减轻预计算攻击,我们会对密码进行加盐处理。
什么是盐 (Salt)?

根据OWASP指南,“盐是一个唯一的,随机生成的字符串,作为哈希过程的一部分添加到每个密码中”。

如何存储密码和盐?

哈希结果对于每个密码都是唯一的。
密码可以使用以下格式存储在数据库中:hash(password + salt)。

如何验证密码?

要验证密码,可以执行以下过程:

  1. 客户端输入密码。
  2. 系统从数据库中获取相应的盐。
  3. 系统会将盐附加到密码并对其进行哈希处理。我们将哈希值称为 H1。
  4. 系统比较 H1 和 H2,其中 H2 是存储在数据库中的哈希。如果它们相同,则密码有效。

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

让 10 岁的孩子也可以看明白 JSON Web 令牌 (JWT)

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

想象一下,您有一个称为 JWT 的特殊框。在此框中,有三个部分:标头、有效负载和签名。

标题就像盒子外面的标签。它告诉我们它是什么类型的盒子以及如何保护它。它通常以称为 JSON 的格式编写,这只是一种使用大括号 { } 和冒号来组织信息的方法: 。

有效负载类似于您要发送的实际消息或信息。它可以是您的姓名、年龄或您要共享的任何其他数据。它也以 JSON 格式编写,因此易于理解和使用。 现在,签名是使 JWT 安全的原因。这就像一个特殊的印章,只有发送者知道如何创建。签名是使用密码创建的,有点像密码。此签名可确保没有人可以在发件人不知情的情况下篡改 JWT 的内容。

当您要将 JWT 发送到服务器时,请将标头、有效负载和签名放在框中。然后将其发送到服务器。服务器可以轻松读取标头和有效负载,以了解您是谁以及您想要做什么。

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

Google 身份验证器(或其他类型的双因素身份验证器)如何工作?

启用两因素身份验证时,Google身份验证器通常用于登录我们的帐户。它如何保证安全?

Google 身份验证器是一种基于软件的身份验证器,可实现两步验证服务。下图提供了详细信息。

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2

涉及两个阶段:

  • 第 1 阶段 - 用户启用 Google 两步验证
  • 第 2 阶段 - 用户使用身份验证器登录等。
第 1 阶段
  • 步骤 1 和 2:Bob 打开网页以启用两步验证。前端请求密钥。身份验证服务为 Bob 生成密钥并将其存储在数据库中。
  • 步骤 3:身份验证服务向前端返回 URI。URI 由密钥颁发者、用户名和密钥组成。URI 以二维码的形式显示在网页上。
  • 步骤 4: 鲍勃然后使用谷歌身份验证器扫描生成的二维码。密钥存储在身份验证器中。
第 2 阶段
  • 步骤 1 和 2:Bob 想要使用 Google 两步验证登录网站。为此,他需要密码。每 30 秒,Google 身份验证器就会使用 TOTP(基于时间的一次性密码)算法生成一个 6 位密码。鲍勃使用密码进入网站。
  • 步骤 3 和 4:前端将 Bob 输入的密码发送到后端进行身份验证。身份验证服务从数据库中读取密钥,并使用与客户端相同的 TOTP 算法生成 6 位密码。
  • 步骤 5:认证服务对比客户端和服务器端生成的两个密码,并将比较结果返回给前端。仅当两个密码匹配时,Bob 才能继续登录过程。
此身份验证机制是否安全?
  • 秘密密钥可以被其他人获得吗?
    • 我们需要确保密钥是使用 HTTPS 传输的。身份验证器客户端和数据库存储密钥,我们需要确保密钥是加密的。
  • 黑客可以猜到6位数的密码吗?
    • 不。密码有 6 位数字,因此生成的密码有 100 万个潜在的组合。另外,密码每 30 秒更改一次。如果黑客在30秒内猜出密码,他们需要每秒输入30,000个组合。

弘扬爱国精神

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全,1024程序员节,linux,安全,oauth2文章来源地址https://www.toymoban.com/news/detail-772000.html

到了这里,关于系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通俗易懂理解几何光学(四)光学系统中的光阑与光束限制

    在理想光学系统中,任意大小的物体能以任意宽的光束成一定倍率的像。当共轭距一定时,像的大小与物的大小成比例。 在实际光学系统中,成像光束将会受到限制: 成像系统中各个元件的大小有限,从而限制了物面上每一点发出并进入系统参与成像的光束的宽度; 像面的

    2024年02月05日
    浏览(50)
  • 一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处        设计模式是为了解决在软件开发过程中遇到的某些问题而形成的思想。同一场景有多种设计模式可以应用,不同的模式有各自的优缺点,开发者可以基于自身需求

    2024年02月09日
    浏览(56)
  • 物联网技术正在如何影响我们的生活?

    想了解物联网工程的可以点击下方链接跳转 点击这里----- 物理网工程 物联网(Internet of Things,简称IoT)是指通过互联网将各种物理设备、传感器、软件和网络连接起来,实现智能化、自动化和远程控制的网络系统。它将现实世界中的物体与互联网相连接,使得物体能够感知

    2024年02月05日
    浏览(74)
  • 【深度学习】神经网络中 Batch 和 Epoch 之间的区别是什么?我们该如何理解?

    随机梯度下降(Stochastic Gradient Descent,SGD)是一种优化算法,用于在机器学习和深度学习中更新模型参数,以最小化损失函数。与传统的梯度下降算法不同,SGD在每次参数更新时只使用一个样本(或一小批样本),而不是使用整个训练数据集。这使得SGD具有更快的收敛速度,

    2024年02月10日
    浏览(42)
  • 【ZYNQ】那些年我们拿下了 Zynq

    小菜鸟的 Zynq 学习经验分享~ 资料来源 :黑金 Zynq7035 开发板配套资料,完全适合于 Zynq 学习。 文末获取资料! 另外四个是关于 Altera FPGA 的学习资料。 其实很多东西都是相通的,要学会 举一反三 。 Vivado 是 Xilinx FPGA 开发的主要软件(2019年10月,赛灵思推出了Vitis)。 下载软

    2023年04月20日
    浏览(35)
  • 深入了解Web3:区块链技术如何改变我们的数字世界

    在过去的几年中,Web3和区块链技术逐渐成为了技术界和社会大众关注的焦点。从初始的加密货币到现在的去中心化应用(DApps)和智能合约,区块链技术已经开始改变我们的数字世界的面貌。在本文中,我们将深入探讨Web3和区块链技术,以及它们如何改变我们的生活和工作方

    2024年04月22日
    浏览(72)
  • 【让我们深度理解语音识别:Siri与Alexa如何运用深度学习和循环神经网络将声音转化为文字

    语音识别技术是近年来人工智能领域的重要研究对象,它的出现大大改善了人与机器的交互方式,增强了人们生活的便捷度。今天,我将带领大家深度了解语音识别技术的内部运作原理,以及语音助手如Siri和Alexa如何运用这些先进技术,实现从声音到文字的转化。在探讨技术

    2024年02月12日
    浏览(40)
  • 【深度思考】人工智能技术对未来各行业的影响,我们该如何应对?

    目录 1、AI的应用对行业带来的机遇 2、AI将冲击哪些行业 3、如何应对AI对个人发展的挑战          4、AI对于程序员的冲击 随着技术的不断发展,AI已经开始深刻影响着各行各业。从生产制造到金融、医疗和交通等行业,人工智能技术都在发挥着越来越重要的作用。现在让我

    2024年02月09日
    浏览(59)
  • 物联网行业的革命:Web3 技术如何改变我们的日常生活

    物联网 (IoT) 是一个充满创新和潜力的领域,它将物理设备、传感器和互联网连接起来,实现智能化和自动化。 在过去几年中,从智能家居、智能城市到工业自动化,物联网技术已经渗透到了各个领域。然而,随着物联网设备和系统的数量不断增加,如何确保这些设备和系统

    2024年02月13日
    浏览(55)
  • 那些年我们用过的机械键盘【一把键盘,无限可能】

    ❤写在前面:看标题就知道这是一期安利的文章,是来自博主的亲身体验,键盘对于程序员的意义,就像是你的左膀右臂,文章将 从K1~K8,Q1测评 ,希望能为你排忧解难! ❤博客主页: 努力的小鳴人 ❤下面我们直接进入正题! Keychron是一个网红机械键盘,可以同时兼容多款操

    2024年01月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包