La infraestructura de clave pública (PKI) es un componente necesario para el funcionamientoudde las comunicaciones seguras modernas. Esta infraestructura permiteuda los miembros participantes establecer claves criptográficas para sus destinatarios,udmanteniendo relaciones de alta integridad entre usuarios (nombres, direccionesudu otros identificadores) y las claves públicas utilizadas para cifrar y verificar losudmensajes.udLos sistemas PKI existentes presentan diferentes concesiones con respecto audpropiedades de seguridad. La mayoría de diseños más udexibles suelen ser centralizados,udlo que facilita la actualización de claves y proporciona una buena disponibilidad.udDichos diseños, sin embargo, requieren que los usuarios confien en una fuente de autoridadudcentralizada, poniendo a ésta autoridad en una posición privilegiada paraudvigilarlos. Por otro lado, los enfoques actuales que alivian problemas de seguridadudderivados de la centralización están limitados en términos de udexibilidad y capacidadudpara revocar y actualizar rápidamente las claves. Por lo tanto, no son adecuadosudpara aplicaciones modernas que requieran cambios frecuentes de claves por razonesudde seguridad.udEn este thesis proponemos un diseño de PKI descentralizado, que llamamosudClaimChain, donde cada usuario o dispositivo mantiene repositorios de afirmacionesudacerca de sus propias claves públicas y las de sus contactos. La alta integridadudde los repositorios almacenando dichas afirmaciones se mantene mediante el uso deudestructuras autenticadas, cadenas de hash y árboles Merkle; y su autenticidad y noudrepudio gracias a el uso de firmas digitales. Introducimos el concepto de referenciasudcruzadas sobre cadenas de hash como una manera de verificable de atestiguar sobreudlos estados de otros usuarios. ClaimChain permite detectar el compromiso deudclaves, que se manifiestan como bifurcaciones de las cadenas de hash, e implementaruddiversas políticas sociales para derivar decisiones sobre el estado más reciente de losudusuarios en el sistema.udLa realizaction de afirmaciones sobre las claves de otras personas introduce unaudproblema de privacidad inexistente en diseños centralizados de PKI. Esta informaciónudpuede revelar el grafo social, y a veces incluso patrones de comunicación. Para resolver este problema, usamos funciones aleatorias verificables criptográficamenteudpara obtener identificadores privados, que son realeatorizados en cada actualizaciónudde las cadenas de los usuarios. Esto permite publicar de manera abierta y verificadaudafirmaciones que solo pueden ser leídas por usuarios autorizados, garantizando laudprivacidad del grafo social. Además, la construcción específica de los árboles Merkleuden ClaimChain, junto a el uso de funciones aleatorias verificables, asegura que losudusuarios no pueden engañar acerca de los estados de otras personas. ClaimChainudes udexible con respecto a las opciones de despliegue, permitiendo despliegues totalmenteuddescentralizados, así como modos de operación centralizados, federados eudhíbridos.udHemos evaluado los requisitos computacionales y de memoria de ClaimChainudusando una implementación prototipo. También hemos simulado el udflujo del sistemaudutilizando el conjunto de datos de Enron, compuesto del historial de correosudelectrónicos reales en el contexto de una organización, con el fin de evaluar la eficaciaudde la propagación de material clave en un entorno totalmente descentralizado.---ABSTRACT---Public key infrastructure (PKI) is a necessary component for the functioning ofudmodern secure communications. It allows communicating parties to establish cryptographicudkeys for their correspondents by maintaining high-integrity bindings betweenudusers (names, addresses, or other identifiers) and public keys used to encryptudand verify messages.udExisting PKI systems provide different trade-offs between security properties.udMost designs tend to be centralized, which eases the update of keys and providesudgood availability. A centralized design, however, requires users to trust the centralizedudsource of authority for honestly providing correct public keys for requestedudidentities, and puts such authority in a privileged position to perform surveillanceudon users. On the other hand, current approaches that alleviate these issues are limitedudin terms of udexibility and capability to rapidly revoke and update keys. Thus,udthey are not suitable for modern applications that require frequent key changes forudsecurity reasons.udWe envision a decentralized PKI design, that we call ClaimChain, where eachuduser or device maintains repositories of claims regarding their own key material, andudtheir beliefs about public keys and, generally, state of other users of the system. Highudintegrity of the repositories is maintained by virtue of storing claims on authenticateduddata structures, namely hash chains and Merkle trees, and their authenticity andudnon-repudiation by the use of digital signatures. We introduce the concept of crossreferencingudof hash chains as a way of efficient and verifiable vouching about statesudof other users. ClaimChain allows to detect chain compromises, manifested asudforks of hash chains, and to implement various social policies for deriving decisionsudabout the latest state of users in the system.udThe claims about keys of other people introduces a privacy problem that does notudexist in the centralized PKI design. Such information can reveal the social graph,udand sometimes even communication patterns. To solve this, we use cryptographicudverifiable random functions to derive private identifiers that are re-randomized onudeach chain update. This allows to openly and verifiably publish claims that can onlyudbe read by the authorized users, ensuring privacy of the social graph. Moreover, the specific construction of Merkle trees in ClaimChain, along with the usage ofudverifiable random functions, ensures users can not equivocate about the state of otherudpeople. ClaimChain is udexible with respect to deployment options, supportingudfully decentralized deployments, as well as centralized, federated, and hybrid modesudof operation.udWe have evaluated the ClaimChain's computation and memory requirementsudusing a prototype implementation. We also simulated the udow of the system usingudEnron dataset, comprising real-world email communication history within an organization,udin order to evaluate the effectiveness of propagation of key material in audfully decentralized setting.
展开▼