Olá novamente! Seguindo o post anterior, estou matando uma pendência: Apresentar uma Prova de Conceito, desenvolvida pela UNESP, Microsoft e Serasa, que tem o objetivo de mostrar aplicações do Certificado de Atributos, Open XML e Assinaturas Digitais.
Ok, vamos lá! Primeiramente, vamos falar um pouco sobre Certificados de Atributos e Certificados Digitais:
Já ouviram falar do E-CPF? Acredito que essa é a aplicação mais conhecida e difundida no Brasil de Certificados Digitais. Bom, com um E-CPF, você consegue responder as seguintes perguntas:
Quem é você?
Você é você mesmo?
Ou seja, essa aplicação tem um caráter de Identificação. Além disso, os Certificados Digitais no Brasil e em diversos lugares do mundo possuem valor legal. Aqui, temos a ICP-Brasil, que estabelece diversas normas, técnicas e práticas e também credita Autoridades Certificadoras como a Serasa, Certsign, Serpro e etc!
Certificados de Atributos são baseados em Certificados Digitais (X.509), porém seguem outra abordagem. Enquanto os Certificados Digitais tem um caráter de Identificação, os Certificados de Atributos possuem um caráter de Autorização, respondendo outros tipos de perguntas, como:
O que é você?
Você pode fazer isso?
Bom, essas diferenças acarretam em algumas características interessantes. O Certificado de Atributos possui um período de validade muito pequeno (dias ou meses) em relação a um Certificado Digital (anos), já que os atributos (autorizações) das pessoas mudam com muita frequência. Há mais exemplos, por exemplo, o Certificado de Atributos não possui um par de chaves (pública e privada), como um Certificado Digital.
O interessante é que todo Certificado de Atributos está associado a um Certificado Digital, ou seja, ambos trabalham em conjunto, há uma identificação para a autorização :)
Eu gosto muito de dizer que os Documentos Digitais de hoje em dia não são mais os mesmos. Há inúmeras demandas que esses documentos devem atender. Na Prova de Conceito, mostramos um cenário em que contratos são assinados por diversas pessoas que por sua vez devem ter atributos para comprovar sua autorização (podem ou não podem assinar esse contrato?).
Um exemplo de contrato pode ser visto abaixo:
A vizualização não ficou das melhores, mas podemos ver que para este contrato ter validade, algumas exigências (atributos) devem ser atendidas:
Primeiramente, notamos que a Importância (Alçada) do Contrato é de R$ 10.000.000,00, então o mesmo só terá validade se uma ou mais pessoas tiverem o atributo ou a soma de atributos alçada maior ou igual a R$ 10.000.000,00.
Logo abaixo, podemos ver também que o Contrato exige no mínimo uma assinatura de um representante que tenha alçada mínima e que seja do Departamento Financeiro/Jurídico da Empresa e também a necessidade de uma assinatura do Representante Legal.
O mais interessante é que além do suporte a Assinaturas Digitais, o Open XML permite um mecanismo de extensibilidade do formato chamado Custom XML. Que permite uma integração com dados externos através de Schemas personalizados. Abaixo, podemos ver o XML que popula as informações do contrato acima, que poderia ser gerado automaticamente por um Sistema de Gerenciamento de Documentos de uma empresa:
A partir do documento Open XML e todo seu suporte a Assinaturas Digitais, criamos um Sistema Web que toma como Input um documento assinado digitalmente e o Certificado de Atributos do Signatário. Com esse input, o sistema utiliza dos mecanismos de extensibilidade do Open XML, todo o suporte a Certificados Digitais no .Net Framework e a implementação Bouncy Castle de Certificados de Atributos para criar um fluxo (flow) ao qual esse documento deve ser submetido.
Abaixo, seguem algumas imagens do processo:
Tela Inicial: Status do Contrato - Contém uma lista com todos contratos pendentes (a serem assinados e atender pré-requisitos), que por sua vez podem ser acompanhados.
Resultado da Verificação do Contrato Assinado Digitalmente e Certificado de Atributos, que são tomados utilizados durante todos os passos do Flow.
Espero ter passado o novo contexto no qual documentos digitais estão incluídos hoje nesse post! Espero também ter mostrado novos cenários de uso e possibilidades de negócios, além de contribuir um pouco com material técnico para Open XML, Certificados Digitais e Certificados de Atributos.
Abaixo, segue uma lista de links sobre os assuntos abordados no post de hoje:
Fernando Cima - Certificado de Atributos
Fernando Cima - Certificação Digital no Open XML
Roberto Prado - Microsoft e Serasa abordam Certificado de Atributo Digital no Certforum
Núcleo de Desenvolvimento Open Source e Interoperabilidade - Diversas demos Open XML com código fonte
Prova de Conceito - SignFlow
Código Fonte