GSoC/GCI Archive
Google Summer of Code 2009

Native Client

Web Page: http://code.google.com/p/nativeclient/wiki/Ideas

Mailing List: native-client-discuss@googlegroups.com

Native Client is an open-source research technology for running x86 native code in web applications, with the goal of maintaining the browser neutrality, OS portability, and safety that people expect from web apps. We've released this project at an early, research stage to get feedback from the security and broader open-source communities. We believe that Native Client technology will someday help web developers to create richer and more dynamic browser-based applications.

For more information on Native Client please see http://code.google.com/p/nativeclient

Projects

  • Interactive Music and Adaptive Synthesis Native Client has been on my radar since it's public inception a few months back because of the promise that it holds as a platform to achieve native code performance in the context of a secure web client. I am currently a graduate student in the Music Technology Department at McGill University in Montreal and am in the process of creating a prototype to advance my research into user interaction schema and interfaces for the mediums of interactive music and adaptive audio synthesis.
  • Removing the C NaCl I believe in NACL. The theory behind it is great. The combination of restricting data access and static analysis will most definitely revolutionize browser security. There’s an unfortunate show stopper though. In addition to being written by humans, it’s mainly written in C/C++. I love C and I am C. But that is where my skills come in. I will not rest until every integer underflow or overflow, buffer overrun, uninitialized memory bug, or other C and x86 quirk is eradicated or made irrelevant.
  • Secure infrastructure for verification and distribution of Native Client modules Current versions of Native Client solve some security issues like modules verification and creation of secure execution environments. In this project attempts to solve secure modules distribution problems (in terms of modules authentication and integrity) will be performed by introducing so-called "Trusted Native Client Module". The core idea can be related to Java signed applets and similar technologies which are using public key infrastructure to ensure that signed code is trusted.