I have been involved with a number of project as a security engineer. Additionally, I worked with a number of organizations and some projects as a security consultant. In this page I highlight some of the projects I was involved in.
During the summer of 2014, where I spent 3 months at Google as a Software Engineer, I contributed to the development of the Chrome browser. My changes improved how Chrome manages the permissions granted for extensions and apps. All the code I wrote can be found here as part of the open source Chromium project.
During the summer of 2013, where I spent 4 months at Mozilla as a Security Engineer, I contributed to the development of the Firefox browser. My changes improved the way Firefox handles SSL/TLS certificates revocation. All the code I wrote can be found here as part of Firefox code. I have also gave a 15 minutes presentation (video below) summarizing my work there.
Understanding how certificates is revoked in the Internet is essential to understanding the best way to revoke them. I built a Python script that pulls the certificates of Alexa’s top million sites and then check if any of the certificates in their chains have been revoked. The last time I ran the script there were more than 2.5 million revoked certificates. You can build other the tool to do anything with the SSL/TLS certificates other than checking the revocation information.
We modified how Linux-based operating systems store user’s passwords and incorporated a machine dependent machine function in the process. When an attacked steal the hashed passwords file (e.g., etc/shadow) and tries to crack the password, ersatz “fake” passwords are returned instead. The design of this tool can be found in this paper and the code, which was mainly developed by Chris Gutierrez, can be found here.
I have experimented, along with my colleague Sam Kerr, with implementing a secure e-voting software. Our implementation does not require the existence of a central trusted party and use a number of cryptographic protocols to provide its guarantees. The code can be accessed from here and the work’s documentation and detailed design can be accessed from here.