Hi *,

Arne Schwabe wrote:
Am 07.10.14 16:32, schrieb Sio Poh Tan:
> Hi Samuli,

>

> Thanks for your reply. I've checked on the link that you
provided. However, it does not mention whether the Windows Crypto
API integration supports TLS 1.2 implementation. I understand that
it does support TLS 1.0 implementation, similar to the OpenVPN
community version. If the OpenVPN Connect client is based on the
community version, then I doubt it supports TLS 1.2 using
cryptoapicert as I've tested with the community version. Please
correct me if I'm wrong.

>

> I hope someone will be interested to work on this
implementation as my team is having a tight schedule implementing
this for a project.


Probably it uses the management-api and the external-key-management API of the management interface. My Android client (OpenVPN for Android) uses that API to work with the Android keystore and does TLS 1.2 just fine. That OpenVPN Connect can use the MAC Crypto store which OpenVPN does not support kind of confirms that theory.

For anyone who wants to pick up this work. This probably only replacing the api calls which do RSA signing of the SHA1 checksum with an API call that can do signing of SHA1 + SHA* variants (basicialy signing longer bitstrings).

I've been looking into this one a bit - looks trickier than that.
For clarity's sake:
- openvpn 2.3.4 on Windows works with 'cryptoapicert' "as always"
- openvpn 2.3.4 on Windows works whith external cert/key pair (.crt/.key file) in combination with tls-version-min 1.2

combine the two and it breaks, i.e. tls-version-min 1.2 + cryptoapicert goes bust with a mediocre OpenSSL error related to
 RSA_EAY_Sign & message length

If I use a pkcs11 shim in front of the ms-capi library (e.g. p11capi_w32.dll) so that I can access the cryptostore keys via a pkcs#11 interface then it also breaks , again on the rsa_sign process.

So, it looks like running rsa_sign with a cert/key pair coming out of the cryptostore store is causing some low level openssl problems. Don't know how easy it is fix, but most likely it's not inside the OpenVPN code...

HTH,

JJK



Reply via email to