| # 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 <contato@vick.ia.br>" |
| ``` |
|
|
| ### 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 <contato@vick.ia.br>" |
| ``` |
|
|
| --- |
|
|
| ## 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! |
|
|