Versija 1 nuo 2018-04-11 14:06:45

Išvalyti žinutę
Locked History Actions

Real Time Messaging Protocol

RTMP protokolo saugumas

1. RTMP PROTOKOLO ANALIZĖ

RTMP (angl. Real Time Massage Protocol) – protokolas, kuris naudojamas srautiniams multimedijos duomenims perduoti t. y. garso ir vaizdo įrašams tarp Flash Media Server ir Flash Player. [1] Pagrindinė RTMP srauto funkcija yra optimizuoti garso ir vaizdo duomenų perdavimą tarp kliento ir serverio. Protokolas naudoja 1935 prievadą ir yra tinkamiausias norint transliuoti tiesioginius įrašus nenaudojant duomenų buferį. [1] Tačiau, naudojant šį prievadą didėją RTMP srauto pažeidimo tikimybė, nes dauguma ugniasienių šį prievadą blokuoją.

RTMP protokolas pagrįstas TCP viekimo principu, kuris palaiko nuolatinius sujungimus tarp A ir B tinklo mazgų, tokiu atveju leidžiamas nedidelis perduodamų duomenų vėlinimas. Norint perduoti kuo daugiau informacijos, protokolas suskaido srautą į fragmentus, o jų dydį dinamiškai keičią tarp kliento ir serverio siuntimo metu. Fragmentų dydis priklausomai nuo perduodamo turinio gali skirtis. Pavyzdžiui, garso duomenims vieną fragmentą sudaro 64 baitai, o vaizdo ir kitiems128 baitai.

Be to, įmanomas duomenų siuntimas per virtualius kanalus, kuriais paketai gali būti siunčiami ir gaunami nepriklausomai vienas nuo kito. RTMP sesijos metu keli kanalai gali būti aktyvūs vienu metu. Paketo antraštėje nurodoma informacija apie kanalą (kuriuo kanalu turi būti išsiųsta), ID, laiko juostą (kada buvo paketas sukurtas) ir paketo naudingosios apkrovos dydį. [1] Po antraštės seka faktinis paketo turinys, kuris yra suskaidytas į fragmentus pagal sutartą dydį.

RTMP sesijos gali būti šifruojami:

  • Naudojant RTMPS protokolą. Tokiu atveju RTMP sesija inkapsuliuojama į TLS/SSL sesiją;
  • Naudojant RTMPE protokolą, kuris yra patobulintas RTMP protokolas su šifravimo mechanizmu. [2]

RTMPE protokolas turi papildoma šifravimo sluoksnį, kuriame realizuotas anoniminis Diffie-Hellman rakto apsikeitimo metodas. Šis metodas suteikia galimybę per nesaugu sujungimo kanalą apsikeisti slaptaisiais raktais tarp A ir B tinklo mazgu. [3] Gauti raktas naudojamas tolimesniam srauto šifravimui ir dešifravimui.