About the Role
About the Role
You will work for the Network Security research group led by Professor Adrian Perrig. The Network Security group conducts research on a secure inter-domain routing architecture called SCION.
Your main duties of this position will be the implementation of software for the control and data plane of network infrastructure devices as well as applications and network stack components for endhosts using SCION. This involves the design of the systems and collaboration on code development, software release, and software testing, assisting in conducting testing and evaluation of the prototypes using the global production network, as well as maintaining local testbed resources and contributing to documentation.
Project Background
Our inter-domain routing architecture is designed to provide route control, failure isolation, and explicit trust information for end-to-end communications. Autonomous Systems (ASes) are grouped into independent routing control sub-planes, called isolation domains which then interconnect to form complete routes. Isolation domains provide natural isolation of routing failures and human misconfiguration, give endpoints strong control for both inbound and outbound traffic, provide meaningful and enforceable trust, and enable scalable routing updates with high path freshness. As a result, our architecture provides strong resilience and security properties as an intrinsic consequence of good design principles, avoiding piecemeal add-on protocols as security patches.
Who You Are
As the ideal candidate you have a passion for development and open source contribution, hands-on work and supporting a research organization. Furthermore, you should not be intimidated by developing large systems, enjoy working with people and will rise to meet unforeseen challenges.
Understanding of network security and computer networks.
Advanced degree in computer science, engineering or relevant work experience.
5+ years of experience in design, implementation and testing of large-scale systems with particular attention to security, scalability, and high performance implementation.
5+ years of experience in the administration of Unix-style machines, and the management of complex networks of machines.
Experience with Go or Rust, C++, C programming in a Linux environment. Solid experience writing Python scripts.
You have experience with maintaining/contributing to OSS, familiarity with big code bases.
Comfortable with most aspects of Unix/FreeBSD/Linux system administration; for example, system installation and configuration, fundamentals of security.
Understanding of software engineering and design.
Familiar with Git version control, containers, CI/CD, Ansible, Prometheus, Grafana.
Ability to contribute to multiple projects/demands simultaneously and enjoy student supervision.
Bonus Points
Deep knowledge of low-level networking and Linux network internals (e.g., network stack implementation, TUN/TAP devices, Netfilter Queue, ...).
Deep knowledge of network protocols and techniques (e.g., QUIC, TCP/IP, NAT, NAT traversal, middle boxes, tunnelling, VPNs, raw sockets, ...).
Understanding of cryptographic operations and protocols.
You participate in the communities relevant to the position (IETF, Golang/Rust meetups, NOGs, etc.).
Experience with Linux Kernel or mobile programming is a plus, knowledge of DPDK, AF_XDP or eBPF are appreciated.
Benefits
The Network Security group offers you interesting challenges in the field of inter-domain networking and network security in a university environment.
- Wide range of inter-domain routing and network security related projects.
- Industry collaboration opportunities.
- Independent work as well as international collaborations.
Requirements
Network Security Knowledge
Understanding of network security and computer networks is essential.
Software Development Experience
5+ years of experience in design, implementation, and testing of large-scale systems.
Unix Administration
5+ years of experience in the administration of Unix-style machines.
Programming Skills
Experience with Go or Rust, C++, C programming in a Linux environment.
Open Source Contribution
Experience with maintaining or contributing to open source software.
Nice to Have
Deep knowledge of low-level networking and Linux network internals.
Deep knowledge of network protocols and techniques.
Understanding of cryptographic operations and protocols.
Participation in relevant communities like IETF or Golang/Rust meetups.
Benefits
Challenging Projects
Engaging challenges in inter-domain networking and network security.
Industry Collaboration
Opportunities for collaboration with industry partners.
Independent Work
Possibility for independent work and international collaborations.