Blogs / Personal blogs

Colin Percival

daemonology.net

Not on this site, but still likely to be of interest, is my Tarsnap online backup service .

Popular posts
60
Total points
12,799
HN comments
5,010
Rank
#58 personal

Visit daemonology.net → On Hacker News Nov 2008 – Oct 2026

Security & Privacy 22Tech Industry & Business 21Infrastructure & DevOps 16Systems & Performance 12Software Engineering 7Life, Learning & Writing 6

1

On the Use of a Life

First, to dispense with the philosophical argument: Yes, this is my life, and yes, I'm free to use — or waste — it however I please; but I don't think there's anything wrong with asking if this is how my time could be best spent. That applies doubly if the question is not merely about the choices I made but is rather…

4

A year of funded FreeBSD development

For several years leading up to this point I had been talking to Amazonians on and off about the possibility of Amazon sponsoring my FreeBSD/EC2 work; rather predictably, most of those conversation ended up with my contacts at Amazon rhyming with "Amazon should definitely sponsor the work you're doing... but I don't…

5

Don't trust me: I might be a spook

But the latest revelations scare me. It's one thing to find and exploit vulnerabilities in software; there's a lot of software out there which was written by developers with very little understanding of cryptography or software security, and it shows. If you care about security, we reasoned, stick to software written…

6

When security goes right

A few weeks ago, I heard that my slow and unreliable ISP was raising their prices, and I decided to look around for a better ISP. I found one in the form of Novus , which has fibre runs to towers around the Vancouver area. I signed up; they came to the building and placed the necessary patch cable in the basement…

7

A Canadian payroll dependency chart

Unfortunately, like most aspects of the tax system, this steadily increases in complexity, and this year with the Canada Pension Plan including not just "base" premiums and "additional" premiums but also "second additional premiums", I needed to rewrite my spreadsheet from scratch; and also very unfortunately, the…

8

Tarsnap price cut

This will no doubt annoy my friends Patrick McKenzie and Thomas Ptacek , who for years have been telling me that I should raise Tarsnap's prices. But while Thomas accuses me of running Tarsnap like a public utility rather than a business, and thinks this is a characteristic to be avoided, I see this as a high…

9

Thoughts on Startup School

Perhaps my expectations were misaligned, but I was astonished at how geek-unfriendly the event was. At conferences like BSDCan , one of the major considerations is the availability of power sockets; at Startup School, not only were the power sockets very limited — we were in a theatre with perhaps a dozen outlets…

10

A very valuable vulnerability

The vulnerability — which has since been fixed, or else I would not be writing about it publicly — was in Stripe's bitcoin payment functionality . Some background for readers not familiar with this: Stripe provides payment processing services, originally for credit cards but now also supporting ACH, Apple Pay, Alipay…

11

Zeroing buffers is insufficient

With a bit of care and a cooperative compiler, we can zero a buffer — but that's not what we need. What we need to do is zero every location where sensitive data might be stored. Remember, the whole reason we had sensitive information in memory in the first place was so that we could use it; and that usage almost…

12

Playing chicken with cat.jpg

I was reminded of this by 37signals' response on Monday to last week's cat.jpg privacy failure . To be clear, I have a lot of sympathy for 37signals: Once someone looked in their logs and saw "cat.jpg" as the name of the one hundred millionth file they had stored, I'm sure the resulting fit of laughter significantly…

14

How to zero a buffer

Now, we don't want to truly change the observable behaviour of our software — but fortunately the C standard has a more liberal concept of "observable" than most people. In particular, the C standard states that the observable behaviour includes accesses to volatile objects . What is a volatile object, you ask? It is…

15

20 years on AWS and never not my job

While I created my AWS account because I was interested in Amazon S3, that was not in fact immediately available to me: In the early days of AWS, you had to specifically ask for each new service to be enabled for your account. My new AWS account did come with two services enabled by default, though — Amazon Simple…

16

EC2's most dangerous feature

A review for readers unfamiliar with this feature: Amazon IAM ( Identity and Access Management ) is a service which allows for the creation of access credentials which are limited in scope; for example, you can have keys which can read objects from Amazon S3 but cannot write any objects. IAM Roles for EC2 are a…

18

Cryptography is a science, not engineering

If we were still in the 1990s, I would agree with Thomas. 1990s cryptography was full of holes, and the best you could hope for was to know how your tools were broken so you could try to work around their deficiencies. This was a time when DES and RC4 were widely used, despite having well-known flaws. This was a time…

19

Tarsnap now accepts Bitcoin

There is a significant commonality between Tarsnap and Bitcoin — both rely crucially on strong cryptography, and anecdotally it seems that many Bitcoin users rely on Tarsnap to back up their "wallets" (I have no concrete data since I can't tell what data people are backing up ) — so it's not surprising that many…

20

Inequality in Equalland

Every resident of Equalland has the same life story. From birth until age 18, they live with their parents, earning nothing and spending nothing — their parents cover all their needs. At age 18, they graduate from high school, become independent of their parents, and go to college. The government of Equalland funds…

21

Tarsnap critical security bug

There's a lot to say about this, and it's entirely possible that I'll miss covering some important points in this post; if I've missed something, please email me or post a comment below and I'll do my best to add the necessary information.

22

FreeBSD/EC2 lives

There are some caveats to this. First, at the moment only FreeBSD 9.0-CURRENT can run under EC2; I haven't merged bug fixes back to the stable branches. Second, at the moment FreeBSD only runs on t1.micro instances, for reasons I can't discuss (NDA) but hope will be resolved soon. Third, this code hasn't received very…

23

The FreeBSD/Firecracker Platform

I started working on this on June 20th mainly out of curiosity: I had heard that Firecracker had PVH boot support (which was in fact mistaken!) and I knew that FreeBSD could boot in PVH mode from Xen, so I wondered just how hard it would be to get FreeBSD up and running. Not impossible, as it turned out, but a bit…

24

Tarsnap: No heartbleed here

There's a few reasons for this. First, the Tarsnap client-server protocol does not use TLS; instead, it uses a protocol which is about 100x simpler (in terms of the number of pages of documentation required to define it). This means there's less code and far fewer edge cases where bugs can lurk without being triggered…

26

What does $1265 of bugs look like?

To start with, there's a lot of spelling mistakes — 53, by my count. Within a few hours of my announcing the bug bounties, someone had run a spell checker against all of the comments in the Tarsnap source code and found about half of these; the rest, consisting mostly of cases where one English word was replaced by…

27

Cheating on a string theory exam

You and your friend have watches which are synchronized to the second, and the proctors are used to him often finishing exams quickly and won't be suspicious if he leaves early. What is the largest value N such that you can guarantee that you answer at least N out of the 23 questions correctly?

28

Why Tarsnap doesn't use Glacier

On the surface, Tarsnap sounds like the perfect use case for Glacier. Out of every TB of data stored on Tarsnap, in any given month approximately 100 GB of data will be deleted, while only 33 GB of data will be downloaded; in other words, Tarsnap is very much a "write once, read maybe " storage system. Tarsnap's…

29

Some thoughts on Spectre and Meltdown

The story of these attacks starts in late 2004. I had submitted my doctoral thesis and had a few months before flying back to Oxford for my defense, so I turned to some light reading: Intel's latest "Optimization Manual", full of tips on how to write faster code. (Eking out every last nanosecond of performance has…

30

Hacker News Daily (announcement)

At the same time, there are a lot of very interesting articles on Hacker News. Several times recently I've read a fascinating article elsewhere and submitted it to Hacker News, only to find that it had already been on Hacker News several days earlier but had been crowded out by other articles before I noticed it. This…