ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New...

22

Transcript of ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New...

Page 1: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •
Page 2: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

ONIESecuring the Install ProcessCurt BrunePrincipal EngineerCumulus Networks

Page 3: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

3

March 2018

Curt Brune | Cumulus Networks

ONIESecuring the Install Process

Page 4: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

4

Talk Overview

• Quick Annual Roundup

• Root of Trust Concepts

• Booting ONIE Securely

• Verifying Installers

Cumulus Networks

Page 5: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

5

Since Last Year’s Summit

Contributions

• New machine definitions: 49 (more than 4 per month)• Contributing individuals: 24• Contributing organizations: 20

New Developments• Improved Documentation• Reduced Build Times• Support Common CPU modules• Moved to Linux kernel 4.9.y• Hooks for Network ASIC drivers

Cumulus Networks

Page 6: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

6

ONIE Project Statistics

Page 7: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

7

ONIE Project Statistics

Page 8: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

8

ONIE Project Statistics

Page 9: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

9

ONIE Project Contributors – Thanks!!

● Cumulus Networks● Mellanox● Lenovo● Celestica● NXP (Qualcomm)● Alpha Networks● Inventec● Juniper Networks● Canonical● Foxconn● Ingrasys Technology

● Accton / Edgecore● DELL EMC● Delta Networks● Quanta● Interface Masters● Centec Networks● Ciena● Intel● Broadcom● Platina Systems

Page 10: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

10

Main Event

Cumulus Networks

Securing the ONIE Boot Process

Page 11: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

11

Root of Trust, Chain of Trust

Cumulus Networks

Root Component

SignaturePublic Key

Next ComponentPublic Key

Signature

Next ComponentPublic Key

Signature

Next ComponentPublic Key

Each component verifies the next component

Page 12: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

12

ONIE Secure Boot on x86_64

• Unified Extensible Firmware Interface (UEFI) firmware▪ Maintains a database of authorized public keys - db▪ Maintains a database of blacklisted (revoked) keys - dbx

• shimx64.efi▪ Thin EFI application, signed by private key whose public

key is in UEFI db▪ Contains a public key for verifying the next stage▪ Verifies and loads next stage

• MokManager.efi▪ Machine Owner Key (MOK) database▪ Supplementary database of keys for verification▪ Used by shimx64.efi during image verification

Cumulus Networks

Page 13: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

13

ONIE Secure Boot on x86_64, Cont.

Cumulus Networks

UEFI

Signaturedb

shimx64.efiPublic Key

• UEFI verifies shimx64.efi• shimx64.efi is signed by a private key, whose public key is in

the UEFI db

Page 14: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

14

ONIE Secure Boot on x86_64, Cont.

Cumulus Networks

Signature

shimx64.efiPublic Key

Signature

grubx64.efi

• shimx64.efi verifies grubx64.efi using one of:▪ Internal key▪ UEFI db, dbx▪ MOK db, dbx

• Registers verification interface for grubx64.efi to use

Page 15: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

15

ONIE Secure Boot on x86_64, Cont.

Cumulus Networks

Signature

grubx64.efiVerifies

Signature

Linux Kernel

• grubx64.efi verifies Linux kernel• Uses interface provided by shimx64.efi for verification

▪ consults UEFI db, dbx, MOK db, MOK dbx

Page 16: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

16

ONIE Secure Boot on x86_64, All Together

Cumulus Networks

UEFI

Signaturedb

shimx64.efiPublic Key

Signature

grubx64.efiVerifies

Signature

Linux KernelPublic Key

• UEFI verifies shimx64.efi• shimx64.efi verifies grubx64.efi• grubx64.efi verifies Linux kernel• Linux kernel verifies kernel modules, etc.

Page 17: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

17

ONIE Secure Boot Available Today

• Includes Build System Modifications:▪ create shimx64.efi for external signing▪ sign grubx64.efi with ONIE vendor key▪ sign Linux kernel with ONIE vendor key

• For testing see the kvm_x86_64 virtual machine▪ QEMU with OVMF Tiancore UEFI Firmware▪ Pre-made keys and certificates▪ Exercises the entire secure boot flow

Cumulus Networks

Page 18: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

18

Future: Verifying Installers

• Locate an installer via the image discovery waterfall▪ Local file▪ DHCP options▪ etc...

• Verify the signature on the installer before execution▪ UEFI kek, db, dbx▪ MOK db, dbx▪ Continue waterfall if verification fails

• Execute the Installer▪ NOS installer prepares its NOS for Secure Boot

Cumulus Networks

Page 19: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

19

Future: Installer Root of Trust

• NOS Vendors Sign Their Installers

• NOS Vendors Publish Their Public Key Certificate

• End User Enrolls NOS Vendor Cert into MOK database

• ONIE Verifies NOS Vendor Signature on the Installer

• ONIE Runs the Installer

Cumulus Networks

Page 20: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

20

Thank you!Visit us at cumulusnetworks.com or follow us @cumulusnetworks

© 2018 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark

Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.

Cumulus Networksl

Page 21: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •

21

Further Reading

• ONIE Secure Boot Proposal▪ Version 2, April 217▪ http://mirror.opencompute.org/onie/docs/ONIESecureBootv2.pdf

• Unified Extensible Firmware Interface Specification▪ Version 2.7a, September 2017, http://www.uefi.org/

Cumulus Networks

Page 22: ONIE - Open Compute Project · 2018-05-29 · 5 Since Last Year’s Summit Contributions • New machine definitions: 49 (more than 4 per month) • Contributing individuals: 24 •