Trabalhar com assinaturas digitais
Uma assinatura digital é uma implementação tecnológica de assinaturas eletrónicas para assinar documentos e autenticar o signatário para garantir que um documento não foi modificado desde a sua assinatura. Cada assinatura digital é única para cada signatário, pois segue o protocolo PKI para gerar chaves públicas e privadas. Assinar um documento digitalmente significa criar uma assinatura usando a chave privada do signatário, onde um algoritmo matemático é usado para criptografar o hash gerado.
Aspose.Words permite detectar, contar ou verificar assinaturas digitais existentes e também adicionar uma nova assinatura ao seu documento para descobrir qualquer adulteração nele. Também é possível remover todas as assinaturas digitais de um documento. Use a classe DigitalSignatureUtil para trabalhar com assinaturas digitais.
Este artigo explica como fazer tudo o que precede para validar a autenticidade e integridade de um documento digital.
Experimente online
Pode experimentar esta funcionalidade com o nosso Assinatura online gratuita.
Formatos Suportados
Aspose.Words permite trabalhar com assinaturas digitais em documentos DOC, OOXML e ODT e assinar o documento gerado no formato PDF ou XPS.
Limitações das Assinaturas Digitais
A tabela abaixo descreve algumas limitações que você pode enfrentar ao trabalhar com assinaturas digitais através de Aspose.Words, bem como algumas opções alternativas.
Limitação | Opção alternativa |
---|---|
Perda de assinaturas digitais num documento depois de O carregar e guardar. Portanto, o processamento de um documento para um servidor pode causar a perda de todas as assinaturas digitais sem aviso prévio. | Verifique se um documento tem assinaturas digitais e tome as medidas adequadas, se forem encontradas. Por exemplo, enviar um alerta aos clientes informando-os de que o documento que estão a enviar contém assinaturas digitais que serão perdidas se forem processadas. |
Aspose.Words suporta trabalhar com macros num documento. Mas Aspose.Words ainda não suporta assinaturas digitais em macros. | Exporte o documento de volta para qualquer formato do Word e utilize Microsoft Word para adicionar uma assinatura digital às macros. |
Detectar, contar e verificar assinaturas digitais
Aspose.Words permite detectar a assinatura digital num documento utilizando o método DetectFileFormat e a propriedade HasDigitalSignature. Vale a pena notar que tal verificação detectará apenas o fato da assinatura, mas não sua validade.
Um documento pode ser assinado mais de uma vez, e isso pode ser feito por diferentes utilizadores. Para verificar a validade das assinaturas digitais, você precisa carregá-las do documento usando o método LoadSignatures e usar a propriedade IsValid. Além disso, Aspose.Words permite contar um conjunto de todas as assinaturas digitais dentro de um documento usando a propriedade Count.
Tudo isto proporciona uma forma eficiente e segura de verificar a existência de assinaturas num documento antes de o processar.
O exemplo de código a seguir mostra como detectar a presença de assinaturas digitais e verificá-las:
Criar uma assinatura digital
Para criar uma assinatura digital, você precisará carregar um certificado de assinatura que confirme a identidade. Ao enviar um documento assinado digitalmente, você também envia seu certificado e chave pública.
Aspose.Words permite criar o certificado X. 509, um certificado digital que utiliza a norma X. 509 PKI internacionalmente aceite para verificar se uma chave pública pertence ao signatário incluído no certificado. Para fazer isso, use o método Create dentro da classe CertificateHolder.
As próximas secções explicam como adicionar uma assinatura digital, uma linha de assinatura e como assinar um documento PDF gerado.
Assinar um documento
Aspose.Words permite assinar um documento DOC, DOCX ou ODT digitalmente utilizando o método Sign e as propriedades SignOptions.
O exemplo de código a seguir mostra como assinar documentos usando um detentor de certificado e opções de assinatura:
Adicionar uma linha de assinatura
Uma linha de assinatura é uma representação visual de uma assinatura digital num documento. Aspose.Words permite inserir uma linha de assinatura usando o método DocumentBuilder.InsertSignatureLine. Você também pode definir os parâmetros para esta representação usando a classe SignatureLineOptions.
Por exemplo, a figura abaixo mostra como assinaturas válidas e inválidas podem ser exibidas.
Além disso, se um documento contiver uma linha de assinatura e nenhuma assinatura digital, existe um recurso para solicitar ao usuário que adicione uma assinatura.
O exemplo de código a seguir mostra como assinar um documento com um certificado pessoal e uma linha de assinatura específica:
Assinar um documento PDF gerado
Aspose.Words permite assinar e obter todos os detalhes de um documento PDF usando as propriedades PdfDigitalSignatureDetails.
O exemplo de código a seguir mostra como assinar um PDFgerado:
A figura abaixo demonstra que o documento PDF gerado é aberto em Adobe Acrobat e a assinatura digital é verificada como presente e válida.
Recuperar o valor da Assinatura Digital
Aspose.Words também fornece a capacidade de recuperar o valor da assinatura digital de um documento assinado digitalmente como uma matriz de bytes usando a propriedade SignatureValue.
O exemplo de código a seguir mostra como obter o valor da assinatura digital como uma matriz de bytes de um documento:
Remover Assinaturas Digitais
Aspose.Words permite remover todas as assinaturas digitais de um documento assinado utilizando o método RemoveAllSignatures.
O exemplo de código a seguir mostra como carregar e remover assinaturas digitais de um documento: