Skip to main content

O que é assinatura de código?

Os hackers frequentemente levam o software - offline ou online - a reorganizar e alterar o código para torná-lo mal-intencionado, e depois o carregam online para que os usuários baixem o programa gratuito e o código malicioso que ele contém. Para garantir que os usuários não tenham esse problema, é usada a assinatura de código. A assinatura de código é um método pelo qual o programador ou empresa original que criou o programa assina o programa e, quando o programa é instalado, é autenticado para garantir que o programa não tenha sido adicionado ou alterado. Isso não requer nenhum software especial do lado do usuário, e o usuário pode verificar a identidade do programador. Embora isso pretenda ser uma forma de segurança, um hacker que cria um programa ou descobre uma assinatura pode criar uma confiança artificial e extraviada.

Os programas são vendidos constantemente online e offline. Quando alguém compra um programa offline de um fornecedor ou varejista confiável, o usuário tem muito pouco motivo para se preocupar com hackers que injetam código malicioso no programa. Isso ocorre porque, a menos que o desenvolvedor do software tenha intencionalmente criado um programa perigoso, não há como alguém violar o software e torná-lo malicioso. Quando um usuário baixa um programa da Internet, não existe essa garantia.

Para proteger os usuários que compram ou fazem download de programas online, a assinatura de código é implementada. A assinatura do código é separada em duas partes: o desenvolvedor e o usuário final. O desenvolvedor usa um hash criptográfico, uma operação unidirecional que disfarça o código do programa e, em seguida, combina sua chave privada com o hash. Isso cria uma assinatura que é implantada no programa.

Quando o usuário recebe o programa, a segunda parte do processo de assinatura de código ocorre. O programa examina o certificado e uma chave pública que o programador colocou no programa. Usando a chave pública, o programa pode executar o mesmo hash na programação atual e, em seguida, verifica o original com a versão atual que está sendo instalada. Se o programa instalado e o original forem sincronizados, isso mostra ao usuário que nada foi alterado. Esse processo é feito automaticamente e os programas necessários para essa autenticação devem ser pré-instalados no sistema operacional (SO) do computador.

Embora a assinatura de código seja um método poderoso para garantir a segurança, ela possui falhas. Se o usuário estiver baixando um programa de um hacker, a autenticação mostrará que o programa original está intacto. Isso levaria um usuário a uma falsa sensação de segurança; o programa foi criado para ser malicioso, portanto a segurança não é alcançada nesse sentido. Os hackers sofisticados também podem contornar o hash para injetar codificação, tornando a assinatura do código inútil.