"Ovviamente, non si vuole che il DH sia l'anello più debole della catena: usare AES-256 e solo assicurare lo scambio di chiavi con DH-512 è stupido, ovviamente." Esattamente. DH e RSA sono diversi, ma l'algoritmo più efficace per forzarli è lo stesso (vedi la risposta di Tom Leeks), quindi i loro livelli di sicurezza sono simili. (DH in realtà è un po 'più strong.) Rendere la tua dimensione dei parametri DH e delle chiavi RSA uguali è la cosa ovvia da fare.
"C'è qualche altra ragione per far corrispondere i keylength?" No, ma hai già tutte le ragioni.
"Soprattutto, c'è qualcosa nei protocolli, che richiede questo?" No, non hanno per abbinare. Puoi fare ciò che vuoi. TLS non si preoccupa. Infatti, molti i siti web usano chiavi RSA a 2048 bit, ma sfortunatamente usano ancora DH a 1024 bit. (Apache ha recentemente risolto questo problema, infine.)
"Se uso sempre il DH-2048 (e tutto il resto è relativamente sicuro o debole), farebbe male a tutto (tranne forse alle prestazioni)?" Bene, in una configurazione sicura, tutto il resto sarà relativamente sicuro (RSA) o più strong (AES). Se stai usando qualcosa di più debole, dovresti fermarti. :-) Per rispondere alla tua domanda, penso che andrebbe bene.
Per quanto riguarda le prestazioni, la maggior parte dei client supporta ECDHE, che non è molto più lento del non -Scambio chiave PFS . Il classico DHE è notevolmente più lento e peggiora con l'aumento della dimensione dei parametri, ma non farà una grande differenza se la maggior parte dei tuoi client non la usa e il tuo terminatore SSL non funziona sovraccarico.
Tieni presente che alcuni client, principalmente Java, non sono compatibili con i parametri DH superiori a 1024 bit. Se hai assolutamente bisogno di compatibilità con loro, potrebbe essere sensato sacrificare un po 'di sicurezza e usare il DH a 1024 bit, che è ancora sicuro, a malapena. Sarebbe meglio risolvere il problema in un altro modo, però. Le versioni Java più recenti supportano ECDHE, ad esempio.
Modifica: il punto fatto da CodesInChaos e Tom Leek, che la tua chiave RSA deve rimanere sicura per un anno o due fino alla scadenza del certificato, e la rottura consente solo di impersonare te, ma che la tua chiave DH deve rimanere al sicuro per decenni fino a quando non ti interessa più se i tuoi dati sono decifrati, è molto buono. Probabilmente è più importante di qualsiasi cosa abbia detto, quindi lo copierò e incollerò qui. :-D
Modifica: a proposito, vorrei fare attenzione a che supera 2048 bit. Entreresti in un regno di problemi di compatibilità del client meno studiati. Ad esempio, Firefox aveva un limite di circa 2200 bit (davvero). (Probabilmente si potrebbe chiedere alla community di GnuTLS. Hanno esperienza con DH straordinariamente grandi.)