Equipamento de áudio

Como assinar xml com assinatura eletrônica. Como assinar um documento com assinatura eletrônica. Como assinar um documento Word usando assinatura digital

Hoje, quando quase todo o fluxo de documentos se torna sem papel, assinar documentos com ajuda é comum.

No domínio dos contratos públicos, as candidaturas apresentadas são assinadas eletronicamente. Isso dá aos clientes a garantia de que estão lidando com participantes reais. Além disso, os contratos celebrados como resultado de compras governamentais só entram em vigor após endosso por meio de assinatura digital eletrônica.

Uma assinatura digital também é necessária nas seguintes situações:

  1. Reporte às autoridades reguladoras. Você pode enviá-lo eletronicamente para serviços como Serviço de Impostos Federais, Rosstat, Fundo de Pensões e Fundo de Seguro Social. Isso simplifica muito a transferência de informações e aumenta a precisão: a maioria dos serviços oferece verificação automática de erros.
  2. Gerenciamento eletrônico de documentos (EDF). Um dos usos mais comuns, pois uma carta assim assinada corresponde a uma carta em papel com carimbo e visto. Permite que você mude para o fluxo de documentos sem papel dentro e fora da empresa.
  3. Serviços governamentais. Um cidadão da Federação Russa pode endossar as candidaturas apresentadas aos departamentos através do portal de serviços governamentais, participar em iniciativas públicas, utilizar conta pessoal no site da Receita Federal, até mesmo solicitar um empréstimo.
  4. Faturas, contratos, ofícios assinados eletronicamente podem ser usados ​​como prova. De acordo com o Código de Procedimento de Arbitragem da Federação Russa, tal documento é análogo a um documento em papel com um visto manuscrito.

Que tipos de assinaturas eletrônicas existem?

A assinatura eletrónica é um “carimbo” que permite identificar o seu titular, bem como verificar a integridade do documento assinado. Foram aprovados os tipos de assinaturas digitais e o procedimento para sua execução. Ele estabeleceu que existem três tipos de assinaturas:

  1. Simples. Comumente utilizado para assinar cartas ou especificações, confirmados por meio de senhas, códigos e outros meios, mais utilizados em sistemas EDI corporativos.
  2. Reforçado. É obtido através do processo de processamento criptográfico da informação e da utilização de uma chave privada. Permite determinar quem assinou o documento, bem como se foram feitas alterações após a assinatura.
  3. Reforçado. É semelhante a um não qualificado, mas para sua criação e verificação são utilizadas tecnologias de proteção criptográfica certificadas pelo FSB da Federação Russa. Essas assinaturas eletrônicas são emitidas apenas por credenciados

Existem várias maneiras de endossar um documento. Vejamos os mais comuns.

Assinamos usando o pacote de software CryptoPRO CSP

Como assinar eletronicamente um documento do Word(MS Word)

1. Abra o arquivo desejado, clique no menu “Arquivo” - “Informações” - “Adicionar assinatura eletrônica (CRYPTO-PRO)”.

2. Selecione a assinatura eletrônica desejada, adicione um comentário se necessário e clique em “Assinar”.

3. Se não houver erros, o sistema exibirá uma janela com assinatura bem-sucedida.

Se o plugin CryptoPRO Office Signature estiver instalado

1. Abra o arquivo desejado, selecione “Arquivo” e depois “Adicionar assinatura digital”.

2. Semelhante à opção anterior, selecione a assinatura eletrônica desejada, adicione um comentário, se necessário, e clique em “Assinar”.

3. Se não houver erros, o sistema exibirá uma mensagem informando que o documento foi assinado com sucesso.

Como assinar eletronicamente um documento PDF(Adobe Acrobat PDF)

1. Abra o arquivo PDF necessário, clique no painel “Ferramentas” e veja o rótulo “Certificados”. Vamos escolher.

2. Clique em “Aplicar assinatura digital” e selecione a área do arquivo onde ficará a marca da assinatura.

4. Uma janela com uma visualização do carimbo será aberta. Se tudo estiver correto, clique em “Assinar”.

5. O sistema emitirá uma notificação sobre a assinatura bem-sucedida. Isso é tudo.

Assinando com o pacote de software CryptoARM

Com este método é possível criptografar todos os formatos modernos, bem como arquivos.

Então vamos descobrir como assinar um documento de assinatura digital usando CryptoARM.

1. Abra o programa “CryptoARM” e selecione o primeiro item de ação - “Assinar”.

2. Estudamos cuidadosamente as instruções do ES Creation Master. Clique em “Avançar”.

3. Clique em “Selecionar arquivo”, vá até o arquivo desejado, clique nele e clique em “Avançar”.

4. Selecione o arquivo a ser assinado e clique em “Avançar”.

5. Vemos a janela “Formato de saída”. Se não houver requisitos obrigatórios, deixamos a codificação como está. Você pode salvar em formato ZIP (para envio por e-mail) ou escolher um local para salvar o resultado final. Clique em “Avançar”.

6. Em “Parâmetros” você pode selecionar uma propriedade, adicionar um comentário e também selecionar uma assinatura eletrônica anexada (anexada a arquivo de origem) ou desanexado (salvo como um arquivo separado), bem como opções adicionais opcional. Quando tudo estiver pronto, clique em “Avançar”.

7. Agora você precisa selecionar um certificado; para isso clique em “Selecionar”, indique o certificado desejado e clique em “Avançar”.

8. Na próxima etapa vemos a janela final com breve descrição dados. Se da próxima vez os arquivos forem assinados na mesma ordem, você poderá salvar o perfil. Clique em “Concluir”.

9. Se não houver erros, o sistema exibirá uma mensagem indicando assinatura bem-sucedida.

