ssl_client_fingerprint and sha256

2019-12-02 Thread Denis Cardon

Hi everyone,

this is my first post on this mailing list, so bear with me :-)

Sorry if my question is silly, but I haven't found any way to use a 
sha256 fingerprint for client certificate validation in Nginx. Sha1 
fingerprints work fine but we are slowly going toward sha256 as hashing 
function by default. The ngx_http_ssl_module documentation explicitly 
specify only sha1 [1].


I have seen in the Trac that there is a issue open about that [2]. 
Perhaps there a good reason for not having it currently. I'll be glad to 
hear from you all. We are using ssl client auth for WAPT project [3] 
which automates Windows workstation software install and update.


Cheers,

Denis

[1] http://nginx.org/en/docs/http/ngx_http_ssl_module.html
[2] https://trac.nginx.org/nginx/ticket/1302
[3] https://doc.wapt.fr

--
Denis Cardon
Tranquil IT
12 avenue Jules Verne (Bat. A)
44230 Saint Sébastien sur Loire (FRANCE)
tel : +33 (0) 240 975 755
http://www.tranquil.it

Tranquil IT recrute! https://www.tranquil.it/nous-rejoindre/
Samba install wiki for Frenchies : https://dev.tranquil.it
WAPT, software deployment made easy : https://wapt.fr
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: ssl_client_fingerprint and sha256

2019-12-02 Thread Maxim Dounin
Hello!

On Mon, Dec 02, 2019 at 10:55:09AM +0100, Denis Cardon wrote:

> Hi everyone,
> 
> this is my first post on this mailing list, so bear with me :-)
> 
> Sorry if my question is silly, but I haven't found any way to use a 
> sha256 fingerprint for client certificate validation in Nginx. Sha1 
> fingerprints work fine but we are slowly going toward sha256 as hashing 
> function by default. The ngx_http_ssl_module documentation explicitly 
> specify only sha1 [1].
> 
> I have seen in the Trac that there is a issue open about that [2]. 
> Perhaps there a good reason for not having it currently. I'll be glad to 
> hear from you all. We are using ssl client auth for WAPT project [3] 
> which automates Windows workstation software install and update.

The $ssl_client_fingerprint variable represents a fingerprint of 
a certificate which is already verified based on trusted CA 
certificates listed in the ssl_client_certificate directive.  As 
such, from security point of view using SHA-1 hash function 
shouldn't be a problem, as it merely identifies one of the 
certificates previously signed (and validated).

If you are trying to use $ssl_client_fingerprint literally "for 
client certificate validation", you are probably doing it wrong.

In some setups it might be more convenient to use SHA-256 instead 
of SHA-1, though for now we haven't seen such requests.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx


Re: ssl_client_fingerprint and sha256

2019-12-02 Thread Denis Cardon

Priviet!



On Mon, Dec 02, 2019 at 10:55:09AM +0100, Denis Cardon wrote:


Hi everyone,

this is my first post on this mailing list, so bear with me :-)

Sorry if my question is silly, but I haven't found any way to use a
sha256 fingerprint for client certificate validation in Nginx. Sha1
fingerprints work fine but we are slowly going toward sha256 as hashing
function by default. The ngx_http_ssl_module documentation explicitly
specify only sha1 [1].

I have seen in the Trac that there is a issue open about that [2].
Perhaps there a good reason for not having it currently. I'll be glad to
hear from you all. We are using ssl client auth for WAPT project [3]
which automates Windows workstation software install and update.


The $ssl_client_fingerprint variable represents a fingerprint of
a certificate which is already verified based on trusted CA
certificates listed in the ssl_client_certificate directive.  As
such, from security point of view using SHA-1 hash function
shouldn't be a problem, as it merely identifies one of the
certificates previously signed (and validated).

If you are trying to use $ssl_client_fingerprint literally "for
client certificate validation", you are probably doing it wrong.

In some setups it might be more convenient to use SHA-256 instead
of SHA-1, though for now we haven't seen such requests.


Actually it is the last case : it is more for convenience of not storing 
both SHA-1 and SHA-256 fingerprints on the server... As you say it is 
not a security issue, but when having security audit (we will have to 
renew our CSPN [1] certification on WAPT next year), one has to explain 
why using older cryptography is not an issue in the specific use case. 
So we will just do the explanation.


Spasibo a lot for your explanations!

Denis

[1] https://www.ssi.gouv.fr/en/security-visa/

--
Denis Cardon
Tranquil IT
12 avenue Jules Verne (Bat. A)
44230 Saint Sébastien sur Loire (FRANCE)
tel : +33 (0) 240 975 755
http://www.tranquil.it

Tranquil IT recrute! https://www.tranquil.it/nous-rejoindre/
Samba install wiki for Frenchies : https://dev.tranquil.it
WAPT, software deployment made easy : https://wapt.fr
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx