Colin A. Percival (nacido en 1980) es un informático canadiense e investigador de seguridad informática . Completó su educación universitaria en la Universidad Simon Fraser y un doctorado en la Universidad de Oxford . Mientras estaba en la universidad se unió al proyecto FreeBSD y alcanzó cierta notoriedad por descubrir una debilidad de seguridad en la tecnología hyper-threading de Intel . Además de su trabajo en compresión delta y la introducción de funciones de memoria dura , también es conocido por desarrollar el servicio de copia de seguridad en línea Tarsnap , que se convirtió en su trabajo de tiempo completo.
Percival comenzó a tomar cursos de matemáticas en la Universidad Simon Fraser (SFU) a los 13 años, como estudiante en la Escuela Secundaria Central de Burnaby . [1] Se graduó de Burnaby Central y se inscribió oficialmente en la SFU en 1998. En la SFU estudió teoría de números con Peter Borwein y compitió en la Competencia Matemática William Lowell Putnam , ubicándose entre los 15 primeros en 1998 [2] y como Putnam Fellow (entre los seis primeros) en 1999. [3] De 1998 a 2000 dirigió el proyecto PiHex , organizando a colaboradores de todo el mundo para ayudar a calcular bits específicos de pi . Percival se graduó de la SFU en 2001 y recibió una beca de la Commonwealth para la Universidad de Oxford . [1]
En Oxford, Percival se propuso investigar en computación distribuida , basándose en su experiencia con PiHex. Cuando una enfermedad grave en 2003 interrumpió este trabajo durante meses, dirigió su atención al problema de construir un sistema de actualización de software para el sistema operativo FreeBSD . En ese momento, las actualizaciones de FreeBSD se distribuían solo como parches de código fuente , lo que dificultaba mantener los sistemas actualizados. Después de que un comentarista en una lista de correo sugiriera usar xdelta para reducir el tamaño de los archivos a transferir, Percival comenzó a trabajar en un algoritmo de compresión delta más eficiente. Este nuevo algoritmo, llamado bsdiff , se convirtió en el nuevo foco de su investigación doctoral, y más tarde en un estándar ampliamente utilizado, y su freebsd-update pasó a formar parte de FreeBSD. [4] En 2004 contribuyó con portsnap , que usa bsdiff para distribuir instantáneas del árbol de puertos de FreeBSD .
Su tesis doctoral de 2006, dirigida por William F. McColl y Richard P. Brent , [5] se titula "Matching with Mismatches and Assorted Applications" [6] y describe mejoras adicionales en la compresión de bsdiff. [7]
Después de unirse al equipo de seguridad de FreeBSD en 2004, Percival analizó el comportamiento del hyper-threading tal como se implementó en ese momento en las CPU Pentium 4 de Intel . Descubrió una falla de seguridad que permitiría a un hilo malicioso usar un ataque de canal lateral basado en tiempo para robar datos secretos de otro hilo que se ejecuta en el mismo núcleo del procesador y comparte su caché. Algunos meses después de informar el problema a Intel y a los proveedores de sistemas operativos, con sugerencias sobre cómo mitigarlo en el software del sistema, hizo públicos los detalles en mayo de 2005. [8] Habiendo terminado su tesis, regresó a SFU como investigador visitante . [9] Luego se desempeñó como Oficial de Seguridad de FreeBSD, desde agosto de 2005 hasta mayo de 2012. También fue elegido para el Equipo Central de FreeBSD , para el período 2010-2012. [10]
En 2008, lanzó el cliente para Tarsnap , su servicio de respaldo en línea cifrado. Ya había estado intentando durante unos dos años hacer funcionar FreeBSD en la plataforma Amazon EC2 , y aumentó estos esfuerzos. Creando imágenes de disco él mismo, depurando fallas del kernel y coordinándose con personas tanto de Amazon como de FreeBSD, finalmente superó los obstáculos técnicos y Amazon anunció el soporte oficial para FreeBSD en EC2 en noviembre de 2012. [11] Percival ha seguido brindando soporte para FreeBSD en EC2, y en 2019 fue reconocido como un Héroe de la Comunidad AWS por su trabajo y entusiasmo. [12]
En 2009, Percival descubrió una falla fatal en el uso de AWS de firmas criptográficas utilizadas para autenticar las API REST de EC2, SimpleDB , SQS y S3 . [13] El mismo año, mientras trabajaba para agregar protección de frase de contraseña a las claves de Tarsnap, se sintió insatisfecho con las funciones de derivación de clave existentes . Basándose en su experiencia en computación distribuida, Percival modeló un atacante que usa hardware especializado para paralelizar masivamente una búsqueda de fuerza bruta de la frase de contraseña. Concluyó que las funciones de derivación de clave en uso eran vulnerables a un ataque de este tipo y trató de hacer que estos ataques fueran prohibitivos en términos de costo mediante el diseño de un algoritmo que debe usar una cantidad de memoria casi proporcional a su tiempo de ejecución. Definió las funciones que requieren mucha memoria en estos términos y presentó scrypt como un ejemplo específico, que utilizó como la función de derivación de clave para Tarsnap. Desde entonces, las funciones que requieren mucha memoria se han convertido en un área activa de investigación en criptografía , y scrypt se utiliza como base de la prueba de trabajo en Litecoin [14] y algunas otras criptomonedas .
Desde 2020 forma parte del equipo principal de ingeniería de lanzamiento de FreeBSD, [15] y fue ascendido a ingeniero líder de lanzamiento el 17 de noviembre de 2023. [16]
Percival, que abandonó la academia después de su doctorado, sólo ha publicado unos pocos artículos. Ha colaborado con matemáticos como Peter Borwein y Richard P. Brent, lo que le ha otorgado un número de Erdős de 3. En el pasado, ha anunciado nuevos trabajos en un blog que mantiene desde 2005 y luego ha presentado sus resultados en congresos de la BSD.
Percival tiene diabetes tipo I. [ 17]