Here's a summary of some older research projects I worked on during my time at Princeton and HWS. You can find the code for some of these projects at my personal Github page.
Pyronia is an intra-process compartmentalization system for interpreted languages. Whenever an application attempts to access a system resource, our in-kernel system call monitor enforces a developer-supplied library access policy for that resource. Using the application runtime's current callstack as the context for the access, the monitor determines whether to allow the access according to the permissions given to the libraries found in the callstack.
CONIKS is a key management system for end
users that improves the security and privacy of end-to-end secure
communication services. By having communication service providers maintain
tamper-evident and publicly auditable key directories on behalf of their
users, CONIKS allows secure communication clients to verify users' keys
automatically so users do not have to worry about the underlying encryption
or trust their service provider to be well-behaved.
This research was awarded the Caspar Bowden PET Award in 2017.
The Mobile Web Tracking Survey
compares mobile web tracking practices with web tracking on desktops. Using a web crawler based on FourthParty, we gathered web tracking data, such as cookies, on popular mobile devices.
This work was the first major study of what is now the Princeton Web Transparency and Accountability Project.
is a recycling and waste management service that helps users separate their waste correctly leveraging a crowd-sourced database of waste items to assist users in identifying the correct waste bin for their items. ELARA's interactive recycling kiosks also allow users to track their usage and progress.
The design and implementation of this system are described in my Senior Honors thesis.
The Vireos Computer
is an educational FPGA-based platform for computer architecture and operating systems courses. Based on the 16-bit educational architecture Larc, the Vireos computer supports basic I/O devices and peripherals, and is capable of running a Unix-based shell in the Vireos educational OS.
I presented this work at the 2011 New York Conference for Women in Computing (NYCWiC).