Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/366 Thanks!
So thank you, everybody, and driver,
as you might have seen me yesterday in
the media talk, you might have not.
So I'm going to talk here about
the USB memory, which project that
we very recently announced, and that is
now in a crowdfunding phase.
I will be super quick about it because
this is a one hour presentation that
we're going to squeeze in hopefully.
Twenty five minutes.
So this is a device that I'm going
to talk about, which is basically
a computer squeezed
in very tiny USB stick
and it's all open source and it's called
the USB memory.
So why
did we take on doing something like this?
So we're a company that does security.
So we wanted a very small, trusted
device for personal security
applications.
And as soon as we thought that it would
be nice to have a computer in a very
small form factor, a series of
ideas popped up about having, you
know, announced mass storage
with advanced capabilities, using
it as an openness S.H.
proxy as a VPN router, tor
router, electronic wallet and so on.
And all of these applications fit
to use case for having some
hardware like this.
So
the first use case that we thought
was like, would it be nice to have
announced mass storage so that not only
I can copy a file on a USB drive,
but he would also get out
of Matecumbe encrypted with
whatever Ketut you might want to Witwicky
that may be selected upon the folder
that we're placing the file on or the
name of the file or whatever criteria
that we might decide.
So something that would have the
flexibility to be change
in the manner that you please.
So not a single purpose.
Fix hardware for doing
something like this.
And if we have a computer on a USB
drive, we could also maybe scan the file
for viruses, malware or
whatever, whatever you like.
So this is was one of ideas.
And the way that we wanted to implement
it was to have a Linux
tiny Linux computer emulating
USB storage and then piping filtering
to files that you copy on it
to whatever filter that you might want
to have.
And then, of course, once
this idea came up, we thought, but we
could do so much more.
Let's you know, if we have a
small device, which is actually a
computer, we could just use TCP,
IP and then have capabilities
such as uploading the files somewhere,
sending it over, email, wherever you want
to, giving you whatever a
Google drive at Google might be.
A very bad word here for this audience.
So whatever files sharing or
direct upload mechanist
that you want. So all of these
possibilities enabled by the fact of
having a simple computer open
computer on a USB
drive, and then we thought,
but we could do so much more.
What if for deniability
you could have it to wipe itself
automatically if a fail safe ward
is detected, you copy a file on it,
which is a very specific name, or you
create a folder which is a very specific
name, or you do whatever action that you
might want to do and then the drive
automatically wipes itself.
All of these features are, of course,
things that you cannot achieve nowadays
with a normal USB drive or any
commercial product that is out there.
So and you can see the thought process.
As soon as we had this
idea of having such a tiny
form factor for an open source design,
all of these possibilities
came to mind.
Um.
It, of course, can be used as an SS
proxy, so imagine that you are on
an Internet kiosk or using a computer
that you don't trust and you want
to say to your servers
from it, you connect
this USB device onto your laptop,
it gets exposed with
TCP, IP, USB to
it with maybe one time password
or whatever you might want, or a password
that you don't care if it gets
compromised. And then from it us
out to the Internet by using the private
keys which are stored on the device,
and that they do not leak onto
a host computer which is
supporting the device for communication
on.
It can be used as a password manager.
Why not either something
really stupid where you ask, you
use a pin, you unlock whatever web
application that you have on it.
You ask for a password for a specific
site. The password gets copied to
your clipboard or it
gets displayed.
Or you can even have a proxy on
the device itself, a Web proxy that would
just replace whatever magic
placeholder for a password that you're
putting with the actual real password
that that never gets compromised
on the USB host.
So all of these various applications
are enabled by having such
a very simple concept of having a
computer on a USB
drive. And of course, it can also do
the standard role of being used as an
authentication token with UTF
due to the Feydeau protocol,
which was recently announced,
the Google authentication token or any
other token that you might think of,
of course, and is also a
very interesting idea,
which now can be done with such
hardware, which I really, really like,
which is authenticating the host.
So the USP device, how
Fenty case, the machine that it
is connected to because of course,
being this now an active device with
its own kernal, its own applications
that have been executed in schedule
as you prefer,
this device can communicate with your
hosts and can decide to
assess if the host that's being connected
to is the legitimate one or
not.
A very simple mechanism just to
check the SSL fingerprint
for DSH demon that is running on your
laptop. And then of course you can decide
what action to take.
If the host is not trusted,
the device can decide to wipe itself.
It can decide to even break itself
because the specific system on a chip
has way to Fuze keys
that if they're random, then the system
on a ship would never be able to put any
other code.
So all of these possibilities are
unthinkable with well, with standard
USB devices, and especially this one is
something that that I really like.
You can even have it so that if this
device is connected to a laptop, which
is not yours, it will not do anything
particularly damaging, but it
will just present a different set
of files.
Why not apply it to your laptop
and you see Mickey Mouse applying it to
mine and I see porn.
I don't know. You know, you can decide,
you know, whatever you like.
So in order to
support his application with a few design
goals, it needs to be compact and
USB power.
And when I mean USB power, I don't mean
to have a power supply with a USB form
factor. I mean being
powered by a standard USB port
on your laptop or your PC.
It needs to have a fast CPU,
not some very
low single purpose microcontroller, which
of course might do some of these use
cases, but it would be highly
optimized, the code in order to achieve
your goals. We wanted something which is
fast and a generous amount of ram.
We want secure, but we want
to be able to sign with our own keys
the code that runs on the on the storage
of this device.
And so that he gets executed on our
own, my personal or your personal device,
standard connectivity over USB and
very important. And to have a familiar
developing an execution environment.
So not something which is heavily
customized, not something which is hard
to develop, something that it's easy,
super easy.
And of course it needs to be open open
software, open hardware.
This is a.
Security device and one of
our goals is also to minimize supply
chain attacks, so you need
to be able to look at this device to
open schematics and see exactly
what's here. And if you want to modify
it, you want to have the PCB layout.
We also provide that.
So the challenge
is the first of many challenges in doing
something like this was, of course,
selecting the system on a chip and went
for the Freescale IMX 50 free.
Why did we choose the IMEX 53?
It's powerful. It's an eight arm CPU
and can be clocked between 800 megahertz
and one point two guards.
Almost every datasheet Emanuel is
public. No NDA require, especially
for security, which was very important
for us.
I wouldn't go as far as saying that the
data sheets of Freescale are awesome
because they're not. But there are less
cropping than many other vendors, which
is fine by me.
He has armed treston secure about secure
storage and secure ram on the system on a
chip that we can leverage on this,
a detailed power consumption guide
available, which to us is very useful
when we want to prototype such design
and as xylene native support.
This system on a chip can run Android,
Debian, Ubuntu, FreeBSD, the the,
the OS.
A lot of different operating systems
natively with no customization require,
which of course saved us from a lot of
effort in customizing things.
But it also empowers you to just
use stock Linux distributions
on a USB device.
And also this specific system on a chip
is a good stock in production support
guarantee because you don't want to
commit to a design and then find out
in one month that, oh, sorry, we don't
have this chip anymore because of course
that's going to be a nightmare.
I'll skip over this because we didn't
have too much time.
One of the things that we evaluate is
having a good trust and support into
this CPU, which
will allow us to separate
the software runs on this device to
to even have a further level of
separation. So, of course, with this
device, we shift the concept of live
OS. This is not just a storage
where you bood from, it's a completely
independent computer that
runs. But what we can do, we
can segregate the code that runs on
this device even more.
And having the so-called normal
and secure world that Truxtun
supports in these two wars are completely
separate. And the interesting thing about
Trussoni is that not only you can
separate something like the memory space
and code execution segments, but also
all the different hardware subcomponents
which are attached to the system on a
chip can be assigned to one of these two
words.
So just to give you an
example, there's an Leidy's on this
device and this led, if you one,
can be assigned solely on the secure
word, which means that whenever the LSD
is on, you know, by
design, by hardware enforcement,
that at that specific time
the secure container is
running and not the normal one
just by looking at an LED.
And we thought that's a very
cool feature. So in this way, one of the
ideas that we have is to implement the
encryption and the encryption for the
micro as the car in a secure
container, so that even if the Linux
OS, which is of course wider attack
surface, get compromised,
you won't be able to extract the
encryption keys from memory
because that memory cannot be accessed
either by direct addressing
or also by doing DMAs
with the other components on the system
on a chip, because every single component
is trussoni aware.
So this is a development timeline that we
did. We had a concept idea in January
based on a completely different system on
a chips. In March, we began development.
We did a breakout board in August.
We order an Alpha board.
The Alpha Board worked right away.
We announced the project in October.
In November, we made an order for beta
boards. The beta boards arrived and from
there we finalized the design for
the Mark One completely open source,
open hardware.
It is crowdfunding right now
on Crout supply and we're seventy
two percent of our goal.
So I'm pretty sure that we can make this
happen. But of course, if you're
interested into this, please check that.
So it is USB horsepower,
very small. He has a micro the card
slot. So all of the codes and the
bootloader, they from the micro, the
card.
There's a five pin breakout header for
Gio's S.P.I Square Sea
and cereal, which you can use
does the lid, which can be used for
secure remote detection.
We test the already Ubuntu and Debian
and Android and otherwise running on
it without any issues whatsoever.
And we also tested that we can emulate
Ethernet, my storage input devices,
pretty much everything so.
Of course, so far I only
mentioned device mode, and while
developing the device, we
I would say we were a little dumb because
we drove the ID from the USB on
the go to ground and we thought, you
know, we can never change the role of
that device. But it turns out that we can
also put the device in host mode.
So by putting the device in host mode,
it means that if you have a female to
female adapter, which here
it's implemented with a Bridport, you
just like a keyboard, a mouse, a USB
port, a screen and USB WiFi adapter.
And you can use this in completely
standalone mode just by a software
configuration, and then you can decide to
pull it off, putting it device
and attach it to your laptop, which I
think it's a very nice
way of inverting its
use. So for the super paranoid in
this way, it's completely standalone.
And this is a custom adapter that we're
making.
Of course, all of you hardware nerds
and geeks can make this very easily on a
breadboard or whatever.
It's super easy, but you seem to be
female to female and then a micrographs
before power.
So we just the power
USB hub and this adapter,
you can use the device, whatever
peripherals you want
in host mode.
So what were the challenges in making
this device? Of course, we have BGA
chips for the system on a chip in the
memory and it's also a very
tiny form factor, which means that it was
no way, at least we were incapable
of doing. Maybe some of you are much
better than us to to prototype this
by hand, to just order to PCBs
and sold our everything on our own, our
own. So the process was we make a design,
we make the order for to 10
devices, very expensive one
because it's high specification KPCB
and then we hope for
the best and the other
challenge. So and then the first thing
that we wanted to do was like, let's try
to be smart, let's try to avoid this
and let's do a BGA prototyping
board. And our idea was
we make a really expensive board and it
would buy a really expensive socket
adapter which is there, which allows us
to plumb the system on a chip without
actually shouldering anything at all.
It's about a seven hundred euro adapter.
And maybe this way we can power it
up and test pretty much everything
except the memory and tests
all of the possible routing and
configuration without, you
know, wasting a lot of money with PCBs.
So and this is the power of boards
that we tried to make.
But Darth Vader there, which
is me, killed the admiral,
which is my colleague, because it was
something like you failed me for the last
time because after making
ten of these, we never managed
to make them work, because the tolerances
for distances between Doctorow's
and capacitors and the and the power
control unit are so high
that by doing this by hand, as
you know, as much as careful as you can
be, you out of seven
voltage lines, one of them will not be
stable enough. So this was definitely
not the right way of doing things.
So this may turn out to be like the Super
Star Destroyer, a giant thing
which cost a lot of Omonia.
It's low. At the end of the day, it's
useless. So don't
do this. If you're making hardware,
go for the proper
design right away, because
if you're lucky like we were,
it will work the first try and you can
save a lot of time.
So when you have switch in power like
this, you don't.
At least in our case, it was a completely
pointless exercise to try and be a smart
second challenge.
We use keycard to do everything,
which is a nightmare.
I mean, it's open source and we wanted to
use it because then you can open up the
design and modify it.
But routing Roundwood would keycard
is, you know, I would really rather
be in a different life.
It took me two weeks to route their there
between the SOC and the memory
module. So that was a real, real
pain. But we made it work
so it can be done.
And I think it's pretty amazing that you
can do it completely with open source
tools.
The reason why I'm routing is
tricky is because all of those lines
need to be exactly of the same length
if you really want to be super
paranoid about it.
And when your PCB costs a lot
and you don't want to waste money,
you want to make sure that they are the
same length.
And Kikka doesn't help you in doing that
at all.
So then you go from the schematics.
But Kickett is very good in giving you
Afridi's representation, by the way, of
the board, which is not that useful.
But, you know, at least it looks nice.
So we see our Afridi's thing, we get
hyped and then we make the order and we
get the Alpha Board and the Alpha Board,
you see the admiral, it's a different one
than the one before because that one
died.
But they all look the same anyway.
So that admiral is alive
and standing because the Alpha Board
worked at the first try again,
I wasn't really inspire you to make
hardware. And even if it seems like
a very daunting task for
certain designs, this is one of the most
difficult things I could think of making.
You know, chances are that you will
be successful. So I really want to
inspire you into doing hardware.
So the Alpha Board was a little larger
because we wanted to have a data
connection in all possible test points
to figure out what was wrong in case
things went wrong, because it could be
really, really difficult to debug
issues, especially when the board
doesn't you know, it doesn't power
up.
And, you know, and also you have to work
with the manufacturer a lot because doing
a design on keycard and,
you know, even if your design rules pass,
it doesn't really mean that you can
manufacture that board reliably
or on a larger scale.
So it was really important to work with
the manufacturer to understand what were
the tolerances of the pick and place
machine, the solidary mechanism,
you know, to to understand what were the
various tolerances and see
if the board could have been produced
also. Because when you make something of
this size, you're going to violate
pretty much every single recommendation
that you find in pretty much every single
datasheet for every single component.
It will tell you why you should do this.
And then you're like, oh, you ask me to
have like a soccer field like miles
of Trace's around the memory about I can
only go that way.
So you will you know, you will forget all
of that and you would just go for it.
But it works. You know, we had JATO,
which was useless, but it makes a very
nice picture because that also works
and you can connect to it over
a port with a bus. Pirate power
consumption was great.
It was we can turn on the LSD, which we
added later, by the way.
And the same power of a Pentium
two is squeezed
right there, which I think
and he sold them with open source tools.
I think this is amazing.
And anybody can do this.
Then we got the beta board, so beta
blockers, we order a six revisions
to actually one, two, three, seven
revisions to lower down the price.
So we tried different things.
We tried to move from eight layers to six
layers. We ignored
a few recommendations about how to power
up.
We remove a certain components.
We tried not to power the USB host,
which at the end we didn't do, which is a
good thing because now we also have host
mode. So we went from alpha
to beta to mark
one, which is the final design.
And the betas, as you can see, were
different iterations.
So that was one order with multiple
designs. They all worked.
But from there we picked one.
We picked the one that was cheaper and
that was most effective.
Lessons learned.
No. One, there were some tiny inductors
which were extremely fragile.
And when I say fragile, I mean that
after one week they were just coming off
and not because the soldiering wasn't
done correctly, that you will never break
unless you do it intentionally, but
because the component itself
wasn't meant even to be to
take the shock of being
placed on a table like that
twice a day for a week that were coming
off the importance of testing,
test, test, test.
You don't want to make a thousand boards
that have this problem.
So one of the first thing that we did, we
changed in doctors were new ones which
have which have a very nice shape, which
looks like Battlestar Galactica notepad.
So I'm really proud of them.
When you do hardware, you will get super
hyped about these things.
You're like, oh, I'm reading A about E
these 50 pages long.
It's awesome. Just for one.
Tiny components is don't do it.
You get crazy.
Second, very evil problem,
gold plating.
We need gold plating for the USB
connection because otherwise after 50
uses it will just not work anymore.
The way you do gold plating.
We don't do what gold plating.
We're just going to manufacture, do gold
plating on those pads and then we'll do
it. And the way they do it, in
this case, in the beta version, they
they need some contact
points to place the deposit.
And what they did, they did for traces
that you can see there that we're going
outwards over the edge of the
board.
So what happened there?
We blocked the board.
We see that we have a five seconds
of delay and then the boot starts
every single time.
And we're like, we're d five
seconds coming from.
So what are you going to do?
You search into every datasheet and you
search with your PDF reader five
seconds and you find
that five seconds is the way time
that the voltage regulator uses
for under voltage detection.
And then we're like, so why do we have an
under voltage on connection?
Because by cutting
the board we have four little
conductive dots that make
contact with the USB plug the no
contact and then contact again.
And that causes the voltage
connection. We didn't design those
traces. The manufacturer did.
And we spent three days banging our
heads trying to debug this problem.
So that was very evil.
And on the right side, you see a better
way of doing gold plating with the four
little pads on
the crisis. So that was lesson
number two, even things
that should be trivial options that you
just click. Oh, yeah, sure do.
Gold plating, they might result in
bugs.
So this is the final
design we moved on the back
for people that still want to use
it by shouldering those pads, Shater
can be disabled, of course, and when you
are in secure trust mode,
of course, you are not be able to use it.
So don't worry about that.
And we see the the
butter on the left side.
And I have exactly six minutes
for question. If for interest in this
project, please go on the crowdfunding
page. Thank you very much.
And actually.
I I totally forgot I have
one attached to my laptop
and I can just as I say
to it.
So this year this is my USB drive
running Linux.
And this year, this is the Electrum
Bitcoin wallet running
on the USB drive and being exported
over X to my Windows machine.
So all of the keys are to drive.
This application took 30 seconds to test.
As soon as we to the device, we're like,
let's do that so you can see the
potentiality of this platform.
Thank you.
Questions question
from microphone for please.
First of all, thanks for making such a
great thing. And second of all, I'd like
to ask if you have already an alpha
beta software for authenticated, but
for authenticated.
But yes.
OK, so the secure vote,
there is an application note by
Freescale, which we're going to convert
into open source scripts where you can
just use them so secure.
What is there?
It's not something that we implement, but
we're going to make it easier for you in
order to use it.
So and that should happen before
before March. Now we want to push the
hardware out, but then we're going to
make that awesome.
Thanks.
Microphone number two, please.
Yeah, thanks, a great project
and there is
an e-card with wi fi on it
and a full Linux
system on it, and it's kind of
open source.
Did you take a look at this and
what what's the name of it?
Um, it was wi fi
or something from Sanders, if
I remember. Correct. But the two versions
of it and you can run your own
code on it.
You don't have the nice debugging
features, but you can
it's for showing
over Wi-Fi, for photographs
of photographs, and
you can manipulate
the photos as well,
but it has less features.
So this is great.
But if you take a look at it before you
did this, so before we had the idea, of
course, we looked at everything that was
out there and it was nothing that fit all
the features and nothing that was open
source like this. And also, you should be
very careful because some of them, they
will draw more than 500 million
in order to use the wi fi nd HDMI
and the CPU.
So one thing is having a power adapter,
which is a microcosm form factor, one
thing is buying power from the USB host
completely.
OK, so that's a key difference.
So none of these qualities
were existing when we started this
project and I don't think they exist now
still. So this, in my
opinion, is unique.
OK, yes. Thank you.
Microphone number five, please.
Hey,
do you have experienced any
heat problems?
And the second question is,
could you imagine to put a robust
casing around it so that
so we're working attached to a key ring
and be carried around every day.
So we're working on a case right now
and we hope for a case option to be
available on crowd supply
before the end of January.
So we're definitely thinking of that.
But it's also open source.
So if anybody has capabilities for making
a case, you can do it.
Regarding the heat, we tested it.
Of course, if you're using CPU
one hundred percent, the memory and your
percent, it gets toasty, but
it won't damage the board.
Any one damage you unless
you're extremely stupid.
So it gets hot as any
naked board and any stock.
But there's not a problem at all
about about that.
And we tested that.
Microphone number one, please.
I thank you for the great work.
My question is about you told
us that this all open source and
now as far as I know, the trust
zone with ARM, you need to sign with them
an NDA.
No, that's not correct.
Every reference guide
and usage guide for Tristen is
public and can be used publicly.
Actually, the support for Drosten,
there are two different aspects.
There's what AMA gives you an instruction
set which you will find in the arm.
Assembly instructions said were, of
course, no ideas are required.
And then there's the hardware support,
which is vendor dependent.
The hardware support, which is vendor
dependent, is only partially under
NDA, but all of it
is published within the Genard OS
source code.
So all the information that you need to
use Drosten is open.
OK, great. Thank you.
Thank you. Microphone number three,
please.
Hi. Thanks for the great project.
Quick question.
If you're going to use it as a standalone
computer, it would be really useful to
have HDMI at some point.
I mean, obviously it's a hardware, but
I wonder if you thought about it.
So one of the things that you
want to be careful when you make
hardware, you don't want to put too many
features on it because otherwise you're
going to derail.
We like minimal, beautiful designs.
So we didn't think of HDMI for a second.
Thank you.
And guess what?
We realized that by taking the inverse
hahaha we can use USB host
mode and you can use our USB monitor
of course is not like HDMI, but
you can still, if you want to use
it completely standalone without all
the hassle of having an HDMI connector.
So I don't want to enter into the area of
HDMI sticks that are for multimedia
purposes. I want this to be focus on
that. But who knows, maybe in the future
and it's open source. So if you want to
add a connector, just take the project
and do it.
Thank you. Thanks.
We can take one last question microphone
to please.
And if I got that correctly, I
can put my own keys on the
device for verifying the software
that's straining, right?
Yeah. So how does that work
exactly. How can I put my own keys?
Does it work via USB
to prevent a malicious attacker.
So you bootstrap so you can do it from
either the bootloader or from Linux
itself. You can infuse the keys.
There are certain register which you can
use and you don't use the keys.
You've used the hash of the key.
You have four slots.
And you can
and you can also have one revocation.
I think I don't remember, but you can you
can have up to four different keys
and those are yours.
And once those are enforced, the
bootloader needs to be signed with those
keys. OK, if you otherwise,
nothing will boot and there's no way to
override it.
OK, very good.
Thanks.
Thank you. Thank you very much.
A warm round of applause.