从 SSL 证书中提取序列号

2024-01-06

客户端和服务器持有匹配的证书。

当服务器发送通信时,它会解码证书中的序列号并将其传递给客户端。然后,客户端可以从其证书副本中获取序列号,并将其与服务器提供的序列号进行比较。这些应该匹配。

证书中序列号的字符串表示形式显示如下:-

58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08 58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08

Windows 服务器使用以下方法提取字节:X509Certificate.GetSerialNumber http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate.getserialnumber(v=vs.110).aspx。提取的字节看起来是:-

8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88 8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88

在 OS X(客户端)上,使用 Core Foundation 函数SecCertificateCopy序列号 https://developer.apple.com/library/mac/Documentation/Security/Reference/certifkeytrustservices/index.html#//apple_ref/c/func/SecCertificateCopySerialNumber,提取的字节返回:-

88 23 -101 -09 14 -13 -122 74 65 -33 -94 -18 96 -110 8 88 23 -101 17 -98 14 -13 -122 74 65 -33 -94 -18 96 -110 8

显然,这些不匹配。另外,使用Qt,可以使用QSsl证书 http://qt-project.org/doc/qt-5/qsslcertificate.html并通过调用获取序列号序列号() http://qt-project.org/doc/qt-5/qsslcertificate.html#serialNumber。但是,这会返回以下字节:-

53 56 58 49 55 58 57 98 58 49 49 58 57 101 58 48 101 58 102 51 58 56 54 58 52 97 58 52 49 58 100 102 58 97 50 58 101 101 58 54 48 58 57 50 58 48 56 58 53 56 58 49 55 58 57 98 58 49 49 58 57 101 58 48 101 58 102 51 58 56 54 58 52 97 58 52 49 58 100 102 58 97 50 58 101 101 58 54 48 58 57 50 58 48 56

这里发生了什么,为什么没有一个字节数组匹配,以及如何在 OSX 上提取与 Windows 服务器中的序列匹配的序列号?


字符串、无符号字符、十六进制表示

58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08 58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08

Windows、无符号字符、逆序十进制表示

8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88 8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88

OS X,有符号字符,十进制表示

88 23 -101 -09 14 -13 -122 74 65 -33 -94 -18 96 -110 8 88 23 -101 17 -98 14 -13 -122 74 65 -33 -94 -18 96 -110 8

所有三个表示彼此相等

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

