Assinatura de código ad-hoc
Para aplicativos e binários de terceiros que você compila e requer assinatura de código, use uma assinatura de código ad hoc .
- Estou assumindo que o aplicativo não será executado sem uma assinatura;
- Estou assumindo que o aplicativo não será distribuído;
- Presumo que você não se importe com a validade da identidade da assinatura.
Uma assinatura ad-hoc não oferece benefícios de segurança confiáveis. Pode ser usado para determinar se o aplicativo foi alterado e para aplicar restrições de segurança, como direitos, a um aplicativo.
Uma assinatura ad-hoc será validada contra, codesign
mas não spctl
. Isso pode ou não importar, dependendo do binário sendo assinado. Para aplicativos e executáveis, é improvável que isso importe, porque spctl
não é executado em binários criados localmente.
Por que assinar código?
Em relação à questão refinada:
Como devo lidar com o código-fonte não assinado que me compile, pois não espero que os colaboradores sempre possam, ou lembre-se de assinar, o código, especialmente quando se trata de pequenas contribuições para projetos de código aberto com muitos colaboradores.
Para a maioria dos aplicativos auto compilados, não há necessidade de assinatura de código. Isso pressupõe que você confie no código do aplicativo. No macOS, você pode abrir aplicativos não confiáveis a partir do Finder, consulte Apple's Open a app from a developer developer .
Se você não confia no código ou nos desenvolvedores, não compile ou execute o aplicativo.
Sua responsabilidade
O provedor do código-fonte não tem responsabilidade ou obrigação de fornecer binários assinados com código pré-criado. Sendo auto-compilado, toda assinatura de código é sua escolha e responsabilidade.
A Apple exige que os envios para suas lojas de aplicativos sejam assinados por código.
A Apple solicita que desenvolvedores fora de suas lojas de aplicativos assinem seu código, mas ele ainda não é necessário.
Nos dois casos, apenas os binários finais são assinados. O código fonte original e os recursos não estão assinados.
O código-fonte não está assinado
O código-fonte em si não pode ser assinado de maneira significativa para o macOS. Os arquivos e códigos de origem podem ser assinados digitalmente, como qualquer outro arquivo, mas isso não afeta a maneira como o aplicativo ou binário resultante é tratado pelo macOS.
Como Código Ad-Hoc Assine um Aplicativo Mac
Para assinar um aplicativo no macOS com uma assinatura ad-hoc, defina o -s
sinalizador de identidade como -
:
codesign --force -s - </path/to/application>
Todas as outras regras, requisitos e permutações do codesign
comando permanecem os mesmos.
O sinalizador --force
é usado aqui para substituir qualquer assinatura existente.
Pode ser necessário adicionar o --deep
sinalizador ao codesign
comando para assinar sub-recursos, como estruturas e serviços incorporados.
A assinatura do programa você mesmo não está arruinando o objetivo da assinatura de código. O objetivo geral da assinatura de código é permitir verificar se o programa é uma cópia não modificada criada originalmente por uma entidade específica (pessoa ou empresa). Quando você assina um programa sozinho para rodar no seu computador, torna possível ao sistema verificar se foi você quem criou o binário e se ele não foi modificado por outras pessoas.
A diferença qualitativa entre assinar o aplicativo binário por você mesmo e permitir aplicativos de desenvolvedores não identificados no GateKeeper é que, no primeiro caso, você permite a execução de um único aplicativo específico - enquanto no segundo, você abre a possibilidade de abrir muitos aplicativos. aplicativos diferentes clicando com o botão direito do mouse neles e escolhendo Abrir. Ou seja, é mais restritivo e, portanto, um pouco mais "seguro", assinando você mesmo o programa específico.
A responsabilidade de assinar é inteiramente sua. O desenvolvedor de código aberto não pode assinar o código-fonte - só é possível assinar os binários compilados. Enquanto você produz os binários compilados, é sua responsabilidade assiná-los.
Você pode se inscrever para uma conta de desenvolvedor no site da Apple que permitirá criar um certificado que pode ser usado para assinar. Se você é um desenvolvedor e compila binários regularmente para rodar em Macs, essa é a maneira preferida de fazer as coisas. Se isso é algo que você provavelmente nunca fará de novo, provavelmente será um exagero passar por esse processo. YMMV.
Outras respostas para sua pergunta aqui recomendam que você use assinatura ad-hoc para o seu binário. Isso não vai funcionar. Você precisará gerar uma assinatura válida para executar o binário com o GateKeeper na sua configuração mais segura.
fonte
Se você não é o desenvolvedor, então não.
Em poucas palavras, a assinatura de código é um método para dizer que você (o desenvolvedor) é quem diz ser e o código não foi alterado desde a última vez que você o assinou.
Parece a sua confusa assinatura de código (o que é exigido pelos desenvolvedores para publicar aplicativos na App Store) e o Gatekeeper (o que protege o seu Mac de instalar software de desenvolvedores não identificados).
Se você permitir que o seu Mac instale software da App Store e dos desenvolvedores identificados, você ainda receberá o pop-up alertando que o software será instalado
E se for de um desenvolvedor não identificado, você receberá o mesmo pop-up com um "ícone de aviso"
Você ainda pode instalar o software. Este é apenas um mecanismo que força a interação do usuário a instalar o software, fornecendo uma camada de segurança contra malware auto-instalado.
fonte