I may be misunderstanding, but this strikes me as a different problem,> In a bootstrap scenario, especially imagining a 'post-CT world' (of
> mandatory CT, perhaps within the BRs, though I'm loathe to imagine
> that for various reasons), a CA applying for inclusion needs to
> provide a valid/expired/revoked cert. To provide that, they need to
> issue the cert. If they're required to issue that cert complying to
> some program's CT policies, then they (effectively) need to have
> their CA recognized by another log. However, if the logs' CA
> inclusion policy is that the CA needs to be included within a root
> store (e.g. as a defense against spam submissions), then you've got a
> circular dependency: they can't be included in a root store until
> included by CT logs, and they can't be included by CT logs until
> included by a root store.
related to what roots a log accepts, rather than what root the log's
HTTPS certificate chains to.
Already there are two types of policy violations: those which require
distrust (e.g. conflicting STHs), and those which do not, especially if
they are corrected promptly. Temporarily using a TLS certificate from a
recently-distrusted CA certainly falls into the latter category, and I
don't see this being a problem considering the many instances of policy
violations over the past year that did not lead to log distrust.
Something to consider is that most of the open source CT client code
I've seen does not attempt to verify signatures and therefore relies
entirely on the security of the TLS connection. I'm not sure to what
extent we want to accommodate clients like this.
Note that of the three HTTP client libraries with which I'm familiar
(libcurl, Go's net/http, and libwww-perl), only libwww-perl provides
an easy way to validate an HTTPS connection using a public key, whereas
all three provide an easy way to configure trust anchors.
Gerv's suggestion of requiring logs to commit to a single issuing certificate
seems to address all the problems of the public-key-only proposal while
retaining its benefits of policy simplicity.
However, I'm concerned with the amount of work others have to do to
get started with CT.
Meanwhile, the policy problems with #3 don't seem serious. Considering
the huge amount of overlap in certificates between root programs, it
shouldn't be hard for a log to be compliant with multiple browsers' log
programs even if each one required use of a certificate trusted by their
own root program.
This is the part I don't understand - why is it a problem for a CA to> However, if Achmed needs to use another CA for the CT logs' TLS
> certificate, then we have a potential problem.
use another CA for their log's TLS certificate? After all, non-CA log
operators have to get a TLS certificate from someone else.
Under this policy, a log using a certificate from a CA that becomes
distrusted by NSS will be induced to switch to a different CA in a
timely manner. The outage to CT clients using the NSS store would be
no worse than any other unscheduled log outage. This doesn't seem bad.
Have I missed some aspect of this?
As all the important data is signed and timestamped, what is the risk of using plaintext or unqualified certs for a log?
If you read previous in the thread, this was explained in my very first reply. It'd be useful to know if you disagree with that threat model or would like to extend it.
If you read previous in the thread, this was explained in my very first reply. It'd be useful to know if you disagree with that threat model or would like to extend it.I tried to read all the messages, and I think you're referring your message where you said "thinking about the threat model"...
I understand the confidentiality concern but I dont see it as a high risk.
The risk is that a rogue, in the trust store, CA could issue a bogus cert for the log, and that the client can then be directed to the attacker. The mitigation for this, until the TLS cert for the log, and the log, is trusted, is for that CA to tell its customers to staple the SCT's. Right?
On 21/12/16 22:12, Ryan Sleevi wrote:
> It increases the inter-CA dependency.
It does, although in a fairly minor way. Once the CA concerned has
bootstrapped, in your scenario, they can switch to using a cert from
their own CA.
The CAB Forum website has a cert from only one of its members. So does
the CASC website. Using a cert issued by someone else for a machine or
two, for technical reasons, doesn't seem to be the worst thing in the
world.
That would be a persuasive argument if it weren't for the fact that that is
*exactly* how every CA already gets started, except they depend on their
competitor for a lot longer than 90 days, and in a far more intimate (and
hard-to-change) manner than "I got a DV cert from competitor XXX".
As Andrew and Ryan point out re option #3, defining "widely-trusted certificate" is tricky - for Chrome, I'd like to suggest defining that as a certificate that would be considered valid on one of the platforms Chrome ships on (that is, an SSL connection to the CT log using Chrome from one of these platforms would yield a successful certificate validation).That has the benefit of setting some bar for CT log operators and would only require Log Clients to rely on the extra trust anchors for a limited amount, since (I assume) such trust anchors will make their way into all major trust stores and so would be picked up by SSL libraries eventually.Opinions? I'm happy to go with option #2 as-is, but for simplicity would prefer knowing that the need to add a trust anchor for the purpose of monitoring a CT log is temporary, since the trust anchor is making its way into "widely-used" root stores.
Understood, I wasn't aware of those, thanks for pointing it out.Do I understand correctly that if we go with option #2 as-is, then the policy change would be to require each Log Operator to specify the root that'll be used to directly certify the end-entity certificates that their log will use?
If so, how do we avoid burdening log operators who use CAs that are widely-trusted? Would Log Operators be required to inform Chrome that they are changing a CA?(I'm not saying they should; I'm looking for a way to formalize the requirement without burdening operators).
On Fri, Apr 21, 2017 at 12:35 PM, Eran Messeri <er...@chromium.org> wrote:Understood, I wasn't aware of those, thanks for pointing it out.Do I understand correctly that if we go with option #2 as-is, then the policy change would be to require each Log Operator to specify the root that'll be used to directly certify the end-entity certificates that their log will use?Define "directly certify"? With or without intermediates? ;)
If so, how do we avoid burdening log operators who use CAs that are widely-trusted? Would Log Operators be required to inform Chrome that they are changing a CA?(I'm not saying they should; I'm looking for a way to formalize the requirement without burdening operators).I think that is the logical consequence, and I think it'd have implications for monitors, so we'd want to strive for some form of notice period except for exigent circumstances.
Explicitly stating to see I got it right:If so, how do we avoid burdening log operators who use CAs that are widely-trusted? Would Log Operators be required to inform Chrome that they are changing a CA?(I'm not saying they should; I'm looking for a way to formalize the requirement without burdening operators).I think that is the logical consequence, and I think it'd have implications for monitors, so we'd want to strive for some form of notice period except for exigent circumstances.- Log operators would have to state which trust anchor will be used to issue certificates for the log itself.- Log operators would have to notify if that trust anchor changes.
Questions:- Can log operators refer to an existing trust anchor, for example by specifying issuer + serial number or by a crt.sh link?
- Can log operators provide this information using CAA records?
--
You received this message because you are subscribed to the Google Groups "Certificate Transparency Policy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ct-policy+unsubscribe@chromium.org.
To post to this group, send email to ct-p...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/ct-policy/CACvaWvao4-Wbj06nfzEhj%2BhMmMpeJtmKe9dHso50dRM0VpCW0w%40mail.gmail.com.
FWIW, as someone writing tooling which interacts with ~arbitrary trusted logs (as listed in log_list.json); needing to deal with certificates that aren't Broadly Trusted (tm) is moderately inconvenient. (I ran into this with WoSign this past week; their log, which is trusted, uses a WoSign certificate, which isn't). At a minimum if the decision is made to allow logs to use certificates, it'd be great if the log_list.json schema was expanded to include the root cert.
For Cert Spotter, I'm OK with Option #2. However, since sending
my original email, I have written ct-honeybee-chrome[1], a Chrome
extension that periodically fetches STHs from logs and uploads them to
STH pollination endpoints. The goal is to look for split views from many
different vantage points. As far as I can tell, the Chrome extension
API, as well as Mozilla's WebExtensions API, provide no way to either
use custom roots or disable certificate validation. Option #3 is the
only option that would work in this environment.
I think there are some interesting possibilities for extension-based
CT log clients. Browser extensions provide a nice way to distribute
software, and a CT monitor packaged as a browser extension could make
CT accessible to more people. It would be a shame to preclude the use
of extension-based CT clients.
observation and gossiping.I haven't seen anything proposed that would eliminate the need for STH
> For this specific case, my own thinking about the priorities of
> constituencies are:
> 1) Optimize for CAs (so they can log precerts & OCSP responses) &
> their ease & clarity
> 2) Optimize for servers (so they can do the TLS extension method of
> SCTs)
> 3) Optimize for Monitors (so they can watch for certs) & their ease &
> clarity
> 4) Optimize for Auditors (so they can watch the behaviour)
>
> In this case, priorities 1&2&3 seem to strongly benefit from explicit
> certs, and only a subset of #4 are impacted.
A subset of monitors could be impacted also, should someone want to
distribute a CT monitor as a browser extension.
I also wouldn't say that
monitors "strongly" benefit from explicit certs as opposed to option #3.
I suppose there is a fourth option, although it would run contrary to RFC6962:
require logs be accessible over unencrypted HTTP, much like how OCSP and AIA
must work over unencrypted HTTP to avoid circular dependencies.
--
You received this message because you are subscribed to the Google Groups "Certificate Transparency Policy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ct-policy+unsubscribe@chromium.org.
To post to this group, send email to ct-p...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/ct-policy/CACvaWvZNTrbBLi4WKfBdOf-notgo%2BuqxVUKc-9y1STTAOSdgOg%40mail.gmail.com.
Ryan's circular dependency argument seems pretty convincing to me - If I understand correctly, the implication is that SSL certificates used by CT Logs are exempt from the Chrome CT policy for certificates.
Comparing the problem of circular dependency vs. supporting the use-case of a CT monitor as a browser extension, it seems to me that avoiding circular dependency is the more important goal as it simplifies the overall ecosystem.As a side note, I think allowing Logs to be accessible over HTTP is not a good idea for two reasons:* Confidentiality: Log Clients ask Logs questions that contain private information. It's important that they can do so confidentially.* Integrity: monitors would like to know that a 4xx/5xx response received from a log was indeed generated by the log itself, not an attacker on the path that introduces noise.
On Wed, Apr 26, 2017 at 8:56 AM, Eran Messeri <er...@chromium.org> wrote:Ryan's circular dependency argument seems pretty convincing to me - If I understand correctly, the implication is that SSL certificates used by CT Logs are exempt from the Chrome CT policy for certificates.I'm not sure that sounds correct, but perhaps you meant in the context of #2. That is, if explicitly provided as part of log metadata/inclusion request, yes.
On Wed, Apr 26, 2017 at 2:06 PM, Ryan Sleevi <rsl...@chromium.org> wrote:On Wed, Apr 26, 2017 at 8:56 AM, Eran Messeri <er...@chromium.org> wrote:Ryan's circular dependency argument seems pretty convincing to me - If I understand correctly, the implication is that SSL certificates used by CT Logs are exempt from the Chrome CT policy for certificates.I'm not sure that sounds correct, but perhaps you meant in the context of #2. That is, if explicitly provided as part of log metadata/inclusion request, yes.To avoid the circular dependency described (where a CT log may struggle to bootstrap itself because it needs other logs to log its own SSL certificate and issue SCTs), does it not mean that the entire chain used by the Log (from the trust anchor declared by the Log Operator, to the end-entity certificate presented in connections to the log itself) not contain SCTs?What am I getting wrong here?