How Two Computers Find Each Other

One of the first questions to ask about SecurityNet is surprisingly simple.

"If there isn't a cloud service storing my files, how do two computers find each other?"

It's a fair question.

After all, if two people are sitting on opposite sides of the world, their computers don't automatically know where the other one is.

Something has to introduce them.


That "something" in SecurityNet is called the Mediator.

The name is quite deliberate.

A mediator introduces two people.

It doesn't join their conversation.


When SecurityNet starts, it contacts the mediator and simply says,

"I'm here."

Each computer does the same thing.

The mediator therefore knows which SecurityNet IDs are currently online and how they can be contacted.

Nothing more.


When you decide to send a file, your computer asks a simple question.

"Where is this person?"

The mediator replies with enough information for the two computers to establish their own encrypted connection.

Once that connection has been created, the actual communication takes place directly between the two machines whenever possible.

The mediator has done its job.

It steps out of the way.


Of course, the Internet isn't always that cooperative.

Firewalls.

Corporate networks.

Home routers.

Carrier-grade NAT.

Sometimes two computers simply cannot establish a direct connection.

That isn't a SecurityNet problem.

It's how today's Internet works.


In those situations, SecurityNet automatically uses a relay server.

That often surprises people.

Some assume this means the relay can read everything being transferred.

It can't.

The relay simply forwards encrypted data that it cannot decrypt.

Rather like a postal worker delivering a sealed envelope.

It knows where the envelope came from.

It knows where it's going.

It doesn't know what's inside.


That distinction matters.

Throughout SecurityNet I tried to separate routing from reading.

Some components need to know where information should go.

Very few should ever know what that information contains.

Those are two very different responsibilities.


The mediator is rather like an old-fashioned telephone operator.

Years ago, an operator connected your call.

They didn't become part of your conversation.

The mediator performs a similar role.

It helps two computers find each other.

After that, the conversation belongs to them.

The comparison only goes so far.

An old telephone operator could, if they wished, listen to the conversation.

SecurityNet's mediator cannot.

It never possesses the information needed to decrypt your files or messages.

It simply helps establish the connection.


Perhaps that's another example of a principle that runs throughout SecurityNet.

Every component should do one job...

...and no more than that.