Remote companies have to work harder at everything. The effort goes beyond “remote-friendly”—you need remote
culture. But once you have a remote culture, it’s hard to imagine going back.
After nine years of working remotely, the only thing I miss about
working in person is seeing people’s messy desks. Loneliness is a problem for remote workers—video chats are a terrible
substitute for happy hour. Plus, in person, you get to see people’s desks—it’s fun—it’s how you
get to know people. And I know other people think it’s fun, too: we remoties share our
pictures of our workspaces all the time. Everyone should share their
workspaces (here’s mine circa
2016). This is my messy office as of today. (No cleaning and no judgments 🥹
allowed when sharing your workspace.) Some things of note in this picture in no particular order: None of these are affiliate links since no one would want to be
affiliated with this mess. Humans do no operate on hexadecimal symbols effectively […] there are
exceptions. – Dan Kaminsky When SSH
added ASCII art fingerprints (AKA, randomart), the author credited a
talk by Dan
Kaminsky. As a refresher, randomart looks like this: Ben Cox describes the algorithm for generating random art on his
blog. Here’s a slo-mo version of the algorithm in action: But in Dan’s
talk, he never mentions anything about ASCII art. Instead, his talk was about exploiting our brain’s hardware
acceleration to make it easier for us to recognize SSH
fingerprints. The talk is worth watching, but I’ll attempt a summary. We’ll never memorize
But that’s ok for SSH keys because there are different kinds of
memory: For SSH you’ll use recognition—do you recognize this
key? Of course, SSH keys are still a problem because our working memory
is too small to recognize such long strings of letters and numbers. Hacks abound to shore up our paltry working memory—what Dan called
“brain hardware acceleration.” Randomart attempts to tap into our hardware acceleration for pattern
recognition—the visiuo-spacial
sketchpad, where we store pictures. Dan’s idea tapped into a different aspect of hardware acceleration,
one often cited by memory competition champions: chunking. The web service what3words maps
every three cubic meters (3m²) on Earth to three words. The White House’s Oval Office is ///curve.empty.buzz. Three words encode the same information as latitude and
longitude— The mapping of locations to words uses a list of 40 thousand common
English words, so each word encodes 15.29 bits of information—45.9 bits
of information, identifying 64 trillion unique places. Meanwhile sha256 is 256 bits of information: ~116 quindecillion
unique combinations. For SHA256, we need more than three words or a dictionary larger than
40,000 words. Dan’s insight was we can identify SSH fingerprints using pairs of
human names—couples. The math works like this1: With 64 bits per couple, you could uniquely identify 116
quindecillion items with four couples. Turning this: Into this2: With enough exposure, building recognition for these names and places
should be possible—at least more possible than memorizing host keys. I’ve modified this from the original
talk, in 2006 we were using md5 fingerprints of 160-bits. Now we’re
using 256-bit fingerprints, so we needed to encode even more
information, but the idea still works.↩︎ A (very) rough code implementation is
on my
github.↩︎ To see posts by date, check out the archives
Why desks matter
My desk
$ ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
256 SHA256:XrvNnhQuG1ObprgdtPiqIGXUAsHT71SKh9/WAcAKoS0 thcipriani@foo.bar (ED25519)
+--[ED25519 256]--+
| .++ ... |
| o+.... o |
|E .oo=.o . |
| . .+.= . |
| o= .S.o.o |
| o o.o+.= + |
| . . .o B * |
| . . + & . |
| ..+o*.= |
+----[SHA256]-----+
What’s the problem?
SHA256:XrvNnhQuG1ObprgdtPiqIGXUAsHT71SKh9/WAcAKoS0
—hexadecimal
and base64 were built to encode large amounts of information rather than
be easy to remember.
Memory chunking and sha256
38.89
, -77.03
—chunking the
information to be small enough to fit in our working memory. 64000000000000 # 64 trillion (what3words)
115792089237316195423570985008687907853269984665640564039457584007913129639936 # 116 (ish) quindecillion (sha256)
$ ssh foo.bar
The authenticity of host 'foo.bar' can't be established.
ED25519 key fingerprint is SHA256:XrvNnhQuG1ObprgdtPiqIGXUAsHT71SKh9/WAcAKoS0.
Are you sure you want to continue connecting
(yes/no/[fingerprint])?
$ ssh foo.bar
The authenticity of host 'foo.bar' can't be established.
SHA256:XrvNnhQuG1ObprgdtPiqIGXUAsHT71SKh9/WAcAKoS0
Key Data:
Svasse and Tainen Jesudasson from Fort Wayne, Indiana, United States
Illma and Sibeth Primack from Itārsi, Madhya Pradesh, India
Maarja and Nisim Balyeat from Mukilteo, Washington, United States
Hsu-Heng and Rasim Haozi from Manali, Tamil Nadu, India
Are you sure you want to continue connecting
(yes/no/[fingerprint])?
To see posts by date, check out the archives