Sto sviluppando un sistema costituito da un'applicazione mobile e un dispositivo incorporato che comunicano tra loro. Sto utilizzando TLS mbed (precedentemente noto come SSL polare) .
Il problema è che il dispositivo incorporato esegue l'handshake TLS in circa 7 secondi, il che è troppo per il nostro caso d'uso.
-
È necessario un MCU migliore? Modifica della MCU ( ESP8266 ) per un altro quello potente è la soluzione ovvia. Tuttavia, è possibile accelerare l'handshake TLS senza modificare MCU?
-
Forse il caching? Ho letto del caching delle sessioni, quanto accelera questa cosa? Devo supporre che un dispositivo sarà controllato da più utenti, quindi è necessario memorizzare nella cache diverse sessioni. Non posso sprecare memoria.
L'autenticazione non è un problema, sto usando 1024 RSA. Potrebbero altri algoritmi (come Diffie-Hellman o ECC) accelerare le cose?
Analisi della stretta di mano
Modifica:
Passo dopo passo i tempi di handshake:
. Performing the SSL/TLS handshake:
hello request...0ms
client hello...30ms
server hello...0ms
server cert...0ms
server key exchange...4490ms
cert request...0ms
server hello done...0ms
client cert...0ms
client key exchange...3310ms
verify cert...0ms
client change cipher spec...0ms
client finished...10ms
server change cipher spec...0ms
server finished...0ms
flush buffers...0ms
hs wrapup...0ms
-------------------------------------------
-----------------hs done!------------------
-------------------------------------------
total: 7861