Bij Technolution werken hoogopgeleide professionals met een passie voor techniek. Een passie om robuuste en aansprekende oplossingen te creëren die er toe doen. Zij maken graag tijd vrij om stagiairs en afstudeerders te begeleiden.
Als technologie-integrator realiseren wij systemen waarop de klant kan bouwen. Vanaf onze oprichting zijn betrouwbaarheid, security en (netwerk-)beveiliging kernwaarden in ons bedrijf. Het is een essentiële denkwijze, die diep in onze haarvaten zit en door al onze projecten loopt. Van tekentafel tot en met ‘end of life’.
De resultaten van jouw stage- of afstudeeropdracht leveren een directe bijdrage aan de projecten waaraan wij werken!
Thema’s Public Safety & Security
We hebben geen vastomlijnde opdrachten, wel actuele thema’s waarbinnen je samen met jouw begeleider bij Technolution de opdracht kunt definiëren op basis van jouw en onze wensen en de studie richtlijnen.
Thema’s binnen onze business unit Public Safety & Security zijn:
Hoog beveiligde sleuteluitwisseling in Rust op een high security softcore
Post Quantum key exchange protocol in Rust op een high security softcore
mbedTLS elliptic curve crypto accelerator op RISC-V voor OpenVPN
Wij bieden jou
Bij Technolution werk je zelfstandig aan je opdracht, maar niet alleen. Een opdracht op jouw studieniveau is gegarandeerd. Verder bieden wij jou:
Hoog beveiligde sleuteluitwisseling in Rust op een high security softcore
Opdracht type: Security, RISC-V, Embedded software, WO afstuderen, HBO afstuderen,
Technieken:RISC-V, Rust, fine-grained data labeling, key exchange, ECCDH, softcore
Domein: Public Safety & Security
Het demonstreren van een sleuteluitwisseling algoritme in Rust met het gebruik van speciale hardware security extensies op de high security RISC-V softcore van Technolution.
Een key exchange is de basis voor het creëren van een veilig kanaal tussen twee apparaten. Aanvallen op de key exchange software kunnen ervoor zorgen dat sleutelinformatie lekt. Technolution heeft een high security softcore ontwikkeld op basis van de RISC-V instructieset. De instructieset is uitgebreid met speciale instructies om binnen de applicatie data te labelen. Hiermee wordt een hoge mate van data-scheiding in hardware gerealiseerd. Een aanvaller heeft daardoor maar beperkte mogelijkheden om de software over te nemen.
Op basis van deze core willen we nu een referentie-implementatie creëren van een sleuteluitwisseling algoritme. De referentie-implementatie moet inzicht geven in de implicaties van de fine grained labeling voor de applicatie en de programmeur. Daarnaast moet het aantonen of de voorgestelde methode bruikbaar is voor toekomstige security producten. Tevens wordt er naar verbeteringen van de core en de bijbehorende toolchain gevraagd.
Post Quantum key exchange protocol in Rust op een high security softcore
Opdracht type: Security, RISC-V, Embedded software,WO afstuderen
Technieken:Post-Quantum, RISC-V, Rust, fine-grained data labeling, key exchange, McElliece/Niederreiter, softcore
Domein: Security
Het definiëren van een lean-and-mean Post Quantum key exchange protocol en het maken van een proof of concept implementatie van het protocol in Rust met het gebruik van speciale hardware security extensies op de high security RISC-V softcore van Technolution.
Een sleuteluitwisseling is de basis voor het creëren van een veilig kanaal tussen twee apparaten. Deze sleuteluitwisseling is vaak gebaseerd op asymmetrische algoritmes. Echter, de huidige asymmetrische algoritmes kunnen door een quantum computer snel gekraakt worden. Nieuwe asymmetrische Post Quantum algoritmes zijn voorgesteld door de crypto community. In deze opdracht maak je een voorstel voor een lichtgewicht sleuteluitwisseling protocol gebaseerd op McEliece/Niederreiter. De sleuteluitwisseling wordt gebruikt om een symmetrische sleutel af te spreken voor de beveiliging van een datakanaal. Het protocol moet geïmplementeerd kunnen worden op een embedded processor en is schaalbaar om meerdere sessies parallel af te handelen.
Aanvallen op de sleuteluitwisseling software kunnen ervoor zorgen dat sleutelinformatie lekt. Technolution heeft een high security softcore ontwikkeld op basis van de RISC-V instructieset. De instructieset is uitgebreid met speciale instructies om binnen de applicatie data te labelen. Hiermee wordt een hoge mate van data-scheiding in hardware gerealiseerd. Een aanvaller heeft daardoor maar beperkte mogelijkheden om de software over te nemen. Je implementeert het Post Quantum sleuteluitwisseling algoritme in Rust op onze high security RISC-V softcore. Dit moet inzicht geven in de bruikbaarheid, de security en de schaalbaarheid van de implementatie. Je geeft ook eventuele adviezen ter verbetering van de omgeving of het protocol zelf.
mbedTLS elliptic curve crypto accelerator op RISC-V voor OpenVPN
Opdracht type: Security, RISC-V, VHDL, WO afstuderen
Technieken:VHDL, softcore, RISC-V, ECC, mbedtls, OpenVPN, embedded linux
Domein: Security
Het hardware-matig versnellen van OpenVPN door het implementeren van een ECC crypto accelerator voor mbedtls.
In diverse security producten maakt Technolution gebruik van OpenVPN om netwerkbeveiliging te realiseren. Voor het opzetten van de secure tunnels, wordt gebruik gemaakt van Elliptic Curve Cryptography (ECC). Het datapad van OpenVPN hebben we in een FPGA geïmplementeerd. De sleuteluitwisseling draait op onze RISC-V softcore. We willen de snelheid van het opzetten van de verbinding verbeteren. Hiervoor hebben we een hardware-matige accelerator voor het ECC-algoritme nodig. Voor deze opdracht bouw je in VHDL een ECC accelerator voor onze softcore. Je past tevens de mbed TLS software aan om gebruik te maken van deze accelerator. Tevens integreer je dit met de Linux driver en de mbedTLS library. Door OpenVPN te bouwen met de door jouw aangepaste mbedtls, kun je de verkregen versnelling meten.
Ad hoc peer-to-peer group key exchange
Opdracht type: Security, embedded software, WO afstuderen, (HBO afstuderen)
Technieken: Peer-to-peer (P2P), ad hoc networking, Rust, key exchange
Domein: Security
Het ontwikkelen van een protocol voor sleuteluitwisseling op basis van peer-to-peer technieken en ad hoc networking om zo een schaalbaar en gedecentraliseerde beveiligde communicatie tussen apparaten te realiseren.
Een key exchange is de basis voor het creëren van een veilig kanaal tussen twee apparaten. Veel VPN-oplossingen zijn gebaseerd op clients en een centrale server (een zogenaamde hub-and-spoke architectuur). Echter, in dynamische netwerken en een full mesh netwerk is deze centrale architectuur vaak niet goed schaalbaar. Hiervoor zoeken we naar mechanismen om middels vergelijkbare technieken in de peer-to-peer networking een gedistribueerde sleuteluitwisseling uit te voeren. Binnen deze opdracht onderzoek je de state-of-the-art technieken en combineer je technieken om te komen tot een protocol voor gedistribueerde sleuteluitwisseling. Belangrijk is dat er niet een enkele node de single point of failure is. Na het ontwerp van het protocol maak je een prototype in Python. Daarna maak je een referentie-implementatie in Rust.
Security testing & fuzzing framework
Opdracht type: Security, software, HBO stage/afstuderen
Technieken: Fuzzing, Python
Domein: Security
Het selecteren/creëren, uitbreiden en toepassen van een fuzzing framework.
Binnen Technolution maken we diverse security gevoelige applicaties en producten. Voor het functioneel testen van deze producten hebben we een uitgebreid framework gebaseerd op Python. Echter naast het functioneel testen is het ook belangrijk om het product te valideren op mogelijke security problemen. Hiervoor worden fuzz testen uitgevoerd. We zijn op zoek naar een goed fuzz test framework dat goed integreert met onze andere testtools. In deze opdracht verken je de verschillende mogelijkheden en frameworks voor het uitvoeren van fuzz testing. Voor twee van onze producten pas je de verschillende frameworks toe en voer je mogelijk verbeteringen door in de frameworks. Aan het einde van het project geef je ons advies over de frameworks en de beste manier om deze in onze workflow te integreren.
Een FPGA-hardware versnelde OpenVPN-server voor 100.000 tunnels
Opdracht type: Security, embedded software, VHDL, WO
Technieken: FPGA, ECC/RSA, OpenVPN, 10Gbit Ethernet
Domein: Security
Het ontwerpen en implementeren van een FPGA versnelde server die 100.000 OpenVPN tunnels binnen 10 minuten kan opzetten. Hiervoor wordt een FPGA insteekkaart gebruikt.
OpenVPN wordt gebruikt om gebruikers op pc’s en telefoons een beveiligde verbinding met een kantoornetwerk op te laten zetten. De schaalbaarheid van OpenVPN is echter beperkt. Voor veel gebruikers (>1000) is vaak meer dan 1 server nodig. Technolution beschikt over een hardware-implementatie van een datapad dat op 10Gbit OpenVPN-verkeer kan afhandelen. Echter, het aantal tunnels dat we tegelijkertijd kunnen opzetten en in stand kunnen houden, is beperkt. Binnen deze opdracht ga je de uitdaging aan om met een FPGA versnelde server factoren meer OpenVPN-tunnels op te zetten, dan met alleen een software gebaseerde OpenVPN-server mogelijk is. Op basis van je analyse van de software maak je een keuze welke onderdelen van de tunnel initialisatie je in hardware gaat implementeren. Je houdt hierbij rekening met eventuele communicatie overhead tussen de software en de hardware. Vervolgens maak je een implementatie van je architectuur en voer je performance testen uit.
Een secure smart FPGA-gebaseerde USB-dongle
Opdracht type: Security, elektronica, Software
Technieken:USB, Flash, Secure microcontroller, FPGA, NFC
Domein: Security
Het ontwerpen en implementeren van een USB-dongle voor secure dataopslag, authenticatie en crypto-operaties.
ook authenticatie van de gebruiker vereist om te controleren of de gebruiker gemachtigd is administratieve handelingen te verrichten. Binnen deze opdracht creëer je een USB-dongle die secure data storage, authenticatie diensten en crypto-operaties kan uitvoeren. De dongle zal naast een secure microcontroller ook een FPGA, een RTC en een Flash chip bevatten. Als optionele uitbreiding is er de mogelijkheid een NFC-antenne aan te sluiten. Uiteraard is het belangrijk het geheel zo klein mogelijk te maken.
Een 10Gbit optische netwerk interface module
Opdracht type: Security, HBO afstuderen, WO stage, Elektronica, Mechanica
Technieken:10Gbe Ethernet, optische interface, flex PCB, Altium, freeCAD
Domein: Security
Het ontwerpen van een 10Gbit Ethernet netwerk module. Binnen deze opdracht realiseer je een compacte optische 10G netwerkmodule. De module zal gebruikt worden om embedded applicaties van optische high speed netwerkinterfaces te voorzien. Daarom zal de module een processing chip bevatten om data operaties te offloaden. Naast het elektronica-ontwerp maak je ook een mechanisch ontwerp en integreer je zowel de elektronica als de optische modules in een behuizing. Deze behuizing teken je in freeCAD. Uiteraard is de grote van de oplossing belangrijk en creëer je een zo klein mogelijk product. Hiervoor maak je eventueel gebruik van flex PCB technieken.
Een open-source low-cost 1G FPGA network diode
Opdracht type: Security, HBO afstuderen, WO stage, Elektronica, Mechanica, VHDL
Technieken:1Gbe, 10Gbe, optisch & elektrisch Ethernet, FPGA, KiCad, freeCAD
Domein: Security
Het ontwerpen van een kosten-geoptimaliseerde 1Gbe netwerk diode die als open-source hardware beschikbaar wordt gesteld aan de community. Binnen deze opdracht realiseer je een 1Gbit elektrisch/optische low-cost netwerk diode. Je optimaliseert voor een lage kostprijs, zodat de diode beschikbaar komt voor een grote doelgroep. Voor de diode-overgang gebruik je een FPGA. Naast het elektronica ontwerp maak je ook een mechanisch ontwerp. Deze behuizing teken je in freeCAD. Ook de kosten van de behuizing zijn belangrijk. Je maakt een inventief ontwerp om de behuizingskosten zo laag mogelijk te houden.
Een TCP/IP transparante FPGA-gebaseerde netwerkdiode
Opdracht type: Security, WO afstuderen, (HBO afstuderen), VHDL
Technieken: FPGA, VHDL, 1Gbe, 10Gbe, TCP/IP
Domein: Security
Het realiseren van een TCP/IP connectie over een uni-directionele netwerkdiode in een FPGA met lage latency en zonder dataverlies. Netwerkdiodes en bi-directionele protocollen werken niet goed samen. Over de unidirectional overgang kunnen de acknowledges in het TCP/IP-protocol niet teruggegeven worden. Een oplossing die vaak gebruikt wordt, is om de socket in een proxy PC af te vangen en deze uni-directioneel door de diode te sturen. De uni-directionele datastroom wordt dan in een tweede proxy PC weer omgezet in een TCP/IP-datastroom. Deze oplossing is echter kostbaar, vergt onderhoud aan de proxy pc’s en introduceert mogelijk onherstelbaar dataverlies als de buffering in de pc’s niet voldoende is. In deze opdracht realiseer je in een FPGA de TCP/IP proxies aan beide zijdes van de diode-overgang. Je zorgt ervoor dat met minimale buffering en latency de verbinding aan beide zijden netjes wordt afgehandeld. Je implementatie is geschikt voor zowel 1Gb en 10Gb Ethernet en kan meerdere TCP/IP-connecties parallel afhandelen.
Ook nu maken we graag met je kennis!
Samen met jou bespreken wij graag hoe we jouw sollicitatiegesprekken kunnen vormgeven in deze bijzondere periode. Telefoon, Skype, Hangout, Meet of alvast een afspraak inplannen voor als we weer op kantoor aanwezig zijn – er zijn gelukkig heel veel mogelijkheden.
We zien je sollicitatie graag tegemoet!
Christina Keehnen
Tel.: 0182-594000
Email: christina.keehnen@technolution.nl