# Como Assinar o Certificado com GPG A assinatura GPG adiciona **prova criptográfica de autoria** ao certificado. --- ## Por Que Assinar? ✅ **Prova de Autoria**: Só você com a chave privada pode assinar ✅ **Não-Repúdio**: Você não pode negar que criou o certificado ✅ **Integridade**: Detecta qualquer alteração no arquivo ✅ **Confiança**: Qualquer pessoa pode verificar a assinatura --- ## Passo a Passo ### 1. Instalar GPG ```bash # Ubuntu/Debian sudo apt install gnupg # macOS brew install gnupg # Verificar gpg --version ``` ### 2. Criar Chave GPG (se não tiver) ```bash # Gerar nova chave gpg --full-generate-key # Escolha: # - Tipo: RSA and RSA (padrão) # - Tamanho: 4096 bits # - Validade: 0 (nunca expira) ou 2 anos # - Nome: TechLifes # - Email: contato@vick.ia.br # - Senha: [escolha uma senha forte] ``` ### 3. Exportar Chave Pública ```bash # Listar chaves gpg --list-keys # Exportar chave pública (substitua EMAIL) gpg --armor --export contato@vick.ia.br > techlifes.asc # Ou export direto para arquivo gpg --armor --export contato@vick.ia.br > /llama.cpp/HUGGINGFACE_UPLOAD/techlifes_public_key.asc ``` ### 4. Assinar o Manifest ```bash cd /llama.cpp/HUGGINGFACE_UPLOAD/ # Assinar vick_fingerprint.json gpg --detach-sign --armor vick_fingerprint.json # Isso cria: vick_fingerprint.json.asc ``` ### 5. Verificar Assinatura (Teste Local) ```bash # Verificar assinatura gpg --verify vick_fingerprint.json.asc vick_fingerprint.json # Deve mostrar: "Good signature from TechLifes " ``` ### 6. Upload para HuggingFace ```bash # Upload da assinatura huggingface-cli upload TechLifes/vick-ai-certificate vick_fingerprint.json.asc # Upload da chave pública huggingface-cli upload TechLifes/vick-ai-certificate techlifes_public_key.asc ``` --- ## Verificação por Terceiros Qualquer pessoa pode verificar a assinatura: ```bash # 1. Baixar arquivos do HuggingFace git clone https://huggingface.co/TechLifes/vick-ai-certificate cd vick-ai-certificate # 2. Importar chave pública gpg --import techlifes_public_key.asc # 3. Verificar assinatura gpg --verify vick_fingerprint.json.asc vick_fingerprint.json # Output esperado: # gpg: Signature made [DATA] # gpg: using RSA key [KEY_ID] # gpg: Good signature from "TechLifes " ``` --- ## Formato da Assinatura ### Assinatura Destacada (Recomendado) ```bash gpg --detach-sign --armor vick_fingerprint.json # Cria: vick_fingerprint.json.asc (só a assinatura) ``` **Vantagens**: - Arquivo original não é modificado - Assinatura em arquivo separado - Padrão da indústria ### Assinatura Incorporada (Alternativa) ```bash gpg --clear-sign vick_fingerprint.json # Cria: vick_fingerprint.json.asc (arquivo + assinatura) ``` **Desvantagens**: - Modifica estrutura do JSON - Menos compatível **Use assinatura destacada (detach-sign)!** --- ## Publicar Chave no Keyserver Para maior confiança, publique a chave pública em keyservers: ```bash # Obter fingerprint da chave gpg --fingerprint contato@vick.ia.br # Publicar em keyserver gpg --keyserver keys.openpgp.org --send-keys [KEY_ID] # Ou usar outros keyservers gpg --keyserver keyserver.ubuntu.com --send-keys [KEY_ID] ``` Agora qualquer pessoa pode baixar sua chave automaticamente: ```bash gpg --keyserver keys.openpgp.org --recv-keys [KEY_ID] ``` --- ## Automatização Script completo para assinar e fazer upload: ```bash #!/bin/bash # assinar_e_publicar.sh cd /llama.cpp/HUGGINGFACE_UPLOAD/ # Assinar gpg --detach-sign --armor vick_fingerprint.json # Exportar chave pública gpg --armor --export contato@vick.ia.br > techlifes_public_key.asc # Upload huggingface-cli upload TechLifes/vick-ai-certificate vick_fingerprint.json.asc huggingface-cli upload TechLifes/vick-ai-certificate techlifes_public_key.asc echo "✅ Assinatura GPG criada e publicada!" ``` --- ## Renovação da Assinatura Se você atualizar o `vick_fingerprint.json`: 1. **Deletar assinatura antiga** ```bash rm vick_fingerprint.json.asc ``` 2. **Criar nova assinatura** ```bash gpg --detach-sign --armor vick_fingerprint.json ``` 3. **Fazer upload** ```bash huggingface-cli upload TechLifes/vick-ai-certificate vick_fingerprint.json.asc --overwrite ``` --- ## Backup da Chave Privada **MUITO IMPORTANTE**: Faça backup da chave privada em local seguro! ```bash # Exportar chave privada gpg --armor --export-secret-keys contato@vick.ia.br > techlifes_PRIVATE_key.asc # ATENÇÃO: Guarde este arquivo em local SEGURO # NÃO publique no HuggingFace ou Git! # Mantenha em pendrive criptografado ou cofre ``` --- ## Verificação no README Adicione ao README.md: ````markdown ## 🔐 Verificação com GPG Este certificado está assinado com GPG para prova de autoria. ### Verificar Assinatura ```bash # 1. Baixar repositório git clone https://huggingface.co/TechLifes/vick-ai-certificate cd vick-ai-certificate # 2. Importar chave pública gpg --import techlifes_public_key.asc # 3. Verificar assinatura gpg --verify vick_fingerprint.json.asc vick_fingerprint.json ``` **Fingerprint da Chave**: [INSERIR FINGERPRINT AQUI] ```` --- ## FAQ **P: Preciso assinar?** R: Não é obrigatório, mas **muito recomendado** para máxima credibilidade. **P: E se eu perder a chave privada?** R: Você não poderá mais assinar atualizações. Sempre faça backup! **P: Posso usar chave existente?** R: Sim! Use qualquer chave GPG que você já tenha. **P: Qual algoritmo usar?** R: RSA 4096 bits (padrão e mais compatível) --- **Recomendação**: Assine o certificado AGORA para adicionar prova criptográfica de autoria!