Segurança / Verificação

Confia no ficheiro que instalaste, não na página de onde veio

Cada lançamento do KalderaShield publica checksums SHA-256 e assinaturas do atualizador. Verificar leva um comando. É a diferença entre correr um ficheiro que alguém replicou com modificações e correr o ficheiro que o pipeline construiu.

O que é publicado

Três camadas de evidência de artefactos

Checksums SHA-256: cada lançamento envia um SHA256SUMS.txt ao lado dos instaladores. O hash é calculado pelo pipeline de lançamento a partir dos ficheiros exatos que recolheu, e o passo de recolha recusa artefactos que não sejam da compilação atual — uma compilação meio falhada não consegue reutilizar silenciosamente um instalador antigo.

Assinaturas do atualizador: os pacotes do atualizador Tauri são assinados com minisign, e a chave pública está incorporada na própria aplicação. Se uma oferta de atualização não estiver corretamente assinada, a aplicação recusa-a.

Assinaturas de lançamento: o pipeline de lançamento condicionado por tags assina cada artefacto publicado com cosign em modo keyless do Sigstore, vinculado à identidade OIDC da execução do workflow. O pipeline também impõe uma verificação de assinatura: os lançamentos de Windows e macOS são impedidos de publicar a menos que os seus artefactos estejam verificados como assinados.

Uma ressalva honesta: enquanto não existir certificado de assinatura de código, os instaladores de Windows que compiles ou transfiras do CI não são assinados por Authenticode. A verificação de assinatura mantém-nos fora dos lançamentos públicos; se obtiveres um através de uma compilação, verifica o hash SHA-256 antes de o correr.

Como verificar em três passos

Calcular o hash do teu ficheiro

No Windows, corre Get-FileHash no PowerShell. No Linux e no macOS, corre sha256sum ou shasum -a 256. Compara a saída com a linha correspondente no SHA256SUMS.txt.

Verificar o próprio ficheiro de checksums

Os checksums são publicados com o lançamento que descrevem. Se transferires o SHA256SUMS.txt do lançamento oficial e o hash do teu instalador corresponder, o ficheiro é o que o pipeline produziu.

Deixar o atualizador verificar-se a si próprio

As atualizações dentro da aplicação são verificadas contra a chave pública minisign compilada na aplicação. Nunca precisas de confiar manualmente num ficheiro de atualização transferido.

Arquitetura de Segurança

Sobre os avisos do SmartScreen e do antivírus

Esperado, até existir um certificado de assinatura

Um executável não assinado sem reputação de transferência é exatamente o tipo de ficheiro sobre o qual o Windows SmartScreen e as heurísticas dos antivírus avisam — isto é um custo de não haver certificado, não evidência de software malicioso. Verifica o hash SHA-256 e, se o teu antivírus continuar a sinalizar um hash que corresponde ao checksum publicado, reporta o falso positivo ao fornecedor. Os comentários do workflow de compilação no repositório documentam esta limitação abertamente.

SHA-256

Integridade

Publicado por artefacto no SHA256SUMS.txt; o recoletor recusa instaladores mais antigos do que o registo de data da compilação.

minisign

Autenticidade do atualizador

Os pacotes do atualizador são assinados no momento da compilação; a chave de verificação vem dentro da aplicação e o latest.json aponta para a assinatura.

cosign

Autenticidade do lançamento

Os artefactos de lançamento publicados são assinados sem chave através do Sigstore, vinculados à identidade OIDC do GitHub Actions da execução do lançamento.

Perguntas Frequentes

Sobre a verificação

O Windows diz "O Windows protegeu o seu PC". O que faço?

É o SmartScreen a reagir a um ficheiro não assinado, não um relatório de vírus. Verifica o hash SHA-256 contra o SHA256SUMS.txt. Se corresponder, o ficheiro é a saída do pipeline; o aviso desaparece permanentemente assim que os lançamentos tiverem um certificado de assinatura.

Onde encontro o SHA256SUMS.txt?

Ao lado dos instaladores em cada lançamento, e na secção de verificação da página de transferências. Um checksum que chega apenas por mensagem de chat não é verificação — usa o publicado.

Consigo verificar sem confiar em nenhum ficheiro transferido?

Compila a partir do código-fonte: o repositório compila de forma reprodutível com comandos npm e cargo documentados, e o script de lançamento local produz a mesma nomenclatura de artefactos com os seus próprios checksums.

Páginas relacionadas

Baixar Instalador