- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人可以帮我解决以下问题吗?
RFC2560 定义了何时可以接受 OCSP 响应者证书(签署响应):
1. Matches a local configuration of OCSP signing authority for the
certificate in question; or
2. Is the certificate of the CA that issued the certificate in
question; or
3. Includes a value of id-ad-ocspSigning in an ExtendedKeyUsage
extension and is issued by the CA that issued the certificate in
question."
我的问题是:
如果OCSP响应者的证书是由验证路径的Trust Anchor签名的,是否也被认为是被接受的?
我的印象是它应该是,但这在上面的 RFC 中没有明确说明,也找不到关于此的明确引用。
从我对 RFC 的阅读来看,即使它是由 TA 签名的,它仍然对 OCSP 响应无效。
感谢任何帮助
注意:我正在用 Java 处理这个问题,以防万一
更新:
在 RFC 的第 2.2 节中:
All definitive response messages SHALL be digitally signed. The key
used to sign the response MUST belong to one of the following:-- the CA who issued the certificate in question
-- a Trusted Responder whose public key is trusted by the requester
-- a CA Designated Responder (Authorized Responder) who holds a specially marked certificate issued directly by the CA, indicating that the responder may issue OCSP responses for that CA
第 2 点对我来说似乎模棱两可。
这可能意味着:
a) 任何PK都是可信的,所以Trust Anchor是可以接受的
或者
b) 具有第一个引用中第 (1) 点的含义,这意味着预先配置一个证书(任何)作为 OCSP 响应者的信任,例如在 java 中完成:
Security.setProperty("ocsp.responderCertSubjectName",ocspCert.getSubjectDN().getName));
List<X509Certificate> list = new ArrayList<X509Certificate>();
list.add(ocspCert);
CollectionCertStoreParameters p = new CollectionCertStoreParameters(list);
CertStore store = CertStore.getInstance("Collection", p);
PKIXParameters params = new PKIXParameters(Collections.singleton(anchor));
params.addCertStore(store);
最佳答案
在 RFC 2560 中,这些表示:
1. Matches a local configuration of OCSP signing authority for the
certificate in question; or
→ 只要始终意识到自己在做什么,就可以做自己想做的事。这是“包罗万象”的条款,这意味着无论您做什么,您很可能会遵守 RFC 2560。但是,如果您是 OCSP 响应的生产者,您将希望避免使用该许可成为标准,因为您更希望响应的用户接受它们,即使他们没有相同的许可比你“本地配置”。
2. Is the certificate of the CA that issued the certificate in
question; or
→ 棘手的一点是信任 anchor 是一个 CA。它不是由证书正式表示的(尽管在许多系统中,信任 anchor 被编码为自签名证书);但它颁发 证书,因此是一个证书颁发机构。如果 OCSP 响应是使用 TA key 签名的,那么您就是这种情况。
3. Includes a value of id-ad-ocspSigning in an ExtendedKeyUsage
extension and is issued by the CA that issued the certificate in
question."
→ 与上面类似,一个 OCSP 响应者签署了证书 X 的答案,其中 X 似乎是由 TA 颁发的,可以使用也由同一 TA 颁发的响应者证书 R -- 这样,我表示 X 和 R 都是由您将其名称和 key 用作信任 anchor 的证书颁发机构颁发的。
这三种情况描述了收到 OCSP 响应并希望将其用作证书路径验证的一部分的任何人都应执行的验证步骤。 RFC 的第 2.2 节是关于 OCSP 响应者的职责:
All definitive response messages SHALL be digitally signed. The key
used to sign the response MUST belong to one of the following:
-- the CA who issued the certificate in question
-- a Trusted Responder whose public key is trusted by the requester
-- a CA Designated Responder (Authorized Responder) who holds a specially
marked certificate issued directly by the CA, indicating that the responder
may issue OCSP responses for that CA
这三种情况与我们上面详述的接收器的情况相匹配,顺序为“2、1、3”。同样,“颁发证书的 CA”可以是其名称和公钥将被接收方用作信任 anchor 的实体。
关于java - 我应该接受由信任 anchor 签名的 OCSP 响应者证书吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888990/
从今天早上开始,我的证书在 Android 上不再受信任,然后我的应用程序无法再连接: Catch exception while startHandshake: javax.net.ssl.SSL
我想知道是否有人有解决方案允许从usize类型(从访问数组索引或获取矢量长度中获得)的隐式转换为i32?可能吗? 当然,我假设矢量长度和数组范围在i32限制之内。 最佳答案 您可以在函数参数中使用 T
我用 mitmproxy从离开我们网络的出站 AS2 (HTTP) 请求中收集情报。架构是这样的: Mendelson AS2 ➡ mitmproxy ➡ partner AS2 server
我有几个实例,我的 Javascript 代码似乎在泄漏内存,但我不确定我应该从垃圾收集器那里得到什么。 例如 var = new Object() 在 Firefox 中运行的间隔计时器函数似乎会随
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我想我在这里没有想法。 我正在尝试使用具有 ssl 证书的 java 中的 Web 服务。 我创建了一个 keystore 文件,并在其中添加了证书。该文件位于我的项目文件夹中。 我使用以下方式导入它
我在/etc/pki/ca-trust/source/anchors 中添加了一个 crt,这样服务器证书就可以被 ssl 客户端信任。所以,例如,当我 curl https://证书自动受信任。 有
我搜索了很多帖子,但找不到任何解决方案或问题的答案。如何从安装了中间证书的站点下载文件?使用 DownloadManager 时,出现错误“java.security.cert.CertPathVal
我无法使用 SSL: 我从服务器下载了证书,它运行良好。 我还使用本文中的代码将 myCertificate.cert 添加到我的 iPhone 钥匙串(keychain)线程:Importing a
首先,我知道信任所有证书可能存在的风险,但是出于某些测试目的,我必须实现这一点。 如何强制我的客户信任所有证书?我正在使用 javax.websocket 来实现 我所做的只是像连接到 ws 一样 W
信任 $_SERVER['REMOTE_ADDR'] 是否安全?可以通过更改请求的 header 或类似的东西来代替吗? 这样写安全吗? if ($_SERVER['REMOTE_ADDR'] ==
我有一个产品由内部 ASP.NET/MVC 网站组成,所有网站都使用 WIF 通过自定义 STS/IdP 服务启用 SSO。我们现在有一个新的合作伙伴站点托管在我们网络之外的另一个域上,并且希望在用户
我在我开始构建的 Rails 应用程序上使用 sendgrid。我处于测试模式,主要做本地工作,但我发送了很多电子邮件来检查我的流程或电子邮件布局。 我用来接收电子邮件的电子邮件是在 Gmail 上。
我一直在研究我得到的原因: java.util.concurrent.ExecutionException: javax.net.ssl.SSLException: Received fatal al
我有 SVN 服务器通过 HTTPS 在 Apache 下运行 这是我的服务器端配置,“/etc/httpd/conf.d/subversion.conf”: SSLRequireSSL S
我有一个用于开发测试的自签名证书。我已将它添加到证书管理器中的“受信任的根证书颁发机构”文件夹下,当在 IE 或 Chrome 下访问该站点时,它被认为是有效的(在 Firefox 下它不喜欢它是自签
我遇到了 android 4 设备的问题,这些设备在连接到服务器时收到以下异常: java.security.cert.CertPathValidatorException: Trust anchor
我是一个安卓新手。这个问题已经被问过很多次了,但我已经解决了这里几乎所有的问题。 我正在尝试在 Node.Js 服务器(使用 express)和 Android 上的 Volley 上使用自签名证书。
我想使用 WebClient 从安全服务器检索 JSON 文件,但我的 Windows Phone 8 不允许我这样做,因为如果 WebCLient 不信任 SSL 证书,它会抛出异常。 问题在于它不
我正在编写服务器以支持适用于 iOS 和 Android 的基于位置的应用程序。该应用程序要求我们验证用户的身份及其位置。我知道如何做前者,但不知道后者。 是否可以验证客户端发送给我的纬度/经度实际上
我是一名优秀的程序员,十分优秀!