File size: 5,677 Bytes
ed429bf 3c68800 ed429bf 3c68800 ed429bf 3c68800 ed429bf 3c68800 ed429bf 3c68800 ed429bf 3c68800 ed429bf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | # 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!
|