安全套接字连接的最佳实践

2024-01-22

安全套接字连接(无 SSL)的最佳实践是什么?

我将通过 TCP 套接字连接移动敏感数据(登录名/密码/帐户),并想知道是否有一种好的/快速的加密/解密方法并避免恶意注入。


如果您对 SSL 过敏,请使用 SSH。但原理是相同的。密钥通过非对称算法(RSA、Diffie-Hellman...)进行交换,然后用于对称加密和 MAC。结构很微妙,所以它是强烈推荐您使用现有的协议,例如 SSL 或 SSH,其中已经处理了棘手的细节。

在这两种协议中,主要阶段都是通过相互身份验证发生的。 “服务器”部分(在连接模型中,“客户端”是发起连接的人,服务器是另一台机器)需要以对客户端“足够令人信服”的方式呈现其非对称密钥(客户端希望确保它正在与正确的服务器通信,而不是与冒充服务器的其他人通信)。在 SSL 中,该密钥是 X.509 证书的一部分。当 Web 浏览器使用 SSL 时,如果浏览器可以根据一组已知的“信任锚”(也称为“根证书”)验证该证书,则该证书被视为正确。这些锚点由一些与浏览器制造商达成协议的组织(例如 Verisign)管理;最重要的是,如果您想要一个可以根据这些根证书进行验证的证书,那么您必须从锚点管理器之一获取它,而且他们不会免费提供。

但请注意,根据一组已知的信任锚进行验证是浏览器的事情。由于这是您自己的项目,因此您可以创建自己的信任锚和自己的证书。OpenSSL http://www.openssl.org/可以帮助你。更简单的是,为服务器使用客户端也知道的“虚拟”证书,客户端只需验证服务器是否发送“预期”证书。

更简单的模型实际上就是 SSH 所做的。在 SSH 中,每个客户端都应该维护自己的“已知服务器密钥”数据库(在$HOME/.ssh/known_hosts关于 Unix 实现)。当联系新服务器时,客户端将显示大量警告,如果联系已知服务器但不使用先前记录的密钥,则客户端将显示更大的警告。对于许多规模有限的项目来说,这是一个合适的模型。具有信任锚的 X.509 证书的要点是允许客户端安全地识别many服务器,甚至是部署客户端软件时还不存在的服务器。如果您同时控制客户端和服务器,则不需要。

SSH 默认实现的似乎更符合您的要求,但 SSL 实现更常见(特别是,我相信 .NET 中有一个可以随时使用)。您要做的就是捕获“服务器证书验证”部分,并将其替换为您自己的简单匹配函数“这就是我期望的确切的字节到字节证书吗?”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安全套接字连接的最佳实践 的相关文章

