From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4C28DCD13D2 for ; Mon, 18 Sep 2023 14:19:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=OnFplXWxGW1KijOTLAMwQUcsp89BdmYJggSvwMkG/o8=; b=ocpZfsSVD8f20A mY88EEQYiZ/+6LXtEHSJxEFC7bE3xuG4FoL3EaB2Xl/JpGwBdO830uQgcIqKwTMztSNpWMOSvLGsg IMshvwJ5GCPF20SSZIKOvhOB1GBxyuLEO5bqNvmaCdg8muIymEVh8u6TGIU//X/M5qgrhccOLofbD JofglRLAJif6WuTYI5gBRbaq7kpjq3QNVimuBVgsdBdJVBz7edEooOjwXXZEQent4wdvFpO+IDUh5 jz5qeUcLm9pn8OJ1E3KNpFESpix7j9XHELFI3tCJR7MR10BvWNiB5D8PTJQ/t7L7qqHorMHLx8tCj 1wJbC50spYAXCph5PEFA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qiF5H-00Fdzf-1i; Mon, 18 Sep 2023 14:18:43 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qiF5D-00Fdxr-27 for linux-arm-kernel@lists.infradead.org; Mon, 18 Sep 2023 14:18:41 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-52a5c0d949eso5529994a12.0 for ; Mon, 18 Sep 2023 07:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sigma-star.at; s=google; t=1695046715; x=1695651515; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=VFchyKYZaSrX7EMCsBGCn2uZcmTzjow+NxNlenZjDxg=; b=UFD7tqKQg3yq7A6dtlBMIWQvubNxZ25bk3t/u7QN5TfPZ+PTw4MjoiRFE0xXzE1D3g l5FSYwCK83U5En3bHV4wWtB+2fe6LKm3XLVftX7AMOJ2BFZCJodWQT5hWSHX2v/lY/vb /zlaH823kdvVJj7NgGOCa+Dsd2TtMC+YRkHGEHXoYpcG+eAmYy1yJhKOBo/JtEqmn7Sf 5kCtHixuXMQpsTNHNwnOQaNw6qogj36+aMIxoNGBp0KQXfp4/zwvA0ozGWIprnJuzXCO tbvAXG/qt7EwFcSNZd5WfPfu/hAEm2FriibdAhqbIYdkwc7ch0UrRT+WWhb0AFcyxlfv NXkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695046715; x=1695651515; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VFchyKYZaSrX7EMCsBGCn2uZcmTzjow+NxNlenZjDxg=; b=c1kbnjtIj+29tiTaJBgoX26t6QjWsq8QmkIvpoi+3sGcP7yy71bAvu0gdLHjQDhq/A IIoAerI2wcnlUSCgSXZIp0NplS0nThaKrgU1XAxYGmf27/5rHpir6SJmo9LPRYYeroM7 dS0sba65H7QteXgZCZNeLnVqD+D2zg2Twfq/oXbuurDndaYZQqRmAIlJeULj33V/M1Qy BwypN9I7pP6v8buFM2rYC+/AlXfd/7MG+l8FF7Nawumngbvi+Yqj+egAvBeYcuN5H3kj 3Ae+67iHbRi9yoI5ANfDZITQ7CWIVzb08Og5uGIO9akmMPxJazcqlQxALXoFDs6zTISA jmDQ== X-Gm-Message-State: AOJu0Yz/mfQrdJoxWlca2ThVTP4psnBPYJjthJDc/s4DqRe1mtUcpMBQ N7Gbhh+Bw+PuG5WC+3+3DKWsKQ== X-Google-Smtp-Source: AGHT+IGZY9EAv9fq5jtqbWievBVWv5LiwqHR3LyOgh3sgu5FxK83H5apmVz53SdQ15aJu5RB2fhOsg== X-Received: by 2002:a05:6402:28ac:b0:530:8d55:9c69 with SMTP id eg44-20020a05640228ac00b005308d559c69mr8040854edb.11.1695046714597; Mon, 18 Sep 2023 07:18:34 -0700 (PDT) Received: from localhost ([82.150.214.1]) by smtp.gmail.com with UTF8SMTPSA id f23-20020a056402161700b00525503fac84sm6031869edv.25.2023.09.18.07.18.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 18 Sep 2023 07:18:34 -0700 (PDT) From: David Gstir To: Mimi Zohar , James Bottomley , Jarkko Sakkinen , Herbert Xu , "David S. Miller" Cc: David Gstir , Shawn Guo , Jonathan Corbet , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Ahmad Fatoum , sigma star Kernel Team , David Howells , Li Yang , Paul Moore , James Morris , "Serge E. Hallyn" , "Paul E. McKenney" , Randy Dunlap , Catalin Marinas , "Rafael J. Wysocki" , Tejun Heo , "Steven Rostedt (Google)" , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-integrity@vger.kernel.org, keyrings@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-security-module@vger.kernel.org Subject: [PATCH v3 0/3] DCP as trusted keys backend Date: Mon, 18 Sep 2023 16:18:22 +0200 Message-ID: <20230918141826.8139-1-david@sigma-star.at> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230918_071840_012273_2FCA8C26 X-CRM114-Status: GOOD ( 20.02 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is a revival of the previous patch set submitted by Richard Weinberger: https://lore.kernel.org/linux-integrity/20210614201620.30451-1-richard@nod.at/ v2 is here: https://lore.kernel.org/keyrings/20230912111115.24274-1-david@sigma-star.at/ v2 -> v3: - Addressed review comments from Jarkko Sakkinen v1 -> v2: - Revive and rebase to latest version - Include review comments from Ahmad Fatoum The Data CoProcessor (DCP) is an IP core built into many NXP SoCs such as i.mx6ull. Similar to the CAAM engine used in more powerful SoCs, DCP can AES- encrypt/decrypt user data using a unique, never-disclosed, device-specific key. Unlike CAAM though, it cannot directly wrap and unwrap blobs in hardware. As DCP offers only the bare minimum feature set and a blob mechanism needs aid from software. A blob in this case is a piece of sensitive data (e.g. a key) that is encrypted and authenticated using the device-specific key so that unwrapping can only be done on the hardware where the blob was wrapped. This patch series adds a DCP based, trusted-key backend and is similar in spirit to the one by Ahmad Fatoum [0] that does the same for CAAM. It is of interest for similar use cases as the CAAM patch set, but for lower end devices, where CAAM is not available. Because constructing and parsing the blob has to happen in software, we needed to decide on a blob format and chose the following: struct dcp_blob_fmt { __u8 fmt_version; __u8 blob_key[AES_KEYSIZE_128]; __u8 nonce[AES_KEYSIZE_128]; __le32 payload_len; __u8 payload[]; } __packed; The `fmt_version` is currently 1. The encrypted key is stored in the payload area. It is AES-128-GCM encrypted using `blob_key` and `nonce`, GCM auth tag is attached at the end of the payload (`payload_len` does not include the size of the auth tag). The `blob_key` itself is encrypted in AES-128-ECB mode by DCP using the OTP or UNIQUE device key. A new `blob_key` and `nonce` are generated randomly, when sealing/exporting the DCP blob. This patchset was tested with dm-crypt on an i.MX6ULL board. [0] https://lore.kernel.org/keyrings/20220513145705.2080323-1-a.fatoum@pengutronix.de/ David Gstir (3): crypto: mxs-dcp: Add support for hardware provided keys KEYS: trusted: Introduce support for NXP DCP-based trusted keys doc: trusted-encrypted: add DCP as new trust source .../admin-guide/kernel-parameters.txt | 13 + .../security/keys/trusted-encrypted.rst | 85 +++++ MAINTAINERS | 9 + drivers/crypto/mxs-dcp.c | 104 +++++- include/keys/trusted_dcp.h | 11 + include/soc/fsl/dcp.h | 17 + security/keys/trusted-keys/Kconfig | 9 +- security/keys/trusted-keys/Makefile | 2 + security/keys/trusted-keys/trusted_core.c | 6 +- security/keys/trusted-keys/trusted_dcp.c | 311 ++++++++++++++++++ 10 files changed, 554 insertions(+), 13 deletions(-) create mode 100644 include/keys/trusted_dcp.h create mode 100644 include/soc/fsl/dcp.h create mode 100644 security/keys/trusted-keys/trusted_dcp.c -- 2.35.3 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel