Stage- en scriptieprojecten
Gedurende het jaar lopen studenten stage of nemen ze deel aan studentenprojecten binnen het lectoraat. Hieronder een overzicht van lopende projecten, met per project een specificatie van de gewenste vaardigheden.
(Hardware) Reverse Engineering van een LoRaWAN-gateway
Een LoRaWAN-gateway is een apparaat waarmee bijvoorbeeld een apparaat met laag stroomverbruik via LoRaWAN verbinding kan maken. Vervolgens maakt de gateway verbinding met een netwerk met hoge bandbreedte en stuurt het verkeer door, via WiFi, Ethernet of cellulaire netwerken. Het doel van dit project is de reverse engineering van een LoRaWAN-gateway en, onder andere, de interne werking van de firmware en het updateproces ervan te begrijpen. Bijvoorbeeld: open het apparaat en analyseer het vanuit het oogpunt van hardware beveiliging; stel een 'man-in-the-middle'-apparaat (MitM) op om het verkeer van firmware-updates te onderscheppen, vang de firmware op, wijzig deze, en laat het LoRaWAN-apparaat de gewijzigde firmware accepteren. Als de MitM-aanpak niet werkt, moeten andere manieren om toegang te krijgen tot de firmware en het updateproces worden onderzocht, zoals de mogelijkheid om toegang te krijgen tot het apparaat via een seriële debugpoort, het rechtstreeks uitlezen van de firmware uit de Flash-chip, of andere soortgelijke benaderingen.
Gewenste vaardigheden:
- Toegepaste (hardware-)beveiliging
- Reverse engineering
- Power user van Linux
- Denkwijze gericht op onderzoek
Beveiligingsprojecten voor encryptiesleutelmanagement bij Thales Onderzoek en Technologie, Delft
Het lectoraat wordt gedeeltelijk gesponsord door Thales en daarom worden enkele stageplaatsen aangeboden bij Thales in Delft, als onderdeel van de samenwerking tussen De HHs en Thales.
Een basis encryptiesleutelserver (KMS) draait als een normale (Java-) gebruikersapplicatie. De sleutels die nodig zijn om de server te laten werken, zoals de private key voor het TLS-certificaat, worden opgeslagen in een PKCS#12 opslagplaats voor sleutels op schijf. Als een wachtwoord is vereist, wordt het opgeslagen in een configuratiebestand. Toepassingssleutels, zoals symmetrische sleutels die worden gebruikt door cliënten van de KMS, worden ook opgeslagen in een PKCS#12 opslagplaats voor sleutels, of in plaintext in een onbeveiligde lokale database.
Project #1: Bootbeveiliging en attesteren op afstand met TPM
Trusted computing heeft betrekking op aspecten zoals het verifiëren dat de code (firmware, kernel, besturingssysteem, applicatiecode, enz.) die wordt gebruikt om een systeem op te starten betrouwbaar is, en kunnen verifiëren dat een systeem een betrouwbare status heeft voordat u sleutels, zoals uw wachtwoord, invoert. Bootbeveiliging en attestatie op afstand zijn mechanismen om een dergelijk vertrouwen tot stand te brengen, met behulp van een hardwarecomponent die een 'trusted platform module' (TPM) wordt genoemd. Deze opdracht houdt in het opzetten van een systeem met bootbeveiliging, zodat het systeem alleen correct ondertekende code opstart, tot en met het besturingssysteem en de KMS-applicatiecode. Daarnaast moet attestatie op afstand worden geïmplementeerd, zodat een KMS-cliënt of -beheerder weet dat hij communiceert met een vertrouwd systeem.
Gewenste vaardigheden:
- Toegepaste beveiliging
- Java
- Power user van Linux
- Denkwijze gericht op onderzoek
Project #2: Vertrouwde uitvoeringsomgeving
Om de beveiliging van een KMS te verbeteren, is het doel van dit project om de KMS zo te ontwerpen en te implementeren dat het (of een deel ervan) draait in een vertrouwde uitvoeringsomgeving, zoals Intel SGX of ARM TrustZone. Een 'trusted execution environment' (TEE) voert een code uit in een enclave, waartoe zelfs een beheerder in de normale, rijke uitvoeringsomgeving geen toegang heeft. Dat wil zeggen dat zelfs als een kwaadwillende toegang heeft gekregen tot het systeem waarop de KMS draait, deze in de beveiligde enclave geen toegang heeft tot informatie, en met name de sleutels. Een veel voorkomend probleem met beveiligde enclaves is hoe er in eerste instantie sleutels ingevoerd kunnen worden. Dit is de allereerste uitdaging in dit project. De haalbaarheid van het gebruik van de code in de TEE om bijvoorbeeld TLS-verbindingen te beëindigen of toegang te krijgen tot de TPM, moet ook worden onderzocht. Tot slot, in het geval van een gedistribueerde KMS met meerdere knooppunten, hoeft een beheerder idealiter slechts aan één knooppunt de initiële sleutel te verstrekken, en moeten de volgende knooppunten de sleutel op een veilige manier kunnen ontvangen van onverzegelde knooppunten.
Gewenste vaardigheden:
- Toegepaste beveiliging
- Java
- Power user van Linux
- Denkwijze gericht op onderzoek
Project #3: Bruikbare inzet- en toegangsbeheer
Bruikbaarheid is een essentieel aspect van elk veiligheidskenmerk - als een systeem niet bruikbaar is, is de kans groot dat gebruikers een manier vinden om de beveiligingsmechanismen te omzeilen, wat leidt tot een verslechtering van de uitvoering, en een mismatch tussen de verwachte en de werkelijke beveiliging van het systeem. Het doel van dit project is het vinden van bruikbare manieren om de KMS in te zetten en te beheren vanuit het oogpunt van gebruikers en toegangscontrole. De toegangscontrole en het gebruikersbeheer moeten worden geïntegreerd in bestaande systemen, zoals LDAP. Het delegeren en verlenen van toegang moet plaatsvinden op een manier die ook niet-technische gebruikers kunnen toepassen. Het eindproduct kan een ontwerp zijn, een prototype, een enquête over de problemen van het huidige systeem, of een combinatie van een of meer van de genoemde elementen.
Gewenste vaardigheden:
- Toegepaste beveiliging
- Gebruikerservaring (UX)
- Toegangscontrole
- Denkwijze gericht op onderzoek