Выбрать главу

> What do you say?

> Here’s my public key.

> Masha

#

When in trouble or in doubt, run in circles, scream and shout.

Ever hear that rhyme? It’s not good advice, but at least it’s easy to follow. I leapt off the bed and paced back and forth. My heart thudded and my blood sang in a cruel parody of the way I’d felt when we got home. This wasn’t sexual excitement, it was raw terror.

“What?” Ange said. “What?”

I pointed at the screen on my side of the bed. She rolled over and grabbed my keyboard and scribed on the touchpad with her fingertip. She read in silence.

I paced.

“This has to be lies,” she said. “The DHS is playing games with your head.”

I looked at her. She was biting her lip. She didn’t look like she believed it.

“You think?”

“Sure. They can’t beat you, so they’re coming after you using Xnet.”

“Yeah.”

I sat back down on the bed. I was breathing fast again.

“Chill out,” she said. “It’s just head-games. Here.”

She never took my keyboard from me before, but now there was a new intimacy between us. She hit reply and typed,

> Nice try.

She was writing as M1k3y now, too. We were together in a way that was different from before.

“Go ahead and sign it. We’ll see what she says.”

I didn’t know if that was the best idea, but I didn’t have any better ones. I signed it and encrypted it with my private key and the public key Masha had provided.

The reply was instant.

> I thought you’d say something like that.

> Here’s a hack you haven’t thought of. I can anonymously tunnel video over DNS. Here are some links to clips you might want to look at before you decide I’m full of it. These people are all recording each other, all the time, as insurance against a back-stab. It’s pretty easy to snoop off them as they snoop on each other.

> Masha

Attached was source-code for a little program that appeared to do exactly what Masha claimed: pull video over the Domain Name Service protocol.

Let me back up a moment here and explain something. At the end of the day, every Internet protocol is just a sequence of text sent back and forth in a prescribed order. It’s kind of like getting a truck and putting a car in it, then putting a motorcycle in the car’s trunk, then attaching a bicycle to the back of the motorcycle, then hanging a pair of Rollerblades on the back of the bike. Except that then, if you want, you can attach the truck to the Rollerblades.

For example, take Simple Mail Transport Protocol, or SMTP, which is used for sending email.

Here’s a sample conversation between me and my mail server, sending a message to myself:

> HELO littlebrother.com.se

250 mail.pirateparty.org.se Hello mail.pirateparty.org.se, pleased to meet you

> MAIL FROM:m1k3y@littlebrother.com.se

250 2.1.0 m1k3y@littlebrother.com.se… Sender ok

> RCPT TO:m1k3y@littlebrother.com.se

250 2.1.5 m1k3y@littlebrother.com.se… Recipient ok

> DATA

354 Enter mail, end with “.” on a line by itself

> When in trouble or in doubt, run in circles, scream and shout

> .

250 2.0.0 k5SMW0xQ006174 Message accepted for delivery

> QUIT

221 2.0.0 mail.pirateparty.org.se closing connection

Connection closed by foreign host.

This conversation’s grammar was defined in 1982 by Jon Postel, one of the Internet’s heroic forefathers, who used to literally run the most important servers on the net under his desk at the University of Southern California, back in the paleolithic era.

Now, imagine that you hooked up a mail-server to an IM session. You could send an IM to the server that said “HELO littlebrother.com.se” and it would reply with “250 mail.pirateparty.org.se Hello mail.pirateparty.org.se, pleased to meet you.” In other words, you could have the same conversation over IM as you do over SMTP. With the right tweaks, the whole mail-server business could take place inside of a chat. Or a web-session. Or anything else.

This is called “tunneling.” You put the SMTP inside a chat “tunnel.” You could then put the chat back into an SMTP tunnel if you wanted to be really weird, tunneling the tunnel in another tunnel.

In fact, every Internet protocol is susceptible to this process. It’s cool, because it means that if you’re on a network with only Web access, you can tunnel your mail over it. You can tunnel your favorite P2P over it. You can even tunnel Xnet — which itself is a tunnel for dozens of protocols — over it.

Domain Name Service is an interesting and ancient Internet protocol, dating back to 1983. It’s the way that your computer converts a computer’s name — like pirateparty.org.se — to the IP number that computers actually use to talk to each other over the net, like 204.11.50.136. It generally works like magic, even though it’s got millions of moving parts — every ISP runs a DNS server, as do most governments and lots of private operators. These DNS boxes all talk to each other all the time, making and filling requests to each other so no matter how obscure the name is you feed to your computer, it will be able to turn it into a number.

Before DNS, there was the HOSTS file. Believe it or not, this was a single document that listed the name and address of every single computer connected to the Internet. Every computer had a copy of it. This file was eventually too big to move around, so DNS was invented, and ran on a server that used to live under Jon Postel’s desk. If the cleaners knocked out the plug, the entire Internet lost its ability to find itself. Seriously.

The thing about DNS today is that it’s everywhere. Every network has a DNS server living on it, and all of those servers are configured to talk to each other and to random people all over the Internet.

What Masha had done was figure out a way to tunnel a video-streaming system over DNS. She was breaking up the video into billions of pieces and hiding each of them in a normal message to a DNS server. By running her code, I was able to pull the video from all those DNS servers, all over the Internet, at incredible speed. It must have looked bizarre on the network histograms, like I was looking up the address of every computer in the world.

But it had two advantages I appreciated at once: I was able to get the video with blinding speed — as soon as I clicked the first link, I started to receive full-screen pictures, without any jitter or stuttering — and I had no idea where it was hosted. It was totally anonymous.

At first I didn’t even clock the content of the video. I was totally floored by the cleverness of this hack. Streaming video from DNS? That was so smart and weird, it was practically perverted.

Gradually, what I was seeing began to sink in.

It was a board-room table in a small room with a mirror down one wall. I knew that room. I’d sat in that room, while Severe-Haircut woman had made me speak my password aloud. There were five comfortable chairs around the table, each with a comfortable person, all in DHS uniform. I recognized Major General Graeme Sutherland, the DHS Bay Area commander, along with Severe Haircut. The others were new to me. They all watched a video screen at the end of the table, on which there was an infinitely more familiar face.

Kurt Rooney was known nationally as the President’s chief strategist, the man who returned the party for its third term, and who was steaming towards a fourth. They called him “Ruthless” and I’d seen a news report once about how tight a rein he kept his staffers on, calling them, IMing them, watching their every motion, controlling every step. He was old, with a lined face and pale gray eyes and a flat nose with broad, flared nostrils and thin lips, a man who looked like he was smelling something bad all the time.