Master's Thesis

Secret Management in NixOS

Final Thesis 842.73 kB

Author of thesis: Bc. Marek Križan

Acad. year: 2025/2026

Supervisor: RNDr. Marek Rychlý, Ph.D.

Reviewer: doc. Ing. Radek Burget, Ph.D.

Abstract:

Secret management is an important part of system administration. In NixOS systems, this is especially challenging because of their declarative, reproducible approach to system configuration. This thesis examines the current state of secret management in NixOS and analyses existing tools and technologies. Given their limitations, it proposes a modular NixOS secret management system designed to handle various secret management use cases. The system addresses requirements such as secret deployment, access control, revocation, and limited secret lifetime. The implemented solution is evaluated from functional, usability, requirements-based, and security perspectives.

Keywords:

secret management, Nix, NixOS, declarative configuration, access control, secret deployment, secret revocation

Date of defence

23.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Pro testování se používá vlastní jednoduchý testovací framework postavený nad shell skripty (bash). Jaké jsou důvody takového řešení a existují hotová rámcová řešení, která by bylo možné použít?
  2. Bylo provedené testování dostatečné? Prováděl jste testy výkonnosti?
  3. Bude vaše práce publikována i v balíčcích Nix?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Cybersecurity (NSEC)

Composition of Committee

doc. Mgr. Kamil Malinka, Ph.D. (předseda)
doc. Ing. Ivan Homoliak, Ph.D. (místopředseda)
Ing. Vojtěch Havlena, Ph.D. (člen)
doc. Ing. Ondřej Ryšavý, Ph.D. (člen)
Ing. Vladimír Veselý, Ph.D. (člen)
Ing. Tomáš Goldmann, Ph.D. (člen)

Supervisor’s report
RNDr. Marek Rychlý, Ph.D.

Celkově považuji přístup studenta k řešení práce za lehce nadstandardní a navrhuji hodnotit práci stupněm velmi dobře (B).

Evaluation criteria Verbal classification
Information about assignment

Cílem práce bylo analyzovat současné přístupy ke správě tajemství v deklarativní konfiguraci operačního systému NixOS s veřejným úložištěm nix-store a navrhnout řešení integrující různé způsoby uložení a použití tajemství. Složitým aspektem práce byla především komplexnost Nix a NixOS. Zadání považuji za splněné.

Activity during solution, consultations, communication

Práce byla dokončena včas a její výsledná podoba byla konzultována.

Publication activity, awards

Bez publikací či ocenění. Výsledky práce jsou zveřejněny jako open source.

Work with literature

Student samostatně vyhledal a zpracoval relevantní literaturu.

Activity during solution, consultations, communication

Práce byla během řešení konzultována. Na konzultacích byl student aktivní, projevoval velký zájem o téma a přicházel s vlastním řešením diskutovaných problémů. Všechny dohodnuté termínu byly dodrženy.

Points proposed by supervisor: 85

Grade proposed by supervisor: B

Reviewer’s report
doc. Ing. Radek Burget, Ph.D.

Pan Križan nastudoval poměrně náročnou problematiku správy tajemství v deklarativním systému NixOS a navrhl a implementoval plně funkční modulární řešení, které smysluplně rozšiřuje stávající možnosti tohoto systému. Řešení je promyšlené, řádně otestované a publikované jako otevřený software. Přes dobné výhrady k technické zprávě hodnotím práci celkově jako výbornou.

Evaluation criteria Verbal classification Points
The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Zadání považuji za splnění ve všech bodech.

Extent of the technical report

Evaluation level: is within the usual extent

Technická zpráva se svým rozsahem pohybuje spíše na dolní hranici obvyklého rozmezí, všechny části řešení jsou však dostatečně podrobně popsány a nic podstatného neschází.

Presentation level of the technical report

Technická zpráva má logickou a přehlednou strukturu a pokrývá řešenou problematiku od teoretického úvodu přes analýzu existujících nástrojů a motivaci s definicí požadavků až k návrhu, implementaci a vyhodnocení vlastního řešení. Velmi pěkně je zpracována analytická část - zejména přehled existujících nástrojů z pohledu typů tajemství i z pohledu definovaných požadavků. Návrh systému je dobře dokumentován pomocí sekvenčních diagramů jednotlivých procesů materializace. Kapitola věnovaná implementaci zůstává poměrně obecná a popisuje spíše strukturu a použité technologie než konkrétní řešená místa; o něco podrobnější popis netriviálních částí (např. způsob využití TPM nebo detailnější popis komunikace pluginů) by práci prospěl.

88
Formal preparation of a technical report

Práce je psána anglicky na velmi dobré úrovni, je dobře srozumitelná a v zásadě bez gramatických chyb. Po typografické stránce je standardní, ukázky zdrojových kódů, konfigurací a struktur souborů jsou sázeny přehledně. Narazil jsem na několik drobných překlepů, které mírně kazí jinak dobrý dojem - opakovaně se v nadpisech vyskytuje "credetnials" místo "credentials" (str. 33–34) a v textu "secviceSecrets" místo "serviceSecrets" (str. 31).

82
Work with literature

Seznam použité literatury je přiměřeně rozsáhlý a obsahuje relevantní zdroje - oficiální dokumentaci dotčených nástrojů a technologií, příslušné standardy i odborné publikace k systému Nix/NixOS. Zdroje jsou v textu řádně citovány a převzaté pasáže jsou korektně odlišeny včetně odkazů na předchozí bakalářskou práci autora. Vzhledem k prakticky zaměřenému tématu převažují online a dokumentační zdroje, což je přijatelné.

85
Realisation output

Realizačním výstupem je plně funkční modulární systém pro správu tajemství, který se skládá z modulu pro NixOS, nástroje příkazové řádky implementovaného v jazyce Go, sady pluginů pro úložné a šifrovací backendy a pomocných nástrojů. Oceňuji promyšlenou rozšiřitelnou architekturu založenou na pluginech s jasně definovaným komunikačním protokolem. Velmi kladně hodnotím rozsah automatizovaných testů (integrační testy NixOS spouštěné ve virtuálních strojích, testy CLI i testy pluginů), které pokrývají klíčovou funkcionalitu všech komponent. Vzhledem ke složitosti řešené problematiky považuji tento výsledek za výborný.

95
Usability of results

Jde o práci, která rozšiřuje již existující řešení a zároveň přináší nový, sjednocující pohled na správu tajemství v systému NixOS. Na rozdíl od stávajících úzce zaměřených nástrojů poskytuje vytvořený nástroj jednotné a modulární rozhraní pokrývající více typů tajemství i více backendů a explicitně řeší dosud opomíjenou správu přítomnosti tajemství v systému.
Vytvořený nástroj byl publikován jako software s otevřeným kódem a má potenciál nalézt uplatnění v komunitě NixOS.

The difficulty of the assignment

Evaluation level: more difficult assignment

Zadání vyžadovalo detailní pochopení fungování systému NixOS a jeho deklarativního modelu konfigurace, který je z tohoto pohledu obecně považován za náročný, a dále orientaci v problematice bezpečné správy tajemství včetně práce s TPM, systemd-creds a fází initrd. Spojení těchto témat klade na řešitele nadstandardní nároky, a proto zadání hodnotím jako obtížnější.

Topics for thesis defence:
  1. Pro testování se používá vlastní jednoduchý testovací framework postavený nad shell skripty (bash). Jaké jsou důvody takového řešení a existují hotová rámcová řešení, která by bylo možné použít?
Points proposed by reviewer: 92

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová