Voor een betere beveiliging kan de communicatie worden versleuteld met behulp van SSL-certificaten.
Sleutelgeneratie
Certificaten met een publieke en private sleutel kunnen via de webinterface worden geüpload. De certificaten worden gebruikt voor de authenticatie fase van de handshake. Deze certificaten kunnen in 3 stappen worden gegenereerd:
– Genereer een private sleutel
– Genereer een CSR (Certificate Signing Request) met de private sleutel.
– Maak een zelfondertekend certificaat met het CSR.
De volgende private sleutels worden ondersteund:
– RSA (1024 bit)
– Elliptische curve (secp256r1/ prime256v1 en secp384r1)
– Ondersteunde TLS-code suites:
De TLS cipher suites worden in het volgende formaat opgesomd (voorbeeld):
– TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
– TLS prefix
– Sleuteluitwisseling Algoritme (DHE) (Uitgesloten voor statische sleutels)
– Authenticatie-algoritme (RSA)
– Encryptie-algoritme (AES)
– Versleutelingssterkte (256)
– Versleutelingsmodus (GCM)
– MAC (SHA284)
Het geüploade certificaat wordt gebruikt voor het “Authenticatie-algoritme” (RSA of Elliptische Curve). Andere opties (Sleuteluitwisseling, Encryptie, enz.) worden geselecteerd uit wat de cliënt in de “Client Hello” als ondersteund aangeeft. De volgende cipher suites worden ondersteund:
Statische sleutel met RSA:
– MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
– MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
– MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
– MBEDTLS_TLS_RSA_MET_AES_128_CBC_SHA
– MBEDTLS_TLS_RSA_MET_AES_256_CBC_SHA
Ephemeral Elliptic-curve Diffie-Hellman met elliptische curve:
– MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
– MBEDTLS_TLS_ECDHE_ECDSA_MET_AES_256_CBC_SHA
– MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
– MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
Diffie-Hellman met elliptische curve:
– MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
– MBEDTLS_TLS_ECDH_ECDSA_MET_AES_256_CBC_SHA
– MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
– MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
Opmerking over zelfondertekende certificaten
Op dit moment worden alleen zelfondertekende certificaten ondersteund.
Certificaat genereren
OpenSSL kan worden gebruikt om de private sleutels en certificaten te genereren. Op verzoek kunnen wij hiervoor scripts leveren.