Weakest Link By
[ Applause ] Here it comes.
Sorry about that.
Yeah, let's get going.
We're obviously a little bit late, but we'll recoup the time.
>> I need your computer too.
>> It was my machine.
>> I want to see what I'm doing.
>> I get random messages.
I turned off Slack.
So don't mess it up too much.
>> Yeah, I do.
>> Okay.
Typing a very long URL.
The lucky thing is, it's nothing to do with my computer.
No, no.
I need to open my presentation so that I see it.
Here we are.
They will switch it for me.
So it will be a little confusing.
>> Makeshift.
Whoop.
>> So everything is broken.
Yeah, sorry for this.
Yeah.
I will talk today about my thoughts of what is the weakest link in our trust chain in
the web platform.
This is regarding� we will not see any code of JavaScript or anything else.
It's more a thought model and it brought me so some insights which we will see later.
So the first question I asked to myself was, why we trust in our keys we use for doors
and other things?
And I continued and said, okay, there might be other locks that we also trust in.
Next.
So there are quite a lot of other locks coming up.
So we have these things.
Which is a broken� a bad lock in Firefox.
Which looks like that.
Another one.
Next.
And the green lock in Firefox.
It looks like that.
Another time, next.
And we have Chrome, hopefully a Chrome.
Please.
[ Laughter ] What's that?
So we have a Chrome lock� Ah.
I have to run.
[Cheering and applause] Yeah, my system is locking at that.
I don't know why� if I click it blocks the system.
Okay.
[ Applause ] I can do this from behind.
Yep.
No.
Running!
A broken lock is less trustworthy.
[ Applause ] Thanks!
Yeah.
That's one of my questions.
Is this less trustful?
Okay, a connection is not secure, what does it mean?
Basically, it means nothing.
And then also other people thinking about these.
You can read that and it says, basically, your information is traveling the Internet.
And it could be� and that's a very important thing� it could be that this is not very
secure or safe.
That just says to me, okay, there are some concerns possible.
The nice thing� I also discovered the others never mention such a thing.
It's only in Firefox.
Yeah.
What's happened� that was the next question I asked to myself� what happens to your
trust when you know what� that there are copies of your key out?
Basically, it means you come home and your space is empty and nothing is broken.
Of course, that could happen.
If somebody else has a key, he can open it and steal whatever he wants.
Or put new stuff in.
That's also possible.
But generally, in that case, we have a problem with trusting in our locks and keys.
That's what's happening if we know that there are some copies of our keys out.
And so gain back access, the only solution we have, we can exchange the lock and the
key in total.
And out of this there was a new question coming up.
And I have a lot of questions.
Could we detect copies?
Is there any way how we are able to detect that our keys are copied?
And in the physical world� oops.
Good.
In the physical world this is difficult.
But the important thing is to know that in the physical world no exactly same objects
exist at any moment.
So it's not possible to replicate to 100% equal in the physical world.
It's too complicated.
And there's a lot of things which says, okay, I have� there are natures line the bullets
fired through a specific gun.
Or you could say it a little bit different, there is no perfect crime in the physical
world.
So there's every time an evidence which says, okay.
That's a copy.
That is whatever makes it visible that it doesn't work out.
In digital, it's a completely different story.
And in digital, copying of data generates 100% perfect objects.
Which are absolutely identical to the original object.
And that causes that we are asking the question, are physical objects� digital objects copied
or not copied?
Is there an original?
No.
We are all copies.
There's also some other constraints coming into place.
If you tried to replicate 1,000 keys, it's hard work to do.
It's pretty complex.
In digital, it's basically impossible to distinguish between the original and the copied thing.
So that's� for me it was a very important understanding to get the knowledge that everything
in digital is a perfect copy.
And this is a very common scenario.
Of course, I'm on the left.
No, I am this.
The guy behind with the green lock, I'm very happy.
And on the other side, that's the server guy.
And he has his own private key.
And in this scenario, we have� in the first place, we did not see any copies.
There is no copy of the private key information.
They're just handing it off, we are seeing that the transport to use, we can see the
transfer is still in place.
And we know that there might not be a third party which can read this.
Can read the data, which we are transferring.
So it's okay.
But what happens if we have a third party coming into this session?
And� go back.
What happens if a third party is coming into this session?
And the nice thing in that case is� the right one, so the server guy� hands out
his key to this guy in the middle.
And for us that means everything stays green.
We still see the green lock.
But there's another person who is also able to� yeah.
Modify the data we are transferring and so on.
That's why I called it the perfect man in the middle impersonation.
Which, based on that we are having losing the key between two partners.
And in the digital universe, it's basically impossible to identify that this scenario
that we saw before has happened.
Of course, we have no proof.
We have no test, nothing different from the outside to gain any evidence that there's
a copy created of the key.
And the next question is, what about a private key?
Are private keys usually copied?
I asked another question.
Is it possible to detect copies out of private keys from the outside?
Could I find any measurement which allows me to determine if there are copies generated
on the server side?
And what I did is, I just measured how long.
But I only measured the time how long it takes to open a TLS connection.
My assumption was like that, if only one key exists and I do these measurements from different
places on this planet, then I will see proportional factor, which is related to the speed of light,
of the distance between me and the key.
And out of this, I discovered� I discovered the following, that, for example, Amazon.com
has only one key in one place.
So you can hop around to the whole world and try to access them and measure the time how
long it takes to open the connection.
And you will see that the� that is in proportion to the speed of light.
Which we need to transfer data from A to B. And if you look closer through that, you will
see, okay, it might be in the area of Seattle.
This is pretty common.
But there are other sides.
Like Google.com and Facebook.com.
And there are four points.
I measure somewhere in the U.S., somewhere in Europe, I measure somewhere in Japan.
And last, but not least, in Australia.
And I discover that the keys must be within a perimeter of 2,000 kilometers around my
measurement points.
And out of this there are no intersections.
I could basically induct and say, okay, there must be four copies of the key, at least.
To get this pattern working.
Of course, every open TLS connection needs to make use of the private key.
And to get these timings, it's only possible if you are having the key copied over to the
specific location or you will see� the highlight and see during the transfer to a central point
where the keys are living.
And this ends up with one interesting thing.
Okay.
It's normal that we have copies of keys out.
So it's not like my house at home where I know, okay, I have one key or three keys.
And in this case, I definitely know there will be copies.
And it's a very common pattern to copy the private key on the Internet.
It's not the same.
There are other use cases where you need to copy your keys also.
Out of this, another assumption and say, okay, and say Amazon will have one key.
At least.
It could be more.
Back.
Amazon.com will have one key, at least.
And Google.com I say, okay, they will probably have a hundred thousand copies of their private
key spread around their network.
It's just an assumption.
I would be� it would be very cool to hear the real numbers.
But I say, okay, it must be bigger than a hundred thousand.
And out of this I did a� some risk analyzers and say, okay, if I multiply the possibility
of losing one key with the existence of a hundred thousand keys, then I will be getting
a value of around 10% risk to lose the key.
If you have got a hundred thousand copies, then one of them might be those.
So the risk of losing is 10% if you have a hundred thousand copies.
If you have a million copies.
Risk is even higher.
63%.
That's a lot.
So the risk is also increasing in that.
And out of this, I said, okay, what can I do to gain back trust in this?
So I know that Google might be lost� lost their key.
Of course, there's a 10% chance to lose their key.
And what can I do to gain back control with that?
There's a lot of other problems like scaling and so on.
But I could say if I have a facility� just call it "Facility"� where I can put my private
key in, but it will still be able to use it for encryption and signing, then it might
be better.
Of course, this device stores the key but never allows it to leave the key again.
So if I know that this kind of device is exists, then I could say, okay, it's not a problem.
But if this device exists I would see the Amazon timing.
Of course, there's� there might be no copies.
You only have one key.
That's what's going on there.
It's a little bit of a side track, but it's also important.
So we have these certified authorities.
We have the certifications we use for TLS.
And we have� they broadly are called public key infrastructure.
Or PKIs.
And they are built to maintain the integrity of public keys.
That's the only thing they do.
They never do anything or touches the private key integrity.
That's a vacuum.
There's nothing in.
So nobody cares about the private keys at all.
And� but they are�the reason why we are trusting on keys.
So it's pretty difficult.
And I came to the conclusion saying, okay, the weakest link of the chain of trust we
have is the private key of my communication partner.
That's basically� or that is the fundamental thing.
So if I did not know how my partner and communication handles his private keys, I barely could trust
him.
Which a little bit means we cannot trust anybody.
This raises the question which is there any solution to these problems to maintain the
private key integrity?
And my honest answer to that is, I have no clue.
So there is� in the scale of worldwide organizations� no chance to deal with that.
There are some approaches, generally speaking, on current technology basis we have to solution
to trust on other keys if they are copied.
But luckily, there is a little tiny solution.
That we could use to our own private keys.
So every private key you have and use on a daily basis, you can protect.
You can protect with the use of smart cuts.
So smart cards are these devices I had before which says, okay, it is only a oneway road.
You can put a key in, but you will never get a key out, or better, smart cards are also
able to generate the key within the card.
So it never exposed the card� the key to anyone else.
But you can still use it to protect it and copy.
Yeah.
You can still use this for encryption, sign, and so on.
But you will never, ever, as your own� you will never get your private key material in
hand so that you could copy it.
The only ability to access it is to take a smart card and use it.
So that's pretty cool that these kind of things exist.
And� yeah.
I'm done at this point.
Of course, I lost control a little bit of time out of the starting problems.
So you have to say thank you to my friends, Myles, and the JSConf and you, audience.
Thanks.
[ Applause ]
>> All right.
Thank you for that.
Give me a hug.
We got there.
So we have a 15minute break.
Remember, there's all the community stuff.
Live JS is playing.
All that jazz there.
It's cut a little bit short.
But� I'm sorry.
There's nothing really I can do about that.
[Break] >>
>> >> Live captioning by Amanda @asignia @whitecoatcapxg