Gestão de Certificados e Chaves
A infraestrutura de assinatura digital utilizada no sistema de Faturação
Eletrónica baseia-se em criptografia assimétrica (RSA) com chaves
privadas mantidas pelos produtores de software e chaves públicas
registadas e validadas pela Administração Geral Tributária (AGT). As
chaves privadas e públicas dos contribuintes serão geradas pela
Administração Geral Tributária (AGT) podendo e disponibilizadas na conta
do portal do contribinte.
Este capítulo descreve como as chaves são distribuídas, utilizadas,
validadas e atualizadas.
Como são entregues as chaves aos contribuintes
As chaves dos contribuintes utilizadas para assinatura de documentos e requisições (jwsDocumentSignature e jwsSignature) serão emitidas AGT e estarão disponiveis na conta do portaltal do contribuinte de cada contribuinte para consulta.
As chaves utilizadas para assinatura do software (jwsSoftwareSignature)
não são emitidas pela AGT.
Cada produtor de software deve:
-
Gerar localmente um par de chaves RSA (privada + pública)
A chave privada nunca deve sair do ambiente do produtor.
A chave publica será enviada à AGT. -
Submeter a chave pública durante o processo de registo do Software Produtor, via portal do parceiro:
Estrutura da chave (RSA mínimo 2048 bits)
Para garantir interoperabilidade, desempenho e segurança, as chaves usadas têm:
-
Tipo: RSA
-
Tamanho: mínimo 2048 bits
-
Formato recomendado: PEM
-
Codificação: Base64 (padrão para PEM)
Exemplo de chave pública válida:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw12…
…restante conteúdo…
-----END PUBLIC KEY-----
Exemplo de chave privada (que nunca deve ser enviada):
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBK…
-----END PRIVATE KEY-----
Procedimento em caso de comprometimento
Se o produtor suspeitar que a chave privada foi exposta:
A chave comprometida deve ser imediatamente revogada
O produtor deve:
-
Gerar um novo par de chaves RSA
-
Atualizar o software com a nova chave públi no portal do parceiro
-
Marcar a chave antiga como revogada a partir do portal
Impacto sobre documentos
Documentos assinados com a chave comprometida permanecem válidos se:
-
Já tiverem sido processados e aceites pela AGT
-
A assinatura digital for tecnicamente válida
Porém, novas submissões deixam de ser aceites com a chave revogada.
Como a API valida a assinatura
O processo de verificação funciona assim:
Receção do documento
O sistema lê o JSON recebido e extrai:
-
jwsSoftwareSignature
-
jwsDocumentSignature (se aplicável)
-
jwsSignature (se aplicável)
Busca da chave pública ativa (ou correspondente à versão)
A API localiza a chave pública do produtor.
Validação do JWS (RS256)
O servidor:
-
Reconstrói o JSON canônico
-
Recalcula o hash
-
Usa a chave pública para validar o signature
Resultado
-
Se válido → documento segue para processamento
-
Se inválido → retorna erro de assinatura