Trusting people on the internet.

sdfsdfsdfsdf By evan on May 29, 2016

An issue;

Who do you trust on the internet? It’s a simple question, with a horrendously complex answer.

Some of the key underpinnings of the internet like DNS and Certificate Authorities are trust based. You believe that isn’t impersonating the real google because GeoTrust vouched for them. They believe Google because someone submitted a request from (yes that’s a bit of an oversimplification but accurate in most cases)

You can’t really trust DNS, at least, without something like DNSSEC. It also leaks a lot of information, like a list of every single website you’ve ever visited. Worst case scenario someone could man-in-the-middle a Certificate Authorities DNS provider and get certs for anything by ‘proving’ that they’re really In short, yes, the CA’s that you trust to vouch for people themselves trust DNS, something with no encryption or validation or verification in any way shape or form.


This would be fine if all the big players were trustworthy. You can trust the CA because a vendor vouched for them (or their friends); And of course, vendors are always trustworthy. Yes, that is sarcasm.

Faith might be a better word than trust.

After the BlueCoat news, I started thinking about how the internet would look without faith. That is, instead of the implicit belief that any given agent/actor/person is trustworthy, simply have them prove whatever it is you want to know. There’s also the pesky issue of expiry dates being abused for revenue generation, but I digress.

A good place to start thinking about this is Tor hidden services. It’s an entire encrypted network, without any external DNS provider, without any external CA, but it still allows you to prove you’re talking to someone and that you’re talking to the same someone every time. The problem is that Tor is anonymous by design which is awesome if you want to buy drugs on the internet (that’s a fair statement, if incomplete), but for any tangible transactions I need to *prove* who the other person is and hidden services explicitly prevent that (unless you’re at https://facebookcorewwwi.onion which is a whole other issue.) Tor also has root servers, though very resilient, are still root servers.

The end goal is really having verifiable evidence, or proof that is at, and proof that is actually ‘Alphabet, Inc.’ In the current faith-based model, DNSSEC provides the former, and Certificate Authorities provide the latter. 

A solution.

The question becomes, how do we do that? The answer is blockchains, and it’s very simple. Every block is a DNS record at a point in time, contains a public key for https (this would be akin to HPKP), and is signed by the organization with the same keypair. When you look up a DNS record (a block), you search from most recent to oldest and stop when you get a hit. Every DNS record contains a hash of the one before it, making it infeasible to falsify any records.

In short, the bastard lovechild of DANE and namecoin.

The only real downside of this is losing vanity domains. I’m not sure that’s a real problem, given the recent explosion of tld’s and the massive abuse of domain resellers. Browsers are starting to remove the URL from the address bar anyways. The obvious loss is writing domains down on business cards, but that’s a solved problem with QR codes. It has no bearing at all on links or bookmarks. There’s always the potential for adding an alias, but that becomes subject to cybersquatting. But then, that’s no worse than what we have now.

In addition to the privacy afforded by local DNS lookups, we also effectively have local X.509 Certificates.  A client doesn’t need to ask for a cert in the clear, it already has one. That is actually a thing and it has been used to track down hidden service operators on the public internet, when they share a keypair. We can skip the first two parts of the SSL handshake, and go right to key exchange.

This becomes figuratively impossible to spoof. There are simply no records over the wire to MITM,  every record is verifiable, and the client simply can’t connect to the server without the right record. Zooko’s triangle aside, this is nearly a holy grail.

This is also impossible to tamper with, at least, without the right keypair. Politically driven domain seizures would be a thing of the past.

The only element of trust left, is on a site by site basis, that is, do you trust the operator? That’s simply not a technical issue.

Skipping the SSL handshake breaks SNI, so we need to address that as well. SNI does have other issues, like the unintended side effect of allowing a third party to see what website you’re requesting. Since this system values authenticity AND privacy, that needs dealt with. The best method I’ve come up with (and this could also be applied to the internet as it exists now) is to store an SNI public key in the DNS record. The client then encrypts the domain it’s requesting with that key, and a salt. The salt is important otherwise there’s still a 1:1 relationship between the raw domain and it’s encrypted equivalent. This solves the privacy issues with SNI while also ensuring compatibility with alternative DNS schemes.

Open to comments or thoughts, this would be a fairly radical change to the basic underpinnings of the internet, but a necessary one in my opinion.


The story of a wild cat.

sdfsdfsdfsdf By evan on May 17, 2016
Screen Shot 2016-05-17 at 2.31.54 AM

The kitten and I

Ever find a wounded animal outside, and actually try to help them? I mean take them home, feed them, etc.

Don’t. Because it will bite you in the ass. Not the animal, he was an affectionate little kitten. No I mean the raving lunatics that frequent /r/halifax. Someone accused me 2 years after the fact of abusing a kitten, and if you know me at all, that’s obscenely ridiculous.

If I’m guilty of anything it’s giving a shit.

Here’s what actually happened.

I was visiting my grandmothers in late summer 2014. My wife and I were outside in the yard when we came across a wild (note I said wild, not feral, there’s a difference) kitten laying with it’s back to us. My wife (being the cat whisperer that she is) tried to coax him over and he turned around.

And then she screamed in terror.

Two days after we found him, to when he left us.

Two days after we found him, to when he left us. I dare say that’s progress.

The kitten, the first time we saw him, looked like death incarnate. Bloody face, one eye was swollen the size of a ping pong ball and they were both glued shut with pus, wheezing, and he was skin and bones. And as bad as he looked, he prances over and starts nestling our legs. You know, that thing cats do to be affectionate? The kitten doesn’t realize he’s an abomination; he just wants to play.

I asked my grandmother about the kitten when we went inside. I guess the mother died, and the kitten was more or less on his own. We took him some food and water, and made a bed for him in the basement (cats come in and out of there at will, the door stays open) and started to wipe out his eye with saline and water. He didn’t particularly like that at first, but it really helped.

The kitten followed us around all weekend, every time we went outside he was waiting for us.

When it came time to go home, we couldn’t leave him. So we brought him home, back to Halifax. We knew the kitten was sick. But he was just too affectionate, and adorable to leave there.

There was no way he would have lasted another week.

Screen Shot 2016-05-17 at 2.38.09 AM

About a week in

We brought him into our home.

I was unemployed at the time. I had been laid off for about three months, and was starting a new job in a month. So money was tight. We called the SPCA to see what help was available, nothing. Vets were worse, even snotty that we dared ask.

We now had a sick kitten, no money, and no help. We fed him as much as he would eat, bathed him, and we cleaned his eyes every couple hours, and after a few days one was actually open and he could see. It’s clear here his left eye was very bad as well. The swelling came down on the other, and opened, but the eye was just grey. It was gone when we found him. This is important.

We have two cats at home, one that was originally a wild cat from my grandmothers that we met in much the same way. The other was from a pet store in Dartmouth. They were about 5 years old and 3 years old. They really don’t like strange cats in the house, so at first we kept him in our bedroom. That’s also important. After a few weeks he was much stronger, putting weight on, one eye was great, the other was still grey. His face, though stained, was clean. He was happy.

We got him help.

We knew something had to happen with his eye though. It was gone, there’s nothing we, or anyone else could have done to save it. He needed a vet, and we didn’t have money, family willing to pitch in, or credit cards to borrow against. We were quite literally poor.

Screen Shot 2016-05-17 at 2.39.58 AM

Eating on his own

My wife suggested we post online looking for help, to see what options might be out there. I did, I posted on facebook, twitter, reddit, looking for information.

Someone replied on reddit telling me she was a vet assistant, and could get him help. I was more or less looking for programs or something to get strays medical attention, but this was perfect.

I exchanged details with the user and we met at Superstore with the kitten. I gave her the litter box we had, a weeks worth of food, some new litter, and that was it. He had a real home, he was going to get help. She sends me an update a few days later thanking me for everything I did (I still have the emails) and tells me her parents are going to pay for the eye surgery and adopt him.

Everyone lives happily ever after.

Fast-forward nearly two years.

I’ve removed the rest of this post. Apparently naming and shaming the psychopaths involved was taken as a threat. The same psychopaths that have literally threatened me multiple times over the course of months.

Nicole Pettipas aka Candy_B_Pants aka Minnie_Mazola, and Dwaine Dixon aka Musekal: You’re not anonymous. It’s getting to the point where I have no choice but to get the police involved. I can’t do this anymore. Just stop.