Hi all,

Recently I wrote a script to get resources hosted by CAs. For some CAs the requests were blocked by a WAF.

In one case (http://www.microsoft.com/pkiops/*) I think the blocking happens because of the user-agent header. Probably because it's a generic one (python-requests/2.32.5). Changing the UA header immediately stops my requests from getting blocked. [I reported this and they're looking into changing their configuration to not block this UA.]

In another case (http://ca-repository.desc.gov.ae/*) I don't know why I'm being blocked. Perhaps because of the user-agent header, or maybe because I exceeded a rate limit. Waiting some time or changing request details hasn't fixed this. I suspect I've been IP blocked, but no idea if it's temporary or indefinitely.

Section 4.9.7 of the BRs says the following: CRLs MUST be available via a publicly-accessible HTTP URL (i.e., "published").

I'm wondering if blocking requests breaks this "publicly-accessible" requirement. Perhaps it depends on why requests are blocked? Rate limits make sense to me, but geo blocking does not. Blocking user agents may be a grey area.

The baseline requirements also says that certain certificates must contain a CRL URL. But is there a requirement for the CRLs to be "publicly-accessible" through the URLs embedded in the certificate?

RFC 5280 doesn't really clarify things. It says that the CRL/AIA caIssuers URIs embedded in certs must "point to" certain file types, but that language seems vague.

The strictest interpretation is that the server should always return 200 OK along with the proper file.

Another interpretation is that status code 200 tells the client they can get the resource "pointed to" by the URI, so in that case it must return a proper file. Other data can be returned with different status codes, like deny message with status code 403. (Perhaps status code 404 can not be used because this tells the client that the URI doesn't "point to" anything).

In the loosest interpretation any status code can effectively be used for anything. For example, HTML error messages with status code 200. (That's what Microsoft's server does when blocking requests.)

I think it'd be good if there are guidelines for what reasons CAs can/can't block requests, whether they can (temporarily) IP block you, and what the server should respond with if you're blocked (e.g., what status codes, should it give a block reason message?, contact method?).

What do other people think? What do the standards currently say about CRL/AIA caIssuers availability? And should they be changed/clarified? I saw that DigiCert plans to start that discussion regarding caIssuers AIA availability on the CABF, which is a good development: https://bugzilla.mozilla.org/show_bug.cgi?id=2009491#c2

Kind regards,
Dexter

--
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/40cfea85-1fae-4f04-b49e-ebda43af9188%40gmail.com.

Reply via email to