255 research outputs found

    Copyright Notice

    Get PDF
    Using SHA2 Algorithms with Cryptographic Message Syntax This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS an

    Multiple Signatures in Cryptographic Message Syntax (CMS)

    Full text link

    Cryptographic Message Syntax (CMS) Symmetric Key Package Content Type

    Full text link

    Unicast UDP Usage Guidelines for Application Designers

    Get PDF
    Publisher PD

    A know your customer solution over the Portuguese citizenship card

    Get PDF
    Trabalho 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)

    Copyright Notice

    Get PDF
    Syntax for Binding Documents with Time-Stamps This document describes an envelope that can be used to bind a file (not necessarily protected by means of cryptographic techniques) with one or more time-stamp tokens obtained for that file, where "timestamp token " has the meaning defined in RFC 3161 or its successors. Additional types of temporal evidence are also allowed. The proposed envelope is based on the Cryptographic Message Syntax as defined in RFC 5652. Status of This Memo This document is not an Internet Standards Track specification; it is published for informational purposes. This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained a

    Authenticating wireless nodes in building automation : challenges and approaches

    Get PDF
    Modern wireless nodes in building automation systems interconnect natively through the Internet Protocol (IP). As a result, the emerging coalescence of existing IT networks with networks on the field level presents many challenges. Specifically, mutual authentication of devices in an IT environment is one of the main issues. Moreover, this mutual authentication has to take place with embedded devices in the field that feature manifold constraints and require a simple but secure provisioning. The Fairhair Alliance is in the process of standardizing an autonomic secure bootstrapping process to tackle these challenges. The paper outlines this automated approach and shows the successful implementation of a real-life prototype. This demonstrates that the required cryptographic functions and procedures are feasible on a constrained low power device
    corecore