WEBVTT

00:00.000 --> 00:12.280
Okay, welcome to the open hardware devrim.

00:12.280 --> 00:21.520
We are fortunate to hear our next talk on one of the extremely interesting piece of open

00:21.520 --> 00:29.920
hardware here that implements a number of new ideas in how to provide a provider.

00:29.920 --> 00:41.440
This is a very useful single board computing devices, so please welcome John Thompson.

00:41.440 --> 00:45.440
Hello, good afternoon and thanks everyone for making it here.

00:45.440 --> 00:52.720
I appreciate it's after lunch on Sunday and so it's been a long weekend and it's been

00:52.720 --> 00:58.240
great to hear great talks on security, atostation, many, many different areas that

00:58.320 --> 00:59.240
low-risk cover.

00:59.240 --> 01:05.680
One of the things that we're going to cover in this talk is about an open source hardware

01:05.680 --> 01:11.400
that we've generated for a project and also describe a little bit of what we do and you

01:11.400 --> 01:15.240
may have heard of us through other means, so I'll try and explain something to that.

01:15.240 --> 01:17.520
So what is this talk about?

01:17.520 --> 01:23.480
So open source hardware and bitstream for evaluating chariot, what is Sonata?

01:23.480 --> 01:29.560
So before further ado, this is the board, it's something that's been produced by our

01:29.560 --> 01:38.080
colleagues at New A, a little demo stand as well, it's very swish now and it's for experimenting

01:38.080 --> 01:46.560
with chariot and we'll get into what chariot is, but firstly, a little detail.

01:46.560 --> 01:49.200
So what is low-risk?

01:49.200 --> 01:59.080
Low-risk is a clue is in the name, risk-five-based company we were an outspin of spin-out from

01:59.080 --> 02:06.960
Cambridge University, we celebrated our 10-year birthday last year and our mission is to

02:06.960 --> 02:11.000
try and get silicon commons, so open source hardware.

02:11.000 --> 02:16.920
So when I was last in the room over there 14 years ago, I hadn't given a talk, I was on

02:16.920 --> 02:22.080
open source software and now we're trying to do the same for open source hardware, so

02:22.080 --> 02:27.800
we're trying to make hardware the same as where open source software is now today.

02:27.800 --> 02:30.160
So what is low-risk?

02:30.160 --> 02:37.240
So non-profit, so it's a CIC company, community interest company, we don't make, we're

02:37.240 --> 02:40.960
not for profit, we have a full stack engineer in team, so

02:40.960 --> 02:44.960
if you were in the risk-five room yesterday, you would have heard about the open hardware

02:44.960 --> 02:53.120
foundation, so our friends there who also trying to get open source hardware, we do a

02:53.120 --> 02:59.840
lot more of the work in-house, but we also work on projects with other team members from

02:59.840 --> 03:04.480
different companies, which will show in one of our big projects, but we have all the way

03:04.480 --> 03:10.040
from LLVM, which was the basis of how low-risk started, we went into and we built

03:10.040 --> 03:16.360
up, so we got RTL, we got DV, we've got a lot of different types of engineers working

03:16.360 --> 03:17.360
with us.

03:17.360 --> 03:25.480
So we have about over 20 years, we have two main offices, well two main sites, so we're

03:25.480 --> 03:30.160
mainly, we're headquartered in Cambridge, there's a picture of our office, and we also

03:30.160 --> 03:36.800
have security researchers in Zurich, and we're expanding, we're always looking for people

03:36.880 --> 03:42.640
interested in open source hardware, and so if you're interested, please find me afterwards.

03:42.640 --> 03:48.320
We're founding member of RIS-5 Foundation, which is now RIS-5 International, and also I'll

03:48.320 --> 03:53.120
be speaking a little bit about Cherry Alliance, and we are the steward and maintainer of open

03:53.120 --> 04:02.960
Titan, and we also inherited from ETH Zurich, the Zurrisky project, which became Ibex,

