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