Received: by 10.213.65.68 with SMTP id h4csp262756imn; Tue, 13 Mar 2018 03:40:04 -0700 (PDT) X-Google-Smtp-Source: AG47ELtxsx1wGx2IopSUwVTthODIkhecX/Ixhhm9Pmmv97pj1BsHAzRXsrhW+wtLOL64ag3K9GIl X-Received: by 10.98.204.69 with SMTP id a66mr113225pfg.33.1520937604748; Tue, 13 Mar 2018 03:40:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520937604; cv=none; d=google.com; s=arc-20160816; b=k0Dt66RwuYWn4kEmBYmIYNh/xkcIs8/eOcPOg0ohV32YZUJAdurOu1RzFOr229KtBB ZljVJ54r46Jz6kwrJqbWmWA7hBcocWfrSGUjQkXAqhSUxQpp9F9zBn6kdUjzIMIbSmTo Z5AGZgGbq4KrecVF5dSkt+rxgo4hPWu6oSducqnGctz0TYWJRgX4/k0ASDTHwSYvYjs0 RRias8MMAzErPYAE3g9ZWmUVeWed4gRmkq21wDkTaFrkcquzC6JEBcnMzBm/pZNQvyTl IcDmndSKSpJKYtTSavndOmlMTdjXnYv4LGHZyHfpN+P+7gd2ULELlSF0MeYlzAbk4alX txTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=qzZVChe6+wOD1QQ1UE9oTtTl8Kj7v1BCQEbkyGfWgCI=; b=CnoK0eGs/3gdWX+K901on41OgoYtW6KThC1LmGFi9ZyLvruX7XfGsmpvnAPR8+EykR zhZLUWjUv4iIC1RDTKZhHdn6HoCSdQjY4NCocZccZEBwT6+fynriQU81diaMh0UXSHi/ mDnMdKikwrJaHnTGqquFi6Re2sO3bWwQQJEzrml0vQlcEZqKARTq6CCWo1LvDuYYNS7t 9p9rPA9EoH1TWR54hx0Q0Umx9/mQyOYH0x2FWV8ygQVXC6cXWqRusvmgrbvEYirGO8Xe kxfLySD+lSW4H2XHcLs5ma0THaBQvPMq5IWqCUTF5b1UqApgxlpgtWIerBi+FlAjp36e nPvQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o20-v6si28454pli.229.2018.03.13.03.39.50; Tue, 13 Mar 2018 03:40:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932841AbeCMKg1 (ORCPT + 99 others); Tue, 13 Mar 2018 06:36:27 -0400 Received: from prv3-mh.provo.novell.com ([137.65.250.26]:42658 "EHLO prv3-mh.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932687AbeCMKgV (ORCPT ); Tue, 13 Mar 2018 06:36:21 -0400 Received: from linux-l9pv.suse (prv-ext-foundry1int.gns.novell.com [137.65.251.240]) by prv3-mh.provo.novell.com with ESMTP (NOT encrypted); Tue, 13 Mar 2018 04:36:14 -0600 From: "Lee, Chun-Yi" To: David Howells Cc: linux-fs@vger.kernel.org, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] MODSIGN: do not load mok when secure boot disabled Date: Tue, 13 Mar 2018 18:35:55 +0800 Message-Id: <20180313103559.13032-2-jlee@suse.com> X-Mailer: git-send-email 2.12.3 In-Reply-To: <20180313103559.13032-1-jlee@suse.com> References: <20180313103559.13032-1-jlee@suse.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The mok can not be trusted when the secure boot is disabled. Which means that the kernel embedded certificate is the only trusted key. Due to db/dbx are authenticated variables, they needs manufacturer's KEK for update. So db/dbx are secure when secureboot disabled. Cc: David Howells Cc: Josh Boyer Cc: James Bottomley Signed-off-by: Lee, Chun-Yi --- certs/load_uefi.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/certs/load_uefi.c b/certs/load_uefi.c index 3d88459..d6de4d0 100644 --- a/certs/load_uefi.c +++ b/certs/load_uefi.c @@ -164,17 +164,6 @@ static int __init load_uefi_certs(void) } } - mok = get_cert_list(L"MokListRT", &mok_var, &moksize); - if (!mok) { - pr_info("MODSIGN: Couldn't get UEFI MokListRT\n"); - } else { - rc = parse_efi_signature_list("UEFI:MokListRT", - mok, moksize, get_handler_for_db); - if (rc) - pr_err("Couldn't parse MokListRT signatures: %d\n", rc); - kfree(mok); - } - dbx = get_cert_list(L"dbx", &secure_var, &dbxsize); if (!dbx) { pr_info("MODSIGN: Couldn't get UEFI dbx list\n"); @@ -187,6 +176,21 @@ static int __init load_uefi_certs(void) kfree(dbx); } + /* the MOK can not be trusted when secure boot is disabled */ + if (!efi_enabled(EFI_SECURE_BOOT)) + return 0; + + mok = get_cert_list(L"MokListRT", &mok_var, &moksize); + if (!mok) { + pr_info("MODSIGN: Couldn't get UEFI MokListRT\n"); + } else { + rc = parse_efi_signature_list("UEFI:MokListRT", + mok, moksize, get_handler_for_db); + if (rc) + pr_err("Couldn't parse MokListRT signatures: %d\n", rc); + kfree(mok); + } + return rc; } late_initcall(load_uefi_certs); -- 2.10.2