segunda-feira, 26 de novembro de 2007

Assinador Digital

Olá pessoal!

Hoje vou postar sobre mais um projeto realizado pelo LTIA, no qual fiz parte da equipe de desenvolvimento: o Assinador Digital.

Com a introdução do formato Office Open XML, tornou-se possível representar documentos criados ou consumidos pelo Office de forma XML e assim utilizar a recomendação XML-DSig para as Assinaturas Digitais, atendendo à ICP-Brasil. A partir desta abertura, é possível inserir, remover e validar assinaturas digitais em documentos Office sem a necessidade do mesmo.

Com isso, desenvolvemos com apoio da Microsoft Brasil, uma aplicação que através de poucos cliques e de modo simples e fácil, realiza processos de visualização, inclusão, remoção e validação de assinaturas digitais em lotes de documentos que utilizam a Open Packaging Convention (OPC), suportando no momentos documentos Open XML (Wordprocessing, Spreadsheets e Presentations). Já estamos trabalhando no suporte a XPS que também implementa a OPC.

O Assinador Digital é registrado como uma "Shell Extension" no Windows, sendo acessado com o botão direito do mouse, quando um ou mais documentos são selecionados. Veja a figura abaixo:


Integração com o Shell do Windows: Rapidez e agilidade no manuseio de assinaturas e documentos.

O projeto pode ser encontrado no Codeplex onde você terá acesso ao último release da solução e também do seu código fonte, sob a licença MS-RL (Microsoft Reciprocal License).

Bom pessoal, não vou falar muito não! :) Entrem lá no Codeplex e vejam por si mesmos! Abaixo, vou deixar mais uma imagem, agora da interface principal da aplicação:


Interface Principal: Visualização de múltiplas assinaturas (contra-assinaturas) de múltiplos documentos. Opções de tratar tanto assinaturas quanto documentos em lote ou unicamente. Note também a divisão das assinaturas em grupos. Destaque para a funcionalidade de manuseio de assinaturas comuns para todos documentos.

sexta-feira, 23 de novembro de 2007

Mudanças no Blog

Olá pessoal, tudo bem!? :)

Hoje o Tiago Porangaba estava vendo o Technorati e eu aproveitei o gancho para ver minha situação ali. Foi aí minha surpresa. O Technorati tem um negócio chamado "Authority", que eu não sei muito bem o que significa, mas possui um rank também!

Bom, meu Rank é 871,446 :( e esse tal de Authority é apenas 9!! Já o Tiago Porangaba tá no Rank 731,678 e tem Authority 11!! Como não posso deixar que ele fique na minha frente, iniciei um novo movimento:

  1. Eu dei "claim" no meu blog no Technorati e já adicionei na minha barra lateral --> um link para você me adicionar aos seus favoritos! :)
  2. Já aproveitei também e coloquei o FeedBurner para tomar conta dos meus Feeds, adicionando alguns atalhos para você assinar o RSS do meu blog :P
  3. Também adicionei tags em todos meus posts! Sim sim eu sei que já tinha que ter feito isso desde o começo, mas sempre tive preguiça!

Ahhh, dei uma pesquisadinha em alguns amigos que estão no meu BlogRoll, e vi que não estou tão mal assim haha! Pessoal, vamos aparecer mais! :P

O Porangaba me disse que um modo de aumentar o Authority é adicionando links aos posts, então vou dar uma forcinha pro pessoal'mostrando suas estatísticas. Aí vai, um ponto de Authority pra cada um haha:

Por hora é só! Alguém aí sabe de algo mais para eu chamar atenção? :)

Abraços!

segunda-feira, 12 de novembro de 2007

Certificado de Atributos - Signflow

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 :)

logo(1)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:

contrato

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:

image

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:

image

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.

image

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

Update!

Olá pessoal!

Faz muito tempo que não posto, mas não é porque tenho feito pouco não haha, ao contrário, tenho me envolvido em bastante coisas!

Bom, olhem só minha lista de pendências:

  1. Ainda estou devendo a segunda parte do meu post sobre Problemas de Comunicação em Projetos;
  2. Preciso arrumar minha área de trabalho! Acham tosco? Olhem só o caos!!

    image

  3. Tenho que estudar para minha DP de Cálculo 2!!!
  4. Fazer 3 listas de exercícios atrasados da matéria de Teoria da Computação;
  5. Visitar a Família haha, minha mãe diz que esse ano fui apenas 4 vezes para casa!
  6. Lavar minhas roupas e fazer as malas para o Interunesp

    INTERUNESP 2007

  7. Relatar a ótima experiência que tive no 5º Certforum em Brasília, onde apresentei meios para o Desenvolvimento de Soluções baseadas em Certificados Digitais na plataforma .Net, além de falar um pouco sobre Certificados de Atributos, Open XML e uma Prova de Conceito, chamada SignFlow, que foi desenvolvida em parceria entre a UNESP, Microsoft e Serasa.
  8. Preciso também publicar os resultados de outro projeto no qual estive envolvido: O Assinador Digital, um projeto muito interessante onde criamos uma aplicação que assina digitalmente documentos Open XML, que possui características como manuzeio de documentos em lote (inserção, remoção e validação de assinaturas) e integração com o Shell do Windows. O código estará disponivel em breve no CodePlex!

O legal é que dá pra tirar uns 5 posts dessa lista! Só não acho interessante relatar minhas experiências com Cálculo e afins! :)

Bom pessoal, por hora é só... Esse post é apenas um "Index" dos próximos posts que estão por vir! Faz muito tempo que quero falar de muita coisa!! :)