JAKUBÍČEK, M. Zvukový kodek s podporou zabezpečení pro PBX Asterisk [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2015.
Student měl za úkol vypracovat diplomovou práci zabývající se implementací šifrování hlasových dat přímo do funkce kodeku, resp. softwarového modulu realizujícího tuto funkci. Student zadání práce s výhradami splnil, samotné řešení však není zdaleka optimální a ani funkčnost nebylo řádně otestována. Student nevyčerpal možnosti zadnání a postupy navrhované během konzultací. Samotné textové zpracování obsahuje několik nepřesností a není přehledné, značný počet stran tvoří přílohy.
Text předložené práce je velmi nekonzistentní, jednotlivé kapitoly na sebe v podstatě nenavazují. Spíše působí dojmem rychle poskládané rešerše z různých zdrojů. Např. operace XOR je podrobně popsána až v kapitole 6.3, přestože byla několikrát zmiňována dříve bez jakéhokoliv odkazu (pomiňme, že operace XOR je dostatečně známá). V kapitole 3 nejsou v ukázkách kódů vypisovány zpětná lomítka pro znak konce řádku „Hello World!n“ místo „Hello World!\n“. Snímky obrazovky na obrázcích 3.2 a 3.3 napovídají, že to není jen chyba sazby, ale že takto byly uvedeny i ve zdrojových souborech. Na str. 19 pod obrázkem 3.1 je uvedeno, že přeložený soubor je pojmenován „helloworld.so“, přičemž zmíněné výpisy i další text dokazuje, že správný název je „res_helloworld.so“. Srozumitelnost textu také snižuje, že některé názvy funkcí, proměnných a dalších programových symbolů jsou psány neproporcionálním písmem, zatímco jiné nikoliv. Dále je v kapitole popisován způsob definice vlastních příkazů příkazové řádky, přičemž ve výsledných zdrojových souborech toto není vůbec využito. Navíc popis není úplný, nejsou rozlišeny funkce a makra, některé symboly nejsou popsány vůbec. V kapitole 4 na straně 24 je uvedeno, že „klíč c_key je vytvořen z klíče key tak, aby byl stejně dlouhý jako vektor dat u“. Nikde ale není vysvětleno, jakým způsobem je toho dosaženo. Model v Simulinku jsem z důvodu nekompatibilní verze Matlabu nemohl otestovat. Hlavní náplň práce, tj. zabezpečení hlasových přenosů, je zmíněno až v kapitole 5 a to na necelých 3 stranách. Navíc proudovou šifru pomocí operace XOR, popsanou v posledním odstavci části 5.1.2, bych nezahrnoval mezi šifrování pomocí časového dělení. Očekával bych, že tato část bude na začátku práce a bude mnohem obsáhlejší. Hlavní přínos studenta je v úpravě modulů kódování A-law a u-law pro Asterisk. Pro zabezpečení každého rámce je použita jednoduchá proudová šifra s náhodným klíčem generovaným z pseudonáhodné posloupnosti. V tom ale vidím zároveň i velkou slabinu, protože použitá funkce „rand“ nemusí být bezpečná při použití ve vícevláknových programech. Pokud by v jednom okamžiku existovalo více spojení realizovaných individuálními vlákny, pak nemusí být pseudonáhodná posloupnost při kódování a dekódování shodná. Podobně podle mého názoru hrozí, že se pseudonáhodné posloupnosti mohou lišit na různých verzích operačního systému Linux nebo podle verzí překladačů. V práci není uvedeno, zda testování probíhalo pouze při jednom spojení v rámci jedné instance ústředny Asterisk nebo bylo realizováno více přenosů i mezi různými ústřednami. V druhém případě by se chyby dekódování mohly projevit. V práci není uveden jediný obrázek s časovým průběhem původního, šifrovaného a dešifrovaného signálu. Ani na přiloženém CD nejsou uloženy soubory ve formátu WAV s ukázkami zpracování. Nejsem tak schopen posoudit, nakolik bylo nebo nebylo šifrování účinné. Přes uvedené výhrady doporučuji práci k obhajobě.
eVSKP id 85311