<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.grounation.org/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>GrouNation - Tag - Xen</title>
  <link>http://www.grounation.org/index.php?</link>
  <atom:link href="http://www.grounation.org/index.php?feed/tag/Xen/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>en</language>
  <pubDate>Thu, 30 May 2013 08:47:45 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>PolyXene secure Operating System</title>
    <link>http://www.grounation.org/index.php?post/2011/02/07/PolyXene-secure-Operating-System</link>
    <guid isPermaLink="false">urn:md5:b6275ba212cc5a779139302f108b1e75</guid>
    <pubDate>Mon, 07 Feb 2011 08:38:00 +0100</pubDate>
    <dc:creator>webmaster</dc:creator>
        <category>Security</category>
        <category>Microkernel</category><category>Qubes</category><category>Security</category><category>TPM virtualization</category><category>Xen</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://polyxene.fr/resources/image/polyxene/pictos/bertin-polyxene-logo.png&quot; alt=&quot;&quot; /&gt;
PolyXene is a certified high-security operating system that enables secure access, from one single work station, to several distinct and non-standardized networks and to data of different sensitivity levels.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Virtualization&lt;/strong&gt; enables the simultaneous operation of several operating systems on one single machine. As a certified confinement mechanism, virtualization authorizes functional evolution without compromising security issues.&lt;/p&gt;


&lt;p&gt;Virtualization provides the opportunity for substantial financial savings since it enables companies to free themselves from hardware constraints (challenge for reducing of number of machines) and improve management performance through enhanced hardware administration, optimum infrastructure usage and simplified maintenance interventions. Last but not least, it provides a high-level guarantee of data integrity and security.&lt;/p&gt;



&lt;p&gt;PolyXene is a high security operating system (CC - EAL 5), ultra-reliable operating system using &lt;strong&gt;multi-level technology&lt;/strong&gt; operating in an MILS architecture (Multi Independent Levels of Security).&lt;/p&gt;


&lt;p&gt;The aim of this technology is to secure access from one single work station to data of different sensitivity levels and to control the exchange of data of different classification levels between entities and/or storage peripherals via multi-level gateways.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;PolyXene&lt;/strong&gt; provides a set of security features :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;internal and external communication control,&lt;/li&gt;
&lt;li&gt;on-the-fly disk encryption for confidentiality and integrity,&lt;/li&gt;
&lt;li&gt;strong authentication,&lt;/li&gt;
&lt;li&gt;RBAC control for administration operations,&lt;/li&gt;
&lt;li&gt;log and audit functionalities,&lt;/li&gt;
&lt;li&gt;remote administration&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See &lt;a href=&quot;http://polyxene.fr/hypervisor-security-architecture.aspx&quot; hreflang=&quot;en&quot;&gt;detailed architecture&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Qubes OS and formally verified microkernel</title>
    <link>http://www.grounation.org/index.php?post/2010/05/28/Qubes-OS-and-formally-verified-microkernel</link>
    <guid isPermaLink="false">urn:md5:f9b0ff503ed3334656d69620b7ab93bf</guid>
    <pubDate>Fri, 28 May 2010 09:41:00 +0100</pubDate>
    <dc:creator>admin admin</dc:creator>
        <category>Security</category>
        <category>Linux</category><category>Microkernel</category><category>Qubes</category><category>Security</category><category>virtual machine</category><category>VM</category><category>Xen</category>    
    <description>&lt;p&gt;&lt;q&gt;Qubes is an open source operating system designed to provide strong security for desktop computing. Qubes is based on Xen, X Window System, and Linux, and can run most Linux applications and utilize most of the Linux drivers. In the future it might also run Windows apps.&lt;/q&gt;&lt;/p&gt;    &lt;p&gt;&lt;q&gt;You must have heard about it before: formally verified microkernels that offer 100% security... Why don't we use such a microkernel in Qubes then?  (The difference between a micro-kernel and a type I hypervisor is blurry. Especially in case of a type I hypervisor used for running para-virtualized VMs, such as Xen used in Qubes. So I would call Xen a micro-kernel in this case, although it can also run fully-virtualized VMs, in which case it should be called a hypervisor I think.)&lt;/q&gt;
&lt;a href=&quot;http://theinvisiblethings.blogspot.com/2010/05/on-formally-verified-microkernels-and.html&quot; hreflang=&quot;en&quot;&gt;Formally verified microkernel, by Joanna Rutkowska&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Joanna Rutkowska who is the founder and CEO of Invisible Things Lab (see complete profile)&lt;/p&gt;


