A know your customer solution over the Portuguese citizenship card

Detalhes bibliográficos
Autor(a) principal: Tavares, Hermínio Miguel Sobral
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/39575
Resumo: Trabalho de projecto de mestrado, Engenharia Informática (Arquitetura, Sistemas e Redes de Computadores) Universidade de Lisboa, Faculdade de Ciências, 2019
id RCAP_f54e3cfe08418ed309318926c01e7540
oai_identifier_str oai:repositorio.ul.pt:10451/39575
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling A know your customer solution over the Portuguese citizenship cardKnow Your CustomerWalliDX.509blockchainidentidadeTrabalhos de projecto de mestrado - 2019Departamento de InformáticaTrabalho de projecto de mestrado, Engenharia Informática (Arquitetura, Sistemas e Redes de Computadores) Universidade de Lisboa, Faculdade de Ciências, 2019Nos dias que correm, temos observado avanços significativos nas diversas áreas da informática. Não obstante, ainda é frequente encontrarmos, nas soluções existentes no mercado, aquelas que exigem processos manuais e por vezes morosos, como por exemplo, os relacionados com a atividade de adesão, engajamento, ou, usando o termo técnico, Know Your Customer (KYC). Estes processos consistem em identificar e validar clientes ou membros de uma instituição. Se um cidadão se deslocar a um banco para abrir uma conta ou pedir um empréstimo, é obrigado a entregar um conjunto de documentos e provas da sua identidade, documentação essa que será alvo de análise humana. Em média, de acordo com estudos efetuados, os atuais mecanismos de KYC consomem às grandes empresas e instituições (com cerca de 10 mil milhões de dólares de lucro anuais) perto de 150 milhões de dólares. Para além disso, em média, o custo de um processo que envolva mecanismos de KYC nos trâmites atuais, varia entre os 15 e os 20 dólares. Adicionalmente, dado que estas tarefas são realizadas manualmente por olho humano, estão – como seria de esperar – sujeitas a erros, assim como a um maior consumo de tempo em relação ao comportamento de tarefas automatizadas. Hoje em dia num mercado globalizado e extremamente competitivo, é fulcral que estas empresas e instituições sejam o mais eficientes possível. Neste caso concreto, o facto destas tarefas de KYC estarem a ser realizadas manualmente, prejudica em muito a eficiência destas entidades, uma vez que poderiam realocar este esforço noutros cenários que lhes poderiam ser mais vantajosas. De forma a agilizar estes processos, a Caixa Mágica Software serviu de incubadora para um projeto denominado WalliD. O WalliD é um protocolo open source que tem como objetivo guardar identidades na blockchain Ethereum. Embora já existam algumas soluções deste género, este protocolo garante também a segurança e a confiança destas identidades, desde que as mesmas tenham associado um certificado X.509 confiável. Embora esta solução esteja assente numa blockchain, a identidade do cidadão é cifrada com recurso a criptografia assimétrica, possibilitando que apenas o próprio tenha acesso aos dados. Desta forma, o cidadão é livre de deliberar a quem facultará os seus dados pessoais para efeitos de verificação da sua identidade. A utilidade deste protocolo é notória, especialmente porque permite de forma fácil e transparente a implementação de um sistema de KYC automatizado, eliminando assim o erro humano e automatizando processos que anteriormente eram manuais. Este trabalho retrata o desenvolvimento do primeiro KYC assente no protocolo WalliD utilizando o Cartão de Cidadão português. Este sistema de KYC resulta numa arquitetura genérica e modular que possibilite, através de testes unitários, testar as funcionalidades implementadas, assim como adicionar novas identidades para além do Cartão de Cidadão português, com o mínimo de esforço possível. Para isso, foram utilizadas técnicas de injeção de dependências, uma vez que promovem a construção de módulos com uma elevada independência entre eles. Este sistema de KYC contempla três grandes validações. Em primeiro lugar, a validação do certificado existente no Cartão de Cidadão português. Esta validação permite identificar casos em que o documento de identificação já se encontra expirado, revogado, ou que não seja confiável por impossibilidade da criação de uma cadeia de certificados de confiança. Uma vez que a identidade dos utilizadores é guardada na blockchain, o passo seguinte resume-se à verificação de uma assinatura criptográfica disponível pelo Cartão de Cidadão português, aplicada à wallet address da conta Ethereum do utilizador em questão. A verificação desta assinatura é realizada com recurso ao certificado verificado no passo anterior. Finalmente, é necessário aferir a validade dos atributos de identidade e de morada do utilizador. Esta validação é efetuada recorrendo a um ficheiro existente no Cartão de Cidadão português denominado de Document Security Object (SOD). Este ficheiro contém um conjunto de hashes que são gerados através da concatenação de todos os atributos de identificação e de morada do utilizador. Seguidamente, são assinados criptograficamente de forma a serem verificáveis através de uma chave pública existente num certificado digital residente no ficheiro SOD. No entanto, a verificação destes atributos só se considerará válida caso este certificado seja confiável. Para isso, é necessário verificar se o mesmo não se encontra expirado, nem revogado e se é possível construir uma cadeia de certificados de confiança. Para além da definição da arquitetura, este trabalho também resultou numa implementação piloto para o já referido Cartão de Cidadão português. Esta solução foi realizada através da linguagem de programação Java, e a razão da escolha desta linguagem prendeu-se essencialmente por dois motivos, (i) é uma linguagem open source; (ii) de forma a facilitar a implementação de certas funcionalidades, recorreu-se a uma biblioteca também open source denominada de Bouncy Castle. Visto que esta biblioteca apenas está disponível para C# e Java, optou-se uma vez mais por esta última. Ainda de modo a que esta solução fosse o mais modular possível, foi utilizado um padrão de injeção de dependências através de uma biblioteca desenvolvida pela Google denominada de Guice. Desta forma, foi possível construir uma solução que abstrai na totalidade o documento de identificação em questão (neste caso, o Cartão de Cidadão), garantindo assim que os módulos desenvolvidos sirvam para outros tipos de documentos. Adicionalmente, a utilização deste padrão facilitou o desenvolvimento de testes unitários. Atendendo às necessidades deste trabalho e da linguagem de programação utilizada, optou-se por gerar uma biblioteca no formato Java Archive (JAR). Assim, um programador poderá encapsular o serviço de KYC num web service, através de um servidor que responde com recurso a sockets, entre outras formas, para que não exista uma dependência relativamente à tecnologia utilizada. De forma a facilitar a instalação, manutenção e a escalabilidade deste serviço, este web service foi configurado numa imagem de Docker. Pretende-se, no final, que este trabalho dê resposta a quatro questões de investigação, nomeadamente, (i) se é possível verificar a identidade de uma pessoa através de uma blockchain; (ii) se com a utilização da blockchain é possível mitigar o uso descontrolado da nossa identidade, no sentido em que, ao facultarmos a nossa identidade para identificação de terceiros, perdemos o rasto completo do nosso documento de identificação; (iii) se através dos certificados digitais é possível aumentarmos a eficiência da forma como as identidades são verificadas, minimizando assim o erro humano; finalmente, (iv) se é possível, através de tarefas automatizadas, verificar identidades mais rapidamente, em contraponto com as tarefas realizadas atualmente de forma manual. Caso seja possível dar resposta a todas estas questões, a utilidade do protocolo do WalliD pode ser demonstrada através de um caso de uso, que neste caso envolve a entidade bancária fictícia denominada Credibank. Esta empresa tem como objetivo fornecer créditos aos seus clientes e, para tal, necessita de validar as suas identidades. Através do mecanismo de KYC desenvolvido neste trabalho, o Credibank poderá atuar somente como uma entidade online. Visto que o WalliD privilegia a metodologia open source, tanto o código da biblioteca desenvolvida, assim como, o código do web service, serão disponibilizados de forma open source, permitindo assim a melhoria continua assim como dos processos implementados. O trabalho descrito neste documento já conta com uma publicação científica na 9ª Conferência Internacional em Sistemas Inteligentes IEEE-TEMS realizada na Madeira, Portugal, no ano de 2018 com o título “WalliD: Secure your ID in an Ethereum Wallet”. Adicionalmente, encontra-se em processo de aprovação um segundo artigo na revista “IEEE Instrumentation and Measurement Magazine”, com o título “Instrumentation and Measurement context: From a methodological point of view”.At the present time we observe several improvements in many informatics topics. Despite that, we still find too many manual processes which could be automated such as the Know Your Customer (KYC) processes. The goal of these processes is to identify and validate current or future customers or members of an institution. As an example, trivial operations such as opening a bank account, at least in Portugal, is a task that in most of the cases is not able to be performed online. The process must be conducted in person, involving signing and delivering all documentation needed or uploading a set of documentation that needs to be analyzed and checked. Additionally, that personal documentation is manually verified by a bank employee, and of course this process can be subject to errors, resulting in further delays to the account approval. In order to solve these issues, Caixa Mágica Software, on its Startup Lab, developed and incubated a project called WalliD. WalliD is an open source protocol whose goal is to solve the type of issues aforementioned. This means that with the proposed solution, users are able to store their own identity in the Ethereum blockchain. Although the market already contains some solutions with similar purposes, WalliD brings trustworthiness to the users’ identities as long as they have a X.509 certificate attached. Despite having the user’s identity being stored in a blockchain, only the user himself has access to it because that data is encrypted using an asymmetric pair of keys. This solution gives the identity owner the ability to choose who, and when, an entity has access to his identity attributes. As an open source protocol, anyone can help improve it and verify how secure and simple it is. Developing KYC solutions based on WalliD could avoid human misbehaviors and speed up this kind of processes as well. This work describes the development of a KYC solution based on WalliD over the Portuguese Citizenship Card (PTCC).Coutinho, CarlosNunes, Maria Isabel Batalha Reis da Gama, 1961-Repositório da Universidade de LisboaTavares, Hermínio Miguel Sobral2019-09-20T14:22:57Z201920192019-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/39575TID:202292754enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T16:38:26Zoai:repositorio.ul.pt:10451/39575Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:53:26.340676Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv A know your customer solution over the Portuguese citizenship card
title A know your customer solution over the Portuguese citizenship card
spellingShingle A know your customer solution over the Portuguese citizenship card
Tavares, Hermínio Miguel Sobral
Know Your Customer
WalliD
X.509
blockchain
identidade
Trabalhos de projecto de mestrado - 2019
Departamento de Informática
title_short A know your customer solution over the Portuguese citizenship card
title_full A know your customer solution over the Portuguese citizenship card
title_fullStr A know your customer solution over the Portuguese citizenship card
title_full_unstemmed A know your customer solution over the Portuguese citizenship card
title_sort A know your customer solution over the Portuguese citizenship card
author Tavares, Hermínio Miguel Sobral
author_facet Tavares, Hermínio Miguel Sobral
author_role author
dc.contributor.none.fl_str_mv Coutinho, Carlos
Nunes, Maria Isabel Batalha Reis da Gama, 1961-
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Tavares, Hermínio Miguel Sobral
dc.subject.por.fl_str_mv Know Your Customer
WalliD
X.509
blockchain
identidade
Trabalhos de projecto de mestrado - 2019
Departamento de Informática
topic Know Your Customer
WalliD
X.509
blockchain
identidade
Trabalhos de projecto de mestrado - 2019
Departamento de Informática
description Trabalho de projecto de mestrado, Engenharia Informática (Arquitetura, Sistemas e Redes de Computadores) Universidade de Lisboa, Faculdade de Ciências, 2019
publishDate 2019
dc.date.none.fl_str_mv 2019-09-20T14:22:57Z
2019
2019
2019-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/39575
TID:202292754
url http://hdl.handle.net/10451/39575
identifier_str_mv TID:202292754
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134472449294336