DEF CON 26 CRYPTO AND PRIVACY VILLAGE - Scott Arciszewski - No Way JOSE! Designing Cryptography
DEFCONConference2 HN recommenders · 2019–2020
7K views · talk · evergreen · Uploaded 2018-11-24
Scott Arciszewski's DEF CON 26 Crypto and Privacy Village talk critiquing the JOSE standards (JWT, JWS, JWE) and showing how to design cryptographic tokens more safely.
HN recommends it as the video version of the argument that JOSE/JWT is a flawed standard, and as a help in understanding token design choices.
51:32Behind the Scenes of iOS Security
Black Hat
12:01Why Electronic Voting Is Still A Bad Idea
Tom Scott
25:16But how does bitcoin actually work?
3Blue1Brown
51:22USENIX Security '18-Q: Why Do Keynote Speakers Keep Suggesting That Improving Security Is Possible?
USENIX
42:50Defcon 18 Changing threats to privacy Moxie Marlinspike Part
killab66661
59:2328c3: The Science of Insecurity
28c3
49:47DEF CON 25 - John Sotos - Genetic Diseases to Guide Digital Hacks of the Human Genome
DEFCONConference
8:38Diffie-Hellman Key Exchange
Art of the Problem
3 comments from Hacker News
Blog post: [LINK] DEFCON CPV talk: [LINK] + [VIDEO] Alternative design that isn't radioactive: [LINK] Apologies if this wasn't more readily available or commonly known. I'm worse at marketing than I am at engineering.
If you like video consumption, a DEFCON 2018 talk by the author Scott Arciszewski on this same topic can be found here: No Way JOSE! Designing Cryptography: [VIDEO] You're welcome :) Edit: Clarify that Scott is the author of both post and video.
I've been doing a similar thing recently. I found PASETO to be interesting ( [LINK] ), which is a lot like JWT but is simpler and more opinionated (e.g. there is no plaintext option; symmetric and asymmetric operations are cleanly separated; etc.). I especially enjoyed watching this video [VIDEO] I still decided to go with JWT, since PASETO isn't yet standard and its software hasn't been around for long, but it definitely helped me understand more about the choice I was making. In particular, PASETO distinguishes between "local" tokens (producer and consumer can both use the same symmetric key) versus "public" tokens (producer and consumer can't use the same key, e.g. third party services run by different organisations; hence asymmetric keys are needed). PASETO encourages local tokens to be used when possible, since their keys can be shorter, they generate shorter tokens, they're faster to encrypt/decrypt, they're easier to rotate, etc.; public tokens are essentially a last resort when we must interact with a third party. I was originally considering 'public' JWTs (i.e. asymmetric keys) for my use case, since we're using AWS API Gateway and that has the option to check the signatures of 'public' JWTs, and reject invalid ones before they ever hit my code. However, I eventually went with 'local' JWTs (i.e. symmetric keys), since the convenience of having AWS discard some tokens for us wasn't worth the (mostly logistical) overhead of using asymmetric keys. My choice to use the J