Isso depende muito do sistema operacional, portanto, não há resposta genérica possível.
No Arch Linux , os pacotes são assinados usando o PGP - não pelo autor original (que fornece apenas o código fonte), mas pelo packager (que compila a fonte código em um programa e cria o pacote assinado).
As assinaturas são mantidas no banco de dados de pacotes, juntamente com o restante das informações do pacote. (Para pacotes de terceiros - quando você baixa apenas o arquivo .pkg.tar.xz
- a assinatura estará em um segundo arquivo .pkg.tar.xz.sig
). O próprio banco de dados pode ser assinado, mas geralmente não é.
pacman
no Arch Linux verifica assinaturas em relação às chaves em /etc/pacman/gnupg.d
(gerenciado usando pacman-key
); Se você ainda não tem a chave do assinante, ele pedirá para baixar a chave de um servidor de chaves . Não há "autoridades de certificação" centrais - o PGP usa um algoritmo do Web of Trust, e a validade da chave de alguém depende do que outras pessoas assinaram com essa chave. (Por exemplo, todas as chaves dos desenvolvedores oficiais são assinadas por cinco "chaves mestras", e as chaves mestras são marcadas como "confiáveis", portanto todas as chaves dos desenvolvedores também são confiáveis pelo gerenciador de pacotes. sistemas, no pacote archlinux-keyring
.)
No PGP, como não há CAs, uma chave pode ser revogada apenas por seu proprietário. Para descobrir novas assinaturas ou revogações, você precisa atualizar periodicamente as chaves em cache de um servidor de chaves; gpg --refresh-keys
faz isso para seu próprio chaveiro, enquanto pacman-key --refresh-keys
atualiza o chaveiro usado para verificar os pacotes.
No Ubuntu , o PGP também é usado, mas de forma um pouco diferente. Os pacotes em si quase nunca são assinados, eles são verificados apenas em relação aos hashsums no banco de dados do pacote, que é assinado por um processo automatizado (usando uma chave chamada "Chave de assinatura automática do arquivo Debian" ou "PPA do Launchpad para John Smith" ou similar) .
As assinaturas também são verificadas em um chaveiro local ( /etc/apt/trusted.gpg
, mantido usando apt-key
) - mas diferentemente do Arch, o gerenciador de pacotes do Ubuntu ignora assinaturas de chaves e confia em todas chaves nesse chaveiro Portanto, ele nunca faz download de chaves automaticamente e nunca precisa atualizá-las. As chaves oficiais vêm pré-instaladas em vários foo-keyring
packages ( debian-keyring
e similares) e, se uma dessas chaves for revogada, o pacote atualizado a removerá.
No Windows , os programas podem ser assinados usando o "Authenticode", que é basicamente o X.509 usado para assinatura de código. A assinatura, assim como o certificado do signatário, está incorporada no arquivo .exe
do programa. (O certificado tem que ser anexado porque diferente do PGP, o X.509 não possui servidores de chaves, apesar dos planos originais que o X.500 já teve). Diferentemente do Linux, a maioria dos programas Windows são distribuídos em formato compilado por seus autores, então o arquivo .exe é assinado diretamente pelo autor.
O certificado do editor é verificado em um banco de dados local de autoridades de certificação confiáveis. No Windows, você pode vê-lo em certmgr.msc
- os certificados incluídos são decididos pela Microsoft de acordo com solicitações de CAs. (Nota: Supostamente, o Windows 7 é capaz de baixar os certificados CA necessários quando necessário, portanto, a lista no Gerenciador de Certificados pode estar incompleta.)
Ao verificar a assinatura, o Windows entrará em contato com o servidor OCSP do emissor para verificar se o certificado ainda não foi revogado. (O endereço do servidor OCSP geralmente faz parte do certificado do editor.) Em outras palavras, as revogações são tratadas pela mesma CA que emitiu o certificado em primeiro lugar. (Nota: Não tenho certeza se a verificação do OCSP está ativada por padrão. Há uma opção para ativá-lo / desativá-lo em Painel de controle → Internet → Avançado → Segurança .) Em alguns casos, a Microsoft também marque os certificados conhecidos como "não confiáveis" e distribua-os da mesma forma que as atualizações regulares da lista de CAs. Em certmgr.msc
você pode ver vários certificados tendo sido revogados dessa maneira.
Alguns navegadores (como o Opera ou o Firefox) têm seus próprios bancos de dados de certificados de CA. Aqueles não são usados pelo Windows. Enquanto isso, o Internet Explorer e o Google Chrome usam o mesmo banco de dados do Windows.