Lucene search
K
FilippoioRecent

105 matches found

Filippo.io
Filippo.io
added 2020/09/07 10:0 p.m.13 views

NaCl Is Not a High-Level API

When talking about high-level application cryptography APIs I usually hear mentioned libsodium, Tink, pyca/cryptography, and NaCl. One of these things is not like the others! The value NaCl had 10 years ago was that it was an opinionated library at a time when all cryptography libraries were...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2020/08/21 10:0 p.m.16 views

Registries Considered Harmful

Cryptographic protocols and specifications often come with registries that map numeric or string identifiers to algorithms or suites. Something like this. 1 RSA-PSS-SHA256 2 RSA-PSS-SHA512 3 ECDSA-P256-SHA256 4 ECDSA-P521-SHA512 5 Ed25519 ... Youll find them everywhere. TLS, X.509, SSH, PGP, you...

0.2AI score
Exploits0
Filippo.io
Filippo.io
added 2020/07/18 10:0 p.m.68 views

Replace PGP With an HTTPS Form

I asked my Twitter followers what I should talk about in this issue, and those trolls picked PGP and security vulnerability reporting, so here goes nothing. As you probably know, the school of modern cryptography thinking I subscribe to says that tools and protocols should be small, simple, and...

5.8CVSS8.4AI score0.94093EPSS
Exploits14
Filippo.io
Filippo.io
added 2020/07/03 10:0 p.m.74 views

DSA Is Past Its Prime

I want to start by acknowledging that tech is not the most important thing happening around me at the moment. Its critical to understand our role in fixing the issues in the system we are part of. I found that Russ Cox captured that message very well in a recent email to golang-nuts, you should...

5CVSS7.9AI score0.0234EPSS
Exploits1
Filippo.io
Filippo.io
added 2020/05/26 10:0 p.m.15 views

Is X25519 Associative? Sometimes!

X25519 is a simple Elliptic Curve Diffie-Hellman ECDH function: it takes a scalar a fancy name for an integer1 and an elliptic curve point, and it multiplies the elliptic curve point by the scalar. Point additions and multiplications work modulo the order of the point, just like hours on a watch...

Exploits0
Filippo.io
Filippo.io
added 2020/04/23 10:0 p.m.20 views

OpenSSH 8.2 Just Works with U2F/FIDO2 Security Keys

OpenSSH is on a roll. In February, OpenSSH 8.2 introduced first-class support for FIDO2 nee U2F security keys, making hardware backed keys accessible for less than $20. This is not some complicated PAM setup, or some janky cryptographic trick, but a proper public key type, where the private key i...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2020/04/18 7:53 p.m.40 views

Hacking together a USB-C charger for a cheap Chromebook

The era of USB-C has come. The other day I threw all other cables into a box, and bought a set of USB-C to USB-C, Lightning, and microUSB cables. USB-C chargers around the house, USB-C PD power bank, even a nice small USB-C dock that works with the Nintendo Switch if the charger can do the right...

7.2AI score
Exploits0
Filippo.io
Filippo.io
added 2020/03/15 6:18 p.m.57 views

Install Go tools from modules with brew-gomod

As of Go 1.14, modules are ready for production. Compared to GOPATH, they make it much easier to keep workspaces clean by managing dependencies out of sight, and by letting you clone projects anywhere. However, there is no good way to simply install a Go binary from source, yet. The core reason f...

7.3AI score
Exploits0
Filippo.io
Filippo.io
added 2020/02/27 11:0 p.m.11 views

New Crypto in Go 1.14

Go 1.14 is out and with it come a few nice updates to crypto/tls! Will this certificate work? Certificate selection in TLS1 is a mess. I was going to try and describe it here to make the point, but I kept getting it wrong and it was even too messy for something just meant to make the point that i...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2020/02/09 11:0 p.m.19 views

The Linux CSPRNG Is Now Good!

