aplicaçıes de criptogra˝a baseada em identidade com ...§ão.pdf · quero expressar os meus...

100
UNIVERSIDADE DA BEIRA INTERIOR Engenharia Aplicaıes de Criptograa Baseada em Identidade com Cartıes de Identicaªo Eletrnica Joªo Pedro Cipriano Silveira Dissertaªo para obtenªo do Grau de Mestre em Engenharia InformÆtica (2 o ciclo de estudos) Orientador: Prof. Doutor Paul Andrew Crocker Covilhª, outubro de 2013

Upload: trinhliem

Post on 15-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • UNIVERSIDADE DA BEIRA INTERIOREngenharia

    Aplicaes de Criptografia Baseada em Identidadecom Cartes de Identificao Eletrnica

    Joo Pedro Cipriano Silveira

    Dissertao para obteno do Grau de Mestre emEngenharia Informtica

    (2o ciclo de estudos)

    Orientador: Prof. Doutor Paul Andrew Crocker

    Covilh, outubro de 2013

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    ii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Dedicatria

    Dedico esta dissertao aos meus paisPelos ensinamentos e valores transmitidos

    E pelo apoio contnuo e dedicao incondicional

    iii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    iv

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Agradecimentos

    Em primeiro lugar, gostaria de agradecer aos meus pais pelo apoio, incentivo e confiana depo-

    sitada em mim ao longo do meu percurso acadmico bem como ao longo de toda a minha vida.Sem a dedicao e o esforo deles no teria sido possvel atingir este objetivo.

    Quero agradecer ao meu irmo pelos momentos de descontrao e pela ajuda na reviso desta

    dissertao.

    Quero tambm agradecer minha melhor amiga e namorada, Joana Pereira, pela motivao,

    pacincia e carinho dado durante estes dois anos de Mestrado. Mesmo longe nunca deixou deme dar foras para continuar a lutar pelos meus objetivos e dar o meumelhor em tudo o que fao.

    Ao Prof. Doutor Paul Andrew Crocker estou profundamente agradecido pela oportunidade que

    me foi dada ao integrar o projeto Privacy, Reliability and Integrity in Cloud Environments(PRICE) e pelo seu papel como orientador. Os seus conhecimentos, observaes, prontido etempo despendido foram de grande importncia para a realizao desta dissertao ao longode todas as etapas.

    Quero agradecer tambm ao Prof. Doutor Simo Melo de Sousa pelo seu esprito crtico e pelosseus pareceres que se tornaram indispensveis ao longo das vrias fases deste projeto.

    Ao Ricardo Azevedo da PT Inovao pelo interesse e apoio dado ao longo de todo o desenvolvi-mento do projeto e dissertao.

    Quero expressar os meus agradecimentos ao meu colega de Mestrado e amigo, Joo Gouveia,tanto pela ajuda, brainstorming e colaborao no mbito do projeto PRICE que engloba ambasas nossas dissertaes, como pelos momentos de descontrao proporcionados dentro e fora do

    laboratrio.

    Gostaria de agradecer tambm aos meus amigos e colegas de laboratrio, Leopoldo Ismael e

    Ruben Esprito Santo, pelo nimo, distrao e companhia nas longas noites de trabalho e caf.

    Por ltimo gostaria de agradecer aos restantes colegas do RELiablE And SEcure ComputationGroup (RELEASE) e aos meus amigos, Cludia Caronho, Vitor Rolo, Pedro Querido e Samuel Dias.

    "Aqueles que passam por ns, no vo ss, no nos deixam ss. Deixam um pouco de si,levam um pouco de ns." - Antoine de Saint-Exupry

    v

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    vi

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Resumo

    A presente dissertao resulta da investigao sobre Criptografia Baseada em Identidade, cujo

    o objetivo principal a criao de um sistema que utilize os mecanismos de autenticao deum carto de identificao eletrnica (EID Card), em particular do Carto de Cidado (CC) Por-tugus, e as caractersticas de identidade presentes no carto para permitir a cifra e decifra deficheiros. O sistema foi idealizado com o objetivo de estender as capacidades criptogrficas doCC, proporcionando ao mesmo tempo um sistema seguro, inovador, simples e transparente nasua utilizao e nas suas funcionalidades para o utilizador comum.

    O desenvolvimento deste projeto justificado com o aumento visvel da procura de solues que

    garantam a privacidade e confidencialidade de dados armazenados em servios de informaoe em particular na Cloud.

    Neste trabalho proposta, de forma detalhada, uma implementao de um sistema para a

    Privacidade e Confidencialidade de ficheiros, utilizando Criptografia Baseada em Identidade e oCarto de Cidado. Este sistema permite a cifra de ficheiros com mltiplas identidades (chavespblicas) e a associao de polticas de privacidade e acesso flexveis a esses ficheiros. A cifra efetuada sem a necessidade de partilha prvia de chaves, utilizando a identidade do utilizadorcomo chave pblica. A respetiva criao e distribuio de chaves privadas gerida por umaterceira entidade, na qual ir depender a segurana do sistema e que necessita do mecanismode autenticao forte do Carto de Cidado. O sistema final est implementado em vriasaplicaes para Desktop, como servio faz parte de um sistema mais vasto para armazenamentoem Cloud.

    Palavras-chave

    Carto de Cidado, Criptografia, Criptografia Baseada em Identidade, Segurana, Autenticao,Confidencialidade, Privacidade, Polticas de Ficheiros, Cloud

    vii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    viii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Abstract

    The present dissertation results of the investigation on Identity Based Cryptography, having asgoal the creation of a system that uses the authentication mecanisms of an Electronic ID Card(EID Card), more specifically the Portuguese EID Card, and the identity characteristics presenton this card to allow the encryption and decryption of files. The sistem was designed withthe purpose of extending the cryptographic abilities of the card, providing at the same time asecure, innovative, simple and transparent in its use and functionalities, system to the commonuser.

    The development of this project is justified with the noticeable increase in demand for solutions

    that ensure the privacy and confidentiality of data stored in information services and particularyin Cloud services.

    This work proposes in detail an implementation of a system for the Privacy and Confidentiality

    of files using Identity Based Encryption and the Portuguese EID Card. This system allows theencryption of files with multiple identities (public keys) and the association of flexible privacyand access policies. The encryption process is executed without the necessity of previous keysharing, using the users identity as the public key. The creation and distribution of private keysis managed by a third party in which will depend the security of the system and that needsthe strong authentication mechanism of the EID card. The final system is deployed in variousdesktop applications and as a service being part of a wider system for Cloud storage.

    Keywords

    Citizen Card, Cryptography, Identity Based Cryptography, Security, Authentication, Confidenti-

    ality, Privacy, File Policies, Cloud

    ix

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    x

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    ndice

    Dedicatria iii

    Agradecimentos v

    Resumo vii

    Abstract ix

    ndice xi

    Lista de Figuras xiii

    Lista de Tabelas xvii

    Lista de Acrnimos xix

    1 Introduo 11.1 Enquadramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.4 Abordagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.5 Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.6 Estrutura da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2 Estado da Arte 72.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2 Carto de Cidado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2.1 Autenticao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.2 Assinatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.3 Hierarquias e Certificao . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.4 Segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.5 Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.3 Criptografia de Curva Elptica . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.4 Criptografia Baseada em Identidade . . . . . . . . . . . . . . . . . . . . . . . . 12

    2.4.1 Assinatura Baseada em Identidade . . . . . . . . . . . . . . . . . . . . . 13

    2.4.2 Cifragem Baseada em Identidade . . . . . . . . . . . . . . . . . . . . . 14

    2.5 Solues Existentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.5.1 Solues Comerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.5.2 Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2.6 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3 Implementao dos Algoritmos 213.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.2 Esquemas de IBE e IBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.2.1 Esquema BF Fullident . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.2.2 Esquema Emribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    xi

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    3.2.3 Esquema de Assinatura Paterson IBS . . . . . . . . . . . . . . . . . . . . 23

    3.3 Implementao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.3.1 Implementao em C . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.3.2 Implementao em .NET C# . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.4 Anlise de Eficincia Computacional . . . . . . . . . . . . . . . . . . . . . . . 28

    3.5 Biblioteca .NET C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.5.1 Funes do PKG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.5.2 Funes do Cliente/Utilizador . . . . . . . . . . . . . . . . . . . . . . . 31

    3.6 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    4 Arquitetura 35

    4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.2 Cenrios de Utilizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.3 Descrio do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.3.1 Funcionamento Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.3.2 Caracteristica de Identidade . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.3.3 Polticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    4.3.4 Cifra e Assinatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4.3.5 Decifra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    4.3.6 Comunicao, Autenticao e Gerao de Chaves Privadas . . . . . . . . 41

    4.4 Modelo de Segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    4.5 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    5 Resultados 47

    5.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.2 Aplicao para a criao de polticas . . . . . . . . . . . . . . . . . . . . . . . 47

    5.3 Aplicao Windows Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.3.1 Funcionamento Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    5.3.2 Ligao ao PKG e atualizao de parmetros . . . . . . . . . . . . . . . 48

    5.3.3 Cifra de ficheiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    5.3.4 Decifra de ficheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.3.5 Autenticao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5.4 Servio PKG no Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5.5 Aplicao Web para gesto e cifra de ficheiros na Cloud . . . . . . . . . . . . . 52

    5.6 Tempos de execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    5.7 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6 Concluso e trabalho futuro 57

    6.1 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    6.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    6.2.1 Aspetos de Implementao . . . . . . . . . . . . . . . . . . . . . . . . . 59

    6.2.2 Novas Funcionalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    Referncias 61

    xii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    A Anexos 67A.1 Wrapper C# - Esquema BF Fullident . . . . . . . . . . . . . . . . . . . . . . . . 67

    A.1.1 pkg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67A.1.2 pkg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67A.1.3 client.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68A.1.4 client.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    A.2 Wrapper C# - Esquema Emribe . . . . . . . . . . . . . . . . . . . . . . . . . . 70A.2.1 pkg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70A.2.2 pkg.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70A.2.3 client.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72A.2.4 client.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    A.3 Wrapper C# - Esquema Paterson IBS . . . . . . . . . . . . . . . . . . . . . . . . 75A.3.1 sign.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75A.3.2 sign.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    A.4 Exemplo de utilizao da biblioteca criada para C# . . . . . . . . . . . . . . . . 78

    xiii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    xiv

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Lista de Figuras

    1.1 Esquema de cifra tradicional com chave pblica . . . . . . . . . . . . . . . . . 2

    1.2 Esquema de cifra com Criptografia baseada em Identidade . . . . . . . . . . . . 3

    2.1 Frente e verso do Carto de Cidado Portugus . . . . . . . . . . . . . . . . . . 82.2 Cadeia de certificao dos certificados de chave pblica de assinatura e autenti-

    cao do Carto de Cidado Portugus . . . . . . . . . . . . . . . . . . . . . . 102.3 Esquema genrico de Assinatura Baseada em Identidade . . . . . . . . . . . . . 132.4 Esquema de IBE para email da Voltage Security . . . . . . . . . . . . . . . . . . 19

    3.1 Representao de um ficheiro cifrado com o esquema BF Fullident . . . . . . . . 273.2 Representao de um ficheiro cifrado com o esquema Emribe . . . . . . . . . . 283.3 Alteraes no cabealho do ficheiro cifrado com n identidades para os esquemas

    BF Fullident e Emribe respetivamente . . . . . . . . . . . . . . . . . . . . . . 293.4 Comparao dos tempos (em segundos) de operaes sobre curva elptica para n

    identidades entre os dois esquemas BF Fullident e Emribe . . . . . . . . . . . . 30

    4.1 Esquema geral da arquitetura criada . . . . . . . . . . . . . . . . . . . . . . . 364.2 Exemplo da informao contida no campo subject do certificado pblico de au-

    tenticao contido no CC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.3 Exemplo de um ficheiro XML de polticas . . . . . . . . . . . . . . . . . . . . . 394.4 Cabealho de um ficheiro cifrado e assinado . . . . . . . . . . . . . . . . . . . 404.5 Ficheiro file.pdf cifrado com a identidade ID e com ID + Polticas . . . . . . . . 414.6 Processo de verificao e obteno de parmetros e definio de curva elptica . 424.7 Processo de autenticao e obteno de chave privada junto do PKG . . . . . . . 43

    5.1 Definio de polticas e o ficheiro XML resultante . . . . . . . . . . . . . . . . . 475.2 Viso geral da aplicao para Windows Desktop . . . . . . . . . . . . . . . . . . 485.3 Informao sobre a conetividade ao servio de PKG . . . . . . . . . . . . . . . . 485.4 Cifra de um ficheiro com mltiplas identidades . . . . . . . . . . . . . . . . . . 495.5 Informao sobre o ficheiro cifrado . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.6 Obteno de chave privada e decifra do ficheiro . . . . . . . . . . . . . . . . . 50

    5.7 Aviso apresentado durante o processo de autenticao e pedido de introduo doPIN de autenticao do CC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5.8 Painel de controlo do servio PKG na plataforma Windows Azure . . . . . . . . . 525.9 Aplicao Web para a gesto e cifra de ficheiros na Cloud . . . . . . . . . . . . 53

    xv

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    xvi

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Lista de Tabelas

    2.1 Tamanhos de chave recomendados pelo NIST e custos relativos de computao do

    algoritmo de Diffie-Hellman e Curvas Elpticas . . . . . . . . . . . . . . . . . . 122.2 Comparao entre uma chave pblica IBC e uma chave pblica RSA . . . . . . . 12

    3.1 Notaes do Esquema BF Fullident . . . . . . . . . . . . . . . . . . . . . . . . 223.2 Notaes do Esquema Multi-Receiver IBE . . . . . . . . . . . . . . . . . . . . . 233.3 Notaes do Esquema de Assinatura Paterson IBS . . . . . . . . . . . . . . . . . 243.4 Wrappers para PKG e cliente do esquema BF Fullindent (ver Anexo A.1) . . . . . 253.5 Wrappers para PKG e cliente do esquema Emribe (ver Anexo A.2) . . . . . . . . 263.6 Wrapper para assinatura, esquema Paterson IBS (ver Anexo A.3) . . . . . . . . . 273.7 Nmero de operaes na curva elptica entre os esquemas BF Fullident e Emribe 293.8 Comparao do tamanho do cabealho entre os esquemas BF Fullident e Emribe . 293.9 Comparao dos tempos (em segundos) de operaes sobre curva elptica para n

    identidades entre os dois esquemas BF Fullident e Emribe . . . . . . . . . . . . 30

    5.1 Tempos de execuo de cifra para ficheiros com diferentes tamanhos . . . . . . 535.2 Tempos de execuo de decifra para ficheiros com diferentes tamanhos . . . . . 545.3 Tempos de execuo na cifra da chave para n-identidades . . . . . . . . . . . . 545.4 Comparao dos tempos de execuo na cifra da chave para n-identidades, em

    modo srie e em paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    xvii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    xviii

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Lista de Acrnimos

    AES Advanced Encryption StandardAIBE Authenticated Identity-Based EncryptionAPI Application Programming InterfaceCA Certification AuthorityCBC Cipher Block ChainingCC Carto de CidadoCMS Cryptographic Message SyntaxCRL Certificate Revocation ListCSP Cryptographic Service ProviderDH Diffie-HellmanDLL Dynamic-Link LibraryEID Electronic IdentityEMV-CAP Europay, Mastercard and Visa Chip Authentication ProgramEPAL Enterprise Privacy Authorization LanguageGUID Globally Unique IdentifierHIBE Hierarchical Identity-Based EncryptionIBC Identity Based CryptographyIBE Identity Based EncryptionIBS Identity Based SignatureIP Internet ProtocolIV Initialization VectorNSA National Security AgencyOCSP Online Certificate Status ProtocolOTP One-time PasswordPIN Personal Identification NumberPKCS Public-Key Cryptography StandardsPKG Private Key GeneratorPKI Public Key InfrastructurePPS Public Parameter ServerPUK PIN Unlock KeyRFC Request For CommentsRSA Rivest, Shamir, Adelman cryptographic algorithmSSL Secure Sockets LayerTLS Transport Layer SecurityUBI Universidade da Beira InteriorXACML eXtensible Access Control Markup LanguageXML Extensible Markup LanguageXrML eXtensible Rights Markup Language

    xix

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    xx

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Captulo 1

    Introduo

    Com a massificao do uso da Internet, o constante crescimento de redes informticas e deutilizao de servios em Cloud, surgem dvidas quanto privacidade e confidencialidade dosdados armazenados. A questo da segurana toma assim especial importncia, especialmentese imaginarmos a possibilidade de informaes confidenciais de particulares ou empresas es-tarem expostas a intrusos e atacantes na Internet, com meios cada vez mais sofisticados, quecomprometem a segurana e a privacidade dessas informaes.

    Desta forma, a criptografia tem especial importncia na salvaguarda da confidencialidade eprivacidade dos dados, fazendo com que apenas as entidades s quais pertencem ou foram des-tinadas as informaes possam compreend-las. A criptografia fornece tcnicas pelas quais ainformao pode ser codificada e descodificada, de forma a que possam ser armazenadas, trans-mitidas e recuperadas pelo destinatrio da informao, sem comprometer a sua integridade econfidencialidade. Estas tcnicas permitem assim um meio efetivo de proteo de informaessuscetveis a ataques e fornecem formas de comunicao seguras, servios de autenticao,privacidade e de integridade de dados.

    Os servios bsicos de segurana que um sistema criptogrfico deve fornecer so, Confiden-cialidade, Integridade, Autenticao e No-Repudiao. A Confidencialidade consiste emmanter a informao secreta para todos os que no esto autorizados a ver essa informao.Integridade garante que a informao no foi alterada por entidades desconhecidas ou no au-torizadas. Autenticao garante a identidade de uma entidade envolvida na comunicao. Porltimo, a No-Repudiao previne a negao de aes e compromissos previamente realizados.

    1.1 Enquadramento

    Os sistemas/infraestruturas criptogrficas mais conhecidas e utilizadas so as de chave pblica

    ou Public Key Infrastructure (PKI). Num sistema tradicional, a associao entre um utilizador ea sua chave pblica obtida atravs de um certificado digital emitido por uma autoridade decertificao ou Certification Authority (CA). O CA verifica as credenciais do utilizador antes deemitir o respetivo certificado. Se a Alice quiser enviar uma mensagem cifrada ao Bob, precisa

    da chave pblica do certificado do Bob (Ver Figura 1.1):

    1. O Bob gera um par de chaves, pblica e privada, autentica-se e regista-se no CA;

    2. O CA valida a identidade e emite um certificado;

    3. A Alice recebe o certificado do Bob:

    4. A Alice utiliza a chave pblica presente no certificado do Bob para cifrar a mensagem eenviar assim a mensagem cifrada ao Bob;

    1

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    5. Por sua vez o Bob utiliza a sua chave privada e decifra a mensagem cifrada pela Alice

    obtendo a mensagem original.

    Figura 1.1: Esquema de cifra tradicional com chave pblica

    De forma simplificar o processo de gesto de certificados, Shamir [Sha85] introduziu o conceitode Criptografia Baseada em Identidade ou Identity Based Cryptography (IBC) em 1984. Numsistema de IBC, a chave pblica do utilizador derivada de uma informao de identidade ea sua chave privada gerada por uma terceira entidade confivel, designada por Gerador deChave Privada ou Private Key Generator (PKG). A principal vantagem deste tipo de sistemas asimplificao do processo de gesto de chaves. Desta forma, a Alice pode enviar uma mensagemcifrada ao Bob usando a informao de identidade deste, antes de ele obter a sua chave privadado PKG (Ver Figura 1.2):

    1. A Alice conhece a identidade do Bob, logo ir usar essa identidade como chave pblica;

    2. A Alice cifra a mensagem utilizando a identidade/chave pblica do Bob e envia a mensagemcifrada;

    3. O Bob recebe a mensagem e autentica-se ao PKG;

    4. O PKG cria a chave privada respetiva e envia ao Bob;

    5. O Bob usa a sua chave privada para decifrar a mensagem cifrada pela Alice e obtm a

    mensagem original.

    No caso de assinatura, o Bob pode verificar uma mensagem assinada pela Alice apenas coma informao de identidade dela, sem necessidade de troca de chaves, uma vez que a Alice

    j conhece a chave privada do Bob (a sua identidade). No geral um sistema de IBC possui asseguintes propriedades:

    a chave pblica de um utilizador a sua identidade (ou derivada da sua identidade);

    2

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Figura 1.2: Esquema de cifra com Criptografia baseada em Identidade

    no necessrio existir um repositrio de chaves pblicas;

    a cifra de mensagens e o processo de verificao de assinatura necessitam apenas daidentidade do recetor e emissor respetivamente (para alm dos parmetros pblicos desistema1 gerados pelo PKG).

    Estas propriedades fazem dos sistemas IBC vantajosos em relao aos sistemas tradicionais dechave pblica, uma vez que a distribuio de chaves muito simplificada. No entanto, estetipo de sistemas tm a desvantagem do PKG conhecer todas as chaves privadas. Para almdisto, necessrio um canal seguro para a emisso de chaves entre o PKG e o utilizador. Umsistema de IBC requer igualmente que o utilizador se autentique ao PKG, da mesma forma quese autenticariam a uma CA.

    Como tal, a utilizao do carto de cidado neste sistema, justifica-se como sendo um elemento

    crucial para o desenvolvimento. As caractersticas de identidade presentes no carto (neces-srias para a chave pblica), bem como o seu forte mecanismo de autenticao (necessriopara autenticao no PKG, de forma a gerar ou recuperar uma chave privada), associam-se na

    perfeio s necessidades de um sistema desta natureza.

    1.2 Motivao

    O presente trabalho o resultado de uma parceria entre o grupo de investigao RELiableand SEcure Computation (RELEASE) da Universidade da Beira Interior e a empresa PortugalTelecom (PT) Inovao, no mbito do projeto PRICE - Privacy, Reliability and Integrity in Cloud

    1parmetros pblicos de sistema, estes parmetros so geralmente a chave pblica do PKG e oselementos de configurao calculados e publicados pelo PKG (o processo de gerao destas elementos snecessita de ser efetuado uma vez).

    3

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Environments. Este projeto envolve vrios trabalhos para alm da presente dissertao e temcomo objetivo a criao e disponibilizao de solues de privacidade, confiana e integridadeem plataformas Cloud, para a possvel utilizao pela PT Inovao.

    O projeto foi financiado por uma bolsa de investigao fornecida pela PT Inovao, atravs do

    Instituto de Telecomunicaes (IT).

    1.3 Objetivos

    O objetivo principal deste projeto o desenvolvimento de um sistema criptogrfico baseado

    em caractersticas de identidade do utilizador, caractersticas essas que esto embutidas no seucarto eletrnico de identificao (Carto de Cidado). pretendido uma soluo que garantaa privacidade e confidencialidade dos dados cifrados, que fornea um nvel de confiana forteao utilizador e que seja flexvel e simples, fazendo uso das potencialidades oferecidas peloCarto de Cidado como Smartcard e ao mesmo tempo tornando o CC num elemento fulcralpara assegurar a segurana do sistema.

    Os objetivos principais previstos no plano de trabalho so os seguintes:

    Reviso da literatura sobre os sistemas criptogrficos baseados em identidade e estudo dossistemas de assinatura digital e sistema de cifra;

    Comparao dos sistemas a nvel de custo computacional envolvido;

    Definio das caractersticas de identidade a utilizar e que esto embutidas no CC;

    Especificao de uma arquitetura baseada num centro de gerao de chaves e os respetivosprotocolos de distribuio, recuperao e revogao de chaves;

    Implementao de uma aplicao de cifra e decifra de ficheiros, para mostrar a viabilidadeda arquitetura proposta;

    Implementao de um sistema simples de polticas de privacidade de ficheiros.

    Espera-se que o produto final satisfaa os objetivos e as necessidades requeridas, de forma

    a comprovar os benefcios de um sistema de criptografia baseada em identidade e que possa

    mostrar ser uma alternativa vivel s arquiteturas tradicionais de chave pblica, para a cifra edecifra de mensagens, tanto a nvel particular como a nvel empresarial.

    1.4 Abordagem

    Este projeto foi abordado por fases, sendo que o trabalho realizado pode ser dividido em duasfases principais, a fase de Investigao e a fase de Desenvolvimento.

    Na fase de Investigao foram estudados os conceitos, componentes e as funcionalidades de

    Smartcards, no caso especifico o CC Portugus. Foram estudados sistemas criptogrficos base-ados na identidade, tanto sistemas de assinatura como de cifra e decifra e ainda tecnologiase produtos comerciais j existentes baseados em IBC, de forma a perceber a viabilidade e aspotencialidades da arquitetura a desenvolver.

    4

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Na fase de Desenvolvimento foram implementados alguns dos esquemas analisados em pequenas

    aplicaes em linguagem C para o teste de assinatura e cifra e decifra de pequenas mensagens.Foram criados pequenos wrappers para permitir a utilizao destes esquemas em linguagens.NET e posteriormente criadas algumas aplicaes prottipo, bem como a criao de umabiblioteca para facilitar a implementao da arquitetura descrita neste documento.

    1.5 Contribuies

    No mbito do projeto desenvolvido, surgiram algumas contribuies que consideramos impor-

    tantes, nomeadamente:

    Estudo de vrios esquemas de IBC, das suas vantagens, potencialidades e problemas emaberto;

    Especificao de uma arquitetura de cifra e decifra de mensagens com criptografia baseadaem identidade e respetivos esquemas de gerao e recuperao de chaves com o Cartode Cidado;

    Aplicao Desktop prottipo e respetivo servio online, (com mecanismos de autenticaoatravs do CC) para gerao de chaves;

    Biblioteca para .NET, baseada na arquitetura especificada, com todos os mtodos neces-srios para a criao de um sistema completo.

    1.6 Estrutura da Dissertao

    Este documento est dividido em vrios captulos que mostram sequencialmente o processo deinvestigao desenvolvido. Neste primeiro captulo foi descrito o projeto, as motivaes, osobjetivos que se pretendem alcanar, bem como as contribuies do projeto.

    Captulo 2 - Estado da ArteNeste captulo apresenta-se o estudo sobre o Carto de Cidado Portugus e uma introduo

    Criptografia Baseada em Identidade, uma apresentao de alguns esquemas importantes, tantode assinatura como de cifra, bem como os respetivos princpios de segurana, nos quais estesesquemas assentam e aplicaes existentes. Este captulo pretende fornecer uma viso paraquem no esteja dentro da problemtica tratada neste trabalho.

    Captulo 3 - Algoritmos ImplementadosO terceiro captulo apresenta os algoritmos de IBE implementados, os passos necessrios para aimplementao dos mesmos no sistema desenvolvido e uma anlise de performance computaci-

    onal e tamanho do texto cifrado dos algoritmos.

    Captulo 4 - ArquiteturaO quarto captulo aborda a arquitetura tecnolgica seguida neste trabalho de uma forma geral.

    Este captulo apresenta a estrutura na qual assenta a implementao do sistema criado bem

    como a justificao das solues apresentadas, de forma a fornecer uma viso do funcionamentode todo o sistema em cada uma das fases.

    5

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Captulo 5 - ResultadosO quinto captulo apresenta os resultados obtidos no sistema implementado, as suas funciona-lidades e as suas caractersticas.

    Captulo 6 - Concluso e Trabalho FuturoO ltimo captulo apresenta as concluses sobre o trabalho desenvolvido e descreve tecnologiase funcionalidades que podem ser futuramente integradas no sistema, de forma a complementara soluo.

    6

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Captulo 2

    Estado da Arte

    2.1 Introduo

    Neste captulo apresentado o estudo do estado da arte e das tecnologias utilizadas no decorrer

    deste trabalho. Este captulo comea por apresentar de forma geral o Carto de Cidado Por-tugus, bem como as suas caractersticas e funcionalidades. ainda apresentada a CriptografiaBaseada em Identidade, as suas vantagens, vrios tipos de esquemas criptogrficos de assinaturae cifra baseados neste tipo de sistemas, bem como os problemas em aberto inerentes.

    2.2 Carto de Cidado

    O Carto de Cidado Portugus comeou a ser emitido em Fevereiro de 2007, como documentode cidadania portugus, com o objetivo de substituir o bilhete de identidade, carto de con-tribuinte, carto de beneficirio de segurana social e carto de utente do servio nacional desade. Como documento fsico, permite ao cidado identificar-se presencialmente de formasegura. Como documento tecnolgico, permite a identificao do cidado perante serviosinformatizados e a autenticao de documentos eletrnicos.

    Foi lanado, como parte de um plano de desenvolvimento tecnolgico, com os objetivos dejuntar num s documento, os documentos necessrios em vrios servios pblicos e promover odesenvolvimento das transaes eletrnicas atravs do mecanismo de autenticao forte e daassinatura digital e a interao com diferentes servios pblicos e privados. Assim, permite aotitular provar a sua identidade, perante terceiros, atravs da autenticao eletrnica. Algumasestatsticas a 13 de agosto de 2013 1:

    8445200 cartes entregues

    30,47% tm assinatura digital ativada

    Visualmente o CC (ver Figura 2.1) contm vrias informaes do cidado, como a fotografia,elementos de identificao civil e os nmeros de identificao dos diversos organismos pblicos,cujo o carto combina e substitui. Eletronicamente, e como caraterstica mais inovadora, o

    fato de ser um smartcard com diversas funcionalidades [Zuq10], mais especificamente:

    Guardar informao privada, que o titular pode usar mas no conhecer ou divulgar. Estainformao consiste em trs criptogrficas:

    Chave simtrica de autenticao do titular;

    Chave privada de um par de chaves assimtricas RSA para a autenticao do titular;

    Chave privada de um par de chaves assimtricas RSA para a produo de assinaturasdigitais do titular;

    1Informao retirada do site cartaodecidadao.pt a 20 de agosto de 2013

    7

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Figura 2.1: Frente e verso do Carto de Cidado Portugus

    Guardar informao pessoal para validao interna de identidade do titular. Esta validaoconsiste num mecanismo de Match-on-Card, que permite comparar uma impresso digitalcomunicada ao carto, com a impresso digital do titular (presente no carto) para finsde validao;

    Guardar informao reservada. Esta informao consiste na morada do titular e pode serdisponibilizada pelo titular de forma fidedigna, atravs do smartcard, a quem desejar oua quem tiver autorizao para obter esta informao;

    Guardar informao pblica de grande dimenso. Esta informao consiste na fotografiadigital do titular, e pelos certificados de chaves pblicas correspondentes, autenticaoe assinatura digital;

    Guardar toda a informao do titular visvel fisicamente no carto;

    Efetuar operaes criptogrficas, usando as chaves que fazem parte da informao privadado carto.

    As operaes realizadas pelo smartcard, em nome do titular do carto, necessitam da introduode um Person Identification Number (PIN) de quatro algarismos. Cada carto possui trs PIN,para autorizao da indicao da morada, autenticao do titular e produo de assinaturadigital. Estes PIN so uma camada de segurana, caso o titular perca o seu carto, pois impede

    8

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    que as funcionalidades do carto sejam utilizadas por outrem, uma vez que que cada PIN

    dispe apenas de trs tentativas de descoberta. Se estas forem utilizadas erradamente o PIN bloqueado e o seu desbloqueio s possvel junto de uma entidade autorizada e com o PINUnlock Key (PUK) respetivo fornecido com o CC.

    2.2.1 Autenticao

    A autenticao com smartcard do CC pode ser realizada de duas formas. Atravs do Europay,Mastercard and Visa Chip Authentication Program EMV-CAP, em que o carto inserido numleitor pessoal e o titular digita o PIN de autenticao de forma a gerar uma One-time PasswordOTP. Esta OTP pode ser enviada a uma entidade que a consiga verificar e assim autenticar otitular.Outra forma mais comum, atravs do par de chaves assimtricas RSA (1024 bits) de autentica-o presentes no smartcard que podem ser usadas por vrios protocolos e aplicaes como formado titular se autenticar. Cada vez que o titular pretenda usar a sua chave privada do par dechaves assimtricas de autenticao, o PIN tem que ser enviado para o smartcard. O smartcardpossui um certificado X.509 com a chave pblica de autenticao, que pode ser comunicado deforma a que possa ser verificado e a chave privada de autenticao validada.

    2.2.2 Assinatura

    Para a assinatura digital, o smartcard do CC possui um par de chaves assimtricas RSA (1024bits) de assinatura digital, que podem ser usadas para a assinatura de documentos pelo titular.O smartcard contm tambm um certificado com a chave pblica da assinatura digital. Estecertificado pode ser comunicado a terceiros, com o fim de verificar e validar a assinatura dotitular.

    Tal como na autenticao, de forma a usar a chave privada do par de chaves assimtricas, otitular do carto tem que enviar o respetivo PIN de assinatura para o smartcard.

    2.2.3 Hierarquias e Certificao

    Ambos os certificados de chave pblica (autenticao e assinatura) dos titulares do CC possuem

    hierarquias de certificao, que tm como certificado raiz, GTE CyberTrust Global Root (verFigura 2.2). Este certificado pertence empresa GTE Corporation e faz normalmente parte doscertificados confiveis, que vm instalados por defeito em browsers e outro software.

    2.2.4 Segurana

    A segurana do CC assegurada por vrias caractersticas e o smartcard obedece a vriospadres e polticas de segurana [MUL11a][MUL11b]. Estes padres e polticas garantem a sal-vaguarda da informao privada presente no smartcard.

    Uma das caratersticas a proteo por PIN de controlo de acesso referidos anteriormente naseco 2.2. Estes PIN controlam o acesso morada, chave privada de autenticao e chaveprivada de assinatura e toleram o mximo de trs tentativas. Aps trs tentativas erradas a

    funcionalidade respetiva fica inutilizvel, e de forma a ser desbloqueada, o titular tem que se

    deslocar a uma entidade autorizada e indicar o respetivo cdigo de desbloqueio (PUK) que lhe

    9

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Figura 2.2: Cadeia de certificao dos certificados de chave pblica de assinatura e autenticao doCarto de Cidado Portugus

    foi fornecido com o CC. Esta funcionalidade de proteo por PIN especialmente importantepara a segurana na utilizao do par de chaves assimtricas, pois garante a confidencialidadedas chaves privadas, mesmo que o carto seja extraviado (assumindo que os PIN so apenasdo conhecimento do titular do carto). Para alm disto, o CC fornecido com um cdigo deoito algarismos, que permite o cancelamento de todas as funcionalidades do carto assim quefornecido s autoridades competentes.

    Os certificados de assinatura e de autenticao do titular de um carto e os respetivos certifi-cados das CA, podem ser validados atravs do Online Certificate Status Protocol (OCSP). Paraalm disto, todos os certificados, exceto o certificado raiz, incluem informao sobre onde pode

    ser obtida uma lista de revogao de certificados ou Certificate Revocation List (CRL). Esta listacontm todos os certificados que foram revogados e cuja data de validade ainda no expirou, adata de revogao e a razo para a revogao.

    2.2.5 Middleware

    O middleware permite a comunicao entre o sistema operativo do smartcard do CC e um com-putador. O middleware para o CC disponibilizado pelo Estado Portugus [AMA12] constitudopor trs Application Programming Interface (API):

    CryptoAPI/CSP

    PKCS#11

    eID lib

    10

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    As duas primeiras interfaces consistem em APIs para operaes criptogrficas e a eID lib paraas funcionalidades no criptogrficas do CC. As interfaces CryptoAPI/CSP e PKCS#11, so dire-cionadas para aplicaes baseadas e no baseadas na arquitetura windows respetivamente. Nocaso da interface eID lib, esta permite realizar operaes com o smartcard que so especificas natureza do CC, como documento de identificao eletrnico. Exemplos destas operaes soa obteno de informao sobre o titular e fotografia, obteno e alterao da morada, leiturados certificados e gesto de cdigos PIN.

    2.3 Criptografia de Curva Elptica

    A utilizao de curvas elpticas na criptografia foi sugerida independentemente por Neal Koblitz[Kob87] e Victor Miller [Mil86b] em 1985.Um curva elptica um conjunto de solues (x, y) para um equao na forma y2 = x3 + Ax+ B,e um ponto extra O, ao qual designamos de ponto no infinito. Para aplicaes criptogrficasconsideramos um campo finito de q elementos: Fq. Onde q um nmero primo, assim podemospensar em Fq como um grupo de inteiros mdulo q.A equao da curva elptica normalmente designada por E e utilizada a notao E(Fq) paraum grupo de pontos (x, y) com coordenadas no campo Fq em conjunto com o ponto O (que definido sobre todos os campos).Um conjunto de pontos numa curva elptica forma um grupo sob uma certa regra de adio, qual damos a notao de +. O ponto O o elemento de identidade do grupo. Quandotrabalhamos num campo finito ento o grupo finito (uma vez que h um nmero finito depontos).Dado um ponto P = (x, y) e um inteiro positivo n, definimos n P = P+ P+ ...+ P (n vezes). Aordem de um ponto P = (x, y) o menor inteiro positivo n que satisfaa n P = O.

    A segurana da criptografia de curva elptica baseada no problema de logaritmo discreto decurva elptica em que:

    E uma curva elptica sobre um campo finito Fq;

    P um ponto pertencente a E(Fq) e Q um ponto pertencente ao grupo < P >2;

    Problema: encontrar um inteiro t que satisfaa a condio Q = t P

    Acredita-se [Mil86b] que o problema do logaritmo discreto de curva elptica difcil de resolvercomputacionalmente quando o ponto P tem como ordem um nmero primo grande.

    A ordem do grupo, normalmente designada como tamanho da curva elptica, determina a

    dificuldade do problema. Acredita-se que o mesmo nvel de segurana proporcionado porum sistema baseado em RSA com um mdulo grande pode ser alcanado por um grupo muitomenor de curva elptica. Assim so reduzidos os requisitos computacionais de armazenamento

    e transmisso.

    Tal como outros sistemas criptogrficos populares, no existe at agora uma prova matemticade segurana para criptografia de curva elptica. Contudo, foi promulgada, bem como siste-mas baseados nela, pela National Security Agency (NSA)[NSA05] na conferncia RSA em 2005onde recomenda a sua utilizao para a proteo de informaes tanto classificadas como no-

    classificadas dos sistemas de segurana e de informao nacionais com chaves de 384 bits. Em

    2< P > um grupo gerado por P, ou por outras palavras < P >= {O,P,P+ P,P+ P+ P, ...}

    11

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    [BBB+05], o NIST (National Institute of Standards and Technology) apresenta uma tabela em que

    compara o nvel de segurana dos vrios algoritmos aprovados tendo como base o tamanho embits, das chaves (ver Tabela 2.1).

    Symmetric Key Size(bits)

    RSA andDiffie-Hellman Key

    Size (bits)

    Elliptic Curve KeySize (bits)

    Ratio of DH Cost :EC Cost

    80 1024 160 3:1

    112 2048 224 6:1

    128 3072 256 10:1

    192 7680 384 32:1

    256 15360 512 64:1

    Tabela 2.1: Tamanhos de chave recomendados pelo NIST e custos relativos de computao do algoritmode Diffie-Hellman e Curvas Elpticas

    2.4 Criptografia Baseada em Identidade

    A Criptografia Baseada em Identidade foi inicialmente proposta em 1984 por Adi Shamir [Sha85],no entanto Shamir apenas conseguiu apresentar uma soluo para o esquema de assinatura demensagens, a cifragem e decifragem de mensagens permaneceu um problema em aberto du-rante vrios anos.

    A ideia de Shamir era permitir que uma sequncia de bytes correspondente a uma caractersticaque identifique unicamente o utilizador (como por exemplo o nome, nmero de identificaopessoal ou email) pudesse ser usada como chave pblica, criando assim automaticamente umvnculo entre a chave pblica e o respetivo dono. Por sua vez, a chave privada seria calculadapor uma autoridade na qual os utilizadores teriam que confiar, designada por Gerador de ChavePrivada.

    IBE Public Key [email protected] Public Key AAAAB3NzaC1yc2EAAAADAQABAAAAgQDRSFleyASPUMr1RU

    tzo6++RxQHA228bjcV3vojRQhqR/+1eBAfwqha6fttA5xWPZGevmGeZCNKAR4kriSAHgX5cxj9oMSvB1Ase5SFMptLbmeeOZK4H1JqrO8U07fAIdfj5Y0WZp9pgCnXdmK5/s+dU8C/dLHTpAfcbx1ioC2sYQ

    Tabela 2.2: Comparao entre uma chave pblica IBC e uma chave pblica RSA

    Um sistema criptogrfico baseado em identidade, permite que qualquer par de utilizadores pos-

    sam comunicar entre si de forma segura, sem necessidade de troca prvia de chaves pblicasou de certificados ( eliminado assim o problema de distribuio de chaves pblicas) e sem

    a necessidade de manter repositrios de chaves pblicas. Ao contrrio dos sistemas tradicio-nais de criptografia de chave pblica, em que esta geralmente uma cadeia binria de difcil

    memorizao (Ver tabela 2.2), em sistemas de IBC o remetente apenas precisa de conhecer acaracterstica identificadora do destinatrio da qual ir ser derivada a chave pblica, como por

    exemplo o endereo de email. Esta simplicidade concetual torna este tipo de sistemas espe-

    12

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    cialmente atraentes, uma vez que faz com que os aspetos criptogrficos de uma comunicao

    sejam praticamente transparentes para o utilizador e possam ser usados pelo utilizador comum,que nada sabe sobre chaves ou protocolos.

    No entanto, este tipo de sistemas trazem tambm algumas desvantagens, as quais sero apre-

    sentadas em detalhe nesta seco, bem como as possveis solues para ultrapassar estas des-vantagens, sem perder as funcionalidades pelas quais os sistemas IBE so conhecidos.

    2.4.1 Assinatura Baseada em Identidade

    Um esquema genrico de Assinatura Baseada em Identidade ou Identity Based Signature (IBS),pode ser descrito em quatro fases/algoritmos aos quais podemos chamar Setup, Extract/KeyGen,Sign e Verify, ou Inicializa, Extrai, Assina e Verifica. Se a Alice pretender assinar uma men-sagem (ver Figura 2.3) vai obter do PKG a sua chave privada que est associada sua chavepblica/identidade. A Alice assina a mensagem com a chave obtida. Por sua vez, o Bob utilizaa identidade da Alice para verificar a assinatura da mensagem.

    Figura 2.3: Esquema genrico de Assinatura Baseada em Identidade

    Setup : O centro de gerao de chaves ou PKG cria um par de chaves/parmetros, chaveprivada skPKG e chave pblica pkPKG (ambos os intervenientes tm conhecimento destachave).

    Extract/Keygen : Alice autentica-se ao PKG (1) e obtm a sua chave privada (2), skIDAlicecorrespondente sua identidade IDAlice.

    Sign : Alice utiliza a sua chave privada skIDAlice, cria a assinatura para a mensagem M (3)e envia M assinada.

    Verify : Bob ao receber a mensagem M e a assinatura correspondente , verifica (4) se aassinatura para a mensagem M genuna, utilizando a identidade da Alice, IDAlice e achave pblica do PKG, pkPKG.

    13

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Shamir [Sha85] desenhou e props o primeiro esquema de IBS em 1984, baseado no algoritmo

    RSA (Rivest, Shamir, Adelman cryptographic algorithm). No mesmo artigo idealizou o conceitode Cifragem Baseada em Identidade ou Identity Based Encryption, no entanto no conseguiuaplicar este conceito na prtica.

    2.4.2 Cifragem Baseada em Identidade

    Em [Sha85] Shamir especifica os requisitos da implementao de um esquema de IBE e lista osdois princpios de implementao:

    A escolha de chaves baseada num gerador k completamente aleatrio. Quando o k conhecido, as chaves privadas podem ser facilmente calculadas para uma frao no-negligencivel das chaves pblicas possveis.

    O problema de calcular o gerador k a partir de pares de chaves pblicas/privadas geradoscom k irresolvel.

    Baseado nestes requisitos, Shamir afirma que no possvel criar um esquema de IBE baseadono algoritmo de RSA, mas conjetura que este tipo sistemas criptogrficos existem. No entantoo desenvolvimento deste tipo de sistemas foi bastante lento e apesar de terem havido vriaspropostas para esquemas [Tan88, MY91, TI89, DQ87] ao longo dos anos, nenhuma delas foi con-siderada como completamente satisfatria.

    Em 2000, Joux [Jou04], mostrou que o algoritmo de Victor Miller [Mil86a], para avaliar Weilpairing em curvas algbricas, podia ser usado de forma "benfica"3 e usou-o num protocolo paraconstruir um acordo de chaves tripartido, baseado no problema de Diffie-Hellman em curvaselpticas.

    Aps o avano de Joux, em 2001 foi apresentado o primeiro esquema de IBE completamentefuncional, eficiente e comprovadamente seguro (dentro do modelo de random oracles4 contraataques de texto simples escolhido) por Boneh e Franklin [BF01] baseado nas propriedades depairing bilinear em curvas elpticas. Este esquema recebeu especial ateno por ser o primeiroesquema de IBE a ter segurana provvel num modelo apropriado de segurana.

    Sakai, Ohgishi e Kasahara [RSK01] e Cocks [Coc01] apresentaram igualmente nesse ano, esque-mas de IBE. O esquema de Cocks, baseado no problema de resduos quadrticos, no obteve

    tanta ateno como o esquema de Boneh e Franklin, pois o mtodo de cifra bit a bit que utiliza,

    torna o esquema pouco eficiente em termos computacionais e a cifra gera mensagens cifradasbastante longas, quando comparado com outros esquemas (problema de expanso de texto).Por exemplo, ao cifrar uma mensagem de 128 bits usando um mdulo de 1024 bits resulta numtexto cifrado com 261424 bits, em comparao, um esquema baseado em pairings, produz umtexto cifrado com 288 bits [BGH07].

    Estes problemas foram parcialmente resolvidos por Boneh, Gentry e Hamburg [BGH07], o tama-

    nho do texto cifrado produzido foi reduzido para 1160 bits no caso do exemplo anterior e foi

    adicionada a propriedade de anonimato ao texto cifrado (ningum consegue descobrir quem orecipiente da mensagem ao olhar apenas para o texto cifrado). No entanto, o esquema criado

    3O algoritmo de Miller foi inicialmente utilizado para atacar [MVO91, FR94] certos tipos de sistemascriptogrficos baseados em curvas elpticas.

    4Ser seguro no modelo de random oracles significa que as funes de hash subjacentes usadas noesquema so consideradas funes aleatrias ideais [BR93].

    14

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    computacionalmente mais exigente que o esquema de Cocks e outros esquemas padro de IBE

    e PKI.

    Ateniese e Gasti [AG09] basearam-se igualmente no esquema de Cocks, resolveram o problema

    da eficincia e adicionaram a propriedade de anonimato ao texto cifrado.

    Canetti, Halevi e Katz [CHK03] criaram a primeira construo de um esquema IBE com segu-

    rana provvel, fora do modelo de random oracles. Para provar a segurana descreveram ummodelo ligeiramente mais fraco de segurana conhecido como modelo de selective-ID, no qualo adversrio declara que identidade vai atacar, antes dos parmetros pblicos globais seremgerados. Boneh e Boyen [BB04] criaram tambm um esquema baseado no mesmo modelo, com-pletamente seguro, sem random oracles, mas no computacionalmente eficiente para ser usadona prtica. Waters [Wat05] apresentou o primeiro esquema eficiente de IBE, completamenteseguro, fora do modelo de random oracles, em que a segurana reduzida ao problema deDecisional Diffie-Hellman Bilinear (DBDH) (ver Seco 2.4.2.1).

    A gerao de chaves pelo PKG uma tarefa computacionalmente pesada. Em adio gerao

    de chaves, o PKG ainda responsvel pela autenticao e pela criao de canais seguros deforma a transmitir as chaves privadas geradas aos respetivos utilizadores. Esquemas de IBEHierrquicos ou Hierarchical Identity-Based Encryption (HIBE) introduzidos por Horwitz e Lynn[HL02], permitem a existncia de um PKG raiz que delega a gerao de chaves privadas eautenticao de identidade para os PKG de nveis mais baixos. Num HIBE o PKG raiz precisaapenas de ter chaves privadas para os PKG de nveis mais baixos, que por sua vez geram chavesprivadas para os utilizadores. Com esta delegao de funes para os PKG de nveis inferiores,a carga computacional da autenticao e gerao de chaves distribuda e reduzida para cadaPKG, no entanto, neste esquema possvel que os utilizadores conluiam e obtenham as chavedos PKG de nveis abaixo do primeiro.

    Em [GS02], Gentry e Silverberg estendem o esquema de Boneh e Franklin para apresentar umasoluo de HIBE completamente resistente a conluio.

    Lynn [Lyn02] mostrou a construo de um esquema IBE com autenticao ou AuthenticatedIdentity-Based Encryption (AIBE), baseado no esquema de Boneh e Franklin. O recetor verificaa identidade do remetente e se a mensagem foi ou no adulterada, assim possvel remover a

    necessidade de usar assinaturas digitais, quando a autenticao necessria.

    Sahai e Waters [SW05] desenharam um esquema designado por Fuzzy IBE, em que a identidade vista como um conjunto de atributos descritivos. Este esquema permite que uma chave privada

    para a identidade ID, possa ser usada para decifrar uma mensagem cifrada com a identidadeID, apenas se ID e ID estiverem prximas uma da outra, quando medidas por uma distncia desemelhana. Esta propriedade de tolerncia de erro do esquema, permite o uso de caracters-

    ticas de identidade biomtricas que tm inerente algum rudo, cada vez que so amostradas.

    De notar ainda trs Request For Comments (RFC) nesta rea. No RFC5091 [BM07] os autoresdescrevem os algoritmos para a implementao dos esquemas Boneh-Franklin e Boneh-Boyen

    referidos anteriormente. No RFC5408 [AMS09], Appenzeller et al. descrevem a arquiteturade segurana necessria para a implementao de um sistema de IBE. Por ltimo, em [MS09],os autores descrevem convenes para a utilizao dos algoritmos descritos no RFC5091 comCryptographic Message Syntax (CMS).

    15

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    2.4.2.1 Problemas Base

    Com a exceo do esquema de Cocks [Coc01] e outros esquemas derivados deste, baseados

    no problema de resduos quadrticos, os esquemas de IBE so na sua maioria baseados emsuposies de problemas difceis em curvas elpticas, as mais utilizadas so:

    Problema de Computational Diffie-Hellman (CDH) em G1: no existe um algoritmoeficiente para calcular (P, P)ab a partir P, aP, bP G1 para a, b Zq.

    Problema deWeak Diffie-Hellman (W-DH) em G1: no existe um algoritmo eficiente paracalcular sQ a partir de P, Q, sP G1 e s Zq.

    Problema de Diffie-Hellman Bilinear (BDH) em (G1,G2, ): no existe um algoritmoeficiente para calcular (P, P)abc G2 a partir de P, aP, bP, cP G1 onde a, b, c Zq.

    Problema de Decisional Diffie-Hellman Bilinear (DBDH) em (G1,G2, ): no existe umalgoritmo eficiente para decidir se r = (P, P)abc dado r G2 e a, b, c Zq.

    2.4.2.2 Vantagens

    A simplicidade de um sistema IBC talvez a sua maior vantagem em relao a outras solues.Um sistema IBC elimina a necessidade da utilizao de certificados, listas de revogao e deestruturas caras e complexas associadas a sistemas PKI. Como resultado, a sua utilizao substancialmente mais simples para o utilizador comum e o seu custo significativamente maisbaixo que o de um sistema PKI. Podemos apontar vrias outras potencialidades e vantagens dautilizao de sistemas IBC:

    Nmero finito de utilizadores. O sistema pode ser implementado de forma a que, aps teremsido distribudas todas as chaves privadas dos utilizadores, o PKG possa ser fechado e a suachave privada, utilizada para a gerao destas chaves, possa ser destruda.

    No necessrio pr-registo. O utilizador pode receber uma mensagem cifrada, sem nuncater usado um sistema de cifra. O PKG pode atribuir-lhe uma chave para decifrar a mensagem

    a pedido. Por outras palavras, um utilizador no precisa de estar registado no sistema parareceber mensagens cifradas que a si lhe foram endereadas.

    Expirao de chaves em vez de revogao. Este ponto em esquemas IBE pode ser consideradaigualmente como uma vantagem ou desvantagem. Um dos problemas mais difceis de uma PKI

    a revogao de chaves, num esquema IBE podemos utilizar uma data de validade para aschaves em vez de revogao. No entanto esta soluo no resolve por completo o problema(ver Seco 2.4.2.3).

    Vulnerabilidade a spam reduzida. Por exemplo, para um sistema PKI para emails necessriaa publicao de uma lista de chaves pblicas (repositrio de certificados). Uma lista desta natu-reza pode assim tornar o sistema vulnervel a spam. Num esquema de IBE da mesma natureza,estes repositrios no necessitam de ser mantidos, a chave pblica de um utilizador a sua

    identidade, neste caso o seu email.

    Possibilidade de adicionar informao adicional identidade (chave pblica). possvelcifrar uma mensagem para uma certa identidade e especificar por exemplo a data a partir

    16

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    da qual a chave privada pode ser obtida, a sua validade ou mesmo um intervalo de tempo

    especfico. Outro tipo de informao pode igualmente ser adicionada para forar, por exemplo,o cumprimento de certas polticas ou caractersticas (exemplo: permitir que o utilizador apenaspossa recuperar a chave privada respetiva, caso esteja a contactar o PKG dentro de uma gamaespecifica de IP de uma dada organizao).

    2.4.2.3 Problemas em Aberto

    Revogao de Chaves. Em esquemas tradicionais de PKI, a revogao de chaves pblicas um problema em que os utilizadores para cifrar uma mensagem ou verificar assinatura tmde verificar primeiro se a chave pblica foi revogada ou no. Para tal deve ser mantida umaCRL pela PKI. No entanto, com esquemas de IBE ocorre outro tipo de problemas de revogao.Supondo um sistema que utiliza o email como chave pblica, em que a identidade do Bob [email protected], se a chave privada correspondente a [email protected] for comprometida, o Bob nopode voltar a utilizar o seu mail como chave pblica.

    Em [BF01] Boneh e Franklin sugerem como soluo para este problema adicionar uma stringtemporal identidade usada como chave pblica, em que os utilizadores teriam que renovaras suas chaves privadas periodicamente. Por exemplo, para a identidade do Bob ([email protected]),este usa [email protected]||agosto,2013 como chave pblica. Assim esta chave ser apenas vlidadurante o ms de agosto do ano 2013. No entanto, esta soluo no completa nem prtica,uma vez que os formatos do tempo tm que ser definidos priori e informados aos utilizadores.

    Custdia de chaves (key escrow). Os esquemas de IBE tm esta propriedade, uma vez que o PKG que emite as chaves privadas dos utilizadores, usando a chave privada do sistema.Como resultado, o PKG capaz de assinar ou decifrar qualquer mensagem. Esta propriedade especialmente indesejvel no caso da assinatura, uma vez que a garantia de no-repdio umdos requisitos essenciais em esquemas de assinatura digital.

    Como soluo para este problema, Boneh e Franklin [BF01] sugerem a distribuio da chaveprivada do PKG (threshold cryptography5) por vrios PKG, utilizando para tal a tcnica dese-nhada por Shamir [Sha79]. Assim, o utilizador obtm partes da sua chave privada de mltiplos

    PKG e constri a sua chave privada. Contudo, este sistema tem como desvantagem a cargacomputacional no utilizador, uma vez que este tem que se autenticar para cada PKG.

    No esquema de Baek e Zheng [BZ04], os autores sugerem a partilha de partes da chave privadados utilizadores, associada identidade, em vez que partilhar a chave privada do PKG. Este

    esquema torna-se especialmente atraente em ambientes empresariais. Bob o presidente do

    comit, criou a identidade e obteve a chave privada correspondente do PKG. Supondo que o Bobtm que se ausentar, este partilha a sua chave privada por um certo nmero de servidores, demaneira a que qualquer membro do comit possa decifrar com sucesso a mensagem cifrada, se, eapenas se, obtiver um nmero mnimo de partes dos servidores. Outra aplicao deste esquema

    a construo de um sistema de IBE mediado, em que a ideia permitir a diviso da chave

    privada associada a uma identidade em duas partes, dar uma das partes ao utilizador e a outraa um mediador. possvel assim revogar instantaneamente os privilgios do utilizador atravsde instrues dadas ao mediador. No entanto, o problema de custdia de chaves continua a

    existir (o PKG conhece a chave privada).

    Em [CZKK05], Chen et al. apresentam um esquema de IBS baseado em threshold e que combina

    5A ideia distribuir a informao secreta entre vrias entidades de forma a prevenir um nico pontode falha ou de abuso.

    17

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    as vantagens de um sistema PKI com IBC, que resolve o problema de custdia de chaves e remove

    as desvantagens do mtodo sugerido por Boneh e Franklin. Shao et al. [SCW06] apresentarammais tarde um esquema mais eficiente e seguro que o apresentado por Chen et al.

    Em [KG09], Kate e Goldberg apresentam igualmente uma soluo baseada em PKG distribudos

    que utiliza os esquemas para a gerao de chaves de uma forma distribuda, criados por Gennaroet al. [GJKR99]. Os autores definem ainda os respetivos protocolos de extrao de chavesprivadas num modelo de comunicao que pode funcionar de forma sncrona ou assncrona,para a implementao em trs esquemas de IBE, Boneh e Franklin IBE [BF01], Sakai e KasaharaIBE [SK03] e Boneh e Boyen IBE [BB04]. Estes protocolos permitem manter em segredo a chaveprivada do utilizador dos nodos PKG sem comprometer a sua eficincia.

    Os esquemas de HIBE apresentados anteriormente podem tambm ser utilizados para reduzir o

    problema de custdia de chaves, dividindo-a por diferentes nveis hierrquicos. Os utilizadoresobtm a sua chave privada do PKG correspondente em vez de obterem diretamente a chave doPKG raiz.

    2.5 Solues Existentes

    A ideia de Shamir foi inovadora, mas foi o importante avano de Boneh e Franklin [BF01],apresentado em 2001, que realmente impulsionou a criao de novos esquemas de IBC de cifrae assinatura e a consequente criao de bibliotecas para a implementao destes esquemas eprimeiras solues criptogrficas comerciais baseadas nestes.

    2.5.1 Solues Comerciais

    Em 2002 o avano tecnolgico de Boneh e Franklin tornou-se na base para a criao da empresaVoltage Security por trs dos alunos de Boneh: Rauker, Kacker e Appenzeller. Um ano depoisem 2003 a Voltage Security lana o Voltage SecureMail [VSa], uma soluo de cifragem deemail (com suporte para as principais aplicaes e servios de mail, como por exemplo Outlook,Hotmail, Yahoo e Gmail) que se baseia no esquema IBE de Boneh e Franklin para garantir o enviode mensagens de forma segura, sem as dificuldades e as despesas de uma soluo tradicional,baseada em certificados. Esta soluo baseia-se em usar o email como chave pblica (Ver Figura2.4) para cifrar e enviar email de forma segura:

    Passo 1: Alice cifra o email usando o endereo de email do Bob, [email protected], como chavepblica;

    Passo 2: Quando o Bob recebe a mensagem, autentica-se ao Key Server ou PKG. O PKGcontacta um servio de autenticao externa para autenticar o Bob;

    Passo 3: Depois de o Bob estar autenticado junto do PKG, o PKG envia a chave privadado Bob, com a qual ele pode decifrar a mensagem. Esta chave privada pode ser utilizadapara decifrar todas as futuras mensagens recebidas pelo Bob.

    Algumas estatsticas [VSb] do Voltage SecureMail em 2011 incluam 50 milhes de utilizadoresmundiais (com projeo de 100 milhes em 2014), estimativa de aproximadamente mil milhesde emails cifrados e enviados em 2011. Um tero das 20 maiores companhias pblicas mundiais

    usavam esta soluo como standard para o envio de emails seguros.

    18

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Figura 2.4: Esquema de IBE para email da Voltage Security

    Investigadores da Hewlett Packard (HP) [MBDH] desenvolveram um sistema de informao paraconfidencialidade e privacidade de mensagens baseado em IBE (esquema de Boneh e Franklin)num contexto de servios de sade, como hospitais e outras organizaes. Este sistema foiaplicado para avaliao num contexto real, com o objetivo de fornecer uma alternativa segurae simples aos esquemas tradicionais de PKI.

    Esta soluo foi aplicada numa infraestrutura j existente, com requisitos predefinidos, no-meadamente a utilizao de clientes e servidores de mail e mecanismos de autenticao pr-existentes. O sistema em si consiste na modificao da infraestrutura de email para permitiro envio de mensagens confidenciais entre utilizadores da intranet do servio de sade. Assim,permite o envio de mensagens confidenciais para endereos e listas de email acessveis pordiferentes tipos de utilizadores, com diferentes papis e direitos dentro da organizao, ondeapenas utilizadores com o papel necessrio (selecionado pelo remetente) dentro da organizao

    tm acesso ao contedo do email.

    Outras solues de email existentes baseadas em IBE incluem a soluo FortiMail [For] daempresa Fortinet e a Trend Micro Email Encryption [TM] da empresa Trend Micro baseado noesquema de Sakai e Kasahara [SK03]. De notar igualmente a soluo desenvolvida pela empresa

    Gemalto [Gem] que consiste no primeiro sistema de IBE para smartcards, baseado no esquemade Boneh e Franklin.

    2.5.2 Bibliotecas

    Existem vrias bibliotecas open source disponveis que auxiliam na implementao de esquemasde assinatura e cifra baseados em IBC em vrias linguagens de programao, nomeadamentebibliotecas para a criao e utilizao de curvas elpticas:

    PBC Library [Lyn08] - biblioteca para a linguagem C desenvolvida por Ben Lynn, um ex-aluno de Boneh, com vrias solues para esquemas IBE publicadas. Contm vrias im-plementaes e exemplos de esquemas de IBS e IBE, e vrios programas para gerao de

    19

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    curvas elpticas.

    jPBC [DCI11] - biblioteca para a linguagem Java, consiste num port e num wrapper da bi-blioteca PBC Library. Corre na plataforma Android, sem ser necessria qualquer alterao biblioteca. Tal como a PBC Library, inclui vrios exemplos de esquemas.

    MIRACL [Cer] - biblioteca para as linguagens C e C++, criada pela empresa Shamus Softwaree adquirida em 2011 pela empresa CertiVox. Tem como principal caracterstica o fato decorrer em vrios ambientes, incluindo plataformas mveis.

    Charm Crypto [AGM+13] - biblioteca para a linguagem Python que tem por base m-dulos em linguagem C. Foi desenhada para minimizar o tempo de desenvolvimento e acomplexidade do cdigo.

    2.6 Concluses

    Foram referidas vrias tecnologias ao longo deste captulo. O Carto de Cidado e as suas fun-cionalidades como documento de identificao eletrnico e smartcard, permitem ao cidadoidentificar-se de forma segura perante os servios informatizados, atravs dos mecanismos deautenticao e a assinatura de mensagens e documentos eletrnicos.

    Foi abordada igualmente a criptografia sobre curva elptica e a sua aplicao em sistema crip-togrficos baseados em identidades. Um sistema criptogrfico baseado em identidade, permiteque qualquer par de utilizadores possa comunicar entre si de forma segura, sem necessidade detroca prvia de chaves pblicas ou de certificados e sem a necessidade de manter repositriosde chaves pblicas. A simplicidade deste tipo de sistemas, elimina a necessidade da utilizaode certificados, listas de revogao e de estruturas caras e complexas, associadas a sistemasPKI. Foram apresentados igualmente os problemas em aberto, inerentes deste tipo de sistemas,como a revogao e a custdia de chaves.

    O objetivo deste captulo prende-se utilizao e combinao das solues e tecnologias apre-

    sentadas na criao de um prottipo de uma arquitetura criptogrfica para ficheiros, que pre-

    tende ser inovadora, segura, vivel, simples de implementar e fcil na sua utilizao, para outilizador comum. Esta arquitetura no pretende ser um concorrente s vrias solues exis-tentes para infraestruturas criptogrficas, desenvolvidas por grandes organizaes, mas sim

    apresentar-se como um sistema slido e seguro, capaz de demonstrar a viabilidade da nossa

    soluo para utilizao por pequenas organizaes.

    20

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Captulo 3

    Implementao dos Algoritmos

    3.1 Introduo

    Neste captulo feita uma descrio dos dois esquemas de IBE implementados, so apresentadas

    as fases da implementao destes esquemas em linguagem C, bem como os passos necessriospara a utilizao dos mesmos na linguagem .NET C#. feita uma comparao dos dois esquemasem termos de anlise de performance computacional e tamanho do texto cifrado dos algoritmos. tambm apresentada uma biblioteca baseada no esquema selecionado na anlise para .NETC# para a criao de infraestruturas de cifra e decifra de ficheiros e recuperao e gerao dechaves privadas.

    3.2 Esquemas de IBE e IBS

    De forma a criar uma arquitetura de cifra e decifra de ficheiros baseada em IBE, e prottiposiniciais, foi necessrio numa fase inicial a seleo de um esquema de IBE seguro, eficiente e ade-quado s necessidades da arquitetura. Foram selecionados dois esquemas, o esquema Fullident(BF Fullident) proposto por Boneh e Franklin [BF01] em 2001, e Multi-Receiver IBE (Emribe),proposto por Baek et al. [BSNS05] em 2005. A escolha do esquema BF Fullident, justificadapela importncia do mesmo para a literatura de IBE. No caso do esquema Emribe, a escolhaincidiu sobre este, pois implementa a cifra de uma mensagem para n recetores/utilizadores pordefeito e de forma eficiente.

    Foi igualmente selecionado um esquema de assinatura IBS. Esta escolha incidiu sobre o esquemacriado por Paterson [Pat02] em 2002 (Paterson IBS) pelo fato de utilizar as mesmas primitivascomputacionais subjacentes aos esquemas BF Fullident e Emribe, isto possibilita que possamser usados os mesmo parmetros de sistema e as mesmas chaves.

    3.2.1 Esquema BF Fullident

    Setup: Dado um nmero primo q, o algoritmo funciona da seguinte forma:

    Passo 1: Selecionar dois grupos G1, G2 de ordem q, e um mapa bilinear que satisfaa :G1 G1 G2. Escolher um gerador aleatrio P G1.

    Passo 2: Escolher um nmero aleatrio s Zq e calcular Ppub = s P.

    Passo 3: Escolher uma funo de hash criptogrfico H1 : {0,1} G1. Escolher uma funode hash criptogrfico H2 : G2 {0,1}n para algum n. O espao da mensagem cifrada C= G1 {0,1}n. Os parmetros do sistema so params = q,G1,G2,,n,P,Ppub, H1,H2 . Amaster-key s Zq.

    Passo 4: Escolher uma funo de hash criptogrfico H3 : {0,1}n {0,1}n Zq e uma funode hash criptogrfico H4 : {0,1}n {0,1}n.

    21

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Smbolo Significado

    Z grupo de inteiros

    Zq grupo {0,...,q-1} sob adio de mdulo q

    Z+q grupo multiplicativo de inteiros mdulo nmero primo q

    G grupo de ordem primo

    G algoritmo gerador que satisfaz a hiptese de Diffie-Hellman (DH) Bilinear

    dID chave privada de ID

    F ID chave pblica de ID

    s chave privada / chave mestra do sistema

    P, Ppub parmetro pblico de sistema

    Hi funo de hash

    Tabela 3.1: Notaes do Esquema BF Fullident

    Extract: Para uma dada string ID {0,1} o algoritmo: (1) calcula F ID = H1(ID) G1, e (2)define a chave privada como dID = s F ID onde s a chave privada/chave mestra do sistema.

    Encrypt: Para cifrar a mensagem M {0,1}n com a chave pblica ID: (1) calcular F ID G1, (2)escolher um nmero aleatrio {0,1}n, (3) calcular r = H3(,M) e definir a mensagem cifradacomo:

    C = r P, H2(grID), M H4() onde gID = (FID,Ppub) G2

    Decrypt: Seja C = U,V,W C uma mensagem cifrada usando a chave pblica ID, se U / G1rejeitar a mensagem cifrada. Para decifrar C usando a chave privada dID G1:

    1. Calcular V H2((dID,U)) = .

    2. Calcular W H4() = M.

    3. Definir r = H3(, M). Verificar se U = r P. Caso no se verifique, rejeitar a mensagemcifrada.

    4. M a mensagem decifrada resultante de C.

    A cifra de M, W = M H4() pode ser substituda por W = EH4()(M) onde E um esquema decifra simtrica.

    3.2.2 Esquema Emribe

    Setup: Dado um nmero primo q, o algoritmo funciona da seguinte forma:

    Passo 1: Selecionar dois grupos G1 e G2 de ordem q, e um mapa bilinear que satisfaa :G1 G1 G2.

    Passo 2: Escolher dois nmeros aleatrios Q G1 e P G1.

    Passo 3: Escolher um nmero aleatrio s Zq e calcular Ppub = s P. A master-key s.

    Passo 4: Selecionar as funes de hash criptogrfico H1 : {0,1} G1, H2 : G2 {0,1}n

    para algum n, e H3 : G1 G1 G2 {0,1}n {0,1}n.

    22

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Smbolo Significado

    Z grupo de inteiros

    Zq grupo {0,...,q-1} sob adio de mdulo q

    Z+q grupo multiplicativo de inteiros mdulo nmero primo q

    G grupo de ordem primo

    G algoritmo gerador que satisfaz a hiptese de DH Bilinear

    dIDi chave privada de IDi

    F IDi chave pblica do IDi

    s chave privada / chave mestra do sistema

    P, Ppub, Q parmetro pblico de sistema

    Hi funo de hash

    Tabela 3.2: Notaes do Esquema Multi-Receiver IBE

    Extract: Para uma dada string ID {0,1}, calcular dID = s F ID G1, em que F ID a chavepblica, calculada como F ID = H1(ID) G1. Devolver dID como chave privada associada iden-tidade ID.

    Encrypt: Para cifrar a mensagemM {0,1}n commltiplas identidades/chaves pblicas (ID1,...,IDn),escolher dois nmeros aleatrios, R G2 e r Zq, e calcular C = (U, V1,...,Vn,W1,W2,L,) deforma a que

    (U, V1, ... ,Vn,W1,W2,L,)= (r P, r F ID1 + r Q,...,r F IDn + r Q, (Q,Ppub)rR, M H2( R),

    H3(R,M,U,V1, ... ,Vn,W1,W2,L))

    Devolve C como mensagem cifrada, garante a integridade da sequncia inteira da mensagemcifrada e L contm informao sobre as identidades para o qual foi cifrada. W2 = M H2(R)pode ser substituda por W2 = EH2(R)(M) onde E um esquema de cifra simtrica.

    Decrypt: Para decifrar a mensagem para uma dada identidade IDi em que i [1,n]: analisar Ccomo (U, FID1, ... ,FIDn,W1,W2,L,), e utilizando a informao presente em L encontrar o FIDiapropriado. Calcular R = (U,dIDi )(Ppub,FIDi )

    W1, M =W2 H2(R), e = H3(R,M,U,V1, ... ,Vn,W1,W2,L)).Se = aceitar M como mensagem decifrada, caso contrrio, rejeitar.

    3.2.3 Esquema de Assinatura Paterson IBS

    Setup: Dado um nmero primo q, o algoritmo funciona da seguinte forma:

    Passo 1: Selecionar dois grupos G1 = P e G2 de ordem q, e um mapa bilinear que satisfaa : G1 G1 G2.

    Passo 2: Escolher um nmero aleatrio P G1.

    Passo 3: Escolher um nmero aleatrio s Zq e calcular Ppub = s P. A master-key s.

    Passo 4: Selecionar as funes de hash criptogrfico H1 : {0,1} G1, H2 : {0,1} Zq,e H3 : G1 Zq.

    23

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Smbolo Significado

    Z grupo de inteiros

    Zq grupo {0,...,q-1} sob adio de mdulo q

    Z+q grupo multiplicativo de inteiros mdulo nmero primo q

    G grupo de ordem primo

    G algoritmo gerador que satisfaz a hiptese de DH Bilinear

    dIDi chave privada de IDi

    F IDi chave pblica do IDi

    s chave privada / chave mestra do sistema

    P, Ppub parmetro pblico de sistema

    Hi funo de hash

    Tabela 3.3: Notaes do Esquema de Assinatura Paterson IBS

    Extract: Para uma dada string ID {0,1}, calcular dID = s H1(ID) G1. Devolver dID comochave privada associada identidade ID.

    Sign: Para assinar a mensagem M {0,1}n, escolher o nmero aleatrio r Zq (r1 o inversode r em Zq), e calcular a assinatura de M como o par (R,S) G1 G1, onde:

    R = r P, S = r1 (H2(M) P + H3 (R) dID)

    Verify: Para verificar a assinatura (R,S) na mensagem M, calculamos (R,S) e comparamos com(P,P)H2(M) (Ppub, F ID)H3(R) (onde F ID H1(ID) G1). A assinatura aceite se estes dois valorescoincidirem em G2, pois se (R,S) for uma assinatura vlida em M, temos:

    (R,S) = (r P, r1 (H2(M) P + H3 (R) dID))= (P, H2(M) P + H3 (R) dID)= (P, P)H2(M) (Ppub, F ID)H3(R)

    3.3 Implementao

    De forma a implementar os esquemas apresentados, houve necessidade de recorrer a umabiblioteca que permitisse tanto a gerao de curvas elpticas como as operaes sobre estas,

    como por exemplo pairings. Para tal utilizmos a biblioteca para linguagem C apresentada naSeco 2.5.2), PBC Library [Lyn08].

    3.3.1 Implementao em C

    A implementao dos esquemas de IBE foi feita numa primeira fase sob a forma de aplicaesteste em linguagem C, exclusivamente para a cifra e decifra de pequenas mensagens. Numasegunda fase foram criados wrappers para a implementao dos esquemas (IBE e IBS) na lingua-gem .NET C# e posteriormente uma biblioteca nesta linguagem com o esquema de IBE escolhido,para utilizao no desenvolvimento da arquitetura de cifra e decifra de ficheiros baseada emIBC, com o CC como mecanismo de autenticao do utilizador no PKG.

    24

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    3.3.1.1 Aplicaes de Teste

    Foram implementados ambos os esquemas de IBE em aplicaes simples de funcionalidade

    limitada, para demonstrar a cifra de uma mensagem curta com uma identidade X e a respetivadecifra da mensagem, utilizando a chave privada correspondente a essa identidade. Estasaplicaes geram novos parmetros de sistema sempre que so executadas, servindo unicamentecomo teste aos wrappers e ao respetivo esquema.

    3.3.1.2 Wrapper DLL

    A ideia inicial do projeto foi adicionar capacidades criptogrficas ao CC usando mtodos de IBC.

    Decidiu-se usar .NET C# como linguagem de desenvolvimento e usar assim as bibliotecas .NETde desenvolvimento para o CC.

    Uma vez que, tanto quanto do nosso conhecimento, no existem bibliotecas para C# que per-mitam a utilizao de curvas elpticas e efetuao de pairings entre elementos, foi necessriocriar um wrapper sob a forma de uma Dynamic-Link Library (DLL) que nos permitisse usar asfunes da biblioteca PBC Library em C#.

    pkg.dll

    Setup

    Generate s (master key) s = generateNewMasterKey(curve, (...))

    Generate P parameter P = generateNewPparam(curve, (...))

    Calculate Ppub = s P Ppub = getPpub(curve, P, s, (...))

    Extract

    Generate dID = s F ID dID = getPrivateKey(curve, FID, s, (...))

    client.dll

    Encrypt

    Get element r r = encryptGetR(curve, H3(,M), (...))

    Calculate U = r P U = encryptCalcU(curve, P, r, (...))

    Calculate H2(grID) H2 = encryptCalcH2(curve, r, FID, Ppub, (...))

    Decrypt

    Calculate H2((dID,U)) r = decryptCalcH2(curve, dID, U, (...))

    Tabela 3.4: Wrappers para PKG e cliente do esquema BF Fullindent (ver Anexo A.1)

    Foram criados dois wrappers para os dois esquemas de IBE apresentados, BF Fullident e Em-ribe (ver Anexos A.1 e A.2). Estes wrappers esto divididos em dois mdulos correspondentesao utilizador e ao PKG e implementam exclusivamente as operaes sobre curva elptica no

    esquema (as restantes operaes podem ser efetuadas normalmente em linguagem C#) neces-srias pelo utilizador e pelo PKG respetivamente (o utilizador no necessita das funes do PKGnem vice-versa1).

    1A segurana do esquema no dependente do acesso do utilizador s funes presentes no wrapperdo PKG, a separao em dois wrappers tem como objetivo simplificar a implementao de um sistema IBE.

    25

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Por si s os wrappers no implementam a cifra e decifra de mensagens, mas permitem autilizao das funes necessrias para a criao de um sistema com essas capacidades em C#.Assim temos dois DLLs, um para implementao numa aplicao cliente e outro para utilizaono PKG, cada um com as funes especificas necessrias para efetuar operaes sobre curvaselpticas.

    Nas Tabelas 3.4 e 3.5 possvel observar a correspondncia para o esquema BF Fullident eEmribe, respetivamente entre os clculos necessrios sobre a curva elptica nas quatro fases(ver Seco 3.2.1) e as operaes correspondentes no wrapper. Assim, as funes no wrapperdo PKG tm como fim gerar os parmetros pblicos e privados do sistema (Setup) e gerar achave privada (Extract). Por sua vez, o wrapper do cliente/utilizador tem por funo gerar oselementos necessrios para a cifra e decifra (Encrypt e Decrypt).

    pkg.dll

    Setup

    Generate s (master key) s = generateNewMasterKey(curve, (...))

    Generate P parameter P = generateNewPparam(curve, (...))

    Generate Q parameter Q = generateNewQparam(curve, (...))

    Calculate Ppub = s P Ppub = getPpub(curve, P, s, (...))

    Calculate (Q,Ppub) (Q,Ppub) = calcpairQPpub(curve, Q, Ppub, (...))

    Extract

    Generate dID = s FIDi dID = getPrivateKey(curve, FIDi , s, (...))

    client.dll

    Encrypt

    Generate random element r r = genSmallR(curve, (...))

    Generate random element R R = genBigR(curve, (...))

    Calculate U = r P U = calcU(curve, P, r, (...))

    Calculate rQ = r Q rQ = calcrQ(curve, Q, r, (...))

    Calculate V = r F IDi + r Q V = calcV(curve, r, FIDi , rQ, (...))

    Calculate W1 = (Q,Ppub)r R W1 = calcW1(curve, (Q,Ppub), r, R, (...))

    Decrypt

    Calculate R =(U,dIDi )

    (Ppub,FIDi )W1 R = decryptCalcR(curve, U, dID, Ppub, FIDi , W1, (...))

    Tabela 3.5: Wrappers para PKG e cliente do esquema Emribe (ver Anexo A.2)

    A utilizao destes wrappers num sistema real, comea pela escolha ou gerao de uma curvaelptica por parte do PKG. Depois da escolha da curva pode ser gerada pelo PKG a chave privada

    (s) para ambos os esquemas, os parmetros pblicos, P e Ppub para o esquema BF Fullident e P,Q, Ppub e (Q,Ppub) (este clculo prvio evita que o utilizador efetue uma operao extra durantea cifra) para o esquema Emribe. A definio da curva elptica utilizada pelo PKG, bem como osparmetros pblicos, tm que ser disponibilizados ao utilizador/aplicao cliente, enquanto que

    a chave privada ser do conhecimento exclusivo do PKG, nela depender a segurana do sistema.

    Para alm dos wrappers descritos, foi ainda criado outro, para a implementao do esquema

    26

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    de IBS, Paterson IBS (ver Anexo A.3). Este wrapper consiste num nico mdulo e utilizadoexclusivamente pelo utilizador. Como os parmetros e as chaves necessrias para assinatura everificao neste esquema utilizam as mesmas primitivas computacionais que o esquemas BFFullident e Emribe, podemos utilizar os parmetros de sistema e as chaves privadas geradaspelo PKG de um destes esquemas. Este aspeto torna-se bastante conveniente, pois permiteadicionar propriedades de assinatura e verificao de mensagens no lado do utilizador/cliente,a um sistema que j tenha implementado um destes esquemas IBE, de forma simples e eficientesem necessidade de efetuar qualquer alterao no PKG existente.

    sign.dll

    Setup

    Generate r r = generateSignr(curve, (...))

    Calculate R element R = calcSignR(curve, r, P, (...))

    Calculate S element S = calcSignS(curve, r, P, H2(M), dID, R, (...))

    Verify

    Verify Signature ver = verifySign(curve, P, Ppub, H2(M), FID, R, S, (...))

    Tabela 3.6: Wrapper para assinatura, esquema Paterson IBS (ver Anexo A.3)

    Na Tabela 3.6 possvel observar a correspondncia para o esquema Paterson IBS, entre osclculos necessrios sobre a curva elptica para a criao e verificao da assinatura e asoperaes correspondentes no wrapper.

    3.3.2 Implementao em .NET C#

    Partindo dos wrappers descritos anteriormente, desenvolvemos aplicaes para os dois esque-mas em .NET C# com capacidades para cifrar e decifrar ficheiros. Para permitir estas capaci-dades, e uma vez que no vivel cifrar um ficheiro com IBE, foi necessrio implementar umesquema de criptografia hbrida, desta forma gerada uma chave simtrica aleatria de 256bits com a qual cifrado o ficheiro com Advanced Encryption Standard (AES) e por sua vez achave simtrica cifrada com IBE utilizando a identidade escolhida.

    Figura 3.1: Representao de um ficheiro cifrado com o esquema BF Fullident

    A cifra e decifra envolve elementos algbricos, os quais tm de ser passados com o ficheiro

    cifrado, para tal houve necessidade de definir um cabealho para o ficheiro, que inclusse estes

    elementos e outra informao necessria no processo de decifra do ficheiro.

    27

  • Aplicaes de Criptografia Baseada em Identidade com Cartes de Identificao Eletrnica

    Figura 3.2: Representao de um ficheiro cifrado com o esquema Emribe

    Na Figura 3.1 e 3.2 possvel observar uma representao dos ficheiros cifrados (com o res-petivo cabealho) para os esquemas BF Fullident e Emribe respetivamente. Assim, para umficheiro cifrado com o esquema BF Fullident temos o campo identifier, que, tal como o nomeindica, funciona como identificador do tipo de ficheiro. Neste caso, a designao escolhida foi"ibeprototype", o campo lengths contm informao sobre os tamanhos dos campos seguintes nocabealho, no campo id est contida a informao sobre a identidade/chave pblica com a qualest cifrado o ficheiro, o campo extension consiste na informao sobre a extenso do ficheirooriginal, os campos U, V, W e IV consistem em informao sobre os elementos necessrios parao processo de decifra do ficheiro, por ltimo o campo encrypted file contm o contedo doficheiro cifrado com o algoritmo AES.

    Estas aplicaes em C# so um passo para a criao da biblioteca para a implementao desistemas de cifra e decifra de ficheiros baseados em IBE, descrita mais frente neste captulo.

    3.4 Anlise de Eficincia Computacional

    Uma das caractersticas pretendidas na biblioteca e no sistema de IBE com o CC, foi a funcio-nalidade de cifra de um ficheiro para mltiplas identidades. Enquanto que o esquema Emribeimplementa esta funcionalidade por defeito (sendo esta o ponto forte do esquema), no es-

    quema BF Fullident necessrio cifrar a mensagem mltiplas vezes, criando uma composion-sequencial do esquema original (n como o nmero de identidades/vezes que a mensagem sercifrada), assim o algoritmo de cifra descrito na Seco 3.2.1 para n identidades ser:

    C = riP, H2(grIDi), M H4() onde gIDi = (FIDi,Ppub) G2

    onde IDi corresponde a uma identidade e i [1,n]. Assim para a cifra de uma mensagem comeste esquema para n identidades, temos n operaes de pairing

    (para calcular gIDi = (FIDi,Ppub)

    ),

    nenhuma adio, n multiplicaes no grupo G1 (para calcular riP) e n exponenciaes no grupoG2 (de forma a calcular grIDi).Para a cifra de uma mensagem para n identidades no esquema Emribe no efetuado qualquerpairing

    (o pairing (Q,Ppub) pr-calculado durante a fase de Setup e utilizado como parmetro

    pblico), efetuada uma exponenciao no grupo G2

    (para calcular (Q,Ppub)r

    ), so efetuadas

    n + 3 multiplicaes no grupo G1(rQ, rP e (Q,Ppub)rR uma vez e rH1(IDi) n vezes

    )e n adies

    no grupo G1(para calcular rH1(IDi) + rQ

    ).