Esta seção oferece o download do programa XML Converter / XML Designer / XML Reports / Just Sign / XML Contact - Rosreestr.

Exemplos de geração de versões eletrônicas de documentos usando Programas construtores de XML e seus análogos impressos usando Programas de relatórios XML pode ser baixado na seção. Sugerimos também consultar a seção onde você encontrará vários utilitários gratuitos, bibliotecas e muito mais.

Programa conversor de XML configurado para converter arquivos XML/documentos Rosreestr, como extratos cadastrais, planos cadastrais do território em outros formatos fáceis de usar, como MIF/MID, DXF, CSV, TXT, HTML.

Programa Designer XML está configurado para criar versões eletrônicas em formato XML de documentos para atividades cadastrais como planos de limites, planos técnicos, mapa (plano), etc., bem como notificações de penhor de bens móveis e notificações de acordo com a lei FATCA.

Programa de relatórios XML configurado para converter documentos eletrônicos para atividades cadastrais, como planos de limites, planos técnicos, mapas (planos) nas correspondentes cópias impressas (em papel).

Programa Basta Assinar projetado para criar e verificar assinaturas digitais eletrônicas (EDS).

Programa XML Contact-Rosreestr destina-se à interação com o serviço web Rosreestr, ou seja, criação de pedidos de registo cadastral de terrenos e imóveis, pedidos de informação cadastral, obtenção de resultados sobre esses pedidos e pedidos.

Todos os programas (exceto Just Sign e XML Contact-Rosreestr) possuem um modo de demonstração com duração de 30 dias, que permite utilizar a funcionalidade do programa sem restrições. Depois que o período de demonstração expirar, você deverá comprar versões completas dos programas ou parar de usá-los. O programa Just Sign é programa gratuito e não tem restrições de uso. O programa Contact-Rosreestr XML está em teste beta e atualmente é de uso gratuito.

IMPORTANTE! Para converter usando o programa Conversor XML ou Construtor XML Arquivos XML grandes precisam ser baixados e instalados por um processador de consulta XQuery externo e especificados no campo apropriado do programa antes da conversão. Atualmente, são suportados dois processadores de consulta disponíveis gratuitamente: AltovaXML 2010 (desenvolvido por www.altova.com) e Saxon-HE 9.5 (desenvolvido por www.saxonica.com). Você pode baixá-los do site do fabricante ou deste site usando os links abaixo:

IMPORTANTE! Antes de começar a trabalhar com os programas, você deve ler as instruções. Isto é especialmente importante para o programa XML Constructor, pois antes de trabalhar é necessário compreender o princípio de funcionamento deste programa. As instruções estão localizadas na mesma pasta do arquivo executável do programa, ou seja, para o Construtor XML na pasta “c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf”. Você pode acessar as instruções através do atalho do menu principal Programas do Windows, ou seja, para o Construtor XML “Iniciar->Programas->Construtor XML->Construtor XML - Instruções”. Para o programa XML Designer, as instruções também estão disponíveis no menu Ajuda.

ML, ou eXtensible Markup Language, está agora se tornando a forma padrão de transportar informações na Web (e além).

