All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Berger <stefanb@linux.vnet.ibm.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"BICKFORD, JEFFREY E" <jb613w@att.com>
Cc: "Daniel P. Berrange" <berrange@redhat.com>,
	Stefan Berger <stefanb@us.ibm.com>,
	"mst@redhat.com" <mst@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"quan.xu@intel.com" <quan.xu@intel.com>,
	"silviu.vlasceanu@gmail.com" <silviu.vlasceanu@gmail.com>,
	"hagen.lauer@huawei.com" <hagen.lauer@huawei.com>,
	"SHIH, CHING C" <cs1815@att.com>,
	"SERBAN, CRISTINA" <cs1731@att.com>
Subject: Re: [Qemu-devel] [PATCH v5 1/4] Provide support for the CUSE TPM
Date: Mon, 13 Jun 2016 06:56:12 -0400	[thread overview]
Message-ID: <575E914C.3050101@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160531191031.GD2264@work-vm>

On 05/31/2016 03:10 PM, Dr. David Alan Gilbert wrote:
> * BICKFORD, JEFFREY E (jb613w@att.com) wrote:
>>> * Daniel P. Berrange (berrange@redhat.com) wrote:
>>>> On Wed, Jan 20, 2016 at 10:54:47AM -0500, Stefan Berger wrote:
>>>>> On 01/20/2016 10:46 AM, Daniel P. Berrange wrote:
>>>>>> On Wed, Jan 20, 2016 at 10:31:56AM -0500, Stefan Berger wrote:
>>>>>>> "Daniel P. Berrange" <berrange@redhat.com> wrote on 01/20/2016 10:00:41
>>>>>>> AM:
>>>>>>>
>>>>>>>
>>>>>>>> process at all - it would make sense if there was a single
>>>>>>>> swtpm_cuse shared across all QEMU's, but if there's one per
>>>>>>>> QEMU device, it feels like it'd be much simpler to just have
>>>>>>>> the functionality linked in QEMU.  That avoids the problem
>>>>>>> I tried having it linked in QEMU before. It was basically rejected.
>>>>>> I remember an impl you did many years(?) ago now, but don't recall
>>>>>> the results of the discussion. Can you elaborate on why it was
>>>>>> rejected as an approach ? It just doesn't make much sense to me
>>>>>> to have to create an external daemon, a CUSE device and comms
>>>>>> protocol, simply to be able to read/write a plain file containing
>>>>>> the TPM state. Its massive over engineering IMHO and adding way
>>>>>> more complexity and thus scope for failure
>>>>> The TPM 1.2 implementation adds 10s of thousands of lines of code. The TPM 2
>>>>> implementation is in the same range. The concern was having this code right
>>>>> in the QEMU address space. It's big, it can have bugs, so we don't want it
>>>>> to harm QEMU. So we now put this into an external process implemented by the
>>>>> swtpm project that builds on libtpms which provides TPM 1.2 functionality
>>>>> (to be extended with TPM 2). We cannot call APIs of libtpms directly
>>>>> anymore, so we need a control channel, which is implemented through ioctls
>>>>> on the CUSE device.
>>>> Ok, the security separation concern does make some sense. The use of CUSE
>>>> still seems fairly questionable to me. CUSE makes sense if you want to
>>>> provide a drop-in replacement for the kernel TPM device driver, which
>>>> would avoid ned for a new QEMU backend. If you're not emulating an existing
>>>> kernel driver ABI though, CUSE + ioctl is feels like a really awful RPC
>>>> transport between 2 userspace processes.
>>> While I don't really like CUSE; I can see some of the reasoning here.
>>> By providing the existing TPM ioctl interface I think it means you can use
>>> existing host-side TPM tools to initialise/query the soft-tpm, and those
>>> should be independent of the soft-tpm implementation.
>>> As for the extra interfaces you need because it's a soft-tpm to set it up,
>>> once you've already got that ioctl interface as above, then it seems to make
>>> sense to extend that to add the extra interfaces needed.  The only thing
>>> you have to watch for there are that the extra interfaces don't clash
>>> with any future kernel ioctl extensions, and that the interface defined
>>> is generic enough for different soft-tpm implementations.
>>> Dave
>>> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>>
>> Over the past several months, AT&T Security Research has been testing the Virtual TPM software from IBM on the Power (ppc64) platform. Based on our testing results, the vTPM software works well and as expected. Support for libvirt and the CUSE TPM allows us to create VMs with the vTPM functionality and was tested in a full-fledged OpenStack environment.
>>   
>> We believe the vTPM functionality will improve various aspects of VM security in our enterprise-grade cloud environment. AT&T would like to see these patches accepted into the QEMU community as the default-standard build so this technology can be easily adopted in various open source cloud deployments.
> Interesting; however, I see Stefan has been contributing other kernel
> patches that create a different vTPM setup without the use of CUSE;
> if that's the case then I guess that's the preferable solution.

That solution is for Linux containers. It doesn't have the control 
channel we need for virtual machines where for example a reset it sent 
to the vTPM by QEMU when rebooting the VM. Instead we assume that the 
container management stack would reset the vTPM upon container restart.


> Jeffrey: Can you detail a bit more about your setup, and how
> you're maanging the life cycle of the vTPM data?
>
> Dave
>
>> Regards,
>> Jeffrey Bickford
>> AT&T Security Research Center
>> jbickford@att.com
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>

  parent reply	other threads:[~2016-06-13 10:56 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-04 15:23 [Qemu-devel] [PATCH v5 0/4] Extend TPM support with a QEMU-external TPM Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 1/4] Provide support for the CUSE TPM Stefan Berger
2016-01-20 15:00   ` Daniel P. Berrange
2016-01-20 15:31     ` Stefan Berger
     [not found]     ` <201601201532.u0KFW2q2019737@d03av03.boulder.ibm.com>
2016-01-20 15:46       ` Daniel P. Berrange
2016-01-20 15:54         ` Stefan Berger
2016-01-20 16:03           ` Michael S. Tsirkin
2016-01-20 16:13             ` Stefan Berger
2016-01-20 16:22           ` Daniel P. Berrange
2016-01-21 11:36             ` Dr. David Alan Gilbert
2016-05-31 18:58               ` BICKFORD, JEFFREY E
2016-05-31 19:10                 ` Dr. David Alan Gilbert
2016-06-01 22:54                   ` BICKFORD, JEFFREY E
2016-06-13 10:56                   ` Stefan Berger [this message]
2016-06-01  1:58                 ` Xu, Quan
2016-06-13 11:02                   ` Stefan Berger
2016-06-15 19:30                     ` Dr. David Alan Gilbert
2016-06-15 20:54                       ` Stefan Berger
2016-06-16  8:05                         ` Dr. David Alan Gilbert
2016-06-16  8:25                           ` Daniel P. Berrange
2016-06-16 15:20                             ` Stefan Berger
2017-03-01 12:25                             ` Stefan Berger
2017-03-01 12:54                               ` Daniel P. Berrange
2017-03-01 13:25                                 ` Stefan Berger
2017-03-01 14:17                                   ` Marc-André Lureau
2017-03-01 14:50                                     ` Stefan Berger
2017-03-01 15:24                                       ` Marc-André Lureau
2017-03-01 15:58                                         ` Stefan Berger
2017-03-01 16:22                                       ` Michael S. Tsirkin
2017-03-01 16:31                                         ` Daniel P. Berrange
2017-03-01 16:57                                           ` Dr. David Alan Gilbert
2017-03-01 17:02                                           ` Michael S. Tsirkin
2017-03-01 17:12                                             ` Stefan Berger
2017-03-01 17:16                                               ` Michael S. Tsirkin
2017-03-01 17:20                                                 ` Daniel P. Berrange
2017-03-01 18:03                                                   ` Michael S. Tsirkin
2017-03-01 17:25                                                 ` Stefan Berger
2017-03-01 17:38                                                   ` Daniel P. Berrange
2017-03-01 17:58                                                     ` Michael S. Tsirkin
2017-03-01 18:06                                                       ` Dr. David Alan Gilbert
2017-03-01 18:09                                                         ` Michael S. Tsirkin
2017-03-01 18:18                                                           ` Dr. David Alan Gilbert
2017-03-01 18:30                                                             ` Michael S. Tsirkin
2017-03-01 19:24                                                               ` Stefan Berger
2017-03-01 23:36                                                                 ` Michael S. Tsirkin
2017-03-01 23:42                                                                   ` Michael S. Tsirkin
2017-03-01 18:11                                                       ` Daniel P. Berrange
2017-03-01 18:20                                                         ` Michael S. Tsirkin
2017-03-01 18:32                                                           ` Marc-André Lureau
2017-03-01 18:56                                                             ` Daniel P. Berrange
2017-03-01 19:18                                                               ` Marc-André Lureau
2017-03-01 22:22                                                               ` Michael S. Tsirkin
2017-03-01 17:36                                               ` Daniel P. Berrange
2017-03-01 15:18                                   ` Daniel P. Berrange
2017-03-01 15:40                                     ` Stefan Berger
2017-03-01 16:13                                       ` Daniel P. Berrange
2016-06-16 13:58                           ` SERBAN, CRISTINA
2016-06-16 15:04                           ` Stefan Berger
2016-06-16 15:22                             ` Dr. David Alan Gilbert
2016-06-16 15:35                               ` Stefan Berger
2016-06-16 17:54                                 ` Dr. David Alan Gilbert
2016-06-16 18:43                                   ` Stefan Berger
2016-06-16 19:24                                     ` Dr. David Alan Gilbert
2016-06-16 21:28                                       ` Stefan Berger
2017-02-28 18:31                                         ` Marc-André Lureau
2017-03-01 12:32                                           ` Stefan Berger
2016-01-28 13:15       ` Daniel P. Berrange
2016-01-28 14:51         ` Stefan Berger
2016-01-20 15:20   ` Michael S. Tsirkin
2016-01-20 15:36     ` Stefan Berger
     [not found]     ` <201601201536.u0KFanwG004844@d01av04.pok.ibm.com>
2016-01-20 15:58       ` Michael S. Tsirkin
2016-01-20 16:06         ` Stefan Berger
2016-01-20 18:54           ` Michael S. Tsirkin
2016-01-20 21:25             ` Stefan Berger
2016-01-21  5:08               ` Michael S. Tsirkin
2016-01-21  5:41                 ` Xu, Quan
2016-01-21  9:19                   ` Michael S. Tsirkin
2016-01-21 12:09                 ` Stefan Berger
2016-01-20 16:15         ` Daniel P. Berrange
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 2/4] Introduce condition to notify waiters of completed command Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 3/4] Introduce condition in TPM backend for notification Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 4/4] Add support for VM suspend/resume for TPM TIS Stefan Berger
2016-01-05  1:26 ` [Qemu-devel] [PATCH v5 0/4] Extend TPM support with a QEMU-external TPM Xu, Quan
2016-01-05  3:36   ` Stefan Berger
2016-01-20  1:40 ` Xu, Quan
2016-01-20  9:23   ` Hagen Lauer
2016-01-20  9:41     ` Xu, Quan
2016-01-20 14:58 ` Daniel P. Berrange
2016-01-20 15:23   ` Stefan Berger
     [not found]   ` <201601201523.u0KFNwOH000398@d01av04.pok.ibm.com>
2016-01-20 15:42     ` Daniel P. Berrange
2016-01-20 19:51       ` Stefan Berger
     [not found]       ` <OF1010A111.39918A93-ON00257F40.006CA5ED-85257F40.006D2225@LocalDomain>
2016-01-20 20:16         ` Stefan Berger
2016-01-21 11:40           ` Dr. David Alan Gilbert
2016-01-21 12:31             ` Stefan Berger
     [not found]             ` <201601211231.u0LCVGCZ021111@d01av01.pok.ibm.com>
2016-01-21 14:53               ` Dr. David Alan Gilbert
     [not found]             ` <OF7ED031CA.CDD3196F-ON00257F41.004305BB-85257F41.0044C71A@LocalDomain>
2016-02-01 17:40               ` Stefan Berger

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=575E914C.3050101@linux.vnet.ibm.com \
    --to=stefanb@linux.vnet.ibm.com \
    --cc=berrange@redhat.com \
    --cc=cs1731@att.com \
    --cc=cs1815@att.com \
    --cc=dgilbert@redhat.com \
    --cc=hagen.lauer@huawei.com \
    --cc=jb613w@att.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quan.xu@intel.com \
    --cc=silviu.vlasceanu@gmail.com \
    --cc=stefanb@us.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.