- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
#常规 OCSP (RFC 6960)我编写了一个 OCSP 响应程序,其中响应基于 RFC 6960其中指出:
If nextUpdate is not set, the responder is indicating that newerrevocation information is available all the time.
所以我没有设置 nextUpdate,只是像这里一样使用了 BouncyCaSTLe BasicOCSPRespBuilder
(它默认设置了 thisUpdate,在 Wireshark Capture 中也可以看到):
basicOCSPRespBuilder.addResponse(certID, responseList.get(certID));
但是这些响应被 IIS 中的证书验证器拒绝了。在尝试 certutil 时,响应状态始终为“已过期”。
这是使用“certutil -url”命令验证的。
#轻量级 OCSP(RFC 5019)一些谷歌搜索显示微软支持轻量级 OCSP,根据 RFC 5019其中指出:
Clients MUST check for the existence of the nextUpdate field and MUSTensure the current time, expressed in GMT time as described inSection 2.2.4, falls between the thisUpdate and nextUpdate times. Ifthe nextUpdate field is absent, the client MUST reject the response.
所以我修改了实现以包含 nextUpdate 日期( future 几分钟),如下所示:
basicOCSPRespBuilder.addResponse(certID, responseList.get(certID), getNextUpdateDate(), null);
这让我摆脱了“已过期”状态问题,但现在的问题是,当它被部署到 Web 服务器并且我尝试执行“certutil -url”检查时,它返回“已验证”的 WebProxy 链接证书,但如果我直接提供服务器的 URL,它会显示“确定”。响应结构在两种情况下都保持不变,因为它是相同的响应者(使用 Wireshark Capture 验证,如果您愿意,我也可以附加它)。
#issuerKeyHash 字段这里有趣的事实是,在通过 WebProxy 和直接 URL 的情况下,发送到服务器的 OCSP 请求是不同的。区别在于 OCSP 请求在将请求发送到直接链接时不包括 issuerKeyHash
。
发送到返回“已验证”的 Webproxy 的 OCSP 请求的 Wireshark 捕获:-
发送到返回状态“OK”的直接链接的 OCSP 请求的 Wireshark 捕获:-
问题是请求为什么在一个实例中包含 issuerKeyHash 而在另一个实例中不包含。此外,即使来自服务器的 OCSP 响应相似(由 Wireshark Caputres 确认),为什么两个查询的状态不相同。
对于“URL 检索工具”或“certutil -verify”在这方面的任何有见地的文档/链接,我也将不胜感激。
我还可以根据要求包含 Wireshark 捕获。
我没有将 Java 和 BouncycaSTLe 作为标记包含在内,因为 OCSP 响应被 Java、openssl 等接受,没有任何问题(根据 RFC 6960,有或没有 nextUpdate)。这个问题是为了了解 Microsoft certutil 和此处的 OCSP 检查发生了什么。
#更新 #1--- 开始更新 #1 ---
如@Crypt32 所建议;我可以验证在 URL 字段中使用 URL 时,由于未知原因未构建完整的证书路径,因此缺少 IssuerKeyHash
。
假设响应总是包含 IssuerKeyHash
,这可能导致“OK”而不是“Verified”状态。为了确认这一点,我修改了响应以匹配请求,并且如果它未在请求中交付但状态保持“正常”并且没有更改为“已验证”,则不会发送 IssuerKeyHash
。
我们的想法是正确理解 Microsoft 应用程序如何处理 OCSP 响应以及如何正确实现 Responder,以便 Microsoft 应用程序不会完全失败。
研究正在进行中,任何意见和建议表示赞赏!!
--- 结束更新 #1 ---
最佳答案
Microsoft 使用轻量级 OCSP,因此需要 thisUpdate
和 nextUpdate
作为 RFC 5019 中引用的强制性要求.
关于 certutil
的查询现已得到澄清,感谢 @Crypt32。
在 certutil
的“下载 URL” 框中使用自定义 URL 时,不会生成完整的证书链,因此导致没有 的 OCSP 请求>IssuerKeyHash
.
标准 CryptoAPI 客户端从不发送带有空 IssuerKeyHash
的 OCSP 请求,这只是特殊的 certutil
行为,可能会被忽略,因为它也往往会在 Windows OCSP 服务器上失败(我也通过 Microsoft CA 进行了验证)
关于windows - Microsoft OCSP 检查(OCSP 与轻量级 OCSP)和 "certutil -url"令人困惑的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823807/
我正在尝试将 Outlook API 与我的 React 应用程序集成。当我尝试使用 microsoft-graph-client 实现身份验证时,遇到以下错误。 'ImplicitMSALAuthe
我正在尝试使用 Microsoft Graph Beta API 在 Microsoft Teams 中创建 channel 。在文档中,它说 channel 实体具有属性 IsFavoriteByD
我的目标很简单。我想使用图形 API 将自动聊天消息发送到 MS Teams channel 。 这似乎是图形 API 的测试版功能,仅在 Microsoft.Graph.Beta 中可用。 我已经阅
通过委派权限获取 Teams channel 消息时(用户是团队成员): https://graph.microsoft.com/beta/teams/ {team_id}/channels/{cha
我正在使用带有 OData 端点的 Web API 和 Entity Framework 创建一个 RESTful 服务。 Microsoft.AspNet.WebApi.OData 和 Micros
我可以通过对标题和作者姓名的评估查询(以及解释查询)获得良好的结果。 但是如果我想通过 DOI 查找论文怎么办? 我可以通过扩展元数据描述(在现有搜索的属性中)获取条目的DOI信息,但是由于扩展元数据
我正在尝试通过displayName查询用户,但是在同时使用C#SDK和Graph Explorer发送请求时,我无法转义单引号。 更新:在示例中不清楚,我遇到麻烦的搜索词是I' 查询示例: http
我在使用 Microsoft fakes 的解决方案中有一个单元测试项目,当我构建它时出现以下错误。它提示无法加载的 DLL 在磁盘上。我已经打开了 Fusion 日志记录,这表明绑定(bind)成功
我想创建一个应用程序,当用户在 MS Teams 中接到电话时会收到通知。我的意思是我想在来电事件上订阅一些东西,然后根据来电信息做一些事情。这可能吗?到目前为止,我在 SDK 中没有看到任何事件。
如果我开发一个网站,它是否会以相同的方式在 IE11、Chrome、Firefox 和 edge 上运行,还是我们需要专门为 IE11 编写代码?我没有 Windows 8,因此无法在边缘浏览器上测试
我几个月前为某些收件箱创建了一些订阅,系统成功收到了有关收到电子邮件的通知,订阅也定期更新以增加到期日期。这是我的订阅列表: https://graph.microsoft.com/v1.0/subs
如果我开发一个网站,它是否会以相同的方式在 IE11、Chrome、Firefox 和 edge 上运行,还是我们需要专门为 IE11 编写代码?我没有 Windows 8,因此无法在边缘浏览器上测试
如果 Edge 在某些机器上发生崩溃,我们需要检查日志以了解发生了什么情况。 最佳答案 Microsoft Edge 实际上是一个 Windows 进程,因此您应该能够在事件查看器中查看日志。此外,您
我已经将一些测试用例与项目中的单元测试相关联。该项目已构建并复制到共享上的放置位置。当我去运行这些测试时,由于作为这些测试的一部分包含的非托管 DLL 的 System.DllNotFoundExce
我对 asp.net 核心标识中的三个包感到困惑。我不知道彼此之间有什么区别。还有哪些是我们应该使用的? 我在 GitHub 上找到了这个链接,但我没有找到。 Difference between M
在我的 Windows 类库(由 MVC 网站使用)中,我安装了 NugetPackage Microsoft.SqlServer.Types (Spatial)。 现在,我正在使用 ado.net
我有一个简单的 web 应用程序,我在 Teams 中显示为一个应用程序。我已经在 App Studio 中进行了设置,一切都按我的预期工作,一切都很好。它正在显示我的网络应用程序,这就是我想要的。
有什么不同?它们都是业务管理解决方案。他们做的一样吗?一些不同的版本?他们使用同一个平台吗? 动态 Assets 净值 Microsoft Dynamics NAV 2009 is a compreh
如何制定包含非英语字符(例如日耳曼语Umlauts)的Microsoft Graph /myOrganization/users OData查询? 例子: 我的租户中有一个名为“ThomasMülle
我想创建一个类似于乐队附带的星巴克应用程序的应用程序。我想显示条形码。我可以在云端或本地设备上将条形码生成为 JPG 图像,但我需要能够在乐队的屏幕上显示它们。到目前为止,我还没有找到使用 Band
我是一名优秀的程序员,十分优秀!