Support Support Downloads Knowledge Base Case Manager My Juniper Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

[ScreenOS] Can SSLv2 be disabled on a NetScreen device? Can SSLv2 or SSLv3 connections be used to manage the Juniper firewall?

0

0

Article ID: KB13925 KB Last Updated: 29 Mar 2020Version: 5.0
Summary:

This article provides information about the possibility of disabling SSLv2/SSLv3 on ScreenOS and using SSLv2 or SSLv3 connections to manage the Juniper firewall.

 

Symptoms:

If you are running OpenSSL to scan the firewall (in order to prepare for PCI compliance), the firewall will indeed respond to the SSLv2 connection, but the connect will not be complete in some cases. Below are debug outputs collected for an SSLv2 and SSLv3 request.

 
  • Debug output generated from an SSLv2 request:

    Initiate the connection from the client with SSLv2:

    test ]# openssl s_client -ssl2 -connect X.X.X.X:443 -state
    CONNECTED(00000003)
    SSL_connect:before/connect initialization
    SSL_connect:SSLv2 write client hello A
    depth=0 /CN=self-signed/CN=system generated/CN=0164092006000669
    verify error:num=18:self signed certificate
    verify return:1
    depth=0 /CN=self-signed/CN=system generated/CN=0164092006000669
    verify return:1
    SSL_connect:SSLv2 read server hello A
    SSL_connect:SSLv2 write client master key A
    SSL_connect:SSLv2 client start encryption
    SSL_connect:SSLv2 write client finished A
    SSL_connect:SSLv2 read server verify A
    SSL_connect:SSLv2 read server finished A
    ---
    Server certificate
    -----BEGIN CERTIFICATE-----
    MIICKjCCAZOgAwIBAgIQSKM5JrXrpAbaAQOEGFyZBjANBgkqhkiG9w0BAQUFADBM
    MRQwEgYDVQQDEwtzZWxmLXNpZ25lZDEZMBcGA1UEAxMQc3lzdGVtIGdlbmVyYXRl
    ZDEZMBcGA1UEAxMQMDE2NDA5MjAwNjAwMDY2OTAeFw0wOTAxMDQyMTUyMzNaFw0x
    OTAxMDIyMTUyMzNaMEwxFDASBgNVBAMTC3NlbGYtc2lnbmVkMRkwFwYDVQQDExBz
    eXN0ZW0gZ2VuZXJhdGVkMRkwFwYDVQQDExAwMTY0MDkyMDA2MDAwNjY5MIGfMA0G
    CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDE5EGsNCtbqIA9u+BVJfkXpXvHGb1WsTSv
    cvkfZN1YdcaphuSBptZVKsEvl6S0aZw8Lj41r5UiLJX5lQ0cyV5HQu5wO9sO60jZ
    UW+0yUEYuH6KEEDLIrtGcA2xd4U9qNPuyEmaQ4vngUwYX8baGDLi8LHT/7ax87dm
    +SgpZtPv6wIDAQABow0wCzAJBgNVHREEAjAAMA0GCSqGSIb3DQEBBQUAA4GBAGmV
    bUnHPdbZHC12WD4T9x250WOAk0LUdblaahrvyqw8dnOqKdVzr4ZIEPKdtidg+f73
    dCsvkzJBG1CiTumTO/ulv7kkQPpQF/onz85xtM5FWZDUvaQoNYOFP9ThFfXqkqQ3
    JUqtdvnhkaUBnQUdMTBoC0tCFmSF8vs1SbePONcS
    -----END CERTIFICATE-----
    subject=/CN=self-signed/CN=system generated/CN=0164092006000669
    issuer=/CN=self-signed/CN=system generated/CN=0164092006000669
    ---
    No client certificate CA names sent
    ---
    Ciphers common between both SSL endpoints:
    RC4-MD5 RC2-CBC-MD5
    ---
    SSL handshake has read 679 bytes and written 239 bytes
    ---
    New, SSLv2, Cipher is RC2-CBC-MD5
    Server public key is 1024 bit
    SSL-Session:
    Protocol : SSLv2
    Cipher : RC2-CBC-MD5
    Session-ID: B646706B2AE737A6A0192FB627865623
    Session-ID-ctx:
    Master-Key: B9792B70E383171CA184D3A19F502FB8
    Key-Arg : AB7AE7E5F84C7340
    Krb5 Principal: None
    Start Time: 1239850418
    Timeout : 300 (sec)
    Verify return code: 18 (self signed certificate)
    ---
    
    From the firewall (with debug ssl all):
    netscreen-> get db s
    ssl server new socket. queue count(0)
    SSL master_socket(1)
    SSL accept_socket(6)
    free ssl_ctx
    ssl_create_cipher_list:
    SSL: cipher EDH-RSA-DES-CBC3-SHA
    SSL: cipher EDH-DSS-DES-CBC3-SHA
    SSL: cipher DES-CBC3-SHA
    SSL: cipher DES-CBC3-MD5
    SSL: cipher DHE-DSS-RC4-SHA
    SSL: cipher IDEA-CBC-SHA
    SSL: cipher RC4-SHA
    SSL: cipher RC4-MD5
    SSL: cipher IDEA-CBC-MD5
    SSL: cipher RC2-CBC-MD5
    SSL: cipher RC4-MD5
    SSL: cipher RC4-64-MD5
    SSL: cipher EXP1024-DHE-DSS-RC4-SHA
    SSL: cipher EXP1024-RC4-SHA
    SSL: cipher EXP1024-DHE-DSS-DES-CBC-SHA
    SSL: cipher EXP1024-DES-CBC-SHA
    SSL: cipher EXP1024-RC2-CBC-MD5
    SSL: cipher EXP1024-RC4-MD5
    SSL: cipher EDH-RSA-DES-CBC-SHA
    SSL: cipher EDH-DSS-DES-CBC-SHA
    SSL: cipher DES-CBC-SHA
    SSL: cipher DES-CBC-MD5
    SSL: cipher EXP-EDH-RSA-DES-CBC-SHA
    SSL: cipher EXP-EDH-DSS-DES-CBC-SHA
    SSL: cipher EXP-DES-CBC-SHA
    SSL: cipher EXP-RC2-CBC-MD5
    SSL: cipher EXP-RC4-MD5
    SSL: cipher EXP-RC2-CBC-MD5
    SSL: cipher EXP-RC4-MD5
    MSG:PKI_CID_FAKE_CERT_REQ send to PKI. mail count(1).
    SSL get system generated self signed cert.
    ## 2009-04-15 02:51:59 : self cert bad key <0250422c><024fb5bc><024e71e4>.
    extra_certs num = 0
    ssl_create_cipher_list:
    SSL: cipher RC4-MD5
    SSL: cipher IDEA-CBC-MD5
    SSL: cipher RC2-CBC-MD5
    SSL: cipher RC4-MD5
    SSL_CTX_set_cipher_list:
    SSL: cipher RC4-MD5
    SSL: cipher IDEA-CBC-MD5
    SSL: cipher RC2-CBC-MD5
    SSL: cipher RC4-MD5
    SSL context init succeed
    ssl_state: sslStateCertVerified
    SSL Connection Init
    SSL set server mode
    SSL_accept:before/accept initialization
    SSL_accept:SSLv2 read client hello A
    SSL_accept:SSLv2 write server hello A
    SSL_accept:SSLv2 read client master key A
    SSL_accept:SSLv2 server start encryption
    SSL_accept:SSLv2 write server verify A
    SSL_accept:SSLv2 read client finished A
    SSL_accept:SSLv2 write request certificate A
    SSL_accept:SSLv2 write server finished A

    Note: In the above output, the entire handshake was not completed.


  • Compare this with the output from a request from SSLv3:

    test]# openssl s_client -ssl3 -connect X.X.X.X:443 -state
    CONNECTED(00000003)
    SSL_connect:before/connect initialization
    SSL_connect:SSLv3 write client hello A
    SSL_connect:SSLv3 read server hello A
    depth=0 /CN=self-signed/CN=system generated/CN=0164092006000669
    verify error:num=18:self signed certificate
    verify return:1
    depth=0 /CN=self-signed/CN=system generated/CN=0164092006000669
    verify return:1
    SSL_connect:SSLv3 read server certificate A
    SSL_connect:SSLv3 read server done A
    SSL_connect:SSLv3 write client key exchange A
    SSL_connect:SSLv3 write change cipher spec A
    SSL_connect:SSLv3 write finished A
    SSL_connect:SSLv3 flush data
    SSL_connect:SSLv3 read finished A
    ---
    Certificate chain
    0 s:/CN=self-signed/CN=system generated/CN=0164092006000669
    i:/CN=self-signed/CN=system generated/CN=0164092006000669
    ---
    Server certificate
    -----BEGIN CERTIFICATE-----
    MIICKjCCAZOgAwIBAgIQSKM5JrXrpAbaAQOEGFyZBjANBgkqhkiG9w0BAQUFADBM
    MRQwEgYDVQQDEwtzZWxmLXNpZ25lZDEZMBcGA1UEAxMQc3lzdGVtIGdlbmVyYXRl
    ZDEZMBcGA1UEAxMQMDE2NDA5MjAwNjAwMDY2OTAeFw0wOTAxMDQyMTUyMzNaFw0x
    OTAxMDIyMTUyMzNaMEwxFDASBgNVBAMTC3NlbGYtc2lnbmVkMRkwFwYDVQQDExBz
    eXN0ZW0gZ2VuZXJhdGVkMRkwFwYDVQQDExAwMTY0MDkyMDA2MDAwNjY5MIGfMA0G
    CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDE5EGsNCtbqIA9u+BVJfkXpXvHGb1WsTSv
    cvkfZN1YdcaphuSBptZVKsEvl6S0aZw8Lj41r5UiLJX5lQ0cyV5HQu5wO9sO60jZ
    UW+0yUEYuH6KEEDLIrtGcA2xd4U9qNPuyEmaQ4vngUwYX8baGDLi8LHT/7ax87dm
    +SgpZtPv6wIDAQABow0wCzAJBgNVHREEAjAAMA0GCSqGSIb3DQEBBQUAA4GBAGmV
    bUnHPdbZHC12WD4T9x250WOAk0LUdblaahrvyqw8dnOqKdVzr4ZIEPKdtidg+f73
    dCsvkzJBG1CiTumTO/ulv7kkQPpQF/onz85xtM5FWZDUvaQoNYOFP9ThFfXqkqQ3
    JUqtdvnhkaUBnQUdMTBoC0tCFmSF8vs1SbePONcS
    -----END CERTIFICATE-----
    subject=/CN=self-signed/CN=system generated/CN=0164092006000669
    issuer=/CN=self-signed/CN=system generated/CN=0164092006000669
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 728 bytes and written 304 bytes
    ---
    New, TLSv1/SSLv3, Cipher is RC4-MD5
    Server public key is 1024 bit
    SSL-Session:
    Protocol : SSLv3
    Cipher : RC4-MD5
    Session-ID: 1B73BF449F57D8E6CD5D5F7F78C3E771DB35EAA5E202496162DF4224C0CBD946
    Session-ID-ctx:
    Master-Key: 5E7F432DFC0A43FFA12C5925FF790BFBB3DB2AB61DC813589C309062DD679DEBAC2E870FDC71646C510C327415285BD1
    Key-Arg : None
    Krb5 Principal: None
    Start Time: 1239856140
    Timeout : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    ---
    
    netscreen-> get db s
    ssl server new socket. queue count(0)
    SSL master_socket(1)
    SSL accept_socket(7)
    ssl_state: sslStateCertVerified
    SSL Connection Init
    SSL set server mode
    SSL_accept:before/accept initialization
    SSL SSLv3_server_method called.
    ssl3_accept start(SSLv3 read client hello A)
    ssl3_accept loop(SSLv3 read client hello A)
    ssl3_choose_cipher: have
    SSL: cipher EDH-RSA-DES-CBC3-SHA
    SSL: cipher EDH-DSS-DES-CBC3-SHA
    SSL: cipher DES-CBC3-SHA
    SSL: cipher DHE-DSS-RC4-SHA
    SSL: cipher RC4-SHA
    SSL: cipher RC4-MD5
    SSL: cipher EXP1024-DHE-DSS-DES-CBC-SHA
    SSL: cipher EXP1024-DES-CBC-SHA
    SSL: cipher EXP1024-RC2-CBC-MD5
    SSL: cipher EDH-RSA-DES-CBC-SHA
    SSL: cipher EDH-DSS-DES-CBC-SHA
    SSL: cipher DES-CBC-SHA
    SSL: cipher EXP1024-DHE-DSS-RC4-SHA
    SSL: cipher EXP1024-RC4-SHA
    SSL: cipher EXP1024-RC4-MD5
    SSL: cipher EXP-EDH-RSA-DES-CBC-SHA
    SSL: cipher EXP-EDH-DSS-DES-CBC-SHA
    SSL: cipher EXP-DES-CBC-SHA
    SSL: cipher EXP-RC2-CBC-MD5
    SSL: cipher EXP-RC4-MD5
    ssl3_choose_cipher: prefer
    SSL: cipher RC4-MD5
    SSL: cipher RC2-CBC-MD5
    SSL: cipher IDEA-CBC-MD5
    SSL: cipher RC4-MD5
    ssl3_get_client_hello: chosen cipher RC4-MD5
    SSL_accept:SSLv3 read client hello A
    ssl3_accept loop(SSLv3 write server hello A)
    SSL_accept:SSLv3 write server hello A
    ssl3_accept loop(SSLv3 write certificate A)
    SSL_accept:SSLv3 write certificate A
    ssl3_accept loop(SSLv3 write key exchange A)
    ssl3_accept loop(SSLv3 write certificate request A)
    ssl3_accept loop(SSLv3 write server done A)
    SSL_accept:SSLv3 write server done A
    ssl3_accept loop(SSLv3 flush data)
    SSL_accept:SSLv3 flush data
    ssl3_accept loop(SSLv3 read client certificate A)
    ssl3_accept loop(SSLv3 read client key exchange A)
    SSL ssl3_generate_master_secret called.
    SSL ssl3_cert_verify_mac called.
    SSL ssl3_cert_verify_mac called.
    SSL_accept:SSLv3 read client key exchange A
    ssl3_accept loop(SSLv3 read certificate verify A)
    ssl3_setup_key_block()->
    SSL ssl3_change_cipher_state called.
    SSL ssl3_final_finish_mac called.
    do_change_cipher_spec() digest len<36>
    ssl3_accept loop(SSLv3 read finished A)
    SSL_accept:SSLv3 read finished A
    ssl3_accept loop(SSLv3 write change cipher spec A)
    ssl3_setup_key_block()->
    SSL ssl3_change_cipher_state called.
    SSL_accept:SSLv3 write change cipher spec A
    ssl3_accept loop(SSLv3 write finished A)
    SSL ssl3_final_finish_mac called.
    ssl3_send_finished() digest a<4> do<1> len<36> tmp<36>
    SSL_accept:SSLv3 write finished A
    ssl3_accept loop(SSLv3 flush data)
    SSL_accept:SSLv3 flush data
    ssl3_accept loop(SSL negotiation finished successfully)
    ssl3_accept end(SSL negotiation finished successfully)
    

    Note: In the above output, the handshake was completed with the 'change cipher spec' and 'finished' messages:

    SSL_accept:SSLv3 write change cipher spec A
    ssl3_accept loop(SSLv3 write finished A)
    SSL ssl3_final_finish_mac called.
    ssl3_send_finished() digest a<4> do<1> len<36> tmp<36>

 

Solution:
  • ScreenOS accepts both SSLv2 and SSLv3 connections when enabled.  However, SSLv2 is not officially supported.

     

    When SSL is enabled on ScreenOS, by default, all SSL versions (SSLv2, SSLv3, TLS) are enabled. When SSL is disabled, all the versions are disabled. It is not possible to enable one particular SSL version and disable another version. For example, if you want to enable SSLv3 or TLS and disable SSL v2, it cannot be done; either all will be enabled or disabled. PCI compliance requires that SSL version3 is enabled and SSL v2 is disabled; so it cannot be done.

     

    To enable SSL on the ScreenOS firewall, perform any of the following procedures:

     

    WebUI:

     

    Go to Configuration > Admin > Management and enable SSL. Then go to the interface and enable SSL on it.

     

    CLI:

    set ssl enable
    set interface <interface >manage ssl

  • By default, ScreenOS uses the highest version of SSL that is available on the client browser to encrypt data.

     

    The following excerpt is from the Concepts & Examples ScreenOS Reference Guide, Volume 3: Administration, Release 6.2.0, Rev. 02 (abbreviated with only relevant information):

     

    The ScreenOS implementation of SSL provides the following capabilities, compatibility, and integration:

     
    • SSL server authentication (not SSL server and client authentication); that is, the security device authenticates itself to the administrator attempting to connect through SSL, but the administrator does not use SSL to authenticate himself to the device


    • SSL version 3 compatibility (not version 2)


  • Currently, up to ScreenOS 6.3, no specific CLI/ Web UI syntax is present to control the SSL version for management of the firewall. However, several browsers on which SSLv2 is already disabled by default are available and they can be used to control the SSL version with which to connect to the firewall:

    • Internet Explorer 7, Mozilla Firefox 2 and Mozilla Firefox 3, and Safari.


    • Support for SSL v2 has been completely removed from Opera as of version 9.5.

 

Modification History:

2020-03-29: Tagged article as ScreenOS; removed mention of RLI (okay to keep internally for reference) as ScreenOS is nearing EOL and no new features are added. Article relevant and valid

 

Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search