6 ms·
TLS Mastery
- calpaterson 6y agoCan someone who has read it post their review? The contents look good and I feel like it might help me patch some holes in my knowledge. It has the advantage of at least looking like it's up to date (a lot of SSL writing has been obsoleted).
- FlacoJones 6y agoJust bought the Tux edition on Amazon for Kindle. $10. Says it was published/updated April 5, 2021. Hands on practice with OpenSSL. Engaging writing style. Doesn't assume too much or too little. No bullshit. This command alone in the first ten pages makes it worth it. Establish TLS connection, get certs, and decode certs for any site: openssl s_client -showcerts -connect www.mwl.io:443 </dev/null | openssl x509 -text -noout 10/10.
- whydoyoucare 6y agoHmmm... for that kind of stuff, I've found sslshopper's page to be very useful. https://www.sslshopper.com/article-most-common-openssl-commands.html https://www.sslshopper.com/article-most-common-openssl-comma... And for the TLS handshake, this is incredibly useful: https://tls.ulfheim.net https://tls.ulfheim.net (The Illustrated TLS Connection). Towards the bottom of this page, you now have TLS 1.3 illustrated as well.
- rufius 6y agoEvery book MWL has released has been super helpful in my experience. Probably one of the best tech writers I’ve ever encountered. I own most of this books - especially the more BSD specific ones.
- eandre 6y agoTLS always felt like a scary beast to me until I started writing Go. The crypto/tls package is amazing and makes doing incredible things with TLS super easy. We're using it in lots of interesting ways behind the scenes for Encore, leveraging Vault, a custom CA, SPIFFE for workload identity and more. I haven't read the book, but learning more about TLS is easily one of the best time investments I've made.
- rad_gruchalski 6y ago> TLS always felt like a scary beast to me until I started writing Go. The crypto/tls package is amazing and makes doing incredible things with TLS super easy. This x100. I have been recently developing an embedded CA for a gRPC service in golang. Issuing a root, intermediate, server and a client cert for mtls is less than 350 lines of code. It’s incredible. I’ve written more about it here: https://gruchalski.com/posts/2021-03-28-firebuild-rootfs-grpc-with-mtls/ https://gruchalski.com/posts/2021-03-28-firebuild-rootfs-grp....
- fierro 6y agojust curious, what do you need SPIFEE workload identity for? I've used it in the past for building something like Tailscale
- eandre 6y agoWe use it as part of mTLS to provide access to application metadata. It doesn't need to be SPIFFE but it made sense for our use case :)
- fierro 6y agoI see, so a workload spins up and wants to learn something about itself and uses identity verification to gain access to it? My use case was an untrusted node getting a centrally issued key to join a p2p VPN
- baybal2 6y agoI learned few years ago that you can do TLS auth without client side certs. People were always surprised how they stay logged in after clearing cookies.
- BiteCode_dev 6y agoDo you have a link to a tutotial for that ?
- baybal2 6y agoNo, but it's very easy to grasp. https://blog.cloudflare.com/tls-session-resumption-full-speed-and-secure/ https://blog.cloudflare.com/tls-session-resumption-full-spee... did it perfectly. Basically, you need to get the session ticket from the webserver being available at the backend, and set its lifetime to something reasonable. At least NGINX can then handle all of the session resume/renew logic by itself.
- luto 6y agoWhich TLS feature are you referring to?
- spockz 6y agoI think he might be referring to tls sessions. When a client comes back to a server it remembers that it connected to it can send a session Id encrypted with the master secret or a complete session ticket. When the handshake completes successfully you know who it was if you stored that information. It saves using a cookie. Also it might not be supported in every client. I think you still need to have mTLS or another credential to use initially for auth. Unless I miss an option. As such I don’t see much value over mtls in a corporate network setting.
- ALOHa100 6y agohttps://blog.cloudflare.com/tls-session-resumption-full-speed-and-secure/ https://blog.cloudflare.com/tls-session-resumption-full-spee...
- ancarda 6y agoAnyone know if the book covers ESNI? Or if there's a good resource on how to set that up with Nginx, CloudFlare DNS, and Let's Encrypt? EDIT: Okay, it looks like this is not yet ready for most people to use.
- tialaramex 6y agoEncrypted Client Hello, which is what eSNI developed into, is an active draft for the TLS working group. If you have relevant expertise I'm sure that the group would be happy to have you, in particular if you have any insight into how to achieve goals like Don't Stand Out while also keeping ECH as simple as possible. https://www.youtube.com/watch?v=AIDnO_QB64A https://www.youtube.com/watch?v=AIDnO_QB64A is the most recent interim video conference meeting on this topic. I expect that during 2021 they'll pin down the more controversial parts that remain to be done.
- 1vuio0pswjnm7 6y agohttps://defo.ie https://defo.ie As an end user, I have been using ESNI-enabled openssl to make HTTP requests to sites using Cloudflare and for me it works great.
- friend-monoid 6y agoI bought it and skimmed through most of it, and I have a hard time recommending it personally. It’s really short on the crypto and offers no insight into why TLS behaves the way it does. I would like to at least see an explanation of the TLS handshake process, but there is none. It’s a lot of “using openssl s_client”-type of discussion; i.e. how to use it, not so much on how it works, and that applies to most of the book (including the ocsp parts). Practical, not necessarily theoretical; but if that’s what you are looking for, then it’s a great book.
- devy 6y ago> It’s really short on the crypto and offers no insight into why TLS behaves the way it does. ... It’s a lot of “using openssl s_client”-type of discussion; That is literally how the author explained in his book's Amazon Kindle version's free preview[1]. The author specifically said he is not a brilliant mathematician so he's not going into the details of explaining the math but rather explain the how-to from a practitioner's standpoint. Obviously, you don't need to be a brilliant mathematician in order to under the math behind public-key cryptography but for many engineers, I agree with the author that I care more of about how to configure it and make it work securely rather than the reason behind the scene. The author also claimed that he would recommend some further readings if you would like to dig into it more. [1]: https://www.amazon.com/gp/product/B091TBX4WH https://www.amazon.com/gp/product/B091TBX4WH
- superkuh 6y agoStep 1. Give up volition to a third party certificate authority and hope your internet service is never controversial enough to get it revoked like sci-hub.
- iso1631 6y agoI have my own certs signed by my own CA that I trust enough to have in my browser allowed CA cache However I'd far rather be able to import a root cert with my own constraints -- use this root cert to authenticate by only for sites in my list (which I'd add say .blarge.com, .muhhaa.de, dohicky.google.com, etc), but that feature doesn't site in firefox, I either trust the root or I don't, which means I have to be far more careful about the root cert because rather than intercepting a few dev sites.
- tialaramex 6y agoIf you want this, (I don't advise it but you seem to have your heart set) the way to do it goes like this: 1. Generate a fresh root as you do today. Keep the resulting CA certificate for the root to one side, let's call this CA1 2. Create an intermediate CA certificate, this says there's a new CA, let's call it CA2 with a new private key, and this certificate gets to have constraints. Put all the constraints you've decided upon in here. Sign it using CA1 with your private key. 3. Destroy the private key for CA1. 4. Tell Firefox to trust root CA1. 5. You can now issue from CA2 and since it chains back to CA1 this is trustworthy, but only so long as it obeys the constraints. You can't issue from CA1 (which is fully trusted) because you destroyed the key.
- tedunangst 6y agoFirefox supports the name constraints extension.
- iso1631 6y agoProblem with the constraints is that relies on me creating new intermediate certificates for every new domain
- 6y ago
- smitty1e 6y agoFeisty Duck has some great material and training in this vein => https://www.feistyduck.com/ https://www.feistyduck.com/ I just sat through the 4 1/2 day online training they offer, and thought it was worth the price, as long as the company was picking up the tab.
- srathi 6y agoI recommend this blog post as a good primer for TLS. http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html http://www.moserware.com/2009/06/first-few-milliseconds-of-h...
- Tepix 6y agoYes, a fantastic article! I hope we get an updated version with ESNI / Encrypted Hello eventually
- rcgorton 6y ago"Mastery" as described seems to be how to use your browser or app to perform this, without actually understanding it. It is not necessary to understand in detail the crypto underpinnings - that is WAAAY beyond most folks (myself included) But if you need to understand the TLS actions, including HTTP2 details, this is NOT useful.
- Voline 6y agoIn my opinion, Michael W Lucas is one of the best tech writers working today. I have made great use of his books Absolute OpenBSD, SSH Mastery, and Httpd & Relayd Mastery. He also wrote Absolute FreeBSD and PGP & GPG: Email for the Practical Paranoid, among many others.
- Tepix 6y agoMy first impression is that a book called "TLS Mastery" should dive deeper than what the toc suggests this one does. TLS privacy seems to be a big rather little-known topic. OCSP leaks etc. Does this book cover it in-depth?