随机推荐

  • Objective C switch 语句和命名整型常量

    我有一个控制器 它充当两个滚动视图的委托 这两个滚动视图放置在由上述视图控制器管理的视图中 为了区分我尝试使用的两个滚动视图switch语句 而不是简单的指针比较if陈述 我已将两个滚动视图标记为 0 和 1 如下所示 NSUInteger
  • 如何在没有子查询的情况下重写此查询?

    所以我想做的是 我有一个表 其中包含商店中某些商品的一些价格 我想要做的是找到该商店出售的所有商品的平均价格 以及商店中出售的所有类似商品的总和 我的专栏是 item no branch 总金额 真正重要的是我必须避免子查询 所以我不能做类
  • 设计代理类的真正目的是什么?

    我一直在研究代理类 但我不明白设计它的全部想法 据我所知 到目前为止 它是一个包装对象 可以控制对原始对象的访问 但如果我们想控制它 为什么我们不能设计具有这些访问机制的原始类呢 我读到这些代理对象对于跟踪方法调用 将方法调用路由到远程服务
  • SKSpriteNode 滑动不稳定?

    我创建了以下精灵套件节点 SKSpriteNode megadeth megadeth SKSpriteNode spriteNodeWithImageNamed megadeth rocks png megadeth name aweso
  • 在同一类中使用不同的格式序列化多个 DateTime 属性

    我有一个具有两个 DateTime 属性的类 我需要使用不同的格式序列化每个属性 我该怎么做 我试过 JsonConvert SerializeObject obj Formatting None new IsoDateTimeConver
  • 当没有遇到 return 语句时,Perl 从子例程中返回什么?

    我今天遇到了这个问题 并认为发布问答是明智的做法 因为我找不到类似的内容 如果您发现此问题重复 请随时投票结束 以下子程序有条件地return http perldoc perl org functions return html输出 我认
  • Selenium IDE 中上传文件的脚本

    上传文件的脚本 在 selenium IDE 或 如何使用selenium自动上传文件 您可以使用 selenium type xpath of text box path of your file 命令 类型目标 文本框的xpath of
  • 尝试将 Moles 与 NUnit 一起使用。获得“Moles 需要测试成为一个仪器化过程”

    我尝试将 Moles 与 NUnit 一起使用 但收到以下错误 Moles 需要测试才能成为仪表化过程 我还在 Visual Studio 2008 中使用 Visual NUnit 来实现此功能 欢迎任何帮助 为了让 Moles 能够与
  • CIFilter 的便利初始化器给出了奇怪的异常

    这是我正在尝试的代码 typealias Parameters Dictionary
  • 在javascript中添加两个大数字[重复]

    这个问题在这里已经有答案了 我一直在尝试使用 javascript 添加以下数字 76561197960265728 912447736 遗憾的是 由于 JavaScript 中的四舍五入 它不会得到正确的数字 我需要该数字作为字符串 我尝
  • 在 Brave 中发送 XMLHttpRequest 时,引用者的这种行为是有意的吗?

    var xhr new XMLHttpRequest xhr open GET https httpbin org true xhr send 当运行上面这个简单的代码时example org Chrome devtools 中的请求标头显
  • Bootstrap 4 卡相同高度和底部对齐

    我正在尝试对齐 Bootstrap 4 卡并使用d flex随着align self stretch对于卡片本身 这太棒了 但是 我不知道如何让红色边框的部分浮到底部 使用 Bootstrap 4 的任何想法公用事业 https getbo
  • 如何使用 Kivy 获取文本输入的值

    我是 Kivy 的新手 因为我无法在 PySide 上练习 一些动态库损坏了或者我不知道是什么 所以我想尝试这个巨大的工具 我现在迷路了 我尝试这样做 在 Kivy 应用程序中获取文本输入值 https stackoverflow com
  • gsub 或 scan 中的匹配位置

    实现匹配位置的最佳方法是什么 由 对于使用时的每场比赛gsub or scan hello gsub Regexp last match offset 0 first gt 01234 See 正则表达式 last match http w
  • 使用谷歌地图上的 pincode 获取纬度和经度

    我需要加载给定 pin 码或区号的 Google 地图位置 我尝试使用地理编码器方法来查找给定地址的纬度和经度 当给定位置或区域但不适用于密码 特别是印度 时 此功能有效 有没有任何方法或途径可以使用 pincode 查找给定区域的纬度和经
  • Excel,将总和应用于多列上的某些单元格

    Excel 将总和应用于多列上的某些单元格 A B C D A 1 2 3 4 B 1 2 3 4 C 1 2 3 4 D sum A1 A2 A3 so A4 3 我们如何将总和分别应用于 B C D 列上的 4 个 B C D 您需要动
  • Google 电子表格 - 将多列转换为一列

    我想循环遍历 Google 电子表格中的一组行 如下所示 XXX 123 234 234 YYY 789 098 765 ZZZ 76 123 345 最终结果需要是 XXX 123 XXX 234 XXX 234 YYY 789 YYY
  • Python局部变量初始化

    我对 python 相当陌生 我想知道局部变量是如何工作的 让我们从一个简单方法的示例开始 def do sth local dict a 1 b 2 c 3 我们假设 local dict 的使用方式类似于 const 变量 问题是 每次
  • 这个要点
  • 没有以圆圈显示是什么?
  • 我试图在我的网页上显示一些项目符号列表圆圈 但它似乎没有显示 我尝试使用 firebug 但我找不到问题所在 我浏览了整个 css 文件 但我没有不知道问题出在哪里 我希望列表与圆圈垂直 请你帮我 这是代码 Browser resets h
  • 安全套接字连接的最佳实践

    安全套接字连接 无 SSL 的最佳实践是什么 我将通过 TCP 套接字连接移动敏感数据 登录名 密码 帐户 并想知道是否有一种好的 快速的加密 解密方法并避免恶意注入 如果您对 SSL 过敏 请使用 SSH 但原理是相同的 密钥通过非对称算