> I’m not sure I see how 1 addresses this risk by itself. Are you thinking about this in isolation, or combined with some other mitigations (like RPKI and DNSSEC)? And, if combining, do we really need 1 to bind the method, versus something like account binding?Yes, I assume that there is DNSSEC or the nameserver has RPKI, but the website ISP/hosting provider does not. I think that there might be many such cases.
On Mon, Feb 21, 2022 at 11:38 AM Michel Le Bihan <michel.le...@gmail.com> wrote:> I’m not sure I see how 1 addresses this risk by itself. Are you thinking about this in isolation, or combined with some other mitigations (like RPKI and DNSSEC)? And, if combining, do we really need 1 to bind the method, versus something like account binding?Yes, I assume that there is DNSSEC or the nameserver has RPKI, but the website ISP/hosting provider does not. I think that there might be many such cases.I would think that there wouldn't be that many, given the lower cost/risk of RPKI+ROV vs DNSSEC.That said, it sounds like your threat model is assuming DNSSEC and relying on methods (3.2.2.4.7 - DNS Change and 3.2.2.4.12 - Validating Applicant as a Domain Contact) exclusively, right?That is, methods based on HTTP (3.2.2.4.6, 3.2.2.4.18, 3.2.2.4.19), TLS (3.2.2.4.20), SMTP (3.2.2.4.2, 3.2.2.4.4, 3.2.2.4.13, 3.2.2.4.14), and/or (potentially) SIP (3.2.2.4.2, 3.2.2.4.3, 3.2.2.4.15, 3.2.2.4.16, 3.2.2.4.17) would all be potentially hijackable. However, isn't there also an assumption here that the registrar and DNS servers are resistant to hijacks. For example, wouldn't an account password reset flow - which I think there might be many - defeat the security here?
I _could_ currently implement an attack flow that uses BGP hijacking of the IPs of the servers that my A-records point to to receive a certificate using the HTTP verification methods, and get signed certificates at any of the CA's indicated in my CAA records; assuming the CA does no further verification than only what is required in the baseline requirements. We can remove this attack vector completely by limiting the allowed verification methods on my domain to only DNS Change (3.2.2.4.7), but this would currently require specific support from the CA that I have defined in my CAA record (I'm not sure there are CAs that do this).
Sure, this might also be implemented through CA account binding (or something similar); but that means that each CA would need to implement their own account binding system; which is not a scalable solution for users, and introduces the same issues as the DNS account reset flow, but now there's one more password that can be compromised.
On Mon, Feb 21, 2022 at 8:25 AM Michel Le Bihan <michel.le...@gmail.com> wrote:Hello,I know that this has been discussed several years ago, but I didn't see any definitive final conclusion. In regards to the recent incident https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600 that involved the malicious actor reacquiring a valid TLS certificate, I think that it might be worth to restart the discussion.I know that the recommended solution is RPKI, but should there be other solutions that would mitigate this issue when RPKI is not deployed?Some possible solutions:1. Allow restricting validation methods in CAA records2. Require CAs to have multiple vantage points3. Not issue certificates shortly after suspicious BGP eventsI’m not sure I see how 1 addresses this risk by itself. Are you thinking about this in isolation, or combined with some other mitigations (like RPKI and DNSSEC)? And, if combining, do we really need 1 to bind the method, versus something like account binding?
2 is, effectively, unauditable and, at best, a probabilistic defense whose quality varies based on the selection of vantage points. Any attempt to make it auditable (e.g. via documentation about where and how points are selected) functionally serves to document the means to evade. There’s nothing wrong, in theory, but it’s akin to saying “Don’t open links from QR codes”: well meaning advice that, in theory, can mitigate attacks, but in practice, serves to do very little.
3 requires defining suspicious BGP events in a way that’s automateable enough to result in programmatic decision making, with limited false positives (false negatives roughly reduce into the same problem as #2). While there’s certainly interest in post-incident investigation to declare something anomalous, hindsight is 20/20, and typically based on combining perspectives from multiple vantage points.I would be interested to know if there is something technically concrete, formalized, and readily accessible to solve #2 and #3, from the technical experts. My understanding of the state of the art is that it’s generally regarded that, between those two and RPKI (with ROV), RPKI is orders of magnitude easier and more measurable, and with less risk of inducing centralization through “blessed” transit providers/IX viewpoints. Has that state changed?
I don’t think advisory recommendations for #2 and #3 do much for mitigating the problem, if only because the weakest link problem of CAs. However, I’d be curious to know if there was more concrete proposals in this area for something that can be objectively and independently quantified, whether as part of an audit or by root program review. At present, it feels a bit like a tiger-repelling rock: yes, rocks can help mitigate the risk of tigers, but when and how is very contextual.
--
You received this message because you are subscribed to the Google Groups "dev-secur...@mozilla.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dev-security-po...@mozilla.org.
To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/CAErg%3DHGB8c%2BJFKEmzvyGtkvHvwX4fcoe_Sq64VmmpF%2B6ODph2Q%40mail.gmail.com.
There is RPKI, which uses a certificate/PKI-based approach to the question of who is allowed to publish routes for certain prefixes. This makes certain prefixes 'bgp-hijacking-proof' for some definition of 'proof': If your ISP and all ISPs in between you and the client implement RPKI correctly, then your route to the client is guaranteed to be authorized by the owner of that prefix (excluding the possibility of key compromise).
On Mon, Feb 21, 2022 at 06:03:43PM +0100, Matthias van de Meent wrote:
> On Mon, Feb 21, 2022 at 5:09 PM Ryan Sleevi <ry...@sleevi.com> wrote:
> > On Mon, Feb 21, 2022 at 8:25 AM Michel Le Bihan <michel.le...@gmail.com> wrote:
> >> I know that this has been discussed several years ago, but I didn't see
> >> any definitive final conclusion. In regards to the recent incident
> >> https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600
> >> that involved the malicious actor reacquiring a valid TLS certificate, I
> >> think that it might be worth to restart the discussion.
> >>
> >> I know that the recommended solution is RPKI, but should there be other
> >> solutions that would mitigate this issue when RPKI is not deployed?
> >>
> >> Some possible solutions:
> >> 1. Allow restricting validation methods in CAA records
> >> 2. Require CAs to have multiple vantage points
> >> 3. Not issue certificates shortly after suspicious BGP events
> >
> > I’m not sure I see how 1 addresses this risk by itself. Are you thinking
> > about this in isolation, or combined with some other mitigations (like RPKI
> > and DNSSEC)? And, if combining, do we really need 1 to bind the method,
> > versus something like account binding?
>
> Account binding might not be available for certain CAs.
Then don't use those certain CAs, and restrict those CAs from issuing for
your domain by not including them the domain's CAA records.
> I would like it if
> e.g. CAA would also allow for restricting validation methods:
RFC8657 defines the `validationmethods` parameter to the `issue` and
`issuewild` CAA properties. Again, if a given CA doesn't support those
parameters, you can avoid the problem by not including that CA in your CAA
records.
--
You received this message because you are subscribed to the Google Groups "dev-secur...@mozilla.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dev-security-po...@mozilla.org.
To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/b84287a6-94bd-450e-aa6b-49c629cae2ddn%40mozilla.org.