Como mostrar & Verificar assinaturas de código para aplicativos no Mac OS X
Índice:
Aplicativos assinados por código permitem que usuários conscientes da segurança verifiquem o criador e o hash de um aplicativo específico para ajudar a confirmar se ele não foi corrompido ou adulterado. Isso raramente é necessário para usuários médios de Mac, especialmente aqueles que obtêm seu software na Mac App Store ou outras fontes confiáveis, pois os aplicativos são certificados, mas verificar a assinatura digital de um aplicativo pode ser extremamente útil para usuários que obtêm aplicativos de terceiros. fontes.
A verificação de uma assinatura de código é particularmente importante para quem obtém software e instaladores de fontes p2p e distribuídas, talvez um site de torrent ou grupos de notícias, IRC, ftp público ou outro recurso de rede. Para um exemplo prático, digamos que um usuário não pode acessar a Mac App Store por qualquer motivo, mas precisa baixar um aplicativo instalador do Mac OS X e, portanto, depende de uma fonte de terceiros. Tal situação é quando seria importante saber e verificar se o instalador não foi adulterado e vem legitimamente da Apple e, além de verificar sha1 hash diretamente, a maneira mais fácil de fazer isso é verificar a assinatura do código e a criptografia hash do aplicativo em questão.
Como verificar assinatura de código para aplicativos no Mac
Para começar, abra o Terminal, localizado em /Aplicativos/Utilitários/. Usaremos o comando apropriadamente chamado ‘codesign’, completo com os sinalizadores -dv e –verbose=4 para mostrar informações de identificação sobre qualquer aplicativo, incluindo seu tipo de hash, soma de verificação de hash e autoridade de assinatura.
A sintaxe básica é a seguinte:
codesign -dv --verbose=4 /Path/To/Application.app
Por exemplo, vamos verificar a assinatura no Terminal.app, localizado em /Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=pacote com Mach-O thin (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=incorporado Identificador de plataforma=1 Tipo de hash=sha1 tamanho=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Signature size=4105 Authority=Software Signing Authority=Apple Code Signing Certification Authority Authority=Apple Root CA Info.plist entry=34 TeamIdentifier=não definido Recursos selados versão=2 regras=13 arquivos=996 Contagem de requisitos internos=1 tamanho=68
O que você está procurando são as entradas de tipo de hash, hash e autoridade. Nesse caso, o tipo de hash é sha1 e a autoridade assinada é Apple, que é o esperado.
Sim, você também pode usar a linha de comando para verificar os hashes sha1 ou md5 dos instaladores e downloads de aplicativos e compará-los com uma fonte legítima, mas isso não revelará a assinatura do código e os detalhes do certificado.
Lembre-se de que a maioria dos softwares assinados por código que foram modificados por terceiros não autorizados serão rejeitados pelo Gatekeeper no Mac OS X, a menos que o Gatekeeper tenha sido desativado ou contornado de outra forma, mas mesmo com o Gatekeeper ativado teoricamente possível para um capanga empreendedor encontrar uma maneira de contornar isso e, claro, o software que não foi certificado por um desenvolvedor identificado pode sempre ser lançado em torno do Gatekeeper de qualquer maneira.
Você pode saber mais sobre assinatura de código na Wikipédia e no guia do desenvolvedor da Apple para assinatura de código aqui.
Você costuma verificar se os apps estão assinados? Pode ser uma maneira válida de determinar o que são alguns processos e aplicativos e também pode ser útil para a solução de problemas. Experimente da próxima vez que estiver se perguntando o que é algo e se está assinado ou não!