Oceans of ink and hours on stage have been spent to convince the world that the best random number generator is /dev/urandom, the kernel one. And it is, and its always been. However, an uncomfortable truth was that the Linux CSPRNG really could have been better than it was. Userspace CSPRNGs...

7.1AI score
Exploits0
Filippo.io
Filippo.io
added 2019/07/18 5:4 a.m.212 views

Efficient Go APIs with the mid-stack inliner

A common task in Go API design is returning a byte slice. In this post I will explore some old techniques and a new one that became possible in Go 1.12 with the introduction of the mid-stack inliner. Returning a fresh slice The most natural approach is to return a fresh byte slice, like...

Exploits0
Filippo.io
Filippo.io
added 2019/05/18 4:25 p.m.96 views

Using Ed25519 signing keys for encryption

@Benjojo12 and I are building an encryption tool that will also support SSH keys as recipients, because everyone effectively already publishes their SSH public keys on GitHub. For RSA keys, this is dangerous but straightforward: a PKCS1 v1.5 signing key is the same as an OAEP encryption key...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2019/04/02 4:45 p.m.82 views

A Go implementation of Poly1305 that makes sense

Poly1305 is a Message Authentication Code--a cryptographic primitive for authenticating a message with a shared secret key, like HMAC. Although its really a fraction of the complexity of e.g. elliptic curves, most of the implementations Ive read look decidedly like magic, mysteriously multiplying...

7.4AI score
Exploits0
Filippo.io
Filippo.io
added 2019/01/07 2:8 a.m.100 views

mkcert: valid HTTPS certificates for localhost

or for any other names The web is moving to HTTPS, preventing network attackers from observing or injecting page contents. But HTTPS needs TLS certificates, and while deployment is increasingly a solved issue thanks to the ACME protocol and Let's Encrypt, development still mostly ends up happenin...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2019/01/07 2:8 a.m.23 views

mkcert: valid HTTPS certificates for localhost

or for any other name The web is moving to HTTPS, preventing network attackers from observing or injecting page contents. But HTTPS needs TLS certificates, and while deployment is increasingly a solved issue thanks to the ACME protocol and Lets Encrypt, development still mostly ends up happening...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2018/09/10 4:25 a.m.64 views

Touch-to-operate password-store with YubiKey 4

There are dozens of tutorials on how to fight GnuPG to use YubiKeys for everything, but my favorite overlooked feature of the YubiKey 4 is "touch to operate", where each cryptographic operation takes a physical touch of the gold surface. That pairs particularly well with password-store, a PGP...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2018/09/10 4:25 a.m.19 views

Touch-to-operate password-store with YubiKey 4

There are dozens of tutorials on how to fight GnuPG to use YubiKeys for everything, but my favorite overlooked feature of the YubiKey 4 is "touch to operate", where each cryptographic operation takes a physical touch of the gold surface. That pairs particularly well with password-store, a PGP...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2018/05/03 3:53 a.m.24 views

Making a Gmail bot with Apps Script and TypeScript

Google Apps Script is one of the best hidden features of Gmail. Did you ever want just a bit more flexibility from a filter? Maybe the ability to remove a label, or match on a header, or just decide the order they are applied in. Apps Script can do all that and then some. They are simple JavaScri...

7.4AI score
Exploits0
Filippo.io
Filippo.io
added 2018/05/03 3:53 a.m.18 views

Making a Gmail bot with Apps Script and TypeScript

Google Apps Script is one of the best hidden features of Gmail. Did you ever want just a bit more flexibility from a filter? Maybe the ability to remove a label, or match on a header, or just decide the order they are applied in. Apps Script can do all that and then some. They are simple JavaScri...

7.4AI score
Exploits0
Filippo.io
Filippo.io
added 2018/02/07 10:57 p.m.17 views

Easy Windows and Linux cross-compilers for macOS