Além disso, estão aparecendo cada vez mais complementos que usam sintaxe XML (aplicativos XML). Por exemplo, estes incluem o protocolo simplificado de acesso a objetos SOAP (Simple Object Access Protocol), no qual o XML atua como um meio universal de representar parâmetros para chamar procedimentos remotos RPC (Remote Procedure Call). Outro exemplo de plugin é a estrutura RDF (Resource Description Framework). Você pode dar uma olhada no World Wide Web Consortium (W3C), que desenvolve padrões nesta área (http://www.w3.org/), e ver que o XML está realmente recebendo cada vez mais atenção. Lembremos que o objetivo principal do XML é descrever a estrutura e a semântica de um documento. A principal vantagem do XML em comparação com outros formatos de documentos eletrônicos é que ele separa a descrição da apresentação externa de um documento da estrutura do documento e de seu conteúdo. XML é uma linguagem flexível que pode ser usada para diversos propósitos e pode interagir com muitos sistemas e bancos de dados. Assim, hoje o XML é usado em muitos como principal formato de troca de dados. Além disso, os fabricantes de sistemas de gerenciamento de banco de dados deram um passo poderoso em direção ao XML. Por exemplo, a Oracle lançou o XSU (Utilitário XML-SQL), que é um complemento do JDBC que permite armazenar e recuperar dados XML em um banco de dados (http://otn.oracle.com/tech/xml/ xdk_java/content.html).

XSU é uma hierarquia de classes Java projetada para transformar dados de tabelas e visualizações de bancos de dados relacionais de objeto em formato XML, inserir dados de documentos XML em tabelas e visualizações e outras operações úteis.

A necessidade de proteger documentos XML

ML é uma ferramenta poderosa frequentemente usada para troca de dados pela Internet. Mas, infelizmente, ele próprio não fornece a proteção necessária para os dados que “transporta”. Em outras palavras, existem sérios problemas de segurança ao usar o formato XML (como, de fato, ao usar outros formatos).

  • O XML pode ser facilmente utilizado para transmitir mensagens de transação entre um banco e um caixa eletrônico, informações confidenciais ou semiconfidenciais sobre indivíduos, informações sobre transações eletrônicas ou simplesmente para transmitir documentos proprietários neste formato. Mas, ao mesmo tempo, é necessário garantir a proteção da informação contra distorções involuntárias ou intencionais, tanto por parte dos utilizadores dos sistemas de informação como quando transmitida através dos canais de comunicação. A proteção deve basear-se nas seguintes funções:
  • autenticação das partes interagentes;
  • confirmar a autenticidade e integridade das informações;

fechamento criptográfico dos dados transmitidos.

Para garantir esta proteção da informação, é aconselhável utilizar assinatura digital eletrônica (EDS) e métodos de criptografia de dados. Além disso, via de regra, a assinatura digital fornece autenticação, confirmação de autenticidade e integridade, e o fechamento dos dados é obtido por meio de criptografia.

Informações gerais sobre assinaturas digitais eletrônicas

EDS e a possibilidade de sua falsificação

A verificação da assinatura digital eletrônica de um bloco de informação é realizada pela transformação criptográfica da assinatura digital utilizando a chave pública correspondente à chave secreta que participou do processo de instalação da assinatura digital.

A impossibilidade de falsificar uma assinatura digital eletrônica é alcançada por meio de uma grande quantidade de cálculos matemáticos (por exemplo, a impossibilidade de falsificar uma assinatura pode ser devido à complexidade de resolver o problema do logaritmo discreto em um campo de p elementos El-Gamal esquema de assinatura). A assinatura de um documento não altera o documento em si, mas apenas permite verificar a autenticidade e autoria da informação recebida (ou seja, um bloco de dados é adicionado ao próprio documento ou separadamente dele - a assinatura digital de este documento).

Autoridade Certificadora

Acima mencionamos os termos “chave privada” e “chave pública”. De onde vieram essas chaves? Eles são formados por uma autoridade certificadora - uma determinada estrutura (organização) que gerencia certificados. Um certificado de chave pública/privada representa o seguinte conjunto de dados:

  • o nome de um sujeito ou objeto do sistema que o identifica exclusivamente no sistema;
  • chave pública/privada de um sujeito ou objeto do sistema;
  • atributos adicionais determinados pelos requisitos para utilização do certificado no sistema;
  • assinatura digital eletrônica do editor (autoridade certificadora), certificando a totalidade desses dados.

Assim, por exemplo, um certificado de chave privada contém a própria chave privada e informações adicionais sobre ela.

Para cada utilizador registado no sistema de informação, o centro de certificação (CA) gera dois certificados: um certificado de chave privada e um certificado de chave pública. Neste caso, o primeiro SO é emitido pessoalmente ao usuário registrado (por exemplo, em um disquete) e a mais ninguém - esta é a “assinatura”.

O segundo certificado, aberto, é publicado pela CA em um repositório público para que qualquer pessoa interessada possa encontrá-lo facilmente.

Geração e verificação de assinatura digital

O destinatário da mensagem, utilizando uma chave pública (que está disponível publicamente) e um algoritmo de assinatura digital selecionado por acordo entre os assinantes, desclassifica a assinatura digital.

Em seguida, ele compara as informações não criptografadas que recebeu e as informações obtidas ao descriptografar a assinatura digital. Se a assinatura digital não tiver sido falsificada e as informações abertas transmitidas não estiverem distorcidas, essas duas informações deverão corresponder completamente. Se a assinatura for falsificada, as informações abertas recebidas e as informações obtidas durante a descriptografia serão significativamente diferentes (Fig. 1).

Funções hash

No esquema acima de interação entre o remetente e o destinatário, falta uma operação. Está associada à etapa de criptografia de dados, durante a qual é formada uma assinatura digital eletrônica.

  • Se apenas gerarmos uma assinatura digital, ela terá (dependendo do algoritmo), via de regra, aproximadamente o mesmo comprimento do bloco de dados original, e teremos que transmitir uma mensagem de comprimento duplo pela rede. Naturalmente, isso afetaria negativamente todo o funcionamento do sistema. Portanto, antes de gerar uma assinatura digital, os dados originais são processados ​​por meio de uma função hash, e assim a assinatura fica compacta. É claro que, para obter o resultado correto, o destinatário deve realizar a mesma transformação no bloco de dados recebido.
  • A função hash usada deve ser capaz de converter uma mensagem de qualquer comprimento em uma sequência binária de comprimento fixo. Além disso, deve atender aos seguintes requisitos:

a mensagem após a aplicação da função hash deve depender de cada bit da mensagem original e da sua ordem;

Usando uma versão hash de uma mensagem, não há como reconstruir a mensagem em si.

Compreendendo a criptografia Criptografia de dados e sua diferença da assinatura digital Criptografia de informações transformação matemática (criptográfica) um-para-um, dependendo da chave (parâmetro de transformação secreta), que corresponde ao bloco

A diferença fundamental entre assinatura digital e métodos de criptografia (agora estamos considerando algoritmos assimétricos, nos quais chaves diferentes, mas matematicamente relacionadas, são usadas para criptografia e descriptografia) é que, ao criptografar, a chave pública do destinatário é usada e, ao descriptografar, uma chave privada , enquanto em O algoritmo de assinatura digital requer a chave secreta do autor para assinar uma determinada mensagem, e para Verificações EDS chave pública do autor da mensagem.

Hackeando

Teoricamente, qualquer algoritmo de criptografia que usa uma chave pode ser quebrado pesquisando todos os valores da chave. Se a chave for selecionada, a potência necessária do computador aumenta exponencialmente com o comprimento da chave. Uma chave de 32 bits requer 232 (cerca de 109) etapas. Esta tarefa pode ser realizada por qualquer amador e pode ser resolvida em um computador doméstico. Sistemas com chave de 40 bits (por exemplo, a versão americana exportada do algoritmo RC4) exigem 240 etapas; esse poder de computador está disponível na maioria das pequenas empresas. Sistemas com chaves de 56 bits (DES) exigem um esforço significativo para serem abertos, mas podem ser facilmente abertos usando equipamentos especiais. O custo desse equipamento é significativo, mas é acessível à máfia, às grandes empresas e aos governos. Chaves com comprimento de 64 bits podem atualmente ser abertas por grandes estados e, nos próximos anos, estarão disponíveis para abertura por organizações criminosas, grandes empresas e pequenos estados. As chaves de 80 bits podem se tornar vulneráveis ​​no futuro.

Chaves com comprimento de 128 bits provavelmente permanecerão inquebráveis ​​pela força bruta no futuro próximo. Chaves mais longas também podem ser usadas.

No entanto, o comprimento da chave não é tudo. Muitas cifras podem ser quebradas sem tentar todas as combinações possíveis, mas usando um algoritmo especial (por exemplo, com complexidade polinomial). Em geral, é muito difícil chegar a uma cifra que não possa ser aberta por outro método, mais eficaz que a força bruta.

Observe que um sistema criptográfico é tão forte quanto o seu elo mais fraco. Nenhum aspecto do design do sistema deve ser negligenciado, desde a seleção de algoritmos até políticas de uso e distribuição de chaves.

Aqueles que trabalham com XML há muito entendem a importância de ter controle sobre os dados transferidos e representados em XML. Os principais requisitos para os dados transmitidos são a autenticação das partes interagentes e a confirmação da autenticidade e integridade das informações no documento XML. Tais problemas são resolvidos pela assinatura digital de documentos XML.

Especificações para assinatura digital XML do W3C

O W3C está atualmente desenvolvendo a especificação de processamento e sintaxe de assinatura XML e outros documentos relacionados. Por enquanto tem status de recomendação (http://www.w3.org/TR/xmldsig-core/).

Este documento prevê a assinatura de todo o documento XML e parte dele. Para tornar o processo de assinatura XML único, é definido o conceito de representação canônica de dados XML. Por exemplo, em um documento XML, tags que estão no mesmo nível na árvore hierárquica podem ser misturadas, criando assim ambiguidade no processo de assinatura. A representação canônica do XML é uma espécie de ordenação (ou melhor, redução à forma mais simples) que não permite tais liberdades. Os métodos e regras de canonização XML são descritos em um documento separado, “Canonical XML” (http://www.w3.org/TR/xml-c14n), que também tem o status de recomendação. Outros materiais relacionados à assinatura de documentos XML estão disponíveis em: http://www.w3.org/Signature/.

Marcação Assinatura XML

  • A recomendação “Sintaxe e processamento de assinatura XML” especifica que a assinatura e as informações sobre ela devem estar contidas na tag
  • , que possui as seguintes partes (são necessárias principalmente para verificação de assinatura):
  • O CanonicalizationMethod define um conjunto específico de regras para simplificar e estruturar a instância XML antes da assinatura. Esta informação garante que os dados assinados estão na forma correta para que o algoritmo de verificação dê um resultado positivo se os dados de conteúdo não tiverem sido alterados;
  • valor de resumo (DigestValue) o próprio resumo da mensagem, ou seja, uma string de comprimento fixo produzida como resultado do processamento de dados usando o algoritmo de resumo. Tal string é única e irreversível: é praticamente impossível obtê-la a partir de outro conteúdo, assim como é impossível recriar os dados originais a partir dela. É como uma impressão digital dos dados que estão sendo assinados;
  • uma comparação positiva dos valores do resumo garante a integridade do conteúdo;
  • a própria assinatura (SignatureValue) são os dados obtidos após o processamento pelo método de assinatura;

informações sobre a chave pública (KeyInfo) para verificação de assinatura digital. Mais precisamente, não uma chave, mas um certificado, pois nele, além da própria chave, podem ser indicados o nome do titular e o algoritmo de assinatura digital. Naturalmente, esta não é uma informação exaustiva sobre o que pode estar contido na tag. . Aqui exemplo mais simples

tal assinatura (Listagem 1).

Formação de assinatura digital XML

Deve-se destacar que existem algumas diferenças entre o processo de assinatura XML e o clássico.

O fato é que o processo de assinatura de uma instância XML começa com a canonização, ou seja, com a simplificação da estrutura de dados. Como já mencionado, este procedimento é necessário para que a assinatura digital possa ser verificada corretamente para um mesmo documento XML, apresentado de diferentes formas. Isso significa que todos os documentos XML devem ser convertidos em um único formato canônico antes de serem assinados. O resto das etapas são iguais ao processo padrão para adicionar uma assinatura digital: um valor de resumo é criado para os dados usando o método especificado e, em seguida, esse valor é assinado com a chave privada do autor do documento.

Verificação de assinatura digital XML

Para verificar uma assinatura, você precisa realizar duas etapas: verificar a própria assinatura e verificar o valor do resumo.

A assinatura em si é verificada primeiro para garantir a autenticação do seu proprietário e evitar repúdio. O valor do resumo é então verificado para garantir que os dados não foram alterados e a integridade do conteúdo do documento XML foi verificada.

Passemos à criptografia, que nos permite fechar (ou seja, transformar em uma forma cujo significado não é claro) os dados transmitidos e restaurá-los no lado receptor. O consórcio W3C criou um grupo de trabalho (http://www.w3.org/Encryption/2001/) que trata especificamente de questões de criptografia de dados XML. A especificação de sintaxe e processamento de criptografia XML agora é uma recomendação e está disponível em: http://www.w3.org/TR/xmlenc-core/ .

Este documento prevê a assinatura de todo o documento XML e parte dele.

  • método de criptografia (EncryptionMethod) descreve o algoritmo de criptografia de dados.
  • Se esta tag estiver faltando, o algoritmo de criptografia deverá ser conhecido pelo lado receptor, caso contrário, a descriptografia da mensagem será impossível;
  • dados criptografados (CipherData) os dados criptografados reais ou um link para sua localização. A variedade de tipos de dados a serem criptografados e métodos de sua organização lógica é praticamente ilimitada;
  • informações sobre chaves (KeyInfo) informações sobre as chaves com as quais a criptografia e, consequentemente, a descriptografia são realizadas. Eles podem ser armazenados em outro lugar e substituídos na instância XML por um link de URL;

outras informações (por exemplo, sobre os destinatários pretendidos). Exemplo de etiqueta

mostrado na Listagem 2.

Processo de criptografia e descriptografia Criptografia Dados XML

produzidos usando métodos tradicionais de criptografia de chave pública. Primeiro, os próprios dados são criptografados, geralmente usando uma chave secreta gerada aleatoriamente, que também é criptografada usando a chave pública do destinatário pretendido. Essas informações são empacotadas de forma que apenas o destinatário pretendido possa extrair a chave secreta e descriptografar os dados. A chave secreta é usada para descriptografar a chave secreta e, em seguida, os dados são descriptografados usando a chave secreta encontrada.

Implementando proteção de documentos XML

Revisamos os princípios gerais de funcionamento das assinaturas digitais eletrônicas e as especificações que o consórcio W3C desenvolveu nesta área. Tudo isso é muito bom, mas e se realmente houver necessidade de implementar os esquemas de proteção de dados XML descritos?

Já hoje, apesar do fato de os padrões W3C terem surgido recentemente, algumas empresas anunciaram o lançamento de seus pacotes (bibliotecas de classes) que implementam assinatura digital e criptografia. Vejamos as capacidades de alguns deles.

Este pacote, baseado na linguagem de programação Java, está disponível em http://www.alphaworks.ibm.com/tech/xmlsecuritysuite.

XML Security Suite é uma ferramenta que fornece recursos de segurança como assinatura digital, criptografia e controle de acesso para documentos XML. Com sua ajuda, você pode obter mais sucesso do que usar os recursos dos protocolos de segurança da camada de transporte (por exemplo, Secure Sockets Layer, SSL).

  • Este pacote implementa três tecnologias:
  • A assinatura digital é baseada na especificação “XML Signature Syntax and Processing” do W3C e IETF (e na especificação “Canonical XML”);
  • a criptografia é implementada com base na especificação “XML Encryption Syntax and Processing” do W3C;

controle de acesso para documentos XML (XML Access Control Language).

XML Security Suite é uma das melhores ferramentas modernas para proteger documentos XML.

Além do próprio arquivo (JAR) com a biblioteca de classes, inclui documentação detalhada e exemplos que permitem navegar rapidamente pela hierarquia de classes.

Segurança XML (Apache)

Proteção de dados baseada em XML

Linguagem de marcação de declaração de segurança (SAML)

Uma direção diferente da proteção de dados XML, mas intimamente relacionada a ela, é melhorar a segurança dos sistemas (protocolos) baseados em XML. Neste caso, outros documentos/sistemas/aplicações são protegidos usando XML. Atualmente, o comitê de segurança da Organização para o Avanço dos Padrões de Informação Estruturada (OASIS) está desenvolvendo uma Linguagem de Marcação de Asserção de Segurança (SAML).

Lei Federal “Sobre Assinatura Digital Eletrônica”

Metas

A lei define os conceitos básicos utilizados no procedimento de assinatura digital, como certificado, chaves públicas e privadas, confirmação da autenticidade de uma assinatura digital eletrônica (nós os examinamos anteriormente), etc. uma assinatura digital eletrônica em um documento eletrônico equivale a uma assinatura em um documento em papel. Isto significa, em primeiro lugar, que o certificado da chave de assinatura relativo a esta assinatura digital eletrónica não perdeu força no momento da verificação ou no momento da assinatura do documento eletrónico. Além disso, a autenticidade da assinatura digital eletrônica deve ser confirmada e que a assinatura digital é utilizada de acordo com as informações especificadas no certificado da chave de assinatura.

Certificados e autoridades de certificação

A lei descreve detalhadamente em que consiste um certificado de chave de assinatura (número de registro único, nome completo do titular, chave pública de assinatura digital, nome e localização do centro de certificação, etc.); termos e procedimentos para armazenar o certificado no centro de certificação. Assim, o período de armazenamento de um certificado de chave de assinatura na forma de documento eletrônico em um centro de certificação é determinado por um acordo entre o centro de certificação e o proprietário do certificado de chave de assinatura. Quanto ao armazenamento, é determinado pela legislação da Federação Russa sobre arquivos e assuntos arquivísticos.

Um capítulo separado da lei é dedicado aos centros de certificação. O processo de desenvolvimento e verificação de uma assinatura digital eletrónica pode ocorrer sem a participação de centros de certificação, desde que confirmado por acordo entre as partes. No entanto, nos sistemas de informação públicos e em muitos sistemas de informação corporativos, a utilização de assinaturas digitais sem o funcionamento de centros de certificação é impossível, pois isso conduzirá a mecanismos bastante simples de falsificação de assinatura.

Chaves privadas (secretas)

Uma assinatura digital eletrônica só pode desempenhar suas funções se o signatário possuir alguma informação inacessível a estranhos. Esta informação é semelhante a uma chave de criptografia e, portanto, é chamada de “chave privada de uma assinatura digital eletrônica” (anteriormente era usado o termo semelhante “chave secreta”). É necessário manter em segredo tanto a chave privada quanto a chave de criptografia, pois o conhecimento da chave privada de assinatura corresponde a uma folha de papel em branco com a assinatura do proprietário da chave privada, na qual um invasor pode escrever qualquer texto que irá ser atribuído ao verdadeiro proprietário da chave privada. Arte. 12 da lei indica diretamente a obrigação do titular do certificado de chave de assinatura de manter a chave privada em segredo e exigir imediatamente a suspensão do certificado de chave de assinatura se houver motivos para acreditar que o segredo da chave de assinatura privada foi violado.

Arte. 5º da Lei estabelece o procedimento para criação de chaves privadas de assinatura levando em consideração a estrita observância do sigilo de sua criação. O art. 9º da Lei relativa às atividades dos centros de certificação. Nas estruturas de informação corporativa, a questão da produção e distribuição de chaves privadas EDS pode ser resolvida por métodos próprios, porém, o usuário do EDS deve estar ciente das possíveis consequências do funcionamento do EDS por tal organização. É bem possível que alguma sequência regular seja usada como chave privada, como acontece quando se usa um sistema de senha.

Padrões nacionais para algoritmos de assinatura digital

Esquema El Gamal

Em 1994, foi adotado o primeiro padrão nacional na área de assinatura digital GOST R34.10 94 “Tecnologia da informação. Proteção de informações criptográficas. Procedimentos para desenvolver e verificar uma assinatura digital eletrônica baseada em um algoritmo criptográfico assimétrico.” Define procedimentos para trabalhar com assinaturas digitais baseadas no esquema ElGamal.

A impossibilidade de falsificar uma assinatura se deve à complexidade de resolver o problema do logaritmo discreto em um corpo de p elementos ou à complexidade de determinar o número x dado a um grande número primo p e aos números a, b do intervalo de 2 a p-1, que é realizado por comparação:

No entanto, os matemáticos não ficam parados e recentemente foram feitos grandes progressos no desenvolvimento de métodos para resolver o problema do logaritmo discreto num campo de p elementos.

Recentemente, foi criado o chamado método de peneira de campo numérico. Com sua ajuda, você pode hackear a assinatura digital gerada pelo método acima (pelo menos no caso do módulo p de 512 bits). Uma das soluções mais simples para este problema é aumentar o comprimento do módulo p. Mas, infelizmente, à medida que p aumenta, o desempenho operacional deteriora-se. propriedades do algoritmo

, pois aumentam o comprimento da chave pública e o tempo de geração e verificação da assinatura.

Curva elíptica

Os cientistas russos finalmente chegaram à conclusão de que era possível complicar um pouco o esquema de El-Gamal e, assim, sem custos computacionais adicionais, aumentar a complexidade da falsificação de assinaturas digitais em muitos milhares de vezes. Uma nova versão do esquema ElGamal utiliza o aparato de curvas elípticas sobre um corpo finito de p elementos, que são definidos como um conjunto de pares de números (x, y) (cada um deles está no intervalo de 0 a p-1 ) satisfazendo a comparação (os números aeb são fixos e correspondem a alguma condição adicional):

Y2 == x3 + machado + bmodp.

  • Outros recursos
  • Informações sobre o utilitário Oracle XML-SQL http://otn.oracle.com/tech/xml/xdk_java/content.html
  • Especificações SAML http://www.oasis-open.org/committees/security/
  • Especificação XKMS http://www.w3.org/TR/xkms/

Lei Federal “Sobre Assinatura Digital Eletrônica” Um dos projetos em curso resolveu o problema de assinatura (aplicação de assinatura eletrónica) de documentos XML, nomeadamente pacotes SOAP. O formato recomendado foi o OASIS Standard 200401 com o perfil de token de certificado X.509. Estes documentos descrevem o uso do formato www-consortium (W3C) para Assinaturas XML

(XMLDSig - Assinatura Digital XML) em mensagens SOAP. Assinaturas XML, como outros tipos de assinaturas eletrônicas, suportam autenticação, integridade de dados e não repúdio de assinatura de dados.

Observarei vários recursos do formato XMLDSig: 1. Nem todo o documento XML pode servir como objeto de assinatura, mas apenas parte dele, ou seja, nó específico. De acordo com o Padrão OASIS 200401, o objeto que está sendo assinado é o corpo (nó Corpo

) Mensagens SOAP.

2. Diferentes partes de um documento XML podem ser assinadas por vários signatários.

  • 3. Uma assinatura XML pode estar localizada em diferentes níveis em relação ao objeto que está sendo assinado: a estrutura da assinatura pode conter URI
  • A assinatura XML pode estar no mesmo nível do nó que está sendo assinado;
  • A assinatura XML pode estar dentro do nó que está sendo assinado;
  • O nó que está sendo assinado pode estar contido em uma estrutura de assinatura XML.

4. Para verificar a validade da assinatura eletrónica é necessário o acesso ao objeto de assinatura.

Estrutura de um envelope SOAP

Em geral, uma mensagem consiste em um cabeçalho e um corpo: Cabeçalho E 1. Nem todo o documento XML pode servir como objeto de assinatura, mas apenas parte dele, ou seja, nó específico. De acordo com o Padrão OASIS 200401, o objeto que está sendo assinado é o corpo (nó. Cabeçalho contém metadados e 1. Nem todo o documento XML pode servir como objeto de assinatura, mas apenas parte dele, ou seja, nó específico. De acordo com o Padrão OASIS 200401, o objeto que está sendo assinado é o corpo (nó dados. A assinatura XML é colocada no nó Cabeçalho.

Algoritmos criptográficos e canonização.

Para resolver o problema usamos GOST R 34.11-94- Padrão criptográfico russo para cálculos de funções hash e GOST R 34.10-2001- padrão de assinatura eletrônica.

Devido à flexibilidade das regras de composição XML, a mesma estrutura de documento e a mesma informação podem ser representadas por diferentes documentos XML. Vejamos dois documentos:

Do ponto de vista lógico, são equivalentes, ou seja, possuem o mesmo esquema XML. Porém os arquivos XML dessas listagens não contêm a mesma sequência de caracteres, o que levará a resultados diferentes, por exemplo, ao recuperar um valor hash.

Para evitar tais discrepâncias, foram adotadas regras estritas de formatação e requisitos para o conteúdo das mensagens XML. O processo de trazer documentos XML para um formato unificado (canônico) é chamado canonização(Inglês: Canonicalização). Exemplos de regras podem ser o uso de um determinado esquema de codificação (UTF-8), normalização de valores de atributos, o uso de aspas duplas para valores de atributos, uma certa ordem de atributos e declarações de namespace, etc. que diferem na composição das regras. Você pode ler mais sobre o processo de canonização na especificação oficial do W3C (artigos em russo sobre este tópico podem ser encontrados e)

Biblioteca SIRCrypt

Para implementar a assinatura XML no DIRECTUM, foi escrita uma biblioteca COM, dentro da qual são descritas 3 classes: Hasher, Signatário E XMLCanonicalizer para obter o hash, valor ES e canonização de documentos XML, respectivamente.

A biblioteca exige Cripto PRO CSP(testado na versão Cripto PRO CSP 3.6.6497 KC2) E .LÍQUIDO(mínimo 2,0).

O registro de uma biblioteca é feito executando o seguinte comando:

> regasm.exe "caminho para dll" /codebase /tlb

Objeto hasher para cálculo de hash de acordo com GOST

Contém campos Contente (digite "string") e HashValueAsBase64 (tipo "string"), bem como um método para calcular o valor hash Hash(). Para calcular é necessário definir Contente , chame o método Hash(), como resultado do qual no campo HashValueAsBase64 o valor hash será gravado em Base64.

Objeto signatário para obtenção do valor ES de acordo com GOST

Contém campos Contente (digite "string"), ContainerName (digite "string"), CertificadoAsPEM (digite "string"), BESignatureValueAsBase64 (digite "string"), método Sinal(). Após inicializar o objeto, você precisa definir Contente (detalhes da assinatura), ContainerName (nome do contêiner de chave privada do certificado), método de chamada Sinal(). Então no campo CertificadoAsPEM o certificado correspondente à chave privada estará em Base64, e o campo BESignatureValueAsBase64 valor da assinatura como uma string Base64.

Objeto XMLCanonicalizer para canonização XML

Contém campos Conteúdo XML (digite "string"), CanonicalXML (digite "string"), método C14NExc(). Para obter o formulário XML canônico, você precisa especificar Conteúdo XML , chamar C14NExc(), obtenha o resultado do campo CanonicalXML .

Estrutura de assinatura XML

A criação de uma assinatura fica assim: primeiro é formada a base da embalagem do sabonete, os nós Cabeçalho E 1. Nem todo o documento XML pode servir como objeto de assinatura, mas apenas parte dele, ou seja, nó específico. De acordo com o Padrão OASIS 200401, o objeto que está sendo assinado é o corpo (nó. 1. Nem todo o documento XML pode servir como objeto de assinatura, mas apenas parte dele, ou seja, nó específico. De acordo com o Padrão OASIS 200401, o objeto que está sendo assinado é o corpo (nóé preenchido com dados e um atributo é adicionado wsu:ID="Corpo"- identificador dos dados assinados.

Preenchendo a estrutura Segurança acontece na seguinte ordem:

  1. O valor hash do nó Body é obtido na forma canônica e colocado no nó DigestValue.
  2. Informações assinadas reduzido à forma canônica, assinado pela assinatura eletrônica. O resultado no formato de string Base64 vai para o nó Valor de Assinatura.
  3. A chave pública do certificado que foi usado para assinar é colocada no nó BinarySecurityToken no formato de string Base64.

Para verificar o ES gerado desta forma, é necessário realizar todos os passos na ordem inversa, a saber:

  1. obter a forma canônica de um elemento Informações assinadas.
  2. Usando o resultado da etapa anterior, verifique se o valor ES do nó é válido Valor de Assinatura usando a chave pública do certificado. Nesta fase, apenas é verificada a correcção da assinatura electrónica, o que não garante a imutabilidade dos dados.
  3. Se a verificação de validade da assinatura eletrônica for bem-sucedida, o hash do nó é comparado Valor Digerido e o hash do nó com os dados. Se forem desiguais, os dados assinados foram alterados e toda a assinatura eletrônica é inválida.

Exemplo de uso

Kit de desenvolvimento e biblioteca

Exemplos de assinatura XML em ISBL (script): dev.zip (5,95 KB)

Para uso permanente, o código que executa a assinatura padrão de um envelope SOAP finalizado é movido para uma função AssinarSOAP().

Um certificado do armazenamento de certificados pessoais do usuário atual é usado para assinatura.

De acordo com a Lei 218-FZ “Sobre Registro Estadual de Imóveis”, documentos XML eletrônicos e imagens digitalizadas de documentos devem ser assinados assinatura eletrônica qualificada aprimorada. Todos os programas da série “Polygon”, “Polygon Pro” e o programa “Signature Pro” são assinados exatamente com essa assinatura.

Para assinar:

    Pegar chave de assinatura(certificado) no Centro de Certificação. A lista de centros de certificação credenciados está publicada no site da Rosreestr (Lista de Centros de Certificação). Você pode obter um certificado em nosso Centro de Certificação, Software Center LLC.

    Junto com a assinatura, adquira e instale o programa no seu computador CryptoPro CSP (contém os padrões de assinatura russos exigidos), que também podem ser adquiridos em nosso Centro de Certificação LLC “Program Center”.

Outros programas de assinatura não são necessários: CryptoARM (os recursos de assinatura do CryptoARM são semelhantes aos dos programas da série “Polygon”, “Polygon Pro” e do programa “Signature Pro”).

Módulos de software da plataforma Polygon Pro

Assine um documento eletrônico no programa Polygon Pro

Para assinar um arquivo XML faça o seguinte:

  • Gere um documento eletrônico sem erros.


Você pode assinar o arquivo XML imediatamente no “ Visualizador XML", para fazer isso, clique no botão na barra de ferramentas - "Assinar arquivo XML".

  • Após clicar, será aberta uma janela com uma lista dos certificados instalados. Selecione o que deseja e clique "OK".

  • O programa assinará o documento principal e exibirá uma mensagem de sucesso.

Um arquivo de assinatura com o mesmo nome e extensão * será gerado na mesma pasta do arquivo assinado. .sig.

Assine um grupo de arquivos no programa Polygon Pro

O programa tem a capacidade de assinar um grupo de arquivos ao mesmo tempo. Para fazer isso, faça o seguinte:

  • Na faixa do módulo de software na guia "Lar" pressione o botão e selecione no submenu. Uma janela será aberta com uma seleção de arquivos de projeto (por padrão, todos os arquivos de projeto são selecionados).
  • Se a lista contiver arquivos que não precisam ser assinados, desmarque-os.

  • Clique no botão "Inscrever-se". Uma janela será aberta com uma lista de certificados instalados. Selecione o que deseja e clique "OK".
  • O programa assinará todos os documentos e exibirá uma mensagem de sucesso.

    Se ocorrerem erros durante a assinatura, um log de verificação será exibido com avisos e/ou erros. Para uma assinatura correta, os erros devem ser corrigidos.

    Assine o arquivo nos módulos de software da plataforma Polygon Pro

    O programa tem a capacidade de assinar absolutamente qualquer arquivo.

      Uma janela será aberta com uma lista de certificados instalados. Selecione o que deseja e clique em " OK».

    • O programa assinará os documentos e exibirá uma mensagem de sucesso.

    Na mesma pasta do arquivo assinado, será gerado um arquivo de assinatura com o mesmo nome, com extensão *.sig.

    Verifique a assinatura eletrônica no programa Polygon Pro

    Se você recebeu um arquivo assinado de fora e gostaria de verificar se ele foi alterado, ou simplesmente verificar se a assinatura do arquivo foi gerada corretamente, siga estes passos:

    • Na faixa de opções do módulo de software na aba " Lar"no submenu do botão" Assine tudo» clique no botão « Verificar…».

    • Selecione o arquivo que contém a assinatura (com a extensão *.sig), que precisa ser verificado, ou um arquivo assinado.

    Se esses dois arquivos estiverem em pastas diferentes, o programa exibirá uma janela de aviso. Clique no botão Repita" e selecione o arquivo de origem.

    • Será aberto um protocolo com informações sobre se o documento foi assinado corretamente, por quem e quando.

    Programa "Assinatura Pro"

    Para interação conveniente com a Autoridade Certificadora, gerenciamento de certificados digitais e chaves privadas Foi desenvolvida assinatura eletrônica, bem como um programa para assinatura de diversos arquivos com assinatura eletrônica.

    Como assinar um arquivo com assinatura digital eletrônica?

    Esta instruçãoé aproximado, as etapas específicas podem depender do que está instalado no seu computador programas. Parte das instruções foi concluída em fevereiro de 2012, mas nossos programas oferecem uma opção mais conveniente para assinar arquivos de documentos eletrônicos assinatura eletrônica qualificada aprimorada.

    Para assinar arquivos de documentos eletrônicos: plano de fronteira, plano de mapa, plano técnico assinatura eletrônica deve ser verificada programas instalados:

      provedor de criptografia "CryptoPro CSP";

      "Cripto ARM" – este programa é necessário apenas quando você não utiliza programas da série “Polygon”, este programa em termos de assinatura é idêntico aos programas da série “Polygon”, portanto não é necessário; para assinar arquivos com programas da série "Polygon", consulte a página anterior das instruções; Você pode assinar usando os programas da série “Polygon” e o programa CryptoARM, se achar que isso será mais conveniente do que usar os recursos existentes dos programas da série “Polygon”;

    Cada arquivo (XML, digitalização de documento impresso e arquivos de aplicação) deve ser assinado, pois a autoridade de registro cadastral só aceita pares de arquivos: o arquivo original e o arquivo de assinatura do mesmo. Para assinar um arquivo, selecione-o na janela do Explorer e clique em clique com o botão direito mouse (RMB), aparecerá menu de contexto, nele você deve selecionar o item “CryptoARM”, e depois “ Inscreva-se…».



    Em seguida, certifique-se de que o nome do arquivo esteja correto



    Importante! coloque a chave na posição " Codificação DER", especifique a pasta para os arquivos de saída a seu critério. Pressione o botão " Próximo" Na próxima janela, atribua parâmetros de assinatura


    Nesta janela, o mais importante é marcar a opção “ Salve a assinatura em um arquivo separado" Clique no botão Próximo" Na próxima janela, clique no botão Escolher»


    uma janela de seleção de certificado será aberta


    nele, selecione o certificado da sua chave (procure pelo nome do proprietário). Após selecionar, clique no botão OK" E " Próximo" Na última janela antes de assinar o documento, clique no botão " Preparar».

    Importante! Para cada arquivo é necessário criar um arquivo de assinatura, pois só é aceito um par: o arquivo original (xml ou outro) + uma assinatura para o mesmo (arquivo sig).