04:02.960 --> 04:10.200
so we also maintain that 32-bit microcontroller, it's used in a lot of designs.

04:10.200 --> 04:20.040
This work was also done with our subsidiary, NUE, so we bought NUE a couple of years ago now,

04:20.040 --> 04:28.840
and NUE, I've seen mentioned in many talks, so they work on investigating hardware,

04:28.880 --> 04:33.240
site channel analysis, fault injection, but they work on security research onto hardware

04:33.240 --> 04:40.760
boards, and they're product line, which you can see there, is chip whisper, so one of

04:40.760 --> 04:47.640
their main products, so that's the CW 340 board, they also work on the CW 310, so I sort

04:47.640 --> 04:53.040
of mentioned, yes, the chip shelter, so if you're in security research, you may already

04:53.120 --> 04:59.760
played with these guys boards, very talented people, Colin is a great chap, and so it's

04:59.760 --> 05:08.560
great to see references in other talks in different rooms, and then we also have the chip

05:08.560 --> 05:16.800
shelter, so this is a 3D probe for being able to do attacks on and be able to introduce probes

05:16.800 --> 05:22.480
for things here, and they also run lots of research, so you may see them at black hat

05:22.480 --> 05:29.520
if you go to them, so open titans, so this is our big projects, so what we do on this, this

05:29.520 --> 05:34.800
is a secure execution environment, this is a silicon root of trust, but it's open source,

05:34.800 --> 05:41.280
so I saw lots of talks this morning on bootloader, bootflow, you're trusting on this

05:41.280 --> 05:47.760
TPM device, it's kind of like, oh it's the magic hardware, how can you really trust that,

05:47.760 --> 05:57.280
we do, so we've opened the design, so it's all the RTLs there, all the DV, and basically we're

05:57.280 --> 06:01.920
trying to go from, if the microphone still picks up, we're trying to go from on this left-hand side,

06:01.920 --> 06:06.880
which is the sort of state of the art, which is everything's red, not open, we're trying to get

06:06.960 --> 06:14.640
somewhere to everything green on the right, so we're trying to work with people, open synthesis flows,

06:14.640 --> 06:22.160
we're trying to make everything as open as possible, and so that's great, we can say it's on an

06:22.160 --> 06:29.840
FPGA, we can say it's been tested, but we got quite big partners here in this space, so how can we

06:29.840 --> 06:40.400
prove this, truth, proof is in the actual chip, so we have an engineering sample chip, so that

06:40.400 --> 06:47.680
we have real chips, so that was taped out, and we've been working with this to make sure that

06:47.680 --> 06:54.080
it's ready for production, so engineering sample chip, that's good, some people get to that point,

06:54.800 --> 07:01.200
how is this good, the great thing is this is going into Chromebooks, so if you have a Chromebook,

07:01.760 --> 07:08.640
as of next year, hopefully, fingers crossed, we will have an open source hardware, secure execution

07:08.640 --> 07:18.080
environment in the heart of Chromebooks, which is great news, sorry, okay perfect, sorry, there's

07:18.080 --> 07:27.680
a microphone rings, just here, oh camera, right, I will try not to deviate too far, right, so yeah,

07:27.680 --> 07:33.840
it's so excited, I'm moving stage left, stage right, so yeah, so this is by our product partners,

07:33.840 --> 07:41.120
so we have on the project side, we work on the open source design, and then on the product side,

07:41.120 --> 07:47.040
we have partners that you can see, well, new time and Google taping this out, so we're very excited,

07:47.120 --> 07:52.080
so let's say that's our security background, so there's lots of interest in that,

07:52.960 --> 07:58.800
how else can we show this loads of commits, if you've worked on security projects, you'll have

07:58.800 --> 08:05.280
seen, this is the design people test against, so this is really active, lots of people testing this,

08:05.280 --> 08:12.400
we're out and shares end of last year hosted by new way, lots of, lots of, it's real,