tl;dr: you can install cross-compiler toolchains to compile C/C++ for Windows or Linux from macOS with these two Homebrew Formulas. brew install FiloSottile/musl-cross/musl-cross brew install mingw-w64 Cross-compiling C and C++ is dreadful. While in Go you just need to set an environment variable...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2018/02/07 10:57 p.m.25 views

Easy Windows and Linux cross-compilers for macOS

tl;dr: you can install cross-compiler toolchains to compile C/C++ for Windows or Linux from macOS with these two Homebrew Formulas. brew install FiloSottile/musl-cross/musl-cross brew install mingw-w64 Cross-compiling C and C++ is dreadful. While in Go you just need to set an environment variable...

6.7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/10/14 7:48 p.m.25 views

Live streaming Cryptopals

tl;dr: Im livecoding the Cryptopals in Go on Twitch, one set every Sunday. The recordings are on YouTube. Oh, wow. I love the idea. Would anyone here seriously watch 20 to 40 hours of me doing crypto, math and Go? Mic, screen, and everything. -- Filippo Valsorda @FiloSottile October 16, 2016 Almo...

7.5AI score
Exploits0
Filippo.io
Filippo.io
added 2017/10/14 7:48 p.m.60 views

Live streaming Cryptopals

tl;dr: I'm livecoding the Cryptopals in Go on Twitch, one set every Sunday. The recordings are on YouTube. Oh, wow. I love the idea. Would anyone here seriously watch 20 to 40 hours of me doing crypto, math and Go? Mic, screen, and everything. -- Filippo Valsorda @FiloSottile October 16, 2016...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/10/04 2:49 p.m.17 views

The scrypt parameters

The recommended scrypt parameters in the Go docs were recently brought up for discussion given they havent changed since 2009. Even if at this point I memorized the three numbers N=16384, r=8, p=1 I only have a vague understanding of their meaning, so I took some time to read the scrypt paper. It...

7.1AI score
Exploits0
Filippo.io
Filippo.io
added 2017/10/04 2:49 p.m.37 views

The scrypt parameters

The recommended scrypt parameters in the Go docs were recently brought up for discussion given they haven't changed since 2009. Even if at this point I memorized the three numbers N=16384, r=8, p=1 I only have a vague understanding of their meaning, so I took some time to read the scrypt paper...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2017/09/28 4:24 p.m.19 views

We need to talk about Session Tickets

More specifically, TLS 1.2 Session Tickets. Session Tickets, specified in RFC 5077, are a technique to resume TLS sessions by storing key material encrypted on the clients. In TLS 1.2 they speed up the handshake from two to one round-trips. Unfortunately, a combination of deployment realities and...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/09/28 4:24 p.m.12 views

We need to talk about Session Tickets

More specifically, TLS 1.2 Session Tickets. Session Tickets, specified in RFC 5077, are a technique to resume TLS sessions by storing key material encrypted on the clients. In TLS 1.2 they speed up the handshake from two to one round-trips. Unfortunately, a combination of deployment realities and...

6.7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/09/16 2:47 p.m.94 views

A secure captive portal browser with automatic DNS detection

Captive portals are the worst. Flaky detection. The OS and browser try to detect these annoying network features but fail quite often, leaving you with broken connections. DID YOU KNOW that probe-based captive portal detection really doesnt work very well, with 30% FP and 30% FN rate in Chrome? -...

9.3CVSS8.3AI score0.01EPSS
Exploits0
Filippo.io
Filippo.io
added 2017/09/16 2:47 p.m.1029 views

A secure captive portal browser with automatic DNS detection

Captive portals are the worst. Flaky detection. The OS and browser try to detect these annoying network features but fail quite often, leaving you with broken connections. DID YOU KNOW that probe-based captive portal detection really doesn't work very well, with 30% FP and 30% FN rate in Chrome? ...

9.3CVSS8.3AI score0.01EPSS
Exploits0
Filippo.io
Filippo.io
added 2017/09/06 8:7 p.m.50 views

