27 ms·
Let's Encrypt has turned on stricter validation requirements
- jaas 7y agoThe blog post is probably more understandable and relevant for readers here: https://letsencrypt.org/2020/02/19/multi-perspective-validation.html https://letsencrypt.org/2020/02/19/multi-perspective-validat... Maybe we can get the link changed?
- oefrha 7y agoThe current link [1] is a lot more concise and informative (specifically, what users should do) IMO. The blog post expands a little on BGP hijacking but honestly it could be summarized in one short paragraph. [1] https://community.letsencrypt.org/t/acme-v1-v2-validating-challenges-from-multiple-network-vantage-points/112253 https://community.letsencrypt.org/t/acme-v1-v2-validating-ch...
- jsjddbbwj 7y agoI don't see how that less technical, more full of fluff post is better for readers of this website
- MrStonedOne 7y agoIt doesn't require 3rd party javascript to read?
- wpietri 7y agoI'm fine with keeping the original link. But the original post doesn't actually explain why this is happening, while the suggested replacement explains the problem.
- Avamander 7y agoThe first paragraph already highlights the issue I have with it. I don't want to loosen my firewall, some countries and their IP ranges just need not access my server.
- vegardx 7y agoThen use a different method of validation, like DNS?
- josteink 7y agoDNS validation once setup is so much easier to work with, for all use-cases I can imagine, I will never go back to HTTP-based authentication. Really, do give it a try.
- Avamander 7y agoImpossible (to do safely) with most providers I've seen, even CloudFlare doesn't offer a properly limited API key.
- RL_Quine 7y agoSo delegate the validation with a CNAME and do it somewhere that’s not cloudflare. They provide signing with their own CA for origin certificates so I don’t really know why you’re using Let’s Encrypt at all. Your idea of just randomly blocking access from certain IP address ranges doesn’t really provide you with any security at all. If you’re worried about rusaian hackers or whatever, most people exploiting anything have access to botnets with whatever bespoke IP address ranges they need to bypass those sort of rules. In anti fraud we see this commonly, people using stolen details will happily get better matches with GEOIP than the legitimate users of the credentials. Blocking specific countries IP allocations is just providing a false sense security on your part.
- Avamander 7y ago> So delegate the validation with a CNAME and do it somewhere that’s not cloudflare. Like? For what price? > Blocking specific countries IP allocations is just providing a false sense security on your part. No, it's a preventative measure. Just like changing SSH to a non-standard port reduces pointless attempts.
- MrStonedOne 7y agoToo bad I can't read them because the site doesn't load at all with 3rd party scripts disabled.
- codegladiator 7y agoIt works for me with NoScripts blocking the two js requests it tried to make.
- thenewnewguy 7y agoWorks fine for me, uMatrix with javascript disabled by default. Edit: Ah, upon testing it breaks if you have 1st party JS allowed but not 3rd party. This is pretty reasonable in my opinion.
- azdle 7y agoFor me it seems to also require that you turn on "Spoof <noscript> tags" in uMatrix.
- GuyPostington 7y agoHere you go, read the source. https://raw.githubusercontent.com/letsencrypt/website/master/content/en/post/2020-2-19-multi-perspective-validation.md https://raw.githubusercontent.com/letsencrypt/website/master...
- MrStonedOne 7y agoThank you
- xfalcox 7y agoIs that because assets are hosted in a CDN?
- kps 7y agoIt took me three tries with scripts enabled; perhaps they're overloaded. (Taking 5MB and 2s to send 500 words of text can do that, but since the primary audience of Let's Encrypt is web folks, there's some schadenfreude in my weltschmerz.)
- spydum 7y agoI don't see how this resolves BGP hijacking attacks? If I announce a more specific route all four locations should still land on my hijacked network... Or is this trying to race the BGP propagation?
- jaas 7y agoIt doesn't "resolve" BGP attacks. The point is an attacker would have to pull off three or four successful attacks at once, which is harder than pulling off just one, especially if they hope to go unnoticed.
- tialaramex 7y agoOr of course for smaller targets their attack is just much closer to the target than to any of the multiple viewpoints, and so this mitigation makes no difference to them whatsoever. We shall see how well this works in practice. Assuming it's relatively cheap it's harmless to at least try.
- mittalprat 7y agoIf the domain is hosted on a /24, then more specific routes will be filtered out by default in most ASes. Also, with the increasing adoption of RPKI, in conjunction with its maxlength option, more specific attacks will be a challenge for adversaries.
- mike_d 7y agoIf you announce a matching /24 it will fall back to shortest distance. If the original network has a long AS path, you can still hijack from a moderately well connected network.
- Rebles 7y agoI may be naive, but it seems like it might be more secure if the first step was to deploy a self-signed cert on the server, step 2, give Let's Encrypt the public key of the self signed cert, so Let's Encrypt can validate who you are, then proceed with Let's Encrypt's regular validation process, obviously replacing your self-signed cert with the one issued by Let's Encrypt at the end.
- smw 7y agoWouldn't an attacker be able to create a self-singed cert just as easily?
- tialaramex 7y agoSelf-signed. Yes, an attacker would not ordinarily find this harder to pass than the http-01 challenge today. Validation using this approach was method 3.2.2.4.9 ("Test Certificate") and is no longer permitted for new issuance under current Baseline Requirements. Let's Encrypt offers three ACME methods which implement 3.2.2.4.6 ("Agreed Upon Change to Website"), 3.2.2.4.7 ("DNS Change") and 3.2.2.4.10 ("TLS Using a Random Number").
- movedx 7y ago> 3.2.2.4.9 > Baseline Requirements Where can I find these details? Sorry if I'm being a bit dense here.
- tialaramex 7y agoThe CA/Browser Forum publishes the Baseline Requirements to their web site https://cabforum.org/baseline-requirements-documents/ https://cabforum.org/baseline-requirements-documents/ In recent years the BRs are using RFC 3647 structure. This RFC gives an outline for how to write policy documents for PKIX (X.509 Public Key Infrastructure for the Internet) and rather than wrestle with each organisation having its own preferred way to organise much the same information the trend is to require RFC 3647, so you know the stuff about names will be in section 3 for example The RFC 3647 structure doesn't break down as far as 3.2.2.4 but 3.2.2 is where people explain how they're going to validate organisation names, and so in the Baseline Requirements 3.2.2.4 is where the "Ten Blessed Methods" are described, the authorised means by which public CAs can determine if the name you want a certificate for is really yours.
- sysashi 7y agoI've also received a notification email about my outdated acme client, thanks!
- eric_b 7y agoIt's already painful to get Let's Encrypt set up in a web farm scenario. This won't make it easier.
- snapetom 7y agoIf you or your company has enough money for a web farm, you should just buy your own cert.
- GreenJelloShot 7y agoWhat? Web farms are automatically expensive? A web farm can literally be two Raspberry Pis behind a simple load balancer. What if this isn't "my company"? What if I run a web farm at home for fun? Besides, your argument could be used to justify any price hike! "If you can afford X, then you can afford Y!"
- nine_k 7y agoWhy isn't your LB terminate TLS?
- GuyPostington 7y agoYou should check out https://community.letsencrypt.org https://community.letsencrypt.org and ask for help there!
- teraflop 7y agoHow does it make it any more difficult?
- paranoidrobot 7y agoIt's not going to make it easier, but if you can already answer challenges - then it won't make it any harder. You just don't stop answering challenges until the cert gets issued. I don't know why anyone would have stopped answering challenges after the first request anyway. Surely the default assumption should be that everyone has network & processing failures, and hey maybe ACME would need to check again if something broke before the cert was signed.
- creeble 7y agoTL;dr - can this be fixed by updating to the latest certbot package?
- progval 7y agoYou don't need any update.
- mittalprat 7y agoFor readers interested in understanding the technical details about potential BGP attacks on domain validation, which serve as a motivation for Let's Encrypt's multi-perspective validation deployment, see the following paper from USENIX Security: https://www.usenix.org/conference/usenixsecurity18/presentation/birge-lee https://www.usenix.org/conference/usenixsecurity18/presentat...
- dgacmu 7y agoAnd for background on the multiple perspectives validation approach: http://www.cs.cmu.edu/~dga/papers/perspectives-usenix2008.pdf http://www.cs.cmu.edu/~dga/papers/perspectives-usenix2008.pd...
- movedx 7y agoThis was excellent. Thanks for sharing. Think about the contents of that video/PDF for a second. The guys/gals doing that bit of research at the university are clearly smart, but imagine what a state level actor can do?
- londons_explore 7y agoThis is a good start... But I think it would be far better for them to focus on alerting webmasters if someone does manage to get a new certificate issued for a domain before the old one expires. Certbot should reference the old certificate when doing a renewal. If someone registers a new certificate while an old one is valid and without referencing the old one, the owner of the old certificate should be notified loudly (sms, different-domain email, etc). Same if they register a certificate through a different provider. Today all of the above is possible with certificate transparency logs, but nobody looks in them, so they're useless.
- waste_monk 7y ago>Today all of the above is possible with certificate transparency logs, but nobody looks in them, so they're useless. I check mine once or twice a month manually, but it is pretty trivial to monitor it automatically as well, e.g. there are APIs for crt.sh or they even offer direct public read access to their database. I believe certificate users should remain responsble for their own monitoring. Alerting as you say would be very annoying since you couldn't preemptively replace certs without getting alerted unecesarily, and it would divert Let's Encrypt developer resources away from more useful projects.
- londons_explore 7y ago> very annoying since you couldn't preemptively replace certs You would sign your request for a new cert with the private key of your old cert, proving you are the same person, which would suppress the alert. Obviously the key provisioning tooling would do that automatically, so you needn't do it manually.
- technion 7y agoI built this project to make such automated monitoring easier: https://ctadvisor.lolware.net https://ctadvisor.lolware.net
- smartbit 7y agoLove the site, great sense of humor. Wish you all the best with this project.
- polyphonicist 7y agoDoes this require the user to make any changes? I run a simple static website served with Nginx. I would like to know if this change has any impact on me.
- craftyguy 7y agoThe answer is in the article.
- mcpherrinm 7y agoNo changes are required, unless you had some kind of IP restriction on who your server may be contacted by. Which your simple static site is probably fine with.
- hedora 7y agoDoes anyone know of a “set it and forget it” alternative to Let’s Encrypt? I’m all for making things more secure, but they’ve broken all of my certs in the last 12 months (in different ways, at different times), and I’m sick of it.
- wiremaus 7y agoSame here. I had them running for a small informational website, and they took the site down for several days via surprise cert problems. I may switch to a paid provider.
- Crosseye_Jack 7y agoIf you give an email address to your LE client you should get an few emails from LE advising you when a cert is due to expire giving you some time to get it sorted before your old cert expires. Edit: personally I also have a script that runs every day and checks the validity of all the certs in my live directory and pings me when they are due to expire as a second measure.
- LukeShu 7y agoI most of the LE/ACME breakages I've seen, the issue was that something broke in certbot (or other client) when rotating in the new cert, not that it was unable to get a new cert issued. LE won't email you about that.
- Crosseye_Jack 7y agoWhich is why I monitor the live certs expiry dates as well. But that’s a bug with the client then with LetEncypt.
- Crosseye_Jack 7y agoNot used them in production (only in my toy projects) but I’ve heard decent things about this https://www.buypass.com/ssl/products/go-ssl-campaign https://www.buypass.com/ssl/products/go-ssl-campaign They use the same acme system as LE so depends on what failed for you for it to be a viable alternative (if the certbot failed for example then it might of failed using buypass in the same way as it would of failed under LE)
- oblib 7y agoWe'll see how it works in practice. After reading the intro to what they're doing I think I'll update a few certs before they expire to make sure it works, but from what I've read I don't anticipate any problems. LE has been great for me.
- jve 7y agoFYI, Last week, before I unblocked my firewall, when I tried to get certs from LE, it tried to knock me some 5 or 6 times from different IPs. Checked some ASNs, one was from AMAZON, the other one I don't remember.