Există dezavantaje de securitate sau alte lucruri pe care am uitat să le iau în considerare?
Da, GCM are probleme de securitate cu modul în care SRTP ar dori să-l folosească.
SRTP este conceput pentru a avea o supraîncărcare a lățimii de bandă (adică dimensiunea pachetului) cât mai mică posibil; SRTP este uneori folosit prin wireless, iar acolo dimensiunea pachetului este destul de scumpă. IIRC, singura lățime de bandă pe care o adaugă SRTP este eticheta de integritate (IV, dacă modul are nevoie de unul care nu se repetă niciodată, poate fi o funcție a poziției din flux, care este deja inclusă în secțiunea necriptată a pachetului); am dori să reducem eticheta să fie cât mai scurtă posibil (atât pentru a reduce costul, cât și pentru SRTP, ca cineva să introducă un singur pachet fals nu este chiar atât de rău - pentru utilizarea audio, ar putea modifica 20 msec de conexiunea vocală la un nivel nu prea ridicat ($<10^{-6}$) probabilitate și care a fost considerat tolerabil pentru acest caz de utilizare).
Când ajungem la GCM, avem o problemă cu etichetele scurte. GCM are această proprietate: dacă avem un mesaj GCM criptat cu IV, ciphertext/tag $(IV, C, T)$ și cineva găsește un mesaj fals $(IV, C', T')$ care este acceptat (notă: a fost folosit același IV, textul cifrat și eticheta au fost modificate arbitrar), apoi pentru orice mesaj criptat viitor $(IV", C", T")$, apoi mesajul $(IV", C" \oplus C \oplus C', T" \oplus T \oplus T')$ vor fi de asemenea acceptate. Adică, prin găsirea unui singur fals, atacatorul poate introduce falsuri de aici încolo.
Și, dacă aveți o etichetă scurtă, atunci atacatorul are probabilități decente de a găsi un mesaj fals acceptat $(IV, C', T')$ prin simpla ghicire a diverselor $T'$ valorile.
Un singur fals era considerat tolerabil; a permite atacatorului să genereze un flux continuu de falsuri este mai puțin. Cu GCM, putem evita această problemă utilizând o etichetă lungă (unde probabilitatea de a o ghici aleatoriu este suficient de mică), cu toate acestea, cazurilor de utilizare pentru SRTP nu le plac etichetele lungi.
HMAC nu are această proprietate; dacă atacatorul găsește un fals $(C', T')$ (HMAC nu are IV), asta nu-l ajută să genereze falsuri viitoare.