08:12.400 --> 08:20.080
DV people are experimenting with it, so all that is to say, come back to what this board is about,

08:20.080 --> 08:26.320
so we've got a background with low risk and UAE, and we were approached by digital security

08:26.320 --> 08:34.800
by design to work on a project, so back to the content, so as I said, we were approached by

08:34.800 --> 08:41.520
the SPD, which is part of UKRI, and there's been a longstanding thing to try and get cherry and

08:42.480 --> 08:47.120
to the main stream, this is something that's been here for about 15 years, so there's been

08:47.120 --> 08:56.000
research topic for quite a while, but what is cherry, what is cherry? So we have to motivate this,

08:56.000 --> 09:05.440
so why are we interested in these ideas, so why produce this board, so there's security

09:05.440 --> 09:10.000
breaches, what is interesting about security, you don't sell security, when you bought your

09:10.640 --> 09:16.400
hardware for Christmas last year, did you say, well it's got the new security feature,

09:16.400 --> 09:22.080
possibly not, you probably went on price performance or something else, IBM estimates,

09:22.080 --> 09:28.480
you know, each breaches 4.45 million, hardly, you know, there's big numbers, scaring numbers,

09:29.760 --> 09:34.560
and we're also seeing the number of attacks on these low-end devices, micro-traural devices,

09:35.280 --> 09:40.640
increasing, so they're becoming more and more the target of interest, because they're connected

09:40.640 --> 09:46.240
to the internet, previously they were not connected, now you have things that are connected and everywhere,

09:46.240 --> 09:52.400
and they're a great way to attack, and so to make it relevant to the audience, hopefully some

09:52.400 --> 09:59.200
of you went out and enjoyed some of the opportunities, so you know, we would prefer people to be

09:59.280 --> 10:06.560
spending money on interesting things, rather than, you know, breaches and attacks, so yeah.

10:08.400 --> 10:16.480
What is cherry, so memory safety, memory integrity, memory bugs, it's a done problem, isn't it?

10:16.480 --> 10:22.720
It was fixed, we've got rust, we've got other things, well Microsoft in a few years ago,

10:23.520 --> 10:31.200
60 years ago now, report and this still roughly maintains, which is that 70% of the

10:31.200 --> 10:37.040
CVEs are still related to memory safety, memory integrity, so could you use rust, could you use

10:37.040 --> 10:42.960
dotnet, could you use memory safety languages? Well yes, but you then have to try and fix all that

10:42.960 --> 10:49.840
old legacy code, now yes, you can go through that, but I don't think people will spend time on that,

10:50.640 --> 10:57.520
so billions or trillions of lines of code, but also there's different levels of compartmentalization,

10:57.520 --> 11:04.480
so for new code, yes, absolutely, we support rust, and we think that's still useful to do.

11:05.440 --> 11:12.800
Cherry and cherry it, so cherry, as I said, is a 15 year old piece of work from Cambridge and SRI,

11:12.800 --> 11:18.480
international capability hardware enhanced risk instructions, and what we're doing here is

11:19.280 --> 11:26.560
deterministic fine-grain protection, so I implore you if you interest in security,

11:26.560 --> 11:32.160
if you're interested in memory safety and memory integrity, people have mentioned and various

11:32.160 --> 11:41.280
talks about PMP, EMP, there's been MMEUs, there's been various discussions, there is a lot of work on

11:41.280 --> 11:47.440
on this which goes, you know, on the risk five space, you've got 64 PMP regions, this goes into

11:47.440 --> 11:53.680
really fine-grained resource management, so you can actually look at this, you can do ceiling,

11:53.680 --> 12:01.120
compartmentalization, so this offers you a lot more, so think of a chrome tab, is your image that you're

12:01.120 --> 12:06.640
loading, has your image library being corrupted, oh that's resource, well then you can do a

12:06.640 --> 12:13.120
side channel tag in a scape and do lots of other things, so this is a much finer grained approach,

12:13.120 --> 12:22.080
and this gives the hardware an idea of what memory is about and what it's doing, so so this is

