Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp211181rwi; Fri, 14 Oct 2022 00:24:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5BckvbFWz+SX9j5YnYkJ8lkb9fZUfw9gT1K0zkjxHD/0OWOyThfhy+ZArs1bHBxhTapebH X-Received: by 2002:aa7:84ce:0:b0:563:1aaf:81d5 with SMTP id x14-20020aa784ce000000b005631aaf81d5mr3877868pfn.63.1665732278565; Fri, 14 Oct 2022 00:24:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665732278; cv=none; d=google.com; s=arc-20160816; b=CB2waY9L0Sn4KHipyMK77V/nJk0H+a8Jjoep/hZKa1DvgOo3T/5ovS7lZMAqKQldPE Ubqi3ipwztUzsDG7d2ZTt+cSu2NIQJa9tl/GBt3GhTBv5qQ49I3N52dN6jwuf94/grgZ zl/pXX/l5rul+6JC7KRSGkE+7TUuIdI+zcBD5KPRT1uTcmEgViQDoNqf8At1SioRonz3 aQfD6SkGOOrIPT/9jy1SrnzLyphS9QNHZi4KPNULkWXDMwUtOj04svGoIROPBhm71+no F6w67QZru8RiLPB9gE5obuGEAUMmXiAn72pi/DsplngRRm8Sv50krK6zz0jenTdLgjYb 2Oqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:message-id:in-reply-to :subject:cc:to:from:date; bh=C+le1ktWaGVlAZIhYLpboFo4bmOlVxepnMFyBbyIlBw=; b=EHYvbm8ZSjSS3e/BLqaEBdVe9/+TlxlG/wAHyDBBI/8LfRcBIMYR0KgrrAspb5G6pK M+qTMlSq4G8NyquxeKy6u07MPIOn3pJ67hXYqjAYsMoDKAzLBbyPR2WLmR9YCb0jGQSS zN7n2lGKBg7PmgYuKBGMOdciBne/52ie69Os1NPq/zlG67PV95bZn75h0YPng/nvnD6+ jXkOvgFjxXi9WrSaavTkGY1X0N06BNqXY1VcAcb04Y7wWcKAac7VApNbG4wu8Iw3ejG+ Yn5z87QLZIA9Hub21GKh+I4Iqic8cyGV1+NrZPGlAuiFEmZUOrpPXcYdRBXkdaerSiuX R61Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i23-20020a63e917000000b00434cc1d3b6asi1848902pgh.68.2022.10.14.00.24.26; Fri, 14 Oct 2022 00:24:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229838AbiJNGk3 (ORCPT + 99 others); Fri, 14 Oct 2022 02:40:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34576 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229533AbiJNGk1 (ORCPT ); Fri, 14 Oct 2022 02:40:27 -0400 Received: from mail.steuer-voss.de (mail.steuer-voss.de [85.183.69.95]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 600F03CBC2; Thu, 13 Oct 2022 23:40:16 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at mail.steuer-voss.de Received: by mail.steuer-voss.de (Postfix, from userid 1000) id B6E851321; Fri, 14 Oct 2022 08:40:10 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.steuer-voss.de (Postfix) with ESMTP id B46441316; Fri, 14 Oct 2022 08:40:10 +0200 (CEST) Date: Fri, 14 Oct 2022 08:40:10 +0200 (CEST) From: Nikolaus Voss To: Mimi Zohar cc: David Howells , Jarkko Sakkinen , James Morris , "Serge E. Hallyn" , Yael Tzur , Cyril Hrubis , Petr Vorel , linux-integrity@vger.kernel.org, keyrings@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4] KEYS: encrypted: fix key instantiation with user-provided data In-Reply-To: <924a29d81cc7e0d3e2f62f693a0d8fcef97b9779.camel@linux.ibm.com> Message-ID: References: <20221013064308.857011E25@mail.steuer-voss.de> <924a29d81cc7e0d3e2f62f693a0d8fcef97b9779.camel@linux.ibm.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-448557197-1665729610=:29571" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-448557197-1665729610=:29571 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8BIT On Thu, 13 Oct 2022, Mimi Zohar wrote: > On Thu, 2022-10-13 at 08:39 +0200, Nikolaus Voss wrote: >> Commit cd3bc044af48 ("KEYS: encrypted: Instantiate key with user-provided >> decrypted data") added key instantiation with user provided decrypted data. >> The user data is hex-ascii-encoded but was just memcpy'ed to the binary buffer. >> Fix this to use hex2bin instead. >> >> Old keys created from user provided decrypted data saved with "keyctl pipe" >> are still valid, however if the key is recreated from decrypted data the >> old key must be converted to the correct format. This can be done with a >> small shell script, e.g.: >> >> BROKENKEY=abcdefABCDEF1234567890aaaaaaaaaa >> NEWKEY=$(echo -ne $BROKENKEY | xxd -p -c32) >> keyctl add user masterkey "$(cat masterkey.bin)" @u >> keyctl add encrypted testkey "new user:masterkey 32 $NEWKEY" @u >> >> It is encouraged to switch to a new key because the effective key size >> of the old keys is only half of the specified size. > > Both the old and new decrypted data size is 32 bytes. Is the above > statement necessary, especially since the Documentation example does > the equivalent? The old key has the same byte size but all bytes must be within the hex-asc?i range of characters, otherwise it is refused by the kernel. So if you wanted a 32 bytes key you get 16 effective bytes for the key. In the above example the string size of the $BROKENKEY is 32, while the string size of the $NEWKEY is 64. If you do $ echo $NEWKEY 6162636465664142434445463132333435363738393061616161616161616161 for the example, the range problem is obvious, so $NEWKEY is still broken. That's why it should only be used to recover data which should be reencypted with a new key. If you count exactly, the effective key size is _slightly_ longer than half of the specified size, but it is still a severe security problem. > >> The corresponding test for the Linux Test Project ltp has also been >> fixed (see link below). > > The LTP patch still needs to be revised, but the "Link" is a reference > to the discussion. Is the above statement necessary? As long as the patch is not accepted the discussion is helpful. But feel free to delete it upon integration ;-). > >> >> Fixes: cd3bc044af48 ("KEYS: encrypted: Instantiate key with user-provided decrypted data") >> Cc: stable >> Link: https://lore.kernel.org/ltp/20221006081709.92303897@mail.steuer-voss.de/ >> Signed-off-by: Nikolaus Voss > > Otherwise, > > Reviewed-by: Mimi Zohar Thanks Mimi! --8323329-448557197-1665729610=:29571--