From: Corey Bryant <coreyb@linux.vnet.ibm.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-devel <qemu-devel@nongnu.org>,
Anthony Liguori <aliguori@amazon.com>
Subject: Re: [Qemu-devel] [PATCH 0/4] tpm: Provide a software vTPM
Date: Tue, 19 Nov 2013 16:32:06 -0500 [thread overview]
Message-ID: <528BD8D6.5070404@linux.vnet.ibm.com> (raw)
In-Reply-To: <CA+aC4ktOz9zSL87UmAzfkThMPF+t21WJWL5htjy+C=Q-vdKt7w@mail.gmail.com>
On 11/19/2013 02:50 PM, Anthony Liguori wrote:
> On Wed, Nov 6, 2013 at 6:38 AM, Corey Bryant <coreyb@linux.vnet.ibm.com> wrote:
>> This patch series provides support for a software Trusted Platform
>> Module (otherwise known as a vTPM). This support is provided via a
>> new backend that works with the existing QEMU tpm-tis front end.
>
> We do device emulation within QEMU. This is fundamentally what QEMU does.
>
> Why should we link against an external library instead of providing
> TPM emulation within QEMU itself? What makes TPM so special here?
Because 70k+ LOC *definitely* doesn't have a chance of getting into
QEMU, so it makes more sense to link against a library.
>
> I know the answer to these questions of course. There isn't a good
> reason but there exists vTPM as an external tool for historical
> reasons. I don't think that's a good justification for doing this.
> libtpms has had no review by anyone and does not have a community
> around it. Once we link against it, we are responsible for resolving
The source is now more readily available on github and while the
community is small, there is a community. Besides, QEMU uses other
libraries that have very small communities doesn't it?
> any security issue around it and fixing any bug within it.
Is this really true? Is QEMU responsible for fixing every bug in glibc?
--
Regards,
Corey Bryant
>
> That's essentially asking us to merge 70k+ LOCS without any review or
> validation ahead of time. That's an unreasonable request.
>
> Regards,
>
> Anthony Liguori
>
>> With this patch series, multiple guests can run with their own vTPM.
>> In comparison, the existing passthrough vTPM does not allow this
>> because the host TPM cannot be shared.
>>
>> Note: There is seabios code that is not yet upstream that is
>> required to run with this support. It provides support such as
>> initialization, ACPI table updates, and menu updates. If anyone
>> would like to run with that support, let me know and I can send you
>> a bios.bin.
>>
>> Following is a sample command line:
>>
>> qemu-img create -f qcow2 /home/qemu/images/nvram.qcow2 500K
>>
>> qemu-system-x86_64 ... \
>> -drive file=/home/qemu/images/nvram.qcow2,if=none,id=nvram0-0-0,format=qcow2 \
>> -device tpm-tis,tpmdev=tpm-tpm0,id=tpm0 \
>> -tpmdev libtpms,id=tpm-tpm0,nvram=nvram0-0-0
>>
>> Corey Bryant (4):
>> tpm: Add TPM NVRAM implementation
>> tpm: Share tpm_write_fatal_error_response
>> tpm: QMP/HMP support for libtpms TPM backend
>> tpm: Provide libtpms software TPM backend
>>
>> configure | 24 ++
>> hmp.c | 5 +
>> hw/tpm/Makefile.objs | 2 +
>> hw/tpm/tpm_libtpms.c | 885 ++++++++++++++++++++++++++++++++++++++++++
>> hw/tpm/tpm_nvram.c | 340 ++++++++++++++++
>> hw/tpm/tpm_nvram.h | 25 ++
>> hw/tpm/tpm_passthrough.c | 14 -
>> hw/tpm/tpm_tis.h | 1 +
>> include/sysemu/tpm_backend.h | 3 +
>> qapi-schema.json | 18 +-
>> qemu-options.hx | 31 ++-
>> tpm.c | 28 ++-
>> 12 files changed, 1357 insertions(+), 19 deletions(-)
>> create mode 100644 hw/tpm/tpm_libtpms.c
>> create mode 100644 hw/tpm/tpm_nvram.c
>> create mode 100644 hw/tpm/tpm_nvram.h
>>
>>
>
>
next prev parent reply other threads:[~2013-11-19 21:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-06 14:38 [Qemu-devel] [PATCH 0/4] tpm: Provide a software vTPM Corey Bryant
2013-11-19 19:50 ` Anthony Liguori
2013-11-19 21:32 ` Corey Bryant [this message]
2013-11-19 23:03 ` Anthony Liguori
2013-11-20 22:01 ` Stefan Berger
2013-11-21 1:15 ` Anthony Liguori
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=528BD8D6.5070404@linux.vnet.ibm.com \
--to=coreyb@linux.vnet.ibm.com \
--cc=aliguori@amazon.com \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/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;
as well as URLs for NNTP newsgroup(s).