implementing-code-signing-for-artifacts
Ensina seu agente de IA a colocar projetos no ar e cuidar da infraestrutura.
O que ela faz
Esta ferramenta adiciona uma "assinatura digital" aos seus arquivos de programa. Isso garante que os arquivos não foram alterados por ninguém e que vieram de uma fonte confiável, como se fosse um selo de autenticidade.
Quando usar
- ✓Quando você quer ter certeza de que um arquivo de programa não foi modificado por hackers.
- ✓Quando você precisa provar aos seus clientes que o software é realmente seu e não foi adulterado.
- ✓Quando você quer que seu sistema rejeite automaticamente qualquer programa que não tenha essa "assinatura" oficial.
Exemplo do que pedir para a IA
“Assine digitalmente os arquivos do meu programa para garantir que eles não foram alterados.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa métodos criptográficos (como GPG ou Sigstore) para criar uma assinatura única para cada arquivo. Essa assinatura é verificada posteriormente para confirmar a integridade e a origem do arquivo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-code-signing-for-artifactsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-code-signing-for-artifacts/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementando Assinatura de Código para Artefatos
Quando Usar
- Ao estabelecer a verificação de integridade de artefatos para prevenir adulteração na cadeia de suprimentos
- Quando a conformidade exige prova criptográfica de que os artefatos de build são autênticos e não foram modificados
- Ao distribuir software para clientes que precisam verificar a identidade do publicador
- Ao implementar pipelines de implantação com confiança zero que rejeitam artefatos não assinados
- Ao atender aos requisitos SLSA Nível 2+ para proveniência e integridade
Não use para criptografar artefatos (a assinatura fornece integridade, não confidencialidade), para assinatura específica de imagens de contêiner (use cosign) ou para autenticação de código-fonte (use assinatura de commit).
Pré-requisitos
- Par de chaves GPG para assinatura tradicional ou conta Sigstore para assinatura sem chave
- Certificado de assinatura de código de uma Autoridade Certificadora para distribuição pública
- Pipeline de CI/CD com acesso a chaves de assinatura ou provedor de identidade
- Infraestrutura de verificação em pipelines de implantação
Fluxo de Trabalho
Etapa 1: Gerar e Gerenciar Chaves de Assinatura
# Generate GPG key for artifact signing
gpg --full-generate-key --batch <<EOF
Key-Type: eddsa
Key-Curve: ed25519
Subkey-Type: eddsa
Subkey-Curve: ed25519
Name-Real: CI Build System
Name-Email: ci-signing@company.com
Expire-Date: 1y
%no-protection
EOF
# Export public key for distribution
gpg --armor --export ci-signing@company.com > signing-key.pub
# Export private key for CI/CD (store in secrets manager)
gpg --armor --export-secret-keys ci-signing@company.com > signing-key.priv
Etapa 2: Assinar Artefatos de Build em CI/CD
# .github/workflows/build-sign.yml
name: Build and Sign
on:
push:
tags: ['v*']
jobs:
build-sign:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write # For Sigstore keyless signing
steps:
- uses: actions/checkout@v4
- name: Build artifacts
run: |
make build
sha256sum dist/* > dist/checksums.sha256
- name: Import GPG Key
run: |
echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --batch --import
gpg --list-secret-keys
- name: Sign artifacts
run: |
for file in dist/*; do
gpg --detach-sign --armor --local-user ci-signing@company.com "$file"
done
- name: Install cosign for keyless signing
uses: sigstore/cosign-installer@v3
- name: Keyless sign with Sigstore
run: |
for file in dist/*.tar.gz; do
cosign sign-blob "$file" \
--output-signature "${file}.sig" \
--output-certificate "${file}.cert" \
--yes
done
- name: Create Release with signed artifacts
uses: softprops/action-gh-release@v2
with:
files: |
dist/*
dist/*.asc
dist/*.sig
dist/*.cert
Etapa 3: Verificar Assinaturas no Pipeline de Implantação
# Verify GPG signature
gpg --import signing-key.pub
gpg --verify artifact.tar.gz.asc artifact.tar.gz
# Verify Sigstore keyless signature
cosign verify-blob artifact.tar.gz \
--signature artifact.tar.gz.sig \
--certificate artifact.tar.gz.cert \
--certificate-identity ci-signing@company.com \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
# Verify checksums
sha256sum --check checksums.sha256
Etapa 4: Assinar Pacotes npm com Proveniência
{
"scripts": {
"prepublishOnly": "npm run build && npm run test"
},
"publishConfig": {
"provenance": true
}
}
# Publish npm package with provenance attestation
npm publish --provenance
Conceitos Chave
| Termo | Definição |
|---|---|
| Assinatura de Código | Processo criptográfico de assinar artefatos de software para verificar a identidade do publicador e a integridade do artefato |
| Assinatura Desanexada | Assinatura armazenada em um arquivo separado do artefato, permitindo distribuição independente |
| Assinatura Sem Chave | Abordagem do Sigstore usando certificados de curta duração vinculados a identidades OIDC em vez de chaves de longa duração |
| Proveniência | Metadados que descrevem como, onde e por quem um artefato foi construído |
| Log de Transparência | Log imutável (Rekor) que registra todos os eventos de assinatura para auditoria pública |
| Cadeia de Confiança | Cadeia hierárquica da CA raiz ao certificado de assinatura, estabelecendo confiança na identidade do signatário |
| SLSA | Supply-chain Levels for Software Artifacts — framework que define níveis de segurança da cadeia de suprimentos |
…
Perguntas frequentes
O que é uma assinatura digital?
É como um selo de segurança que prova que um arquivo é autêntico e não foi alterado desde que foi assinado.
Qual a diferença entre assinar e criptografar?
Assinar garante a autenticidade e a integridade (quem fez e se não foi alterado). Criptografar protege o conteúdo, tornando-o ilegível sem uma chave.
Preciso de uma chave especial para assinar?
Sim, você precisa de um par de chaves (uma pública e uma privada) ou usar um serviço como Sigstore que gerencia isso para você de forma mais simples (keyless).
Detalhes
Descrição original do autor
Implements code signing for build artifacts (binaries, packages, containers) using GPG, Sigstore, and platform-specific signing tools, establishing trust chains and verifying signatures in deployment pipelines. Use when establishing artifact integrity checks against supply-chain tampering, proving authenticity to customers, building zero-trust pipelines that reject unsigned artifacts, or meeting S
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5853
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC