Právní aspekty ověření zdrojových kódů softwaru
Ověření zdrojových kódů softwaru bývá požadavkem objednatele softwaru v návaznosti na uložení kódů do úschovy.
Escrow neboli úschova zdrojových kódů slouží objednateli k uspokojení jeho zájmu na zachování kontinuity vývoje a servisu softwaru pro případ, že dodavatel nebude schopen z jakýchkoliv důvodů toto zajistit. Současně tak dodavatel vyhoví složením zdrojových kódů do úschovy třetí osoby (schovatele) i vlastnímu zájmu na ochranu zdrojových kódů před zneužitím. Ověření se pak děje ve vztahu ke zdrojovým kódům softwaru, který je dodán objednateli a zdrojovým kódům, které jsou složeny do úschovy. Ne vždy totiž panuje stoprocentní důvěra mezi dodavatelem a objednatelem ohledně toho, co je do úschovy ve skutečnosti předáváno, resp. objednatel nedisponuje obvykle odborníky, kteří by byli schopni toto ověřit.
Co je předmětem ověření?
Předmětem ověření není jen shoda zdrojových kódů ukládaných do úschovy a kódů softwaru implementovaného u objednatele. Lze doporučit, aby smlouva o ověření zdrojových kódů definovala činnost ověřovatele podstatně šířeji, a jeho úkolem by mělo být zejména:
a) Ověření integrity
Ověření integrity spočívá v porovnání dodaných zdrojových kódů s deklarovaným obsahem, a to:
- zda uschovávané zdrojové kódy odpovídají deklarovanému rozsahu a struktuře,
- u zdrojových kódů v komprimované podobě, zda se dají dekomprimovat do deklarované struktury,
- pokud jsou zdrojové kódy šifrovány, zda je přiložen klíč a postup, kterým lze data rozšifrovat.
b) Ověření kompilace
Ověřením kompilovatelnosti se zjišťuje, zda lze z dodaných dat pomocí deklarovaných nástrojů úspěšně sestavit binární podobu zdrojových kódů. V rámci této činnosti se zjišťuje:
- zda jsou zdokumentovány kroky nutné ke kompilaci,
- zda jsou dostupné potřebné nástroje (kompilátory a knihovny) ke kompilaci,
- úspěšnost překladu (kompilace) zdrojových kódů do strojového kódu cílové architektury (objektového kódu), a to pomocí dodaného nebo specifikovaného (pokud je jinak dostupný) překladače a dodaných kompilačních skriptů,
- úspěšnost spojení (linkování) objektového kódu s kódem knihoven (standardních nebo dodaných dodavatelem) do spustitelného kódu software pro cílovou platformu.
- zda spustitelný kód odpovídá deklarované verzi.
c) Ověření funkcionality
Jde o posouzení funkcionality (tj. pouze a výhradně souboru funkcí SW), obsažené v předaných zdrojových kódech SW, vzhledem k funkcionalitě deklarované v dokumentaci dodané dodavatelem, tj. zda se ve zdrojovém kódu nacházejí deklarované funkce. Ověřovatel ovšem nezkoumá funkčnost softwaru, tzn. správnost fungování.
d) Ověření čitelnosti
Cílem této činnosti ověřovatele je posoudit čitelnost zdrojových kódů SW pro programátora, který se na vývoji posuzovaného SW nepodílel. Provádí se posouzení z hlediska výpovědní hodnoty komentářů, smysluplnosti názvů entit (tj. identifikátorů, konstant, funkcí) a z hlediska čitelnosti formátování zdrojového kódu.
e) Ověření kvality zdrojového kódu
V rámci posouzení kvality zdrojového kódu, se pomocí heuristických analýz ověřuje, zda zdrojový kód dostatečně splňuje kritéria kvality a bezpečnosti a zda nevykazuje některá rizika. Tento krok lze provést pouze v případě, že k danému zdrojovému kódu existují potřebné heuristické nástroje.
f) Ověření funkčnosti
Jde o ověření správnosti fungování softwaru pomocí automatických testů, což předpokládá časově a finančně nejnáročnější úroveň ověřování. Nezbytné je, aby byly úspěšně realizovány všechny předchozí úrovně ověřování. Tato úroveň ověření je determinována dostatečnou definicí zdrojových a cílových dat testů a současně zdrojový kód musí být napsán tak, aby byl testovatelný. V rámci ověřování funkčnosti ověřovatel pracuje se simulačními daty a kontextem (např. omezujícími podmínkami) a vytváří potřebnou množinu tzv. unit testů.
Kdo je ověřovatelem?
Ověřovatelem by měla být osoba či firma, která má dostatečné zkušenosti s tvorbou zdrojového kódu, s jeho nakládáním, čitelností, a to bez ohledu na to, kdo je jeho původcem a v jakém jazyce je napsán. Současně by tato osoba měla být dostatečně pojištěna pro případ odpovědnosti za škodu a její činnosti by měl být jednoznačně smluvně podchyceny, tak aby výsledek v podobě posouzení poskytl jednoznačnou odpověď objednateli a jistotu, že zdrojový kód uložený následně u schovatele mu zabezpečí kontinuální servis a vývoj softwaru.
Jaký je postup?
Ověřovatel by neměl být oprávněn předmět ověření přenechat ani jinak zpřístupnit jakékoliv osobě, vč. objednatele. Zdrojový kód by měl být předán jemu na datovém nosiči či jinak zpřístupněn pouze za účelem ověření. Pokud posudek bude pozitivní, tj. potvrdí vzhledem k předmětu posouzení, že předaný zdrojový kód softwaru odpovídá tomu, co je deklarováno dodavatelem a co bylo dodáno objednateli, pak bude zdrojový kód předán přímo osobě schovatele v rámci smlouvy o escrow. V případě záporného písemného posouzení ověřovatele, kdy předmět ověření nesplňuje kterýkoliv z ověřovaných a posuzovaných parametrů, pak by zdrojové kódy měly být vráceny dodavateli.
Závěr
Ověření zdrojových kódů má rozhodně opodstatnění v rámci jejich úschovy, kdy objednatel není schopen si sám ověřit, že do úschovy jsou dodavatelem předávány zdrojové kódy odpovídající tomu, co bylo implementováno a deklarováno, a které jsou způsobilé dalšího vývoje a servisu. Předpokladem je uzavření odpovídající smlouvy s osobou, která má dostatečné zkušenosti a odbornost.
Další články
Srážka se zvěří není výjimečná. Na co si dát pozor a jak postupovat po nehodě
Stačí okamžik a srážka se zvěří může způsobit vážné poškození vozidla. Riziko však nespočívá pouze v samotném střetu. Ke škodě může dojít i při snaze nehodě zabránit, například při vyhýbacím manévru. Způsob, jakým škoda vznikla, přitom může mít význam pro její posouzení z hlediska pojištění. Důležitou roli proto hraje rozsah sjednaného pojištění, jeho konkrétní podmínky i správný postup bezprostředně po nehodě.
Černá skříňka českého školství: Alokační algoritmus DiPSY ve světle GDPR a judikatury SDEU
Zavedení centrálního alokačního algoritmu do přijímacího řízení na střední školy znamenalo revoluci v obsazování volných kapacit a konec taktického podávání zápisových lístků. Kdo však o přijetí uchazeče skutečně rozhoduje?
EET 2.0 Nová elektronická evidence tržeb
Nová elektronická evidence tržeb se zavádí od 1. 1. 2027; má být jednodušší a modernější. Co všechno je potřeba vědět?
Kamerové systémy na pracovišti jako kontrolní priorita inspekce práce v roce 2026
Kamerový systém na pracovišti bývá vnímán především jako téma ochrany osobních údajů. Program kontrolních akcí Státního úřadu inspekce práce na rok 2026 ale řadí kontroly zaměřené na používání kamerových systémů na pracovištích mezi pět hlavních priorit kontrolní činnosti, a to společně s cílenými kontrolami odměňování zaměstnanců. Ochrana osobních práv zaměstnanců je zároveň samostatnou kontrolní oblastí v rámci pracovněprávních vztahů.
Od nejnižší ceny k nejlepší hodnotě aneb inovativní zadávání IT veřejných zakázek
Zatímco výběr IT systémů podle nejnižší ceny často vede k technologickému dluhu a závislosti na jediném dodavateli, hodnocení založené na kvalitě umožňuje veřejné správě získat funkční řešení na míru. Praktický návod a poznatky z rozhodovací praxe ÚOHS ukazují, jak správně nastavit kvalitativní kritéria i proces hodnocení tak, aby zakázka byla právně neprůstřelná a přinesla nejlepší poměr ceny a výkonu.