从 SSL 证书中提取序列号 的相关文章

  • .net 中的计时器合并

    Windows 7 引入了计时器合并 提高了能源效率 哪些托管 API 公开了计时器容差 似乎利用此功能的唯一方法是 p invoke设置等待定时器 http msdn microsoft com en us library windows
  • LaunchAgent 不运行 shell 脚本

    在 Catalina 之前的 macOS 下 我有一个每天运行 shell 脚本的 LaunchAgent 升级并切换到 zsh 后 它不起作用 我检查过的事情 shebang 切换到 zsh shell脚本可以从命令行手动执行 sh 在系
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • *.tlb 文件在运行时使用过吗?

    我正在开发一个通过 COM 互操作公开一些 NET API 的产品 作为构建的一部分 我们为所有此类程序集生成 tlb 文件 并将它们作为单独 SDK 包的一部分提供 我们的客户可以在我们的产品之上安装 SDK 并创建使用我们的 COM A
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • 你能给我一个会话固定攻击的例子吗?

    我读过有关会话固定的内容 据我了解 它强制用户使用攻击者的会话 它是否正确 你能举个例子来说明这会如何冒犯用户吗 我通常不喜欢发布维基百科的链接 但这里有一个链接维基百科上有很好的解释 http en wikipedia org wiki
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 将 System.Windows.Forms.Keys 序列转换为 Char

    有没有办法转换由 Keys 枚举表示的击键序列 即System Windows Forms Keys 在一个字符中 例如 Keys Oem4进而Keys A产生 char 它一定存在于 WinAPI 中的某个地方 因为当我在文本框中按下按键
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T
  • 如何禁止 celery 中的 pickle 序列化

    Celery 默认使用 pickle 作为任务的序列化方法 如中所述FAQ http ask github com celery faq html isn t using pickle a security concern 这代表一个安全漏
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • T-sql、刻度、时间戳

    是否有可能在 t sql 中获得像 DateTime Ticks 这样的 C 内容 感谢帮助 您不太可能从 SQL 中获得与 DateTime Ticks 相同的精度 因为 SQL 不能以那么高的精度表达时间 SQL Server 只存储大
  • 使对象在运行时不可变 [C#]

    有什么方法 我希望利用反射 可以使实例化对象不可变及其所有公共财产 我有一个来自其他人的代码库 没有可用源 的类 我需要使用它 并且我基本上希望在实例化该类后 如果任何地方的任何代码段尝试调用该类中的公共设置器 则抛出异常 注意 我不想在类
  • WPF Window 类的 IDisposable 成员

    当我将 IDisposable 类成员添加到 Windows 窗体 Form 类时 我将处置代码添加到 Form 的 Dispose 方法中 当我将 IDisposable 类成员添加到 WPF Window 类 不是 IDisposabl
  • activeProcessorCount 和processorCount 之间有什么区别?

    The NSProcessInfo类有两个名为processorCount and activeProcessorCount 该文档对于处理核心和活动处理核心之间的区别尽可能没有帮助 或者 换句话说 什么才算是一个inactive可可的处理
  • OSX 通过 macports 安装 subversion 时出错

    我正在尝试安装 subversion 1 7 2 从默认的 Lion 版本 1 6 升级 跑步sudo port install subversion安装成功完成 但是在运行 svn version 时收到此错误 svn version d
  • nginx - 使用 ssl 支持设置多个 server_name

    我很想使用 nginx 来为具有多个域名和 SSL 的网站提供服务 webmail example com webmail beispiel de 两者都使用相同的虚拟主机 因此我只设置 server name 两次 问题是 我需要 ngi
  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb

随机推荐

  • xcframework不包含内部框架

    我正在尝试创建一个 xcframework我正在使用的一些第三方库的文件 按照以下指示https appspector com blog xcframeworks https appspector com blog xcframeworks
  • 将输入更改为大写,光标不会跳到文本末尾

    我使用以下代码将输入值更改为大写
  • AWS 服务无法承担角色

    我有两个 AWS Cloudformation 堆栈 一个用于 IAM 角色 第二个用于创建 AWS 服务并使用 Cloudformation 将相应的角色导入其中 当部署 10 个以上服务时 其中 1 个或 2 个服务会随机出现以下错误
  • Appium XCUITest 中的代码签名证书错误

    我正在尝试使用 Appium XCUITest 实现 IOS 10 的 UI 自动化 在运行脚本时 它尝试构建 WebDriverAgent 但此时失败 我已经添加了配置文件并通过 UI 在 Xcode 中添加了帐户 但不确定 XCUITe
  • 如何使用 Espresso 测试适配器中特定位置的项目

    我正在尝试使用 Espresso 2 0 来验证给定位置的列表适配器项中的文本是否正确 但在我的一生中 我无法找出要调用的正确方法 我的适配器类型 IconRowAdapter 包含一个列表IconRow对象 每个 IconRow 有一个g
  • 识字编程

    识字编程 http en wikipedia org wiki Literate programming是一种软件开发方式 首先是文档 然后是编码 首先编写代码片段的文档 然后编写该代码片段的实现 软件源代码的视觉外观将是一个类似word的
  • AngularJS - ng-hide 与不同的 ng-controller

    这是我的问题 当我双击数组的一行时 我想让页面的几个部分消失 问题是 我不知道该怎么做 基本上 这是我的 html 文件 div div class table table class mainTable tr class tableHea
  • 全日历中的工具提示不起作用

    每个人 我正在尝试在全日历中显示事件的工具提示 但它不起作用并在控制台中显示此消息 未捕获的语法错误 意外的标记 有什么问题吗 这是我的js函数代码 calendar fullCalendar function eventAfterRend
  • TLS 连接超时(以及其他一些困难)

    我有一个 Python 中的 HTTP 客户端 需要使用 TLS 我不仅需要 建立加密连接 还可以从 远程计算机 例如证书颁发者 我需要做 与许多 HTTP 服务器的连接 通常表现不佳 所以我绝对 需要有一个超时时间 对于非 TLS 连接
  • 如何在 C# 中获取 MS Windows 7 内存的当前页面大小?

    如何在 C 中获取 MS Windows 7 内存的当前页面大小 在某些情况下 我们需要它以最佳方式分配内存 谢谢你 更新 这是一个示例代码 我对此有一些疑问byte buffer new byte 4096 Assign values t
  • Uploadify(闪存文件上传)和集成 Windows 身份验证

    我遇到了 Uploadify 的问题 希望有人能提供帮助 我已将 Uploadify 放入我的应用程序中 并且在开发中一切正常 使用 VS Web 服务器 一切正常并经过检查 直到我将应用程序部署到使用集成 Windows 身份验证的测试环
  • 如何将 EncodingType 属性添加到 WSE 3.0 (.NET) 中 UsernameToken 的 Nonce 元素

    我正在尝试使用 WSE 3 0 从 MVC3 NET Web 应用程序调用 Java Web 服务 但是 Web 服务需要 UsernameToken 的 Nonce 元素上有 EncodingType 属性 以下是与此 Java Web
  • 在内核模块中监听 netlink 广播

    SELinux 模块向任何侦听套接字发送 netlink 广播 我想知道是否可以从另一个内核模块中监听 netlink 广播 来自 SELinux netlink 代码 netlink broadcast selnl skb 0 SELNL
  • Ruby On Rails,周数不正确 (-1)

    我需要当前周数 如果我没有完全弄错的话 现在是第 51 周 但是 当在控制台中测试它时 我得到了这个 Time now gt 2013 12 19 11 08 25 0100 Time now strftime U gt 50 Date t
  • 如何从phonegap获取图片到远程XPage?

    我在 iPad 上构建了版本 1 6 的 Phonegap 应用程序 将 ulr 设置为 Domino 服务器上的 XPage 现在我的问题 当我在 iPhone 上拍照并将其上传到我的 XPage 时 使用该功能takePicture 返
  • 如何记录安全访问审核

    我有以下弹簧安全配置
  • android 中具有相应标签的单选组的 TableLayout

    我正在创建一个反馈输入表单 它可以让用户从单选按钮中进行选择 如下图所示 因此 我采用了表格布局 并在第一行中添加了带有固定宽度的文本视图的表格行 并在其余行中添加了带有固定宽度的单选按钮的文本视图 这是布局代码
  • 从超类访问私有变量(JAVA)

    好吧 我整个学期都在学习java 并且认为我对继承和超 子类有了清晰的了解 今天我们的任务是创建一个名为敌人的超类 以及不同类型敌人的子类 我做的一切都很好 我的所有子类都在工作 但是当我回去阅读我们必须遵循的指南时 我发现了这句话 超类的
  • Java 8 javax.net.ssl.SSLPeerUnverifiedException:对等点未经过身份验证,但不是 Java 7

    我在将应用程序从 Java 7 切换到 Java 8 时遇到问题 更改 JDK 后 我开始收到此 SSLPeerUnverifiedException 改回Java 7 也不例外 我发现这个问题 Java 7 的 SSL 连接失败 http
  • 从 SSL 证书中提取序列号

    客户端和服务器持有匹配的证书 当服务器发送通信时 它会解码证书中的序列号并将其传递给客户端 然后 客户端可以从其证书副本中获取序列号 并将其与服务器提供的序列号进行比较 这些应该匹配 证书中序列号的字符串表示形式显示如下 58 17 9B