Wednesday, May 21, 2008

Privacy in .tel

I've explained a bit what .tel means as well as its technical underpinnings. In effect, you can store in your .tel all your personal contact information and update it in real time. You'll have solved the problem of how people contact you by simply giving them your .tel.
The problem of course is that you don't want anyone to have access to your mobile phone number. Privacy is an absolute necessity! This problem is solved in a simple and open manner by enabling contact data (the NAPTR records that I talked about earlier) to be encrypted inside your .tel.
The technical solution we've adopted is as simple as we can make it. It consists of providing a free friending service whose job is two-fold:
  1. upon signing up, it creates in the background a public/private key pair for you
  2. it stores the friending relationships between you and other people
A picture to describe the friending system:



So now you've got a public and a private key (all done seamlessly behind the scenes), and you can decide who to (or not) friend.
The final step is to decide who gets to see what contact info of yours. Say for example that Adam decides that Carla can see his mobile number. The system will grab Carla's public key and encrypt Adam's mobile number with it. It will then store it in a special subdomain in the DNS. When at some later point Carla retrieves Adam's info, she will be able to automatically decrypt his mobile number with her private key (which is only known to and accessible by her).
From an engineering point of view, this technique can be used by anyone and could bypass the "official" .tel friending system altogether. As long as your friend knows how to decrypt what you encrypt, all is well.
Our job at Telnic is not nor will ever be to lock people into a proprietary system. Quite the opposite, in fact. We are looking to develop proper rules to help grow an ecosystem that will simplify communications.

Tuesday, May 20, 2008

.tel's record types

In this post I'll talk about how .tel works but I won't get into the exact details and specifications. The full specs, policies, documents, howto's, etc... will be available on the telnic.org website in time for the ICANN meeting in Paris, France on June 23rd. Of course I'll post here the links as soon as the info is up on the official site. In the meantime, I'll write articles in this blog from the point of view of .tel owners, users and developers.

On to how .tel works:

From a technical perspective, the DNS specifications allow storing a staggering amount of different types of data in DNS zones. Traditional TLDs such as .com or even .name use in general the following types:
  • A : the standard name -> IP translation (give a name, return an IP)
  • CNAME: a name that points to another name (so you can have name -> name -> IP)
  • MX: "mail exchange", i.e. an email server for the zone
  • PTR: the opposite of A  (IP -> name)
Those are the main "meat and potatoes" types of records that traditional TLDs use. Taken together, their main goal is to translate back and forth computer names to IP addresses.

.tel on the other hand focuses exclusively on three types of records:
  • NAPTR: your basic key/value pair, where the key is an Enumservice specification
  • TXT: text records, where you store keywords and other freeform text
  • LOC: location records comprised of latitude, longitude and altitude.
That's it. A .tel owner can only work with the above three types of records, but in this case less is more.
If you are proficient in UNIX command-line usage, you can look at my henri.tel domain's info for all three types of records using the following commands:
dig henri.tel NAPTR +bufsize=4000
dig henri.tel TXT
dig henri.tel LOC
Alternatively, use the following links to see the information: NAPTR, TXT, LOC
That's pretty much all there is to a .tel. Remember though that NAPTR records can accept any type of Enumservice, such as voice:tel, web:http or even extensions such as im:x-skype. In addition, NAPTRs can point to any other .tel domain or subdomain, which means that I can point from henri.tel to social.henri.tel.

.tel and the meanings of TLDs

So we're working hard to release Yet Another top-level domain (TLD) to the world, named ".tel". I hear the moans already... Doesn't the world already have .com, .net, .us, .mobi, .name, .tv, etc... etc...? What's the point of having another one?

Well, .tel just isn't like the others. At all.

Up until .tel, all TLDs have been used to facilitate computer-to-computer communications. They are the user-friendly face of the DNS. Want to go hit google.com? Your browser will call your computer OS's networking library and ask "hey, can you tell me what is google.com"? Your OS will in turn communicate with a DNS server that's probably hosted at your internet provider's facility and ask it that same question. The DNS server will then look up the google.com zone and respond "hmmm... looks like google.com is actually the server 64.233.167.99" (you can try it yourself here). Once your browser gets that information back, it will then communicate directly with 64.233.167.99 and request the main web page.

Yes I know all the above is the true idiot's idiot guide to how DNS works, but I don't know yet how knowledgeable my readership will be (if any). Anyway, long story short: every single TLD today is focused on facilitating computer-to-computer communications. All information in the DNS is about and for computers: which machines are mail servers, which ones handle the DNS itself, which machine names are actually aliases to other machine names, etc...

.tel on the other hand is about people-to-people communications inasmuch as communicating does still generally necessitate communications devices.

I showed you what happens when you ask for info about google.com (you can try again here). Well, let's see what happens when we ask for a certain type of info (NAPTR records, but I'll explain those later) about henri.tel (go ahead, click).
Interesting, isn't it? Instead of learning about the IP address of the machine that hosts the henri.tel website, you learn all sorts of interesting things about me, namely in this case my phone numbers, email addresses, IM handles, etc... Oh, there are also links to websites and to some of my subdomains, such as social.henri.tel.

Once on the Net, always on the Net

Okay. Time for some substance I guess. Otherwise what would have been the point of this blog?

A few years ago I was getting tired of co-location air conditioning issues, scalability challenges, APIs and language wars.  I was thinking it was time for a change.

Fast forward a couple of years, and I'm smack in the middle of the buzzword-laden Web 2.0 "social networking" mesh stuff that every blogger feels she needs to discuss. I'd sworn off the Internet after selling Shopzilla, but I guess that just when I thought I was out.... they pull me back in.

Not really kicking and screaming though, because I think what we're building is a necessity. The company is called Telnic, and it is the registry for the .tel sponsored top-level domain (TLD). Quick primer: A registry manages the policies for a sponsored TLD and sells domains wholesale at the exact same terms to any accredited ICANN registrar (who then sells to resellers or individual customers).

So what is .tel? It could (and hopefully will) be many things, but at its core, .tel is a way to use the DNS as a key-value pair data store. For example, one could store in abcd.tel:
  • voice:tel, +1 (310) 555-1212
  • email:mailto, joe@joe.com
That's the most basic premise. More on subsequent posts.

Another beginning

Hmm... Always tough to start a new blog. It's like a blank sheet of paper taking over the aspiring writer's vision.
Well then the best thing to do is to click on the "publish" button and put that first post behind me.