[openssl-users] ciphers

mlrx openssl.org at 18informatique.com
Wed Feb 17 06:43:32 UTC 2016


Le 17/02/2016 07:09, Viktor Dukhovni a écrit :
> On Wed, Feb 17, 2016 at 06:29:43AM +0100, mlrx wrote:
> 
>> I have asked stupid questions or it isn't the right way to ask for
>> advices ? What's happening ?
> 
> I, for one, typically ignore posts that ask me to view detached
> content via pastebin and the like.  Present content relevant to
> your question in the body of the message, and try to ask one specific
> and clear question at a time.
> 
> It sounds like you want TLS best-practice advice.  See,
> 
>     https://tools.ietf.org/html/rfc7525

Hello Viktor, thanks for answering.

It all about habits : others ml don't want to overload a thread
with logs anq others big stuff.

The question is : "do I need to do better to secure it?"

Thanks a lot and for the link : it's really useful.

I add my first message with all parts here :
> 
> I have some questions that I don't find answers by myself,
> even after read the cookbook and a lot of web pages.
> To be honest, I'm not really sure it's a problem but I
> need to verify.
> 
> Ok. I am setting up web server to host a critical java application.
> There is Apache in front of Tomcat and I want to enforce connections
> over https only with higher ciphers from TLS 1.2.
> Is it a good way ?

> There is a part of Apache's settings :
> ssl.conf :
>> # Apache 2.4
>> SSLCipherSuite           HIGH:kEECDH:+ECDSA:ECDSA:kEECDH:kEDH:+SHA:STRENGTH:   \
>>                          !aNULL:!eNULL:!LOW:!MEDIUM:!3DES:!MD5:!EXP:!RC4:!DSS: \
>>                          !PSK:!SRP:!kECDH:!CAMELLIA:!IDEA:!SEED
>> SSLHonorCipherOrder      on
>> SSLProtocol              -All +TLSv1.2
>> SSLCompression           off
>> SSLInsecureRenegotiation off

> the vhost file :
>> <VirtualHost *:443>
>>     ServerName   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     ServerAdmin  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     DocumentRoot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     ErrorLog     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     CustomLog    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     LogLevel     warn
>> 
>>     <Directory />
>>         Options FollowSymLinks
>>         AllowOverride All
>>     </Directory>
>> 
>>     <Directory xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
>>         Options Indexes FollowSymLinks MultiViews
>>         AllowOverride All
>>         Order allow,deny
>>         allow from all
>>     </Directory>
>> 
>>     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
>> 
>>     <Directory /usr/lib/cgi-bin>
>>         AllowOverride None
>>         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
>>         Order allow,deny
>>         Allow from all
>>     </Directory>
>> 
>>     <Directory /usr/share/doc/>
>>         AllowOverride None
>>         Options Indexes MultiViews FollowSymLinks
>>         Order deny,allow
>>         Deny from all
>>         Allow from 127.0.0.0/255.0.0.0 ::1/128
>>     </Directory>
>> 
>>     <IfModule mod_jk.c>
>>         JkMount /* ajp13_worker
>>         JkMount / ajp13_worker
>>     </IfModule>
>> 
>>     <IfModule mod_ssl.c>
>>         SSLEngine on
>>         ServerSignature         Off
>>         BrowserMatch .*MSIE.* nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
>>         SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
>>         SSLCertificateFile     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>         SSLCertificateKeyFile  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>     </IfModule>
>> </VirtualHost>

> 
> The public part works good, no problem.
> For the moment (testing), I use an auto-signed certificate.
> Of course, I will use "real" CA signed EV certificate in
> production.
> 
> Well, I've did some tests. Here is a part of some nmap and testssl.sh
> results :
>
>> ###############################################################
>> nmap --script ssl-cert,ssl-enum-ciphers -p 443 my.dn.tld
>> 
>> # 443/tcp open  https
>> # | ssl-cert: Subject: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> # |           Issuer:  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> # | Public Key type: ec
>> # | Public Key bits: 256
>> # | Not valid before: 2016-01-05T08:13:37+00:00
>> # | Not valid after:  2017-01-04T08:13:37+00:00
>> # | MD5:   1fc9 5b87 be04 a6a8 0939 d05d 3f24 675a
>> # |_SHA-1: 21be 7dd4 2500 c813 89cc a9c0 ca9a 329a 8beb 9159
>> # | ssl-enum-ciphers: 
>> # |   SSLv3: No supported ciphers found
>> # |   TLSv1.2: 
>> # |     ciphers: 
>> # |       TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA    - strong
>> # |       TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 - strong
>> # |       TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 - strong
>> # |       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA    - strong
>> # |       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 - strong
>> # |       TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 - strong
>> # |     compressors: 
>> # |       NULL
>> # |_  least strength: strong
>> 
>> ###############################################################
>> testssl.sh / partial results
>> 
>> Null Ciphers : Local problem : No Null Ciphers configured in /usr/bin/openssl
>> 40 bit encryption : not offered (OK)
>> 56 bit encryption : Local problem : No 56 bit encryption configured in /usr/bin/openssl
>> 
>> Has server cipher order ? : nope (NOT ok)
>> Negotiated protocol : TLSv1.2
>> Negotiated cipher : ECDHE-ECDSA-AES256-GCM-SHA384 (limited sens as client will pick)
>> Negotiated cipher per proto : (limited sens as client will pick)
>>     ECDHE-ECDSA-AES256-GCM-SHA384: TLSv1.2
>> No further cipher order check has been done as order is determined by the client
>> 
>> All the rest seems to be ok (green resulsts)
>> 
>> ###############################################################

> Is everything ok or do I need to change something ?
> Could you give some advice to make it safer please ?
> I really want to be closer to the state of the art and understand it.
> 
> A last thing : please, accept my apologies... I don't speak english
> anymore since many many years.

Best regards,
-- 
benoist


More information about the openssl-users mailing list