12:22.080 --> 12:30.160
this has been pushed forward, cherry was worked on on the, the ARM SOC, so there was a Merello board

12:30.640 --> 12:38.800
and so that that's a 64-bit platform, people have used that, but the thing is that it's quite

12:38.800 --> 12:47.760
hard to find, you can't buy it and it's a little bit questionable on how ARM will continue with

12:47.760 --> 12:54.960
that support, incomes, DSBD asking us, can we do this for the 32-bit microcontroller world, can we show

12:54.960 --> 13:00.400
that cherry is useful, and it's going to protect all this legacy code for embedded hardware,

13:00.400 --> 13:07.280
which is everywhere and pervasive. Microsoft have worked on this as well, and they took ibex, which I

13:07.280 --> 13:14.480
mentioned, you know, low-risk, you know, curate, and they've, they've combined cherry with an

13:14.480 --> 13:19.120
out of us, and I'll show that in the next slide, and they've pulled this together, so we then

13:19.120 --> 13:27.200
we got cherry it, which is on the embedded side. Firstly, I just want to show quickly the board

13:27.200 --> 13:32.640
iteration, so I showed you the physical boards. We've had about a year and we've gone through

13:32.640 --> 13:37.280
multiple, you know, going through all the open source design, we've gone through this all,

13:37.840 --> 13:42.880
and now we have the products, and it's out there, and people being using this. Some of the features,

13:43.360 --> 13:50.560
this is meant to be low-cost boards. We don't make a profit on this, we give the boards

13:51.600 --> 14:00.240
with a very fine margin. We produce it, we give everything on here as a patchy-two license,

14:00.240 --> 14:05.840
you can download the PCB, you can download the bill materials, gubernators, etc. You can download it all,

14:06.640 --> 14:10.960
and there's various things here for experimenting with various things that you'll be familiar with

14:11.600 --> 14:18.240
as we pie, hats, or greener shields. So anything that you could connect to, we think we've got

14:18.240 --> 14:25.840
you covered on the embedded side. We don't, you know, it's not PCI Express, it's not things on that side,

14:25.840 --> 14:33.440
but for low-speed controllers, which are still vulnerable to attacks, various, you know,

14:33.440 --> 14:39.200
less likely to get interest on memory safety, etc. We think this is the area that's useful. So

14:39.280 --> 14:45.840
lots of features here, which are good to play with. Block diagram, show how this all fits together,

14:45.840 --> 14:54.320
you know, essentially it's low-resource, so I mean it's, you're not going to be able to do AI,

14:54.320 --> 14:59.360
mining, all these sorts of things which are interesting, this is really focused on

15:00.560 --> 15:05.200
the that hardware that's going to be resource-constructing, so it's all designed for that,

15:06.160 --> 15:13.520
I just showed you the block diagram of that. And as I said, Microsoft took on Ibex and Cherry,

15:14.080 --> 15:19.680
put an articles with it, and we've got Cherry at, so in the sake of time, I won't go too much

15:19.680 --> 15:26.880
into detail on here, but essentially people are interested in this and open-source has been

15:26.880 --> 15:31.600
people have taken Ibex, they've taken the ideas, and they re-contributed this all in.

15:32.560 --> 15:38.800
Part of some birth project, which Sonata came out of, is also about teaching and in disseminating

15:38.800 --> 15:44.240
this, so lots of events, we were at high peak couple of weeks ago, and this event, so we're trying

15:44.240 --> 15:49.680
to bring the word of Cherry, we're trying to say that this is useful, you should be interested in this,

15:49.680 --> 15:54.880
so you will see us trying to promote this, you'll see other companies doing that.

15:55.520 --> 16:03.520
Keycabs, so everything, as I mentioned, is open-source, but we designed it initially in Altium,

16:04.480 --> 16:11.200
but what we wanted to do is get the full flow, so that included the design, so we're very

16:11.200 --> 16:18.800
happy to say that everything is now fully open, the only thing that you can't get is the FPGA design

16:18.800 --> 16:26.640
if AMD wants to discuss, open-source in that, please approach me, but everything else is being converted,

16:27.680 --> 16:33.040
and of course with Keycabs, there was a great talk earlier, all the great features coming up,

16:33.040 --> 16:36.400
but yeah, one of the things which is very useful is being able to visualize it, being able to

16:36.400 --> 16:44.640
explore with it, so hopefully you saw the Keycabs talk earlier. Now, as I said, one of the things about

16:44.720 --> 16:51.840
proving hardware is going from design, verification, and to actually having chips, so based on the

16:51.840 --> 16:59.040
success of Sonata and people using this, we've had an extension for the project, it's not very long

16:59.040 --> 17:07.040
in time, but we've been trying to work with our new partner, SEI Semi, and we're trying to get this

17:07.040 --> 17:15.600
taped out, so actual real chips that enable Cherry and Cherryet to be investigated, so real silicon,

17:17.200 --> 17:23.680
and so we're aiming to push this all through, make it available, they're hoping to get chips

17:23.680 --> 17:31.520
through MPW through 2025, so we're very excited about this, and the other thing is, I think one of the

17:31.520 --> 17:38.240
talks on open hardware foundation, yesterday we were mentioning, why would you consider CV2,

17:38.240 --> 17:44.480
type, low-end systems? Very good, this is very good for being able to do analysis, you know,

17:44.480 --> 17:49.920
very simple microcontrollers, you can do a lot of work on it, you can understand the flow, it's not

17:50.640 --> 17:56.320
doing all sorts of strange things which you get on more powerful devices, and so part of this,

17:56.320 --> 18:00.400
given the security concerns and the safety and integrity concerns, is actually doing

18:00.400 --> 18:06.880
formal verification, and we're very pleased that Professor Tom Mellum and the University of Oxford

18:06.880 --> 18:10.800
are helping with this as well as the University of Cambridge on doing this formal verification.

18:12.640 --> 18:16.240
So quickly into Cherry Alliance, so one of the things we said about is about promoting this,

18:16.960 --> 18:22.640
Cherry Alliance is something new, again non-profit, looking to try and promote Cherry.

18:24.480 --> 18:28.240
There's quite a few interesting partners there, so if you haven't heard of Cherry before today,

18:28.480 --> 18:32.240
I hope you take away that this is something quite interesting and relevant.

18:34.080 --> 18:39.840
Cherry Alliance, an open source, you know, so idea is to try and get everything out using open source

18:39.840 --> 18:45.200
methodologies, we saw the benefits of Microsoft coming back, taking eye-bex, it's all virtuous,

18:45.200 --> 18:51.360
cycles, and if you're an individual, you can sign up for free, if you're a university and non-profit,

18:51.440 --> 18:58.000
it's also possible to work on joining for free as well. So if you want to talk about Cherry Alliance,

18:58.000 --> 19:02.720
please just speak afterwards as well. So there's lots of work on trying to get this through,

19:02.720 --> 19:07.840
also working with risk-five to try and get this adopted as part of standardization for them.

19:09.280 --> 19:16.160
And the great thing about this is that these boards, unlike the Merrillow platform,

19:16.160 --> 19:22.320
you can actually buy them, so I haven't been able to bring any to set up because otherwise I'll

19:22.320 --> 19:30.000
get in trouble with customs, etc. But yeah, you can buy them on Melzer, this is a great way for

19:30.000 --> 19:37.760
experimenting with Cherry Arts and being able to explore what is going to be adopted for a memory

19:37.760 --> 19:42.320
safety and memory integrity. So there's a link there and there's also a link on the final slide.

19:43.120 --> 19:51.440
So basically, there's lots of references, lots of information, and I do implore people to

19:51.440 --> 19:57.040
investigate it, find out about Cherry Alliance, find out about low risk and some

19:57.040 --> 20:00.320
invest in the works we're doing. So with that, thank you.

20:06.960 --> 20:07.680
Some questions?

20:12.160 --> 20:15.440
Hi, so thank you for the talk in the great work.

20:15.440 --> 20:22.000
Especially I found the documentation, the website very thorough and lot of work being put in there.

20:22.000 --> 20:27.760
So great work. I just wanted to ask you about the tape out that would happen. Do you

20:27.760 --> 20:34.320
believe that that tape-out thought that would be there? Would also be a relevant for public

20:34.320 --> 20:36.080
life-like disproject, guys?

20:36.080 --> 20:40.720
So thank you for the question. So first, there was a comment on thank you for the documentation

20:40.720 --> 20:45.600
and thank you for the supporting material. We appreciate that. We spent a lot of effort on trying

20:45.600 --> 20:50.640
to get good deviant replication. There was a question on the SOC, whether that would be fully

20:50.640 --> 20:56.960
open source. Now, unfortunately, there are some bits of that which will be painted to

20:56.960 --> 21:01.840
there'll be certain things. We are verifying the open source part of that, and as part of that,

21:01.840 --> 21:07.200
we are trying to get the sunburst chip repo open source. So it'll be a doppelganger,

21:07.200 --> 21:12.960
so it'll vaguely resemble the things, but there'll be some other proprietary elements,

21:12.960 --> 21:18.480
given the security interested in this. We would love to have it fully open source,

21:18.560 --> 21:24.800
but through our partners in SIOC, we're trying to encourage them to open source as much as possible,

21:24.800 --> 21:27.680
but, you know, we'll, yeah.

21:27.680 --> 21:34.560
In SIOC words? Oh, yeah. And so, and the thing is about selling the SOC. So yes, I think that

21:34.560 --> 21:38.640
there will be willing, you know, so that they're going to be doing mass market, and there will be

21:38.640 --> 21:51.760
wanting to sell the SOC. How do you manage secrets like private keys and other things

21:51.760 --> 21:57.760
in an open source RTL? So, the question was, how do you manage secrets?

21:58.640 --> 22:04.960
Now, on an open source RTL. Now, for that, I won't speak about this board, which doesn't

22:05.040 --> 22:10.960
have as much security SIA and FI work. We believe in culture, of principle, which is keep the

22:10.960 --> 22:18.960
secret secret, and keep, and everything else open. So what we do is we say that, so talking about

22:18.960 --> 22:25.920
open titan, that you maintain the secrets using OTP, fuses, you work on making sure that that part

22:25.920 --> 22:32.400
is kept secret. That's the only bit of the design that you, you know, it's just that secret.

22:32.880 --> 22:42.160
Everything else is open. So there are some analog items and some aspects of the foundry that

22:42.880 --> 22:51.360
will be proprietary. Hello, thank you for your presentation. Just a little more detail about the

22:51.360 --> 22:59.360
data out. Will it be an open source PDK and open source design flow? Yeah. So the question was, will

22:59.360 --> 23:06.080
will we be using an open source PDK? Will we be supporting the flow fully through open source?

23:06.080 --> 23:14.320
Unfortunately, as you saw, it was 22 nanometer FD access, so I, which is, you know, proprietary.

23:14.320 --> 23:22.320
Unfortunately, I would love to have the whole design and, you know, in an MPW and being able to

23:22.320 --> 23:29.040
experiment with it. Unfortunately for various reasons, it's going to be at that note size.

23:30.320 --> 23:34.960
So I'd love to come back in a year or two time and say, yes, it's all going to be in the open flow.

23:39.600 --> 23:47.840
Any more questions? If there's no more questions, we have some leaflets, some flyers,

23:47.920 --> 23:53.840
some swag and things. So just please feel free to approach me just outside and I'll give some of that out.

23:54.640 --> 23:56.640
John will be just outside. Thank you again, John.

24:01.520 --> 24:06.000
So as you come into the bedroom, please do try to squeeze into the center so that we get