Playing with kernel TLS in Linux 4.13 and Go

Linux 4.13 introduces support for nothing less than... TLS! The 1600 LoC patch allows userspace to pass the kernel the encryption keys for an established connection, making encryption happen transparently inside the kernel. The only ciphersuite supported is AES-128-GCM as per RFC 5288, meaning it...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2017/09/06 8:7 p.m.20 views

Playing with kernel TLS in Linux 4.13 and Go

Linux 4.13 introduces support for nothing less than... TLS! The 1600 LoC patch allows userspace to pass the kernel the encryption keys for an established connection, making encryption happen transparently inside the kernel. The only ciphersuite supported is AES-128-GCM as per RFC 5288, meaning it...

7.3AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/29 8:32 p.m.18 views

restic cryptography

tl;dr: this is not an audit and I take no responsibility for your backups, but I had a quick look at the crypto and I think I'm going to use restic for my personal backups. I keep hearing good things about restic. I am redoing my storage solution, and restic seems to tick all the boxes for my...

7.2AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/29 8:32 p.m.98 views

restic cryptography

tl;dr: this is not an audit and I take no responsibility for your backups, but I had a quick look at the crypto and I think I'm going to use restic for my personal backups. I keep hearing good things about restic. I am redoing my storage solution, and restic seems to tick all the boxes for my...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/15 12:20 p.m.20 views

rustgo: calling Rust from Go with near-zero overhead

русский Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times. However, writing assembly code is hard, reviewing it is possibly harder, and cryptography is unforgiving. Wouldn't it ...

6.6AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/15 12:20 p.m.68 views

rustgo: calling Rust from Go with near-zero overhead

русский Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times. However, writing assembly code is hard, reviewing it is possibly harder, and cryptography is unforgiving. Wouldn't it ...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/12 11:39 p.m.17 views

Cleaning up my GOPATH with Homebrew

tl;dr: use the script at the bottom to go get into the Homebrew "Cellar" and keep your GOPATH clean. I personally like GOPATH and import paths, but while trying to reduce my laptop to a thin reproducible client, I felt the pain of keeping track of the hundreds of repositories that end up in there...

7.4AI score
Exploits0
Filippo.io
Filippo.io
added 2017/08/12 11:39 p.m.118 views

Cleaning up my GOPATH with Homebrew

tl;dr: use the script at the bottom to go get into the Homebrew "Cellar" and keep your GOPATH clean. I personally like GOPATH and import paths, but while trying to reduce my laptop to a thin reproducible client, I felt the pain of keeping track of the hundreds of repositories that end up in there...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2017/04/23 7:56 p.m.12 views

Reproducing Go binaries byte-by-byte

Fully reproducible builds are important because they bridge the gap between auditable open source and convenient binary artifacts. Technologies like TUF and Binary Transparency provide accountability for what binaries are shipped to users, but that's of limited utility if there is no way short of...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/04/23 7:56 p.m.15 views

Reproducing Go binaries byte-by-byte

Fully reproducible builds are important because they bridge the gap between auditable open source and convenient binary artifacts. Technologies like TUF and Binary Transparency provide accountability for what binaries are shipped to users, but that's of limited utility if there is no way short of...

6.7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/03/31 2:10 p.m.18 views

Setting a custom FileVault (macOS FDE) passphrase

FileVault 2 is the full-disk encryption system of macOS. Normally, it's turned on from System Preferences, and locks the disk with the passwords of all the users allowed to unlock the machine. Overloading the login/unlock/sudo password is an understandable UX simplicity choice, but makes it very...

7.2AI score
Exploits0
Filippo.io
Filippo.io
added 2017/03/31 2:10 p.m.26 views

Setting a custom FileVault (macOS FDE) passphrase

FileVault 2 is the full-disk encryption system of macOS. Normally, it's turned on from System Preferences, and locks the disk with the passwords of all the users allowed to unlock the machine. Overloading the login/unlock/sudo password is an understandable UX simplicity choice, but makes it very...

