From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Shane Wang <shane.wang@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
Pavel Machek <pavel@ucw.cz>, "Brown, Len" <len.brown@intel.com>,
"andi@firstfloor.org" <andi@firstfloor.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pm@lists.linux-foundation.org"
<linux-pm@lists.linux-foundation.org>,
"Cihula, Joseph" <joseph.cihula@intel.com>,
"arjan@linux.intel.com" <arjan@linux.intel.com>,
"chrisw@sous-sol.org" <chrisw@sous-sol.org>,
"jmorris@namei.org" <jmorris@namei.org>,
"jbeulich@novell.com" <jbeulich@novell.com>,
"peterm@redhat.com" <peterm@redhat.com>
Subject: Re: [PATCH v3] intel_txt: add support for S3 memory integrity protection within Intel(R) TXT launched kernel
Date: Wed, 10 Mar 2010 21:31:46 +0100 [thread overview]
Message-ID: <201003102131.46743.rjw@sisk.pl> (raw)
In-Reply-To: <4B973DDA.6050902@intel.com>
On Wednesday 10 March 2010, Shane Wang wrote:
> <compared with v2, this patch adds a check of array size in tboot.c, and a note
> to specify which c/s of tboot supports this kind of MACing in intel_txt.txt>
>
> v3: Based on a complexity analysis and tradeoff, we moved all MAC'ing into
> tboot.
>
> This patch adds support for S3 memory integrity protection within an Intel(R)
> TXT launched kernel, for all kernel and userspace memory. All RAM used by the
> kernel and userspace, as indicated by memory ranges of type E820_RAM and
> E820_RESERVED_KERN in the e820 table, will be integrity protected.
>
> The MAINTAINERS file is also updated to reflect the maintainers of the
> TXT-related code.
>
> Signed-off-by: Shane Wang <shane.wang@intel.com>
> Signed-off-by: Joseph Cihula <joseph.cihula@intel.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
> Documentation/intel_txt.txt | 16 +++++++++-------
> MAINTAINERS | 11 +++++++++++
> arch/x86/include/asm/e820.h | 7 ++++++-
> arch/x86/kernel/tboot.c | 20 +++++++++++---------
> 4 files changed, 37 insertions(+), 17 deletions(-)
>
> diff -r d2911aa1461d Documentation/intel_txt.txt
> --- a/Documentation/intel_txt.txt Thu Mar 04 09:37:53 2010 -0500
> +++ b/Documentation/intel_txt.txt Wed Mar 10 08:18:48 2010 -0500
> @@ -161,13 +161,15 @@ o In order to put a system into any of
> has been restored, it will restore the TPM PCRs and then
> transfer control back to the kernel's S3 resume vector.
> In order to preserve system integrity across S3, the kernel
> - provides tboot with a set of memory ranges (kernel
> - code/data/bss, S3 resume code, and AP trampoline) that tboot
> - will calculate a MAC (message authentication code) over and then
> - seal with the TPM. On resume and once the measured environment
> - has been re-established, tboot will re-calculate the MAC and
> - verify it against the sealed value. Tboot's policy determines
> - what happens if the verification fails.
> + provides tboot with a set of memory ranges (RAM and RESERVED_KERN
> + in the e820 table, but not any memory that BIOS might alter over
> + the S3 transition) that tboot will calculate a MAC (message
> + authentication code) over and then seal with the TPM. On resume
> + and once the measured environment has been re-established, tboot
> + will re-calculate the MAC and verify it against the sealed value.
> + Tboot's policy determines what happens if the verification fails.
> + Note that the c/s 194 of tboot which has the new MAC code supports
> + this.
>
> That's pretty much it for TXT support.
>
> diff -r d2911aa1461d MAINTAINERS
> --- a/MAINTAINERS Thu Mar 04 09:37:53 2010 -0500
> +++ b/MAINTAINERS Wed Mar 10 08:18:48 2010 -0500
> @@ -2891,6 +2891,17 @@ F: Documentation/networking/README.ipw22
> F: Documentation/networking/README.ipw2200
> F: drivers/net/wireless/ipw2x00/ipw2200.*
>
> +INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
> +M: Joseph Cihula <joseph.cihula@intel.com>
> +M: Shane Wang <shane.wang@intel.com>
> +L: tboot-devel@lists.sourceforge.net
> +W: http://tboot.sourceforge.net
> +T: Mercurial http://www.bughost.org/repos.hg/tboot.hg
> +S: Supported
> +F: Documentation/intel_txt.txt
> +F: include/linux/tboot.h
> +F: arch/x86/kernel/tboot.c
> +
> INTEL WIRELESS WIMAX CONNECTION 2400
> M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
> M: linux-wimax@intel.com
> diff -r d2911aa1461d arch/x86/include/asm/e820.h
> --- a/arch/x86/include/asm/e820.h Thu Mar 04 09:37:53 2010 -0500
> +++ b/arch/x86/include/asm/e820.h Wed Mar 10 08:18:48 2010 -0500
> @@ -45,7 +45,12 @@
> #define E820_NVS 4
> #define E820_UNUSABLE 5
>
> -/* reserved RAM used by kernel itself */
> +/*
> + * reserved RAM used by kernel itself
> + * if CONFIG_INTEL_TXT is enabled, memory of this type will be
> + * included in the S3 integrity calculation and so should not include
> + * any memory that BIOS might alter over the S3 transition
> + */
> #define E820_RESERVED_KERN 128
>
> #ifndef __ASSEMBLY__
> diff -r d2911aa1461d arch/x86/kernel/tboot.c
> --- a/arch/x86/kernel/tboot.c Thu Mar 04 09:37:53 2010 -0500
> +++ b/arch/x86/kernel/tboot.c Wed Mar 10 08:18:48 2010 -0500
> @@ -130,6 +130,9 @@ static void add_mac_region(phys_addr_t s
> struct tboot_mac_region *mr;
> phys_addr_t end = start + size;
>
> + if (tboot->num_mac_regions >= MAX_TB_MAC_REGIONS)
> + panic("tboot: Too many MAC regions\n");
> +
> if (start && size) {
> mr = &tboot->mac_regions[tboot->num_mac_regions++];
> mr->start = round_down(start, PAGE_SIZE);
> @@ -139,18 +142,17 @@ static void add_mac_region(phys_addr_t s
>
> static void __init tboot_setup_sleep(void)
> {
> + int i;
> +
> tboot->num_mac_regions = 0;
>
> - /* S3 resume code */
> - add_mac_region(acpi_wakeup_address, WAKEUP_SIZE);
> + for (i = 0; i < e820.nr_map; i++) {
> + if ((e820.map[i].type != E820_RAM)
> + && (e820.map[i].type != E820_RESERVED_KERN))
> + continue;
>
> -#ifdef CONFIG_X86_TRAMPOLINE
> - /* AP trampoline code */
> - add_mac_region(virt_to_phys(trampoline_base), TRAMPOLINE_SIZE);
> -#endif
> -
> - /* kernel code + data + bss */
> - add_mac_region(virt_to_phys(_text), _end - _text);
> + add_mac_region(e820.map[i].addr, e820.map[i].size);
> + }
>
> tboot->acpi_sinfo.kernel_s3_resume_vector = acpi_wakeup_address;
> }
>
>
next prev parent reply other threads:[~2010-03-10 20:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-01 8:52 [PATCH] intel_txt: fix the build errors of intel_txt patch on non-X86 platforms (resend) Shane Wang
2009-09-27 9:07 ` [PATCH] intel_txt: add s3 userspace memory integrity verification Shane Wang
2009-09-29 2:27 ` [PATCH] intel_txt: fix the buggy timeout warning logic in tboot Shane Wang
2009-10-04 18:58 ` [PATCH] intel_txt: add s3 userspace memory integrity verification Pavel Machek
2009-10-04 23:26 ` Andi Kleen
2009-10-15 7:57 ` Wang, Shane
2009-12-04 9:07 ` Wang, Shane
2009-12-04 8:19 ` Pavel Machek
2009-12-04 16:46 ` Cihula, Joseph
2009-12-04 17:13 ` Andi Kleen
2009-12-04 17:41 ` Cihula, Joseph
2009-12-04 20:09 ` Andi Kleen
2009-12-04 20:17 ` Cihula, Joseph
2009-12-04 20:31 ` Andi Kleen
2009-12-04 21:27 ` H. Peter Anvin
2009-12-04 17:53 ` H. Peter Anvin
2009-12-04 20:10 ` Andi Kleen
2009-12-04 22:25 ` Pavel Machek
2009-12-04 22:15 ` Pavel Machek
2009-12-04 22:24 ` H. Peter Anvin
2009-12-04 22:39 ` Pavel Machek
2009-12-04 22:46 ` H. Peter Anvin
2010-03-09 8:52 ` [PATCH v2] intel_txt: add support for S3 memory integrity protection within Intel(R) TXT launched kernel Wang, Shane
2010-03-09 9:06 ` Pavel Machek
2010-03-10 6:36 ` [PATCH v3] " Shane Wang
2010-03-10 20:31 ` Rafael J. Wysocki [this message]
2010-03-19 21:18 ` [tip:x86/txt] x86, tboot: Add support for S3 memory integrity protection tip-bot for Shane Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201003102131.46743.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=andi@firstfloor.org \
--cc=arjan@linux.intel.com \
--cc=chrisw@sous-sol.org \
--cc=hpa@zytor.com \
--cc=jbeulich@novell.com \
--cc=jmorris@namei.org \
--cc=joseph.cihula@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=mingo@elte.hu \
--cc=pavel@ucw.cz \
--cc=peterm@redhat.com \
--cc=shane.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome