Mi risulta che:
- In TLS, la funzione di hash viene utilizzata solo nel costrutto HMAC.
- SHA-1 è sicuro quando utilizzato in HMAC.
- TLS 1.2 ha cambiato il PRF utilizzato per derivare le chiavi simmetriche a non più debole di SHA-2, indipendentemente da ciphersuite, quindi in TLS 1.2 la funzione hash denominata nella ciphersuite viene utilizzata solo per HMAC durante il trasferimento di dati collettivi.
- TLS_RSA_WITH_AES_128_CBC_SHA256 non sembra più sicuro di TLS_RSA_WITH_AES_128_CBC_SHA, ma ha un sovraccarico di larghezza di banda maggiore (12 byte in più per ogni record, che può essere lungo fino a 16 KB).
È sopra corretto? Qual è stato il motivo alla base della definizione delle ciphersuites CBC SHA-2 in TLS 1.2? È stata una copertura contro HMAC_SHA1 che si è rotta in modo catastrofico, ma in modo tale da lasciare intatto HMAC_SHA256?
Se la mia analisi è corretta, significa che non ha senso supportare TLS_RSA_WITH_AES_128_CBC_SHA256? È questo il ragionamento dietro Android 5 e golang che non supporta CBC_SHA256?
Nota: conosco PFS e AEAD, questa è una domanda sui meriti di CBC_SHA256 rispetto a CBC_SHA.