6.8AI score
Exploits0
Filippo.io
Filippo.io
added 2017/02/09 2:14 a.m.93 views

Finding Ticketbleed

Ticketbleed CVE-2016-9244 is a software vulnerability in the TLS stack of certain F5 products that allows a remote attacker to extract up to 31 bytes of uninitialized memory at a time, which can contain any kind of random sensitive information, like in Heartbleed. If you suspect you might be...

5CVSS7AI score0.67474EPSS
Exploits6
Filippo.io
Filippo.io
added 2017/02/09 2:14 a.m.176 views

Finding Ticketbleed

Ticketbleed CVE-2016-9244 is a software vulnerability in the TLS stack of certain F5 products that allows a remote attacker to extract up to 31 bytes of uninitialized memory at a time, which can contain any kind of random sensitive information, like in Heartbleed. If you suspect you might be...

5CVSS7AI score0.67474EPSS
Exploits6
Filippo.io
Filippo.io
added 2017/02/07 8:47 p.m.21 views

Go Time #32 - Hellogopher, whosthere?

I joined Erik St. Martin, Carlisia Pinto and Brian Ketelsen for episode 32 of the Go Time podcast to chat about Hellogopher, whosthere whoami.filippo.io, $GOPATH, TLS 1.3, Cloudflare's secret reverse proxy, and more. Go Time 32 — Hellogopher, whosthere? with Filippo Valsorda hellogopher — "just...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/02/01 4:25 p.m.17 views

TLS 1.3 at 33c3

Nick Sullivan and I gave a talk about TLS 1.3 at 33c3, the latest Chaos Communication Congress. Here's the Fahrplan entry. We spoke about the flow of TLS 1.2 vs. TLS 1.3, how it manages to save a round trip, resumption and 0-RTT, forward secrecy and replays, all the things that were removed, all...

7AI score
Exploits0
Filippo.io
Filippo.io
added 2017/01/23 10:56 p.m.15 views

How to protect yourself from the WebEx extension

On Monday, Tavis Ormandy of Project Zero revealed that the Cisco WebEx Chrome extension 20M users has a critical vulnerability. OMFG🔥 The WebEx Chrome extension has a trivial code execution vulnerability: any website could just install malware on your machine silently -- Filippo Valsorda...

7.8AI score
Exploits0
Filippo.io
Filippo.io
added 2017/01/02 5:13 p.m.10 views

So you want to expose Go on the Internet

I was asked to contribute a post to the excellent Gopher Academy advent series. I took the occasion to write down what I learned deploying a Go service on the Cloudflare edge. The result is a catalogue of what you need to know before you drop NGINX from in front of your Go server. The net/http pa...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2016/12/06 1:48 p.m.14 views

I'm giving up on PGP

After years of wrestling GnuPG with varying levels of enthusiasm, I came to the conclusion that it's just not worth it, and I'm giving up. At least on the concept of long term PGP keys. This is not about the gpg tool itself, or about tools at all. Many already wrote about that. It's about the lon...

7.1AI score
Exploits0
Filippo.io
Filippo.io
added 2016/10/12 5:43 p.m.13 views

TLS nonce-nse

Starting a series of blog posts on TLS 1.3, I published my notes on the landscape of cipher nonces in TLS across versions, to help me clean up the implementation. Comes with hand-drawn diagrams! TLS nonce-nse | CloudFlare Blog archive...

6.9AI score
Exploits0
Filippo.io
Filippo.io
added 2016/09/24 11:0 p.m.37 views

An overview of TLS 1.3

I presented TLS 1.3 to the CloudFlare London office. Why it's faster, how it works, why it's safer, what's clever about it. The talk is recorded and comes with colored diagrams. There's a transcript on the CloudFlare blog. Update: you might want to watch my 33c3 talk on the same topic instead. An...

6.9AI score
Exploits0
Total number of security vulnerabilities105