&lt;p&gt;This article follows the launch of a new open source operating system,&lt;a href=&quot;http://qubes-os.org/Home.html&quot; hreflang=&quot;en&quot;&gt;Qubes&lt;/a&gt; , &lt;q&gt;designed to provide strong security for desktop computing&lt;/q&gt;. Based on Xen, Linux and the X Window System.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.grounation.org/public/Security/Qubes/QubesArch.png&quot;&gt;&lt;img src=&quot;http://www.grounation.org/public/Security/Qubes/.QubesArch_m.jpg&quot; alt=&quot;Qubes Architecture&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;Qubes Architecture, May 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;The system is based on the Xen architecture which allows a strong isolation of virtual machines. The end-user can own multiple virtual machines to run its applications. These virtual machines are lightweight VMs based on Linux. The system is administrated from the Dom0 virtual machine which is by definition a privileged virtual machine, but without network access to prevent remote attacks. And finally, the system uses the &lt;em&gt;VT&lt;/em&gt; technology to run in unprivileged virtual machines the network and storage hardware support.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.grounation.org/public/Security/Qubes/QubesSwitch.png&quot;&gt;&lt;img src=&quot;http://www.grounation.org/public/Security/Qubes/.QubesSwitch_m.jpg&quot; alt=&quot;Qubes switch screenshot&quot; title=&quot;Qubes switch screenshot, May 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;A specific interface allows the user to switch between these virtual machines.&lt;/p&gt;


&lt;p&gt;The full Qubes architecture is described in this document &lt;a href=&quot;http://www.grounation.org/public/Security/Qubes/arch-spec-0.3.pdf&quot;&gt;Qubes OS Architecture&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;This looks like an existing secure Operating system &lt;a href=&quot;http://www.polyxene.fr&quot; hreflang=&quot;fr&quot;&gt;PolyXene&lt;/a&gt;, with EAL5 common criteria evaluation and formally verified code, realized by the &lt;a href=&quot;http://www.bertin.fr&quot; hreflang=&quot;fr&quot;&gt;Bertin Technologies&lt;/a&gt; company.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.grounation.org/public/Security/PolyXene/CertificatPolyXene.png&quot;&gt;&lt;img src=&quot;http://www.grounation.org/public/Security/PolyXene/.CertificatPolyXene_s.jpg&quot; alt=&quot;Certificat PolyXene&quot; title=&quot;Certificat PolyXene, May 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Virtualizing the Trusted Platform Module</title>
    <link>http://www.grounation.org/index.php?post/2008/09/07/10-virtualizing-the-trusted-platform-module</link>
    <guid isPermaLink="false">urn:md5:a4fb810b11c80e6224016c42a0e8db44</guid>
    <pubDate>Sun, 07 Sep 2008 17:42:00 +0000</pubDate>
    <dc:creator>webmaster</dc:creator>
        <category>Security</category>
        <category>Linux</category><category>TPM</category><category>TPM virtualization</category><category>vTPM</category><category>Xen</category>    
    <description>&lt;p&gt;Based on the IBM Research Report on vTPM, this article intends to detail the concepts of a TPM emulation on virtualized context.&lt;/p&gt;    &lt;h3&gt;Introduction&lt;/h3&gt;


