Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1564925pxa; Thu, 13 Aug 2020 11:15:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxSx3aLXeKj+NfMsmZiv3i6+HWewCuYRVLKAk2EfA1ndeseBauY7MuvuEsUrPmRh3DXY74r X-Received: by 2002:a05:6402:297:: with SMTP id l23mr5944832edv.145.1597342503364; Thu, 13 Aug 2020 11:15:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597342503; cv=none; d=google.com; s=arc-20160816; b=NwAg4tAJwuBYua0D2aDlq6M2uHo+aj+rdnotn6e3OMRPVzmrc16YapaP/Z22iAo//P PGtslhUOiiydvRCWD4xzmetrNAHgPBwT42xAa7Pm65kvwHFxHpx61k3VZrB13Yo2DHV2 bYBx9UxFWjBD6bjHKFWRzrmVfP4s71r1WvocdO5QpzwZjkfwCxCRkrNq6Whw87c8vMui 4/6j58jLXTDZGO+5LA+veENjQmgZCShXDRH1L1BtSWkSPM30sFrThUXDAneOIqUUqgIo RBbuarguRHhG64ZzQAumaF8X/fhX0+3j0GOj8w7YFL0oCmg17MnuF0ifNP1XJPQrQjEo LzJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=dhX3aJX3q4KBRZHuwYhUlB8a3PTx5z3GZT2mRKIefQc=; b=Bn+eV6+gY77MSEvtCEl0JWLV144ZVxTvrEn9vAPsDGW/wX8dSC33+4r2POu40cIJlJ 2O1qA7LWLvtA7nrItbzXeqsvg6eIUlBmf1xP4Cn/pVQHunvxV3fu1uIjOif0boSOWvtv RyVRS0+Ka8aDf/IVu9VyiGAY6fFeMMYdPML+puc5Gc0haDbBlhqyiy1PsWYROg9wbwoa S2anU2nS7I6BX87yK2Gr9B0loxfSoscIc4yDmEgkmG4xc4Z5qq3+YPxU0OamJ7zLqBPC R+5g2Q3Epl0HwxLEinfWCJcayhyyzssLyPWGcpZrVrLyHtg+i+ec/71hdZQDCEhJ5Ncn 1QJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="O70/K86V"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k9si3555443eji.564.2020.08.13.11.14.39; Thu, 13 Aug 2020 11:15:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="O70/K86V"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726499AbgHMSN4 (ORCPT + 99 others); Thu, 13 Aug 2020 14:13:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726167AbgHMSN4 (ORCPT ); Thu, 13 Aug 2020 14:13:56 -0400 Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A336C061757; Thu, 13 Aug 2020 11:13:56 -0700 (PDT) Received: by mail-ot1-x342.google.com with SMTP id v6so5515320ota.13; Thu, 13 Aug 2020 11:13:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dhX3aJX3q4KBRZHuwYhUlB8a3PTx5z3GZT2mRKIefQc=; b=O70/K86V7BRLmfBGJE0TH9C17/lVqUl4Lgy4S0kS11tInrJK2MOBahhZD2luu4L8QQ +mFX9nukGFqBDAURjkNYl9uME9J8fpbZ0loY5lzHCGEiu29BMFoeGSoYuDPxjQBFmsTv TraI5M07RpmktvbsMNmwNKLaXXs1ir5UoqkrQZIjR/DeBEfvPqV19C1r3/oSU0SmNTkM 3z8gWjAlkB76ZE0s69wJUEZNwLCPb9rhlJfeywQ/wKQlyZip1VjzrhM8DHSp6d5mAUE2 XJwMJx0dkfmqgLk6Rd+sl4QPO/hPHSfXENlg9CM7nFxXgUxI96OjqBdbLI/IjjJcH3eQ ut7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dhX3aJX3q4KBRZHuwYhUlB8a3PTx5z3GZT2mRKIefQc=; b=HCoLhQS/WJCOiitamNUFnfGZt15r7ZSGP60kn8Z3xzDKjZDkH3IFBPl8sG37GNr/Ub /4DwCMym1LZCqaeS+Y0pX0vgXww0l26Iuk/aFStj9pYkNxET2bekxLsWtLAaX4ELn7lt EVtLRlyc/x+VN0QaIoILHJmatISVBw0laDrKqabDYl9ieNQZH0RGom+KozAqG3HSPxhM 9tjH6BAMYOZUsijG4UKtCl2e3OQanA/mWosoPVmP0/WcYWXcXMrDKRHFStwGbev1H8ro ofKZ+K9WZKczddx0SaNMt8cgYwib8ISs2ZgROQ3O8gF2ZL2IC4Y6kzzqo3ljEf8zrVOv mfLA== X-Gm-Message-State: AOAM532bwXiiH7S9cOzbzQ45BHfgRv7QD/MxrpiRTuxPTt5LaHxgJpQ+ ZsyItQoRptFrDSRY+BpZeof2X1jZ01T8aCp/WIQ= X-Received: by 2002:a05:6830:16d8:: with SMTP id l24mr5198130otr.89.1597342435667; Thu, 13 Aug 2020 11:13:55 -0700 (PDT) MIME-Version: 1.0 References: <20200813170707.2659-1-nramas@linux.microsoft.com> <20200813170707.2659-3-nramas@linux.microsoft.com> <5f738fd8-fe28-5358-b3d8-b671b45caa7f@gmail.com> <7315b7e8-2c53-2555-bc2e-aae42e16aaa2@linux.microsoft.com> In-Reply-To: From: Stephen Smalley Date: Thu, 13 Aug 2020 14:13:44 -0400 Message-ID: Subject: Re: [PATCH 2/2] SELinux: Measure state and hash of policy using IMA To: Lakshmi Ramasubramanian Cc: Mimi Zohar , Casey Schaufler , Tyler Hicks , tusharsu@linux.microsoft.com, sashal@kernel.org, James Morris , linux-integrity@vger.kernel.org, SElinux list , LSM List , linux-kernel , paul Moore Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 13, 2020 at 2:03 PM Lakshmi Ramasubramanian wrote: > > On 8/13/20 10:58 AM, Stephen Smalley wrote: > > On Thu, Aug 13, 2020 at 1:52 PM Lakshmi Ramasubramanian > > wrote: > >> > >> On 8/13/20 10:42 AM, Stephen Smalley wrote: > >> > >>>> diff --git a/security/selinux/measure.c b/security/selinux/measure.c > >>>> new file mode 100644 > >>>> index 000000000000..f21b7de4e2ae > >>>> --- /dev/null > >>>> +++ b/security/selinux/measure.c > >>>> @@ -0,0 +1,204 @@ > >>>> +static int selinux_hash_buffer(void *buf, size_t buf_len, > >>>> + void **buf_hash, int *buf_hash_len) > >>>> +{ > >>>> + struct crypto_shash *tfm; > >>>> + struct shash_desc *desc = NULL; > >>>> + void *digest = NULL; > >>>> + int desc_size; > >>>> + int digest_size; > >>>> + int ret = 0; > >>>> + > >>>> + tfm = crypto_alloc_shash("sha256", 0, 0); > >>>> + if (IS_ERR(tfm)) > >>>> + return PTR_ERR(tfm); > >>> Can we make the algorithm selectable via kernel parameter and/or writing > >>> to a new selinuxfs node? > >> > >> I can add a kernel parameter to select this hash algorithm. > > > > Also can we provide a Kconfig option for the default value like IMA does? > > > > Would we need both - Kconfig and kernel param? > > The other option is to provide an IMA function to return the current > hash algorithm used for measurement. That way a consistent hash > algorithm can be employed by both IMA and the callers. Would that be better? This is why I preferred just passing the serialized policy buffer to IMA and letting it handle the hashing. But apparently that approach wouldn't fly. IMA appears to support both a Kconfig option for selecting a default algorithm and a kernel parameter for overriding it. I assume the idea is that the distros can pick a reasonable default and then the end users can override that if they have specific requirements. I'd want the same for SELinux. If IMA is willing to export its hash algorithm to external components, then I'm willing to reuse that but not sure if that's a layering violation.