<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: encryption</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/encryption.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-12-20T04:57:04+00:00</updated><author><name>Simon Willison</name></author><entry><title>Quoting Marcus Hutchins</title><link href="https://simonwillison.net/2024/Dec/20/marcus-hutchins/#atom-tag" rel="alternate"/><published>2024-12-20T04:57:04+00:00</published><updated>2024-12-20T04:57:04+00:00</updated><id>https://simonwillison.net/2024/Dec/20/marcus-hutchins/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://bsky.app/profile/malwaretech.com/post/3ldpfzxdyqs2d"&gt;&lt;p&gt;50% of cybersecurity is endlessly explaining that consumer VPNs don’t address any real cybersecurity issues. They are basically only useful for bypassing geofences and making money telling people they need to buy a VPN.&lt;/p&gt;
&lt;p&gt;Man-in-the-middle attacks on Public WiFi networks haven't been a realistic threat in a decade. Almost all websites use encryption by default, and anything of value uses HSTS to prevent attackers from downgrading / disabling encryption. It's a non issue.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://bsky.app/profile/malwaretech.com/post/3ldpfzxdyqs2d"&gt;Marcus Hutchins&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/https"&gt;https&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vpn"&gt;vpn&lt;/a&gt;&lt;/p&gt;



</summary><category term="encryption"/><category term="https"/><category term="security"/><category term="vpn"/></entry><entry><title>EpicEnv</title><link href="https://simonwillison.net/2024/Aug/3/epicenv/#atom-tag" rel="alternate"/><published>2024-08-03T00:31:33+00:00</published><updated>2024-08-03T00:31:33+00:00</updated><id>https://simonwillison.net/2024/Aug/3/epicenv/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/danthegoodman1/EpicEnv"&gt;EpicEnv&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Dan Goodman's tool for managing shared secrets via a Git repository. This uses a really neat trick: you can run &lt;code&gt;epicenv invite githubuser&lt;/code&gt; and the tool will retrieve that user's public key from &lt;code&gt;github.com/{username}.keys&lt;/code&gt; (&lt;a href="https://github.com/simonw.keys"&gt;here's mine&lt;/a&gt;) and use that to encrypt the secrets such that the user can decrypt them with their private key.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/gruxeg/epicenv_local_environment_variable"&gt;lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/git"&gt;git&lt;/a&gt;&lt;/p&gt;



</summary><category term="encryption"/><category term="git"/></entry><entry><title>Encryption At Rest: Whose Threat Model Is It Anyway?</title><link href="https://simonwillison.net/2024/Jun/4/encryption-at-rest/#atom-tag" rel="alternate"/><published>2024-06-04T13:17:34+00:00</published><updated>2024-06-04T13:17:34+00:00</updated><id>https://simonwillison.net/2024/Jun/4/encryption-at-rest/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://scottarc.blog/2024/06/02/encryption-at-rest-whose-threat-model-is-it-anyway/"&gt;Encryption At Rest: Whose Threat Model Is It Anyway?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Security engineer Scott Arciszewski talks through the challenges of building a useful encryption-at-rest system for hosted software. Encryption at rest on a hard drive protects against physical access to the powered-down disk and little else. To implement encryption at rest in a multi-tenant SaaS system - such that even individuals with insider access  (like access to the underlying database) are unable to read other user's data, is a whole lot more complicated.&lt;/p&gt;
&lt;p&gt;Consider an attacker, Bob, with database access:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here’s the stupid simple attack that works in far too many cases: Bob copies Alice’s encrypted data, and overwrites his records in the database, then accesses the insurance provider’s web app [using his own account].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The fix for this is to "use the AAD mechanism (part of the standard AEAD interface) to bind a ciphertext to its context." Python's cryptography package &lt;a href="https://cryptography.io/en/latest/hazmat/primitives/aead/"&gt;covers Authenticated Encryption with Associated Data&lt;/a&gt; as part of its "hazardous materials" advanced modules.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=40573211"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/cryptography"&gt;cryptography&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="cryptography"/><category term="encryption"/><category term="python"/><category term="security"/></entry><entry><title>Shamir Secret Sharing</title><link href="https://simonwillison.net/2023/Aug/11/shamir-secret-sharing/#atom-tag" rel="alternate"/><published>2023-08-11T15:48:55+00:00</published><updated>2023-08-11T15:48:55+00:00</updated><id>https://simonwillison.net/2023/Aug/11/shamir-secret-sharing/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://max.levch.in/post/724289457144070144/shamir-secret-sharing-its-3am-paul-the-head-of"&gt;Shamir Secret Sharing&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Cracking war story from Max Levchin about the early years of PayPal, in which he introduces an implementation of Shamir Secret Sharing to encrypt their master payment credential table... and then finds that the 3-of-8 passwords needed to decrypt it and bring the site back online don’t appear to work.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=37087136"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ops"&gt;ops&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/paypal"&gt;paypal&lt;/a&gt;&lt;/p&gt;



