Skip to content

Instantly share code, notes, and snippets.

@kod3r
Created April 3, 2013 02:25
Show Gist options
  • Save kod3r/5297965 to your computer and use it in GitHub Desktop.
Save kod3r/5297965 to your computer and use it in GitHub Desktop.

Identity Crisis

Written by Nathan Lilienthal or:

  • nathanlil13
  • nathanl
  • nathan
  • nate
  • nathan.lilienthal
  • lilienthal.nathan
  • nlilient
  • nathanlilienthal

Humans

My name is Nathan Miller Lilienthal according to my birth certificate. This is the only name that matters for things relating to official legal processes. Conveniently It's also not required to be unique. I'm known by a name that someone else could also have. If my name was Bob Smith, I'd share my identity with thousands of other people. Offline identity is something that seems to work. I have a name, it identifies me, other people can learn my name and reference me using it. Even with simply my first name you can make a strong reference, because people are good at resolving names.

Consider this hypothetical transcript.

Mike: Did you hear about Joe's accident?
Sara: No! Did he hurt himself on his ski trip?
Mike: Yea, he fell off the chairlift and broke his leg.

Even though both Mike and Sara know many Joes they are both able to communicate with simply his first name. Sometimes this doesn't work perfectly like this. Generally when one person is less familiar with the referenced person. But, even this is solved simply by asking a simple question.

Which Joe?

It seems humans are pretty good at name resolution. Even if we suck at remembering the names to start with. Once I know what your name is, I'll be able to recall "you" based on that name, and who knows maybe I'll even talk about you.

Computers and Networks

Computers are also pretty good at name resolution. I'd argue better then humans. It boils down mostly to DNS. I'm not going to get into how this works, but what matters is that is does work. The result is the ability to point my computer to any other exposed computer.

Subnets

Just a quick work on this.

Computers can have a name within a network, but not be exposed at all outside of that network. The human analogy (kinda). Imagine you have a group of 5 friends, this is the subnet. Within this group your name is "M". Everyone knows who M is and you understand that as your name, however outside the group M doesn't hold any meaning. Your parents don't call you M and you even refer to yourself by your birth name.

The Fucking Web

Websites are fucking awful at this. Every time you go to a new site you are prompted for a new username, and password (social login is another issue). The first thing you do is type in your username to see if it's taken already. "SHIT", someone already has that username. Now you are forced to make a new identity for yourself, because some other asshole took your name first. After being alive and on a computer for a number of years you will have collected more then a few usernames, unless you like having your username be bob123xyzIhateMyself.

Google

Google is even worse then most, because not only do they fall victim to the same problems as above, they also go out of the way to ensure that you'll be fucked later. When you create an account with Google, that username is taken out of circulation forever. Even if you delete your account. So tread carefully friends, and don't bother trying to contact Google about a problem they don't want to talk to you.

Social Login

This is the first step in the right direction, however it makes my login require a external API call from someone like Facebook or Twitter. And what if I don't like the idea of my activities on deviant69sexhouse.com linked with my Facebook, even if they promise they wont use my Facebook for anything but authentication.

What We Need

We need some way to identify ourselves online, without fear of collision. I should know what my username is on a website I used 5 years ago. I should also be able to call myself nathan because that is my name. If more information is required because there are 2 people using nathan then so be it. Obviously I don't know exactly how a functional and elegant solution to this would work. It's something the deserves a lot of planning to be sure it's a good solution, but it's something that needs to happen. As we become more and more attached to who we are online, so must our connectivity to these services become attached to us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment