locked
Ajout de prise en charge de protocoles SSL supplémentaires. RRS feed

  • Question

  • onjour à tous,

    Je souhaite optimiser le cryptage des flux via le protocole SSL sur le VPS que je loue auprès d'ikoula dans le cadre de l'opération "Maplateformeweb"  lancée en Février par Microsoft. Je vais vous détailler les différentes étapes effectuées afin de pouvoir obtenir des réponses précises.

    J'utilise OpenSSL (version 1.0.0a 1 Jun 2010, donc la plus récente).

    Etape 1 : [openssl]

    J'ai créé ma clé (en 1024) avec la passphrase adéquate.

    Etape 2 : [openssl]

    J'ai créé mon certificat d'autorité.

    Etape 3 : [gestionnaire des services internet IIS]

    J'ai créé une demande de certificat avec

    - comme fournisseur de services de chiffrement : Microsoft RSA SChannel Cryptographic Provider

    - comme longueur en bits : 4096

    Etape 4 : [openssl]

    J'ai signé le certificat de l'étape 3 via mon Certificat d'Autorité et ma Clé.

    Etape 5 : [gestionnaire des services internet IIS]

    J'ai terminer la demande de certificat.

    Etape 6 : [gestionnaire des services internet IIS]

    Sur un pool d'application :

    Liaison de sites, j'ai ajouté

     

    • type : https
    • Adresse IP : Toutes non attribuées
    • Port : 443
    • Certificat SSL : celui que j'ai créé.
    A ce stade là, si un de mes sites web (attaché au pool d'application)requiert une connexion SSL, le visiteur est bien redirigé vers le protocole HTTPS (avec le warning classique puisque mon certificat est auto-signé)

     

    Etape 7 : [regedit]

    Afin d'étendre les protocoles prises en charge par mon serveur, j'ai ajouté :

     

    • à la branche [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers] :
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168]"Enabled"=dword:00000001

     

    • à la branche [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols] :
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]"DisabledByDefault"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]"Enabled"=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]"Enabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]"Enabled"=dword:00000001

    Afin de tester les performances de sécurité d'IIS, je l'ai soumis sur le site https://www.ssllabs.com et en voici le résultat :

    https://www.ssllabs.com/ssldb/analyze.html?d=foxp2projects.maplateformeweb.com

    Évidemment, j'ai un zéro pointé (vu que je suis en auto signé, mais là n'est pas l'essentiel), mais plutôt dans les résultats des Protocols prise en charge :

    TLS 1.1 et TLS 1.2 ne le sont pas. Par contre, j'ai bien désactivé le SSL2 - considéré aujourd'hui comme insecure -.

    Donc les nouvelles clés dans la base registre ne sont pas suffisantes.

    Question : Quelle est donc l'étape suivante à effectuer sur IIS pour que ces protocoles soient prise en charge par mon serveur ?

    Ensuite, au niveau des  Cipher Suites : [gpdit.msc]

    J'ai regardé via :

    Stratégie Ordinateur local -> Configuration ordinateur -> modèle d'administration -> réseau -> paramètres de configuration SSL :

    le paramètre "Ordre des suites de chiffrement SSL" est dans un "etat" non configuré et non activé.

    De plus, si j'ai bien compris la documentation trouvée sur le sujet, il semblerait que l'ordre par défaut de mon serveur est celui ci (qui semble correspondre à l'analyse de ssllabs:  in server-preferred order)

     

    TLS_RSA_WITH_AES_128_CBC_SHA256,
    TLS_RSA_WITH_AES_128_CBC_SHA,
    TLS_RSA_WITH_AES_256_CBC_SHA256,
    TLS_RSA_WITH_AES_256_CBC_SHA,
    TLS_RSA_WITH_RC4_128_SHA,
    TLS_RSA_WITH_3DES_EDE_CBC_SHA,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,
    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
    TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
    TLS_RSA_WITH_RC4_128_MD5,
    SSL_CK_RC4_128_WITH_MD5,
    SSL_CK_DES_192_EDE3_CBC_WITH_MD5,
    TLS_RSA_WITH_NULL_SHA256,
    TLS_RSA_WITH_NULL_SHA

    question : Est ce que mon étape 7 ne nécessite pas une activation/configuration de ce paramètre ? Voir une modification dans le choix des suites et leurs ordres afin que je puisse avoir les protocoles actuellement non prise en charge par IIS

    Si vous êtes en train de lire cette ligne, c'est que vous avez eu la patience de lire la totalité des lignes précédentes, félicitations.Toutes vos suggestions sont attendues avec intérêt sans oublier un fait majeure : Je ne suis pas SysAdmin [de formation] et je ne connais qu'IIS depuis avril. Néanmoins, la sécurité m'intéresse pour ma culture personnelle et sa mise en application est d'un intérêt indiscutable (auquel cas, on ne formerait pas des gens dont c'est le taf depuis si longtemps).

    Je vous remercie.

    Fox.

    lundi 9 août 2010 14:30

Réponses

  • Bonjour,

    Normalement l'ordre des cipher suite par défaut sur 2008-R2 est valide pour le protocole TLS 1.2.

    Avez-vous redémarré le serveur après avoir paramétré les protocoles (Server Enabled 1)?

    Avez-vous configuré le paramètre "DisabledByDefault" à zéro?

    Pour référence: table des cipher suite//Protocoles: http://msdn.microsoft.com/en-us/library/aa374757(VS.85).aspx

     


    --- Marc Lognoul [MCSE, MCTS, MVP] Heureux celui qui a pu pénétrer les causes secrètes des choses Happy is the one who could enter the secret causes of things Blog EN: http://www.marc-antho-etc.net/blog/ Blog FR: http://www.marc-antho-etc.net/blogfr/
    • Proposé comme réponse Marc Lognoul mardi 10 août 2010 09:28
    • Marqué comme réponse FoxP2 mardi 10 août 2010 10:46
    lundi 9 août 2010 15:24
  • Bonjour,

    C'est bien par NETSH qu'il faut passer, les deux options que vous souhaitez activer sont des paramètres à passer lors de l'ajout de la config SSL par binding. QQ infos:

     


    --- Marc Lognoul [MCSE, MCTS, MVP] Heureux celui qui a pu pénétrer les causes secrètes des choses Happy is the one who could enter the secret causes of things Blog EN: http://www.marc-antho-etc.net/blog/ Blog FR: http://www.marc-antho-etc.net/blogfr/
    • Proposé comme réponse Marc Lognoul mardi 10 août 2010 09:28
    • Marqué comme réponse FoxP2 mardi 10 août 2010 11:02
    mardi 10 août 2010 09:28

Toutes les réponses

  • Bonjour,

    Normalement l'ordre des cipher suite par défaut sur 2008-R2 est valide pour le protocole TLS 1.2.

    Avez-vous redémarré le serveur après avoir paramétré les protocoles (Server Enabled 1)?

    Avez-vous configuré le paramètre "DisabledByDefault" à zéro?

    Pour référence: table des cipher suite//Protocoles: http://msdn.microsoft.com/en-us/library/aa374757(VS.85).aspx

     


    --- Marc Lognoul [MCSE, MCTS, MVP] Heureux celui qui a pu pénétrer les causes secrètes des choses Happy is the one who could enter the secret causes of things Blog EN: http://www.marc-antho-etc.net/blog/ Blog FR: http://www.marc-antho-etc.net/blogfr/
    • Proposé comme réponse Marc Lognoul mardi 10 août 2010 09:28
    • Marqué comme réponse FoxP2 mardi 10 août 2010 10:46
    lundi 9 août 2010 15:24
  • Merci Marc pour ces précisions.

    Effectivement, j'avais omis le paramètre "DisabledByDefault" à zéro pour les protocoles TSL. (en ajoutant le SSL3, ce paramêtre n'a  pas été nécessaire, j'en ai déduis à tort qu'il en serait de même pour les autres.) Avec ces changements, les protocoles TLS sont bien pris en charge.

    Bon, j'ai modifié mes listes de suite Cypher via Gpedit.msc. C'est d'ailleurs en les modifiant que la configuration a été activée.(et non plus celle par défaut du serveur)

    Dernière question (pardonnes mes hésitations de grand débutant), j'aurais souhaité que la liaison SSL supporte également :

    la re-négociation de l'authentification du client ainsi que la re-négociation des paramètres des protocoles.

    à priori, suivant la documentation, cela relève de la configuration HTTP.SYS : http://learn.iis.net/page.aspx/110/changes-between-iis-60-and-iis-7-security/#SSL

    Auparavant, il existait un outil en ligne de commande : httpcfg.exe . Il ne fait plus parti d'IIS 7.5.

    J'ai vu qu'en passant par netsh>http>show sslcert j' avais bien comme paramètres :

     

    Nom du magasin de certificats : MY
    Vérifier la révocation des certificats clients    : Enabled
    Vérifier la révocation au moyen du certificat client mis en cache uniquement   : Disabled
    Vérification de l'utilisation    : Enabled
    Heure d'actualisation de la révocation : 0
    Délai d'attente de la récupération d'URL : 0
    Identificateur CTL      : (null)
    Nom du magasin CTL      : (null)
    Utilisation du mappeur DS   : Disabled
    Négocier le certificat client    : Disabled

    Par quel outil aujourd'hui faut il passer pour modifier cette liaison SSL ?

     

     

     


    lundi 9 août 2010 21:50
  • Bonjour,

    C'est bien par NETSH qu'il faut passer, les deux options que vous souhaitez activer sont des paramètres à passer lors de l'ajout de la config SSL par binding. QQ infos:

     


    --- Marc Lognoul [MCSE, MCTS, MVP] Heureux celui qui a pu pénétrer les causes secrètes des choses Happy is the one who could enter the secret causes of things Blog EN: http://www.marc-antho-etc.net/blog/ Blog FR: http://www.marc-antho-etc.net/blogfr/
    • Proposé comme réponse Marc Lognoul mardi 10 août 2010 09:28
    • Marqué comme réponse FoxP2 mardi 10 août 2010 11:02
    mardi 10 août 2010 09:28
  • merci pour votre réponse.
    J'en conclus qu'une liaison déjà établie ne peut plus être modifiée. ça m'apprendra à passer par l' outil graphique pour la créer ! ouille

    [edit]

    à moins que je puisse le faire par la commande `appcmd set site` du répertoire C:\Windows\System32\inetsrv ? 

    [/edit]

    • Modifié FoxP2 mardi 10 août 2010 12:21 autre solution ?
    mardi 10 août 2010 11:02