&lt;p&gt;The goal of this article is to present the IBM Research Report about the &lt;q&gt;vTPM: Virtualizing the Trusted Platform Module&lt;/q&gt; (see &lt;em&gt;Attachments&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;The main goal is to mix two important technologies : &lt;strong&gt;Virtualization&lt;/strong&gt; and &lt;strong&gt;Trusted Computing&lt;/strong&gt; or specifically the &lt;strong&gt;Trusted Platform Module&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;These two technologies can ensure complementary requirements :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Virtualization&lt;/em&gt; for the high availability, the integrity and the isolation of each virtual machine.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;TPM&lt;/em&gt; for the security, the chain of trust and the remote attestation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Virtualizing the &lt;em&gt;TPM&lt;/em&gt; is required to provide &lt;em&gt;TCG&lt;/em&gt; services in the virtual machines. The virtualization base system should handle the &lt;em&gt;TPM&lt;/em&gt; device for its usage and export to each virtual machine a &lt;em&gt;TPM&lt;/em&gt; emulated device to extend the chain of trust. So each virtual machine will be able to use the cryptographic resources, store secret objects realize remote attestations ...&lt;/p&gt;


&lt;p&gt;The first requirement is then to ensure the same level security provided by the hardware &lt;em&gt;TPM&lt;/em&gt; for the virtualized &lt;em&gt;TPMs&lt;/em&gt;. Moreover, new requirements are introduced due to the specificities of a virtualized architecture.&lt;/p&gt;


&lt;p&gt;The TPM virtualization architecture will propose answers to the following technical requirements :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to implement a full chain of trust, from the hardware root of trust to the virtual machines through the hypervisor ?&lt;/li&gt;
&lt;li&gt;How to implement a full featured &lt;em&gt;TPM&lt;/em&gt; device in the virtual machines ?&lt;/li&gt;
&lt;li&gt;How to migrate a virtual host, including its &lt;em&gt;TPM&lt;/em&gt; associated data ?&lt;/li&gt;
&lt;li&gt;How to support remote attestation including the full virtualized system and environment ?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Architecture&lt;/h3&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grounation.org/images/vTPM_architecture.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;The &lt;em&gt;vTPM&lt;/em&gt; implementation is composed of :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;em&gt;vTPM&lt;/em&gt; manager which manages the hardware &lt;em&gt;TPM&lt;/em&gt; and provide services to manages multiple &lt;em&gt;TPM&lt;/em&gt; emulated devices,&lt;/li&gt;
&lt;li&gt;a vTPM instance for each virtualized host, which implements the full TCG TPM 1.2 specification,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture is based on a client/server model. Each virtualized host communicates through a client &lt;em&gt;TPM&lt;/em&gt; driver. The server &lt;em&gt;TPM&lt;/em&gt; driver runs in the virtual host where is implemented the &lt;em&gt;vTPM&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Associating vTPM instances with their VM&lt;/strong&gt; :&lt;/p&gt;


&lt;p&gt;Association between a &lt;em&gt;vTPM&lt;/em&gt; and a &lt;em&gt;VM&lt;/em&gt; is a one to one association. This association is maintained during the lifetime of the &lt;em&gt;VM&lt;/em&gt;. This is &lt;strong&gt;a security requirement&lt;/strong&gt; because &lt;em&gt;vTPM&lt;/em&gt; manages secret objects owned by the &lt;em&gt;VM&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Hardware Secure Co-processor support&lt;/strong&gt; :&lt;/p&gt;


&lt;p&gt;The architecture must also support a &lt;em&gt;vTPM&lt;/em&gt; subsystem embedded in a hardware secure co-processor (see next figure). The first &lt;em&gt;VM&lt;/em&gt; is the owner of the hardware and uses a &lt;em&gt;vTPM&lt;/em&gt; instance for its own purpose. A proxy is implemented in the first &lt;em&gt;VM&lt;/em&gt; to forward all &lt;em&gt;VM&lt;/em&gt; commands to the hardware card.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grounation.org/images/vTPM_ExtSecureCoprocessor.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Root vTPM instance&lt;/strong&gt; :&lt;/p&gt;


&lt;p&gt;First, two requirements are exposed :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;API&lt;/em&gt; used by the application must keep the same for a software or a hardware implementation. In all cases the common point is to use a dedicated &lt;em&gt;VM&lt;/em&gt; to provide the virtual &lt;em&gt;TPM&lt;/em&gt; functionalities.&lt;/li&gt;
&lt;li&gt;Modern virtualization systems provide migration capabilities. For example export a &lt;em&gt;VM&lt;/em&gt; from a host to another one. In the context of a &lt;em&gt;vTPM&lt;/em&gt; instance it should be interesting to keep association between the &lt;em&gt;VM&lt;/em&gt; and its &lt;em&gt;vTPM&lt;/em&gt; during the process of migration. But it is important to guarantee the authenticity and the confidentiality of the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, the architecture of the virtual &lt;em&gt;TPM&lt;/em&gt; will be designed as follows. A virtual &lt;em&gt;TPM&lt;/em&gt; is a &lt;em&gt;TPM&lt;/em&gt; capable of generating new &lt;em&gt;vTPM&lt;/em&gt; childs. This means that a system must always provide a &lt;strong&gt;Root vTPM&lt;/strong&gt; instance with cryptographic functions to generate keys, encrypt data, migrate keys between instances ... This &lt;strong&gt;Root instance&lt;/strong&gt; will provide the mechanisms to store and encrypt the state of a &lt;em&gt;vTPM&lt;/em&gt; for a migration process.&lt;/p&gt;


&lt;p&gt;These functionalities are only available from the root instance and especially to the owner of the root instance. All extented commands require the owner authorization (owner's password). Furthermore, the concept if privileged instance has been introduced. A privileged instance is capable to spawn and manage new child instances. This privilege is inherited and can be passed to a child instance. This mechanism offers advanced features to create a complexe hierarchy of &lt;em&gt;vTPM&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Independent key hierarchy&lt;/strong&gt; :&lt;/p&gt;


&lt;p&gt;Each &lt;em&gt;vTPM&lt;/em&gt; has a &lt;em&gt;Storage Root Key&lt;/em&gt; (&lt;em&gt;SRK&lt;/em&gt;) as root for its key hierarchy and an &lt;em&gt;Endorsment Key&lt;/em&gt; (&lt;em&gt;EK&lt;/em&gt;). To allow instance and &lt;em&gt;vTPM&lt;/em&gt; migration, these keys are unlinked from the key hierarchy of a &lt;em&gt;TPM&lt;/em&gt; hardware component. This also allows faster key management and cryptographic operations.&lt;/p&gt;


&lt;p&gt;However, if the &lt;em&gt;SRK&lt;/em&gt;, &lt;em&gt;EK&lt;/em&gt; and other data of virtual &lt;em&gt;TPM&lt;/em&gt; are stored in a persistend storage, they must be stored encrypted with a key stored in the hardware &lt;em&gt;TPM&lt;/em&gt; device. This symmetric key must be sealed or protected with a password.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Extended command set&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;The &lt;em&gt;vTPM&lt;/em&gt; specifications add a set of commands to the TPM 1.2 specifications.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vTPM management commands to manage the life-cycle of a vTPM : &lt;em&gt;CreateInstance&lt;/em&gt;, &lt;em&gt;DeleteInstance&lt;/em&gt;, &lt;em&gt;SetupInstance&lt;/em&gt;. &lt;em&gt;SetupInstance&lt;/em&gt; is used to setup a &lt;em&gt;vTPM&lt;/em&gt; and prepare it with the right &lt;em&gt;PCR&lt;/em&gt; values.&lt;/li&gt;
&lt;li&gt;vTPM migration commands : &lt;em&gt;GetInstanceKey&lt;/em&gt;, &lt;em&gt;SetInstanceKey&lt;/em&gt;, &lt;em&gt;GetInstanceData&lt;/em&gt;, &lt;em&gt;SetInstanceData&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;vTPM utility commands : &lt;em&gt;TransportInstance&lt;/em&gt;, &lt;em&gt;LockInstance&lt;/em&gt;, &lt;em&gt;UnlockInstance&lt;/em&gt;, &lt;em&gt;ReportEnvironment&lt;/em&gt;. &lt;em&gt;TransportInstance&lt;/em&gt; is a specific command to create a communication tunnel between an instance and one of its child instances.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;vTPM migration&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;The &lt;em&gt;vTPM&lt;/em&gt; migration capability is provided by a secure protocol which ensure authenticity and confidentiality. Symmetric and assymetric keys are used to encrypt the &lt;em&gt;vTPM&lt;/em&gt; state on the source virtual &lt;em&gt;TPM&lt;/em&gt; and decrypt it on the destination virtual &lt;em&gt;TPM&lt;/em&gt;. The migration process is based on the following protocol :&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grounation.org/images/vTPM_migrationProtocol.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Linking a vTPM to its TCB&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Trust in the Virtual Machine is not necessary because it runs in a virtualizion system, controlled by an hypervisor. Then the trust in the &lt;em&gt;VM&lt;/em&gt; is interesting only if the trust in the environment (&lt;em&gt;TCB&lt;/em&gt;, &lt;em&gt;hypervisor&lt;/em&gt;...) is guarantee.
For this reason the chain of trust must be guaranteed from the hardware &lt;em&gt;TPM&lt;/em&gt; to the &lt;em&gt;vTPM&lt;/em&gt;, from the &lt;em&gt;TCB&lt;/em&gt; to the &lt;em&gt;VMs&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;So, the architecture proposed provides in the &lt;em&gt;vTPM&lt;/em&gt; &lt;em&gt;PCRs&lt;/em&gt; a merged version of the measures. A lower set of &lt;em&gt;PCRs&lt;/em&gt; in the &lt;em&gt;vTPM&lt;/em&gt; shows measures from the hardware &lt;em&gt;TPM&lt;/em&gt; and the upper the measures for the &lt;em&gt;VM&lt;/em&gt;. By this way, a challenger can see all relevant measures during a remote attestation. The next figure shows an example of this mechanism.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grounation.org/images/vTPM_PCRUsage.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;Implementation for Xen&lt;/h3&gt;


&lt;pre&gt; To be continued ... (see &lt;em&gt;Attachments&lt;/em&gt; for details)&lt;/pre&gt;



&lt;h3&gt;Bibliography&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.grounation.org/index.php?media/Security/TPM_documentation&quot; hreflang=&quot;en&quot;&gt;Grounation TPM documentation repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.trustedcomputinggroup.org/downloads/specifications/tpm/tpm&quot; hreflang=&quot;en&quot;&gt;Trusted Computing Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://trousers.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;TrouSerS&lt;/a&gt; and &lt;a href=&quot;http://sf.net/projects/trousers&quot; title=&quot;http://sf.net/projects/trousers&quot;&gt;http://sf.net/projects/trousers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sf.net/projects/tpmdd&quot; hreflang=&quot;en&quot;&gt;TPM Device Drivers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
          <enclosure url="http://www.grounation.org/index.php?download/14"
      length="234236" type="application/pdf" />
          <enclosure url="http://www.grounation.org/index.php?download/22"
      length="535542" type="application/pdf" />
          <enclosure url="http://www.grounation.org/index.php?download/23"
      length="550784" type="application/pdf" />
    
    
      </item>
    
</channel>
</rss>