Refaktorování nástroje pro práci s X509 certifikáty ve firmě CZ.NIC, z.s.p.o

Název práce: Refaktorování nástroje pro práci s X509 certifikáty ve firmě CZ.NIC, z.s.p.o
Autor(ka) práce: Koubek, Jan
Typ práce: Bakalářská práce
Vedoucí práce: Vadinský, Ondřej
Oponenti práce: Dočekal, Michal
Jazyk práce: Česky
Abstrakt:
Tato práce se zaměřuje na použití osobních osobních digitálních certifikátů ve firmě CZ.NIC, v níž našly využití k podpisu PDF dokumentů, obzvláště v Linuxovém prostředí. Dříve používaný nástroj postrádal potřebné vlastnosti, jejichž doplnění (a přepracování dosavadních) je cílem této práce. Teoretická část pokrývá kromě motivace k podepisování a právního rámce především digitální podpis samotný, jeho technické vlastnosti (integrita, identifikace, nepopiratelnost) a jejich zajištění, včetně využitých kryptografických principů (využité hashovací a šifrovací algoritmy). Základem důvěryhodnosti tohoto systému je hierarchická struktura Certifikačních autorit, které po ověření identity vydají (na základě žádosti) uživateli jeho certifikát. Ten je speciální kryptografickou strukturou, která jednoznačně identifikuje svého držitele. Při uskutečnění podpisu je jeho kopie přiložena a je možné ověřit, že podepisovaný dokument se nachází v tom stavu, v jakém byl podepsán. Jeho použitím (a zadáním hesla) disponent prohlašuje nejen, kým je, ale též že mu na vážnosti vytvářeného podpisu záleží. Prostor je věnován i normě X.509, která stanovuje náležitosti digitálních certifikátů a jeho části. Pro objasnění je uveden i zjednodušený popis celého tohoto systému a jeho praktické využití. V praktické části je pozornost věnována přínosu autora. Na základě rozhovorů s kolegy byly identifikovány následující požadavky: jednoduchost na použití, vytváření žádosti o osobní kvalifikovaný certifikát, vytvoření PKCS12 souboru s vydaným certifikátem a zprostředkování programu na podpis PDF dokumentů. Dodatečné požadavky z pohledu administrátora jsou pak snadná údržba, lehká modifikovatelnost a automatické aktualizace. Jsou zde popsány programy a nástroje vybrané k využití v této práci, včetně patřičného odůvodnění. Vlastní vývoj sleduje metodu Extrémního Programování a je obligátně následován (převážně manuálním) testováním a dokumentací. Kostrou projektu jsou (BASH) skripty, které graficky (pomocí nástroje Zenity) komunikují s uživatelem a provádí ho od generování žádosti (přes OpenSSL) až po samotný podpis PDF dokumentu (v programu JSignPDF). Projekt je připraven k~nasazení na uživatelských počítačích a využívá automatických aktualizací (pomocí SystemD služby a časovače) z interních serverů firmy (GitLab). Protože se jedná o již déle než půl roku nasazené řešení, je zde popsáno jeho několikafázové zavádění do praxe a řešení problémů \uv{za chodu}. Oproti původnímu umí autorem vyvíjené řešení plnohodnotně pracovat s uživatelskými certifikáty, je pohodlnější na využívání a všechny požadované vlastnosti naplňuje přímočaře a přitom uceleně. Plošší architektura pomáhá při orientaci a široké nasazení prokázalo jeho funkčnost.
Klíčová slova: X.509; certifikát; digitální podpis; Linux
Název práce: Refactoring of tool for interracting with X509 certificates in CZ.NIC, z.s.p.o
Autor(ka) práce: Koubek, Jan
Typ práce: Bachelor thesis
Vedoucí práce: Vadinský, Ondřej
Oponenti práce: Dočekal, Michal
Jazyk práce: Česky
Abstrakt:
This bachelor thesis is aimed at using personal digital certificates in the company CZ.NIC, where digital certificates have found application at digital signing, especially in Linux environment. Previously used tool was lacking needed features, whose completion (and reworking of existing) is the goal of this thesis. Theoretical part covers besides motivation for signing and legislative framework mainly digital signature as-is, its technical properties (integrity, identification, non-repudiation) and their provision, including used cryptographical principles (used hash and encryption algorithms). Base of reliability of this system is hierarchical structure of Certificate Authorities, which after confirmation of identity issue (upon request) to user his certificate. That is special cryptographical structure definitely identify its holder. During the act of signing its copy is attached and verification of state of questioned document can be done. Its usage (including provision of password) disponent makes clear not only his identity, but also that he cares about sincerity of created signature. Space is given also to the norm X.509, which declares requirements of digital certificates and its parts. For clarity there is also a simplified description of this system and its practical application. In practical part attention is focused on contribution of the author. Based on the interviewswith colleagues following requirements were identified: simplicity of usage, generating personal qualified certificate request, creation of PKCS12 file with issued certificate and provision of program for PDF files signing. Additional requirements from the administrator's point of view are easy maintenance, simple modifications and automatic updates. There are described programs and tools selected for usage in this thesis, including appropriate reasons. Development follows methods of Extreme Programming and is followed by (mainly manual) testing and documentation. Skeleton of this project is a set of (BASH) scripts graphically communicating (thanks to Zenity framework) with user and guiding him from certificate request generation (using OpenSSL) up to digital signature of PDF file (in JSignPDF program). Project is prepared for deployment on user workstations and makes use of automatic updates (through SystemD service and timer) from internal servers of company (GitLab instance). Because it is an already deployed project for more than half a year, there is also described its multiphase deployment to practice and problem solving, on the go. Compared to previous solution, author's solution is able to completely work with user certificates, is more comfortable to use and all of required features fulfills straightforwardly and comprehensively. Flatter architecture helps with orientation and wide deployment already proved its functionality.
Klíčová slova: X.509; certificate; digital signature; Linux

Informace o studiu

Studijní program / obor: Aplikovaná informatika/Aplikovaná informatika
Typ studijního programu: Bakalářský studijní program
Přidělovaná hodnost: Bc.
Instituce přidělující hodnost: Vysoká škola ekonomická v Praze
Fakulta: Fakulta informatiky a statistiky
Katedra: Katedra informačního a znalostního inženýrství

Informace o odevzdání a obhajobě

Datum zadání práce: 5. 2. 2021
Datum podání práce: 8. 5. 2022
Datum obhajoby: 16. 6. 2022
Identifikátor v systému InSIS: https://insis.vse.cz/zp/76080/podrobnosti

Soubory ke stažení

    Poslední aktualizace: