Los piratas informáticos con frecuencia toman software, ya sea en línea o fuera de línea, reorganizan y cambian el código para convertirlo en malicioso, y luego lo cargan en línea para que los usuarios descarguen el programa gratuito y el código malicioso que contiene. Para garantizar que los usuarios no se encuentren con este problema, se utiliza la firma de código. La firma de código es un método mediante el cual el programador original o la empresa que hizo el programa firma el programa y, cuando se instala el programa, se autentica para garantizar que no se haya agregado ni cambiado ningún código. Esto no requiere ningún software especial por parte del usuario, y el usuario puede verificar la identidad del programador. Si bien esto tiene la intención de ser una forma de seguridad, un pirata informático que crea un programa o descubre una firma puede crear una confianza artificial y fuera de lugar.
Los programas se venden constantemente tanto online como offline. Cuando alguien compra un programa sin conexión a un proveedor o minorista de confianza, el usuario tiene muy pocas razones para preocuparse de que los piratas informáticos inyecten código malicioso en el programa. Esto se debe a que, a menos que el desarrollador del software haya creado intencionalmente un programa peligroso, no hay forma de que alguien manipule el software y lo haga malicioso. Cuando un usuario descarga un programa de Internet, no existe tal garantía.
Para proteger a los usuarios que compran o descargan programas en línea, se implementa la firma de código. La firma de código se divide en dos partes: el desarrollador y el usuario final. El desarrollador utiliza un hash criptográfico, una operación unidireccional que disfraza el código del programa y luego combina su clave privada con el hash. Esto crea una firma que se implanta en el programa.
Cuando el usuario recibe el programa, se produce la segunda parte del proceso de firma del código. El programa examina el certificado y una clave pública que el programador colocó en el programa. Usando la clave pública, el programa puede ejecutar el mismo hash en la programación actual, y luego compara el original con la versión actual que se está instalando. Si tanto el programa instalado como el original se sincronizan, esto le muestra al usuario que no se ha modificado nada. Este proceso se realiza automáticamente y los programas necesarios para esta autenticación deben estar preinstalados en el sistema operativo (SO) de la computadora.
Si bien la firma de código es un método poderoso para garantizar la seguridad, tiene fallas. Si el usuario está descargando un programa de un pirata informático, la autenticación mostrará que el programa original está intacto. Esto llevaría al usuario a una falsa sensación de seguridad; el programa está diseñado para ser malicioso, por lo que la seguridad no se logra en este sentido. Los piratas informáticos sofisticados también pueden sortear el hash para inyectar codificación, lo que hace que la firma de código sea inútil.