</summary><category term="encryption"/><category term="ops"/><category term="paypal"/></entry><entry><title>See this page fetch itself, byte by byte, over TLS</title><link href="https://simonwillison.net/2023/May/10/see-this-page-fetch-itself-byte-by-byte-over-tls/#atom-tag" rel="alternate"/><published>2023-05-10T13:58:36+00:00</published><updated>2023-05-10T13:58:36+00:00</updated><id>https://simonwillison.net/2023/May/10/see-this-page-fetch-itself-byte-by-byte-over-tls/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://subtls.pages.dev/"&gt;See this page fetch itself, byte by byte, over TLS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
George MacKerron built a TLS 1.3 library in TypeScript and used it to construct this amazing educational demo, which performs a full HTTPS request for its own source code over a WebSocket and displays an annotated byte-by-byte representation of the entire exchange. This is the most useful illustration of how HTTPS actually works that I’ve ever seen.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/b0rk/status/1656287855612682240"&gt;Julia Evans&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/https"&gt;https&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tls"&gt;tls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/websockets"&gt;websockets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/explorables"&gt;explorables&lt;/a&gt;&lt;/p&gt;



</summary><category term="encryption"/><category term="http"/><category term="https"/><category term="tls"/><category term="websockets"/><category term="explorables"/></entry><entry><title>Building a stateless API proxy</title><link href="https://simonwillison.net/2019/May/30/building-a-stateless-api-proxy/#atom-tag" rel="alternate"/><published>2019-05-30T04:28:55+00:00</published><updated>2019-05-30T04:28:55+00:00</updated><id>https://simonwillison.net/2019/May/30/building-a-stateless-api-proxy/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.thea.codes/building-a-stateless-api-proxy/"&gt;Building a stateless API proxy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This is a really clever idea. The GitHub API is infuriatingly coarsely grained with its permissions: you often end up having to create a token with way more permissions than you actually need for your project. Thea Flowers proposes running your own proxy in front of their API that adds more finely grained permissions, based on custom encrypted proxy API tokens that use JWT to encode the original API key along with the permissions you want to grant to that particular token (as a list of regular expressions matching paths on the underlying API).

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/theavalkyrie/status/1133864634178424832"&gt;@theavalkyrie&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apis"&gt;apis&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/proxies"&gt;proxies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jwt"&gt;jwt&lt;/a&gt;&lt;/p&gt;



</summary><category term="apis"/><category term="encryption"/><category term="github"/><category term="proxies"/><category term="security"/><category term="jwt"/></entry><entry><title>China Demonstrates Quantum Encryption By Hosting a Video Call</title><link href="https://simonwillison.net/2017/Oct/8/quantum/#atom-tag" rel="alternate"/><published>2017-10-08T02:49:58+00:00</published><updated>2017-10-08T02:49:58+00:00</updated><id>https://simonwillison.net/2017/Oct/8/quantum/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://spectrum.ieee.org/tech-talk/telecom/security/china-successfully-demonstrates-quantum-encryption-by-hosting-a-video-call"&gt;China Demonstrates Quantum Encryption By Hosting a Video Call&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This reads like pure science fiction:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pan’s team first established a connection and generated a secure key between a ground station in Xinglong and the Micius satellite as it passed overhead, orbiting about 500 kilometers above Earth. [...]&lt;/p&gt;
&lt;p&gt;Next, the Chinese team waited for Micius to pass over Vienna, where their collaborators at the Austria Academy of Sciences were waiting to also receive the key from the satellite. Then, with the keys in hand, the groups initiated a video conference and used those keys to encrypt the video data through a standard VPN protocol.&lt;/p&gt;
&lt;/blockquote&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quantum-computing"&gt;quantum-computing&lt;/a&gt;&lt;/p&gt;



</summary><category term="encryption"/><category term="quantum-computing"/></entry><entry><title>Insurgents Hack U.S. Drones</title><link href="https://simonwillison.net/2009/Dec/17/drones/#atom-tag" rel="alternate"/><published>2009-12-17T07:36:07+00:00</published><updated>2009-12-17T07:36:07+00:00</updated><id>https://simonwillison.net/2009/Dec/17/drones/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://online.wsj.com/article/SB126102247889095011.html"&gt;Insurgents Hack U.S. Drones&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The video feed rather than the control protocol, but still.... “Fixing the security gap would have caused delays, according to current and former military officials. It would have added to the Predator’s price. Some officials worried that adding encryption would make it harder to quickly share time-sensitive data within the U.S. military, and with allies.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/drones"&gt;drones&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/military"&gt;military&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="drones"/><category term="encryption"/><category term="military"/><category term="security"/></entry><entry><title>Keyczar</title><link href="https://simonwillison.net/2008/Aug/13/keyczar/#atom-tag" rel="alternate"/><published>2008-08-13T13:20:59+00:00</published><updated>2008-08-13T13:20:59+00:00</updated><id>https://simonwillison.net/2008/Aug/13/keyczar/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.keyczar.org/"&gt;Keyczar&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
New open source cryptography toolkit from Google, designed to get algorithm selection, key rotation and versioning right so you don’t have to. Java and Python versions are available; the Python version depends on PyCrypto.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.links.org/?p=374"&gt;Ben Laurie&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ben-laurie"&gt;ben-laurie&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/encryption"&gt;encryption&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/keyczar"&gt;keyczar&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/keyrotation"&gt;keyrotation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pycrypto"&gt;pycrypto&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="ben-laurie"/><category term="encryption"/><category term="google"/><category term="java"/><category term="keyczar"/><category term="keyrotation"/><category term="pycrypto"/><category term="python"/></entry></feed>