<div dir="ltr"><div><div><div><div>Hi Andreas,<br><br></div>Sorry for the delay. <br></div>Yes, these are very useful information! Now I know I have to try with TPM2.0 only. Thank you very much. <br></div><div><br>Can you also confirm that for use with keys stored in TPM i have to use swanctl.conf instead of ipsec.conf?<br></div><div><br></div>Best regards,<br></div>John<br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-08-31 12:46 GMT+02:00 Andreas Steffen <span dir="ltr"><<a href="mailto:andreas.steffen@strongswan.org" target="_blank">andreas.steffen@strongswan.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi John,<br>
<br>
currently strongSwan supports signature keys residing in the NVRAM<br>
of the TPM 2.0, only. These can be accessed using the object handle<br>
range 0x8101xxxx. Private keys stored in the NVRAM of the TPM 2.0<br>
have the big advantage that you can wipe the hard disk or SSD<br>
without irretrievably losing the keys.<br>
<br>
But as you correctly mention in principle an unlimited number of<br>
keys can be stored in encrypted form outside the TPM. With the TPM 2.0<br>
you have to load them into NVRAM first, before you can do any<br>
signature operations. strongSwan does not support external keys, though.<br>
<br>
strongSwan does not offer any signature key support for the TPM 1.2.<br>
The TPM 1.2 can be used for attestation, only (implemented by the<br>
Attestion IMC dynamic library) where the TPM 1.2 loads an external<br>
attestation key blob and generates a Quote signature over a certain<br>
number of PCR registers.<br>
<br>
Hope this helps.<br>
<br>
Andreas<br>
<span class=""><br>
On <a href="tel:31.08.2017%2010" value="+13108201710">31.08.2017 10</a>:46, John Brown wrote:<br>
> Hi Tobias/Hi all,<br>
> After some reading I have a conclusion that TPM 2.0 can only be used<br>
> with strongswan 5.5.2 or newer.<br>
> The example that the strongswan wiki provides shows storing the keys<br>
> inside the tpm (as far as I understand the example correctly). But all<br>
> the tpm sources I've read states that the keys can also be stored<br>
> externally but in encrypted form by the tpm. Is this a general rule that<br>
> can also be used with strongswan?<br>
> Additionaly, an example shows usage with swanctl.conf. Can ipsec.conf be<br>
> also used?<br>
><br>
> What about TPM 1.2? I've found that it is mentioned in TNC. But can I<br>
> use TPM 1.2 only for key storage in strongswan? If yes, which version of<br>
> strongswan is the oldest that can be used for this?<br>
><br>
> Best regards,<br>
> John<br>
><br>
><br>
> 2017-07-18 12:46 GMT+02:00 John Brown <<a href="mailto:jb20141125@gmail.com">jb20141125@gmail.com</a><br>
</span>> <mailto:<a href="mailto:jb20141125@gmail.com">jb20141125@gmail.com</a>>><wbr>:<br>
<span class="">><br>
>     Hi Tobias,<br>
>     Thank you for your answer. I'm on the first stage of learning TPM<br>
>     but as far as I understand the general rule the private key should<br>
>     not be accessible and that was a reason that aforementioned log<br>
>     message drew my attention. This wiki page I've read is the only way<br>
>     I can learn TPM and strongswan cooperation or there are some more<br>
>     detailed explanations somewhere how the process is going?<br>
><br>
>     Best regards,<br>
>     John<br>
><br>
><br>
>     2017-07-18 12:05 GMT+02:00 Tobias Brunner <<a href="mailto:tobias@strongswan.org">tobias@strongswan.org</a><br>
</span>>     <mailto:<a href="mailto:tobias@strongswan.org">tobias@strongswan.org</a>><wbr>>:<br>
<div class="HOEnZb"><div class="h5">><br>
>         Hi John,<br>
><br>
>         > and I conclude from this example, that private key stored in TPM is<br>
>         > loaded to program memory the same way as if it was stored in a file (log<br>
>         > message: "...charon-systemd[21165]: loaded RSA private key from token").<br>
>         > Am I correct?<br>
><br>
>         No, that's only the generic log message that you'll see for any<br>
>         private<br>
>         key loaded by the configuration backend, whether that private key is<br>
>         actually loaded into memory or it's just a reference to a key<br>
>         (as is the<br>
>         case here).  Private keys on PKCS#11 tokens or in a TPM can't be<br>
>         accessed directly, so they never end up in memory.<br>
><br>
>         Regards,<br>
>         Tobias<br>
><br>
><br>
><br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
==============================<wbr>==============================<wbr>==========<br>
Andreas Steffen                         <a href="mailto:andreas.steffen@strongswan.org">andreas.steffen@strongswan.org</a><br>
strongSwan - the Open Source VPN Solution!          <a href="http://www.strongswan.org" rel="noreferrer" target="_blank">www.strongswan.org</a><br>
Institute for Networked Solutions<br>
HSR University of Applied Sciences Rapperswil<br>
CH-8640 Rapperswil (Switzerland)<br>
==============================<wbr>=============================[<wbr>INS-HSR]==<br>
<br>
</font></span></blockquote></div><br></div>