Hi Selva,
On 10/04/19 19:09, Selva Nair wrote:
On Wed, Apr 10, 2019 at 12:59 PM Jan Just Keijser <janj...@nikhef.nl
<mailto:janj...@nikhef.nl>> wrote:
On 10/04/19 17:58, Selva Nair wrote:
Hi,
This is more relevant to OpenVPN than OpenSSL, so copying to the
openvpn-devel list.
On Wed, Apr 10, 2019 at 10:11 AM Francois Gelis
<francois.ge...@gmail.com <mailto:francois.ge...@gmail.com>> wrote:
Hi all,
I have a working openvpn setup with client certificate and
private key stored on my laptop. Then, I have loaded them
into a smartcard (Yubico 5 NFC), and modified accordingly the
openvpn client config. But running the openvpn client now
fails with an error that seems to originate inside openssl.
Here is a verbose openvpn log (only the portion that seems
relevant for this error, but I have the full log if useful):
Sat Apr 6 15:57:20 2019 us=467260 Incoming Ciphertext -> TLS
Sat Apr 6 15:57:20 2019 us=467271 SSL state (connect):
SSLv3/TLS read server hello
Sat Apr 6 15:57:20 2019 us=467468 VERIFY OK: depth=1, CN=FG-CA
Sat Apr 6 15:57:20 2019 us=467598 VERIFY KU OK
Sat Apr 6 15:57:20 2019 us=467609 Validating certificate
extended key usage
Sat Apr 6 15:57:20 2019 us=467615 ++ Certificate has EKU
(str) TLS Web Server Authentication, expects TLS Web Server
Authentication
Sat Apr 6 15:57:20 2019 us=467620 VERIFY EKU OK
Sat Apr 6 15:57:20 2019 us=467625 VERIFY OK: depth=0, CN=tx2
Sat Apr 6 15:57:20 2019 us=467650 SSL state (connect):
SSLv3/TLS read server certificate
Sat Apr 6 15:57:20 2019 us=467735 SSL state (connect):
SSLv3/TLS read server key exchange
Sat Apr 6 15:57:20 2019 us=467763 SSL state (connect):
SSLv3/TLS read server certificate request
Sat Apr 6 15:57:20 2019 us=467771 SSL state (connect):
SSLv3/TLS read server done
Sat Apr 6 15:57:20 2019 us=467845 SSL state (connect):
SSLv3/TLS write client certificate
Sat Apr 6 15:57:20 2019 us=468012 SSL state (connect):
SSLv3/TLS write client key exchange
Sat Apr 6 15:57:20 2019 us=468053 PKCS#11:
__pkcs11h_openssl_rsa_enc entered - flen=256,
from=0x559d078d6e70, to=0x559d078d6bc0, rsa=0x559d078b3630,
padding=3
Sat Apr 6 15:57:20 2019 us=468060 PKCS#11:
__pkcs11h_openssl_rsa_enc - return rv=112-'CKR_MECHANISM_INVALID'
Sat Apr 6 15:57:20 2019 us=468070 SSL alert (write): fatal:
internal error
Sat Apr 6 15:57:20 2019 us=468085 OpenSSL:
error:141F0006:SSL routines:tls_construct_cert_verify:EVP lib
Sat Apr 6 15:57:20 2019 us=468092 TLS_ERROR: BIO read
tls_read_plaintext error
Sat Apr 6 15:57:20 2019 us=468097 TLS Error: TLS object ->
incoming plaintext read error
Sat Apr 6 15:57:20 2019 us=468101 TLS Error: TLS handshake
failed
Somehow, it seems that __pkcs11h_openssl_rsa_enc was called
with an unexpected padding. Any ideas on what might be the
cause of this?
As I replied to the openssl-users list[*], pkcs11-helper only
supports PKCS1 signatures, not raw signature needed in this case.
We have to either patch pkcs11-helper or switch to something else.
patching pkcs11-helper does not seem too difficult for this
particular case - but how can we test it? I have access to hw
tokens but I don't know how to trigger the "raw signature" bit.
If both server and client are built with OpenSSL 1.1.1 and TLS version
is >= 1.2, PSS padding will get used and trigger this. OpenSSL does
PSS padding internally and passes the padded data to the rsa_priv_enc
calback for raw signature.
This is based on my tests for our Windows cryptoapi and
management-external-key patches for the same -- never tried this using
pkcs11-helper, but I expect the same behaviour.
The good news: I can reproduce this with
- openvpn 2.4.7
- openssl 1.1.1b
- pkcs11helper 1.25.1
- Safenet etoken
- client+server CentOS 7
The bad news: I don't have a fix yet.
I will keep the list posted on any progress I make,
JJK
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel