[Ach] SSL Parameter und Elliptische Kurven...

Adi Kriegisch adi at kriegisch.at
Mon Oct 21 17:50:53 CEST 2013


Hallo!

Ich bin in der letzten Zeit der Frage nach den "perfekten" SSL-Settings
nachgegangen und dabei über ein paar Fragen gestolpert, die ich nicht
beantworten kann -- aber hoffentlich irgendwer in dieser Runde.

Zuerst kurz was ich gemacht habe (zerlegter und kommentierter OpenSSL
Cipher String):
# Alle ephemeral elliptic curve key exchanges; geordnet nach
# GCM -> SHA384 -> SHA256 (=> Frage 1 & Frage 2)
  >  EECDH+aRSA+AESGCM EECDH+aRSA+SHA384 EECDH+aRSA+SHA256
# DHE mit Camellia256 (=> Frage 3)
  >  EDH+CAMELLIA256
# alles andere mit ECDH (das nicht weiter unten deaktiviert wurde); also
# auch SSLv3/TLSv1.
  >  EECDH
# DHE/EDH mit RSA (auch wieder incl. SSLv3/TLSv1)
  >  EDH+aRSA
# alles mit SSLv3/TLSv1 nach hinten sortiert
  >  +SSLv3
# dann die üblichen deaktivieren (incl. RC4)
  >  !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4 !SEED
# dann alles mit 128bit deaktivieren
  >  !AES128 !CAMELLIA128
# überflüssig, aber der Lesbarkeit wegen alles mit DSA deaktivieren:
  >  !ECDSA
# und als "last chance" eine nicht PFS-fähige Ciphersuite, damit Windows >
# XP auch noch mitspielen kann (Vista/Win7/Win8).
  >  AES256-SHA
"EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EDH+CAMELLIA256:EECDH:EDH+aRSA:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:!AES128:!CAMELLIA128:!ECDSA:AES256-SHA"

Das ergibt dann folgenden Cipher String:
0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2
0xC0,0x28 - ECDHE-RSA-AES256-SHA384      TLSv1.2
0x00,0x9F - DHE-RSA-AES256-GCM-SHA384    TLSv1.2
0x00,0x6B - DHE-RSA-AES256-SHA256        TLSv1.2
0x00,0x88 - DHE-RSA-CAMELLIA256-SHA      SSLv3
0xC0,0x14 - ECDHE-RSA-AES256-SHA         SSLv3
0x00,0x39 - DHE-RSA-AES256-SHA           SSLv3
0x00,0x35 - AES256-SHA                   SSLv3

1. Sind die NIST-Kurven jetzt als sicher anzusehen? Welche der Kurven sind
   nach momentanem Wissenstand OK, welche eher nicht?
   Outlook 2007 (mit TLSv1.2 aktiviert) schickt mit, daß es genau
   'secp256r1' und 'secp384r1' kennt. Weiters meint es, daß es das "EC
   Point Format: uncompressed" unterstützt -- bedeutet das, daß es mit
   beliebigen Kurven kann? Wenn ja, kann ich mir mal ansehen, wie man
   serverseitig auf die Wahl der Kurven Einfluß nehmen kann.
2. "GCM -> SHA384 -> SHA256" ist das eine sinnvolle Sortierung?
3. Ist Camellia256 gegenüber AES256 zu bevorzugen? Oder eher im Gegenteil?
   Ivan Ristić ignoriert Camellia in seinem Beispiel ab Seite 29 im "OpenSSL
   Cookbook" und ich versteh das nicht ganz.
   Soweit ich bisher gesehen habe gibt es Side-Channel Attacken auf AES
   durch Lookup Tables sofern man nicht die AES-NI Extension in der CPU
   nutzt. Wie steht es da mit Camellia?

Glg Adi

PS: Auf einem Debian Wheezy kann der Apache nur DHE und nichts mit
elliptischen Kurven; das kann nur der nginx. Der Grund dafür ist, daß auf
Debian immer noch Apache 2.2 verwendet wird und Apache (mit mod_ssl) erst
ab Version 2.4 elliptische Kurven auch zu können scheint.

PPS: Das ist auf einem Standard Debian die Liste der elliptischen Kurven,
die OpenSSL kennt:
openssl ecparam -list_curves
  secp112r1 : SECG/WTLS curve over a 112 bit prime field
  secp112r2 : SECG curve over a 112 bit prime field
  secp128r1 : SECG curve over a 128 bit prime field
  secp128r2 : SECG curve over a 128 bit prime field
  secp160k1 : SECG curve over a 160 bit prime field
  secp160r1 : SECG curve over a 160 bit prime field
  secp160r2 : SECG/WTLS curve over a 160 bit prime field
  secp192k1 : SECG curve over a 192 bit prime field
  secp224k1 : SECG curve over a 224 bit prime field
  secp224r1 : NIST/SECG curve over a 224 bit prime field
  secp256k1 : SECG curve over a 256 bit prime field
  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
  prime192v2: X9.62 curve over a 192 bit prime field
  prime192v3: X9.62 curve over a 192 bit prime field
  prime239v1: X9.62 curve over a 239 bit prime field
  prime239v2: X9.62 curve over a 239 bit prime field
  prime239v3: X9.62 curve over a 239 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field
  sect113r1 : SECG curve over a 113 bit binary field
  sect113r2 : SECG curve over a 113 bit binary field
  sect131r1 : SECG/WTLS curve over a 131 bit binary field
  sect131r2 : SECG curve over a 131 bit binary field
  sect163k1 : NIST/SECG/WTLS curve over a 163 bit binary field
  sect163r1 : SECG curve over a 163 bit binary field
  sect163r2 : NIST/SECG curve over a 163 bit binary field
  sect193r1 : SECG curve over a 193 bit binary field
  sect193r2 : SECG curve over a 193 bit binary field
  sect233k1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect233r1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect239k1 : SECG curve over a 239 bit binary field
  sect283k1 : NIST/SECG curve over a 283 bit binary field
  sect283r1 : NIST/SECG curve over a 283 bit binary field
  sect409k1 : NIST/SECG curve over a 409 bit binary field
  sect409r1 : NIST/SECG curve over a 409 bit binary field
  sect571k1 : NIST/SECG curve over a 571 bit binary field
  sect571r1 : NIST/SECG curve over a 571 bit binary field
  c2pnb163v1: X9.62 curve over a 163 bit binary field
  c2pnb163v2: X9.62 curve over a 163 bit binary field
  c2pnb163v3: X9.62 curve over a 163 bit binary field
  c2pnb176v1: X9.62 curve over a 176 bit binary field
  c2tnb191v1: X9.62 curve over a 191 bit binary field
  c2tnb191v2: X9.62 curve over a 191 bit binary field
  c2tnb191v3: X9.62 curve over a 191 bit binary field
  c2pnb208w1: X9.62 curve over a 208 bit binary field
  c2tnb239v1: X9.62 curve over a 239 bit binary field
  c2tnb239v2: X9.62 curve over a 239 bit binary field
  c2tnb239v3: X9.62 curve over a 239 bit binary field
  c2pnb272w1: X9.62 curve over a 272 bit binary field
  c2pnb304w1: X9.62 curve over a 304 bit binary field
  c2tnb359v1: X9.62 curve over a 359 bit binary field
  c2pnb368w1: X9.62 curve over a 368 bit binary field
  c2tnb431r1: X9.62 curve over a 431 bit binary field
  wap-wsg-idm-ecid-wtls1: WTLS curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls3: NIST/SECG/WTLS curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls4: SECG curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls5: X9.62 curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls10: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls11: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls12: WTLS curvs over a 224 bit prime field
  Oakley-EC2N-3:
        IPSec/IKE/Oakley curve #3 over a 155 bit binary field.
        Not suitable for ECDSA.
        Questionable extension field!
  Oakley-EC2N-4:
        IPSec/IKE/Oakley curve #4 over a 185 bit binary field.
        Not suitable for ECDSA.
        Questionable extension field!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
URL: <http://lists.cert.at/pipermail/ach/attachments/20131021/2099ac98/attachment.sig>


More information about the Ach mailing list