Initiation au développement d'applications sécurisées...



Documents pareils
Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cours 14. Crypto. 2004, Marc-André Léger

Gestion des certificats digitaux et méthodes alternatives de chiffrement

La sécurité dans les grilles

Sécurité de l'information

Mise en œuvre des serveurs d application

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Cryptographie et fonctions à sens unique

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Signature électronique. Romain Kolb 31/10/2008

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Du 03 au 07 Février 2014 Tunis (Tunisie)

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Application Web et J2EE

Java pour le Web. Cours Java - F. Michel

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Sécurisation du stockage de données sur le Cloud Michel Kheirallah

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

Java et les bases de données

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Architecture Orientée Service, JSON et API REST

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Cryptologie à clé publique

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Calculateur quantique: factorisation des entiers

Cours Bases de données

4. SERVICES WEB REST 46

Architectures en couches pour applications web Rappel : Architecture en couches

Architectures PKI. Sébastien VARRETTE

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Module BD et sites WEB

Modèle de sécurité de la Grille. Farida Fassi Master de Physique Informatique Rabat, Maroc May 2011

Les fonctions de hachage, un domaine à la mode

Galaxy est une plateforme de traitements (bio)informatiques accessible depuis l'url : (en précisant votre login et mot de passe LDAP «genotoul»).

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Plan. Department of Informatics

Compte Rendu d intégration d application

Compte-rendu de projet de Système de gestion de base de données

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Projet Java EE Approfondi

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Oracles Cryptographiques. Trouver une joke de padding

Administration de Parc Informatique TP07 : Installation de Linux Debian

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Encryptions, compression et partitionnement des données

Panorama de la cryptographie des courbes elliptiques

PROJET TRIBOX-2012-A

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Sécurité des réseaux IPSec

Sessions en ligne - QuestionPoint

CAHIER DES CHARGES D IMPLANTATION

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

Hands on Openstack : Introduction

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

Application web de gestion de comptes en banques

1. Installation d'un serveur d'application JBoss:

Devoir Surveillé de Sécurité des Réseaux

Télécom Nancy Année

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Architecture de la plateforme SBC

Simple Database Monitoring - SDBM Guide de l'usager

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

La haute disponibilité de la CHAINE DE

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Hibernate vs. le Cloud Computing

Fonction de hachage et signatures électroniques

Analyse de PRESENT avec peu de données

EN Télécom & Réseau S Utiliser VMWARE

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Notion de base de données

INF 4420: Sécurité Informatique Cryptographie II

Cours en ligne Développement Java pour le web

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Premiers pas avec WinPT (cryptographie sous Win) EITIC

VMWARE VSPHERE ESXI INSTALLATION

Éléments d'architecture des ordinateurs

Guide de récupération de Windows Server 2003 R2 pour serveurs Sun x64

Serveurs de noms Protocoles HTTP et FTP

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

CA ARCserve Backup Option NAS (Network Attached Storage) NDMP (Network Data Management Protocol)

CommandCenter Secure Gateway

Sauvegarde collaborative en pair-à-pair

Gestion des Clés Publiques (PKI)

Systèmes d'informations historique et mutations

Formation : WEbMaster

Guide de déploiement

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Transcription:

Initiation au développement d'applications sécurisées... (i.e. Projet) Nicolas Gama Université de Versailles Saint Quentin en Yvelines 2014-2015 Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 1 / 58

Section 1 Buts du module Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 2 / 58

Buts du module 1 savoir concevoir une appli ou un site sécurisé 2 connaître les fonctionnalités et notions principales en Java EE 3 savoir travailler en équipe et bien gérer son temps 4 savoir présenter un projet ou une solution de manière concise et précise 5 maitriser un environnement d'execution physique ou virtuel 6 savoir gérer concrètement et ecacement des problèmes cryptographiques courants Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 3 / 58

Evaluation Mode d'évaluation Projet (coef 3) CTF (coef 2) Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 4 / 58

Projet Projet (coef 3) Projet à réaliser de mi-décembre à n mars, par groupes de 3 ou 4 étudiants. Utilisant un serveur d'application Java EE (voir les premières séances de cours) rapport de 30 à 40 pages à rendre n mars. Soutenance d'environ 1h incluant une démo complète. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 5 / 58

CTF CTF (coef 2) 20 mini problèmes (cryptographiques ou sécurité) à résoudre. un énoncé (ou deux selon la diculté) sont assignés par binôme avec une date de présentation entre novembre et mars. Vous avez entre 5 et 10 minutes pour présenter le problème, ainsi que votre solution et les outils que vous avez utilisés/programmés. Barème: 1 note / 20 vous pouvez aussi (individuellement) résoudre les challenges des autres groupes et uploader votre solution (avec une description en 10 lignes) AVANT la date de présentation en public. Pour chaque question, un pool de points est réparti entre les personnes qui ont trouvé la solution, en fonction de l'ordre d'arrivée et de la qualité des réponses. Barème: 1 note /20 selon le classement individuel. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 6 / 58

Environnement de travail Une machine virtuelle (ou live distribution) sous Lubuntu trusty. peut tourner sous VirtualBox, qemu ou en liveusb selon les capacités de votre machine environnement de developpement java 1.8 avec eclipse préinstallé quelques dépendances java/maven préinstallées navigateurs refox et chromium avec le plug-in java 1.8 serveur d'applications J2EE Glasssh 4 Disclaimer Certaines options de sécurité ont été modiées ou désactivées (mises à jour, quelques paramètres de sécurité java, une clé APT, 1 certicat racine, etc...) pour le bon fonctionnement de ce cours. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 7 / 58

Section 2 Brefs rappels de cryptographie Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 8 / 58

Cryptographie symmétrique Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 9 / 58

Cryptographie symmétrique Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 9 / 58

Cryptographie symmétrique Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 9 / 58

Cryptographie symmétrique Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 9 / 58

Crypto symmétrique (à clé secrète) Principalement: AES: taille de clé: 128 ou 256 bits mode opératoire: CBC, CCM, GCM, CTR (car taille de bloc: 128 bits) padding: zeros, PKCS7 (PKCS5 d'après java) Advantages rapide permet: condentialité, integrité, authenticité Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 10 / 58

Crypto symmétrique (à clé secrète) Principalement: AES: taille de clé: 128 ou 256 bits mode opératoire: CBC, CCM, GCM, CTR (car taille de bloc: 128 bits) padding: zeros, PKCS7 (PKCS5 d'après java) Advantages rapide c.à.d EXTREMEMENT rapide. permet: condentialité, integrité, authenticité Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 10 / 58

Crypto symmétrique (à clé secrète) Principalement: AES: taille de clé: 128 ou 256 bits mode opératoire: CBC, CCM, GCM, CTR (car taille de bloc: 128 bits) padding: zeros, PKCS7 (PKCS5 d'après java) Advantages rapide c.à.d EXTREMEMENT rapide. permet: condentialité, integrité, authenticité à condition que la clé et l'iv soient transmises de manière sûre... icolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 10 / 58

En pratique Openssl (command line): openssl enc -aes -128 - cbc -K E4A3... -iv 629 E... - in plaintext. txt - out ciphertext. bin Java: byte [] ciphertext =...; byte [] secretkey = {0 xe4, 0xA3,... }; // 16 bytes = 128 bits byte [] initvector = {0 x62, 0x9E,... }; // 16 bytes Cipher cipher = Cipher. getinstance (" AES / CBC / PKCS5Padding "); cipher. init ( Cipher. DECRYPT_MODE, new SecretKeySpec ( secretkey, " AES "), new IvParameterSpec ( initvector, 0, cipher. getblocksize () )) ; byte [] plaintext = cipher. dofinal ( ciphertext ); Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 11 / 58

Exercice: Prise en main Démarrez la machine virtuelle en mode persistent. (trois possibilités:) 1 LiveDVD ou liveusb 2 Qemu (avec KVM) 3 VirtualBox créer un chier vm.sda rempli de zeros d'au moins 2GB. qemu-system-x86_64 -machine accel=kvm -cdrom vm.iso -hda vm.sda -boot order=dc -m 2048m idem, créer une machine avec un disque dur d'au moins 2GB et 2048m de RAM booter avec vm.iso dans le lecteur Dans tous les cas: 1 partitionner le disque dur, et créer une unique partition ext4 appelée casper-rw (à la rigueur, un chier casper-rw de 2 gigas formaté ext4 à la racine d'une partition fat32) icolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 12 / 58

Exercice: Chirement/Déchirement AES vs openssl 1 Choisissez une clé et une IV, puis chirez un chier texte ou html avec openssl AES CBC en précisant la valeur de la clé et de l'iv en ligne de commande. 2 Testez le déchirement avec openssl. 3 Démarrez eclipse, créez un nouveau projet java et créez un programme qui réalise le même déchirement AES. Vous pouvez entrer la clé en dur dans le code. 4 Exportez votre application java sous forme d'un jar executable, et testez-la en ligne de commande. 5 Réalisez une applet contenant une methode String encryptaes(string message) qui renvoie le base64 du chiré du message. 6 Créez une page html/jquery-ui qui utilise cette applet pour chirer le contenu d'un textarea. testez le déchirement en ligne de commande avec les commandes base64 et openssl. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 13 / 58

Section 3 De la clé secrète au Cloud Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 14 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Online shopping with secret keys A concrete example Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 15 / 58

Public key cryptography Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 16 / 58

Cas d'utilisation Crypto à clé publique utilisée UNIQUEMENT pour établir la clé et l'iv symmétrique. repose sur des problèmes algébriques ou géométriques nécessite seulement un canal public authentié: installation des certicats racines lors de l'installation de la machine serveur de clés susamment redondants Par ex: D'un point de vue cryptographique, vous pouvez créer un site web où chaque utilisateur s'authentie avec sa carte vitale ou sa carte bancaire, sans même contacter l'administration au préalable. Les limitations sont d'ordre légales ou éthiques, pas mathématiques. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 17 / 58

Partage, chirement, signature Mathematical break Alice et Bob are in two prison cells, separated by a corridor. They do not know each other, they share nothing in common, they cannot see each other. They can just speak loud. A guard Charlie stands in the corridor, he hears everything, but he cannot mimmic Alice's or Bob's voice. Challenge: Alice and Bob and Charlie must each write a (large) integer on a paper. Alice and Bob will be freed if they have written the same number, and if it is dierent from Charlie's number. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 18 / 58

Math Break v1.0 Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 19 / 58

Math Break v1.0: Die Hellmann Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 19 / 58

Math Break v1.0: Die Hellmann Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 19 / 58

Math Break v1.0: Die Hellmann Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 19 / 58

Briques fondamentales Fonctions à sens unique fonctions de hachage md5sum, sha1sum, sha256sum, sha3 théorie des groupes p, q p q x g x mod n fonctions à trappe x x 17 mod N trapdoor d = 17 1 mod φ(n) 17 y mod N = y d mod N (pour tout y) PS: connaitre d connaître la factorisation de N Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 20 / 58

Math Break v2.0: RSA Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 21 / 58

Math Break v2.0: RSA Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 21 / 58

Math Break v2.0: RSA Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 21 / 58

Math Break v2.0: RSA Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 21 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

General Schemes: encryption and signature Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 22 / 58

Grâce à la clé publique On peut Acheter des produits en ligne. envoyer des e-mails signés et chirés, chaque utilisateur ayant seulement deux clés (dont une publique). Déléguer à une autorité tierce la gestion des utilisateurs de mon site (sans même contacter cette tierce partie!) (presque) voter en ligne: Une autorité peut signer et valider mon bulletin sans obtenir d'information sur son contenu. et tant d'autre! A quelle vitesse? Plus ou moins, la vitesse d'une tortue. Heureusement, la crypto à clé publique ne chire que les 256 bits de clé AES. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 23 / 58

Section 4 Passons aux choses concrètes Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 24 / 58

Proxy reencryption La problématique Une grande compagnie (d'assurance) souhaite utiliser un serveur de mail sur le cloud (gmail par exemple). Note: cloud = ennemi. Pour garantir la condentialité, les mails sont donc tous chirés. Alice travaille dans cette compagnie et gère 200 emails par jour. En novemnre, prend une semaine de congés. Durant ces vacances, tous ses mails seront transférés (de manière transparente) à Bob. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 25 / 58

Proxy reencryption La problématique Une grande compagnie (d'assurance) souhaite utiliser un serveur de mail sur le cloud (gmail par exemple). Note: cloud = ennemi. Pour garantir la condentialité, les mails sont donc tous chirés. Alice travaille dans cette compagnie et gère 200 emails par jour. En novemnre, prend une semaine de congés. Durant ces vacances, tous ses mails seront transférés (de manière transparente) à Bob. Comment gérer le chirement? Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 25 / 58

Quelques pistes première tentative Elle envoie sa clé privée sur le serveur de mail qui déchire et transmet tout à Bob. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Quelques pistes première tentative Elle envoie sa clé privée sur le serveur de mail qui déchire et transmet tout à Bob. Mais qui est le vrai ennemi? pourquoi lui donner la clé privée?!! c'était toutefois la seule solution connue jusqu'en 1997 Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Quelques pistes Deuxième essai Elle transfère les mails directement (chirés) à Bob, et elle donne sa clé privée à Bob. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Quelques pistes Deuxième essai Elle transfère les mails directement (chirés) à Bob, et elle donne sa clé privée à Bob. Un peu mieux, la clé privée reste dans la compagnie. Mais pour un autre congé, il faudra donner la clé à un autre Bob! Au nal, une clé privée doit rester privée. icolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Quelques pistes Tentative desespérée Elle laisse son ordinateur allumé pendant son absence et son client mail déchire, transmet (et rechire) tout pour Bob. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Quelques pistes Tentative desespérée Elle laisse son ordinateur allumé pendant son absence et son client mail déchire, transmet (et rechire) tout pour Bob. C'est cryptographiquement le plus sûr. Mais c'est exactement dans ces situations que l'ordinateur ou le réseau se mettent à planter! Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 26 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Analyse Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a Analyse Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Analyse Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Reencryption: (U b/a, V ) = (g br, mg r ) Analyse Sécurité sémantique sous l'hypothèse DDH Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Reencryption: (U b/a, V ) = (g br, mg r ) Analyse Sécurité sémantique sous l'hypothèse DDH Transitif Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Reencryption: (U b/a, V ) = (g br, mg r ) Analyse Sécurité sémantique sous l'hypothèse DDH Transitif Bidirectionnel+Transitif Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Reencryption: (U b/a, V ) = (g br, mg r ) Analyse Sécurité sémantique sous l'hypothèse DDH Transitif Bidirectionnel+Transitif Problème de Collusions (Alice + Mailserver) Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

Un schéma basé sur du log discret Blaze, Bleumer and Strauss, 1998 Analyse Parameters: G = g un groupe cyclique d'ordre p Keys: Alice: Private: a Public: g a, (Bob: b,g b ) Encryption: choose random r, output (U, V ) = (g ar, mg r ) Decryption: V U 1/a ReKey: ReKey A B = b/a (donné au serveur) Reencryption: (U b/a, V ) = (g br, mg r ) Sécurité sémantique sous l'hypothèse DDH Transitif Bidirectionnel+Transitif Problème de Collusions (Alice + Mailserver) besoin des clés privés pour créer la ReKey Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 27 / 58

On souhaiterait: 1 No Pre-Sharing: ReKey A B ne dépend que de la clé privée d'alice (pas celle de Bob) 2 Unidirectional: ReKey A B ne permet pas de rechirer de Bob vers Alice 3 Collusion-resistance: Si Alice et le server se mettent ensemble, ils n'apprennent rien sur la clé de Bob. (impliqué par (1)). Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 28 / 58

On souhaiterait: 1 No Pre-Sharing: ReKey A B ne dépend que de la clé privée d'alice (pas celle de Bob) 2 Unidirectional: ReKey A B ne permet pas de rechirer de Bob vers Alice 3 Collusion-resistance: Si Alice et le server se mettent ensemble, ils n'apprennent rien sur la clé de Bob. (impliqué par (1)). Ce que l'on pourrait souhaiter Transitivity: ReKey A B + ReKey B C permet de rechirer de A vers C Single Delegation: Un message rechiré ne peut plus être rechiré Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 28 / 58

Un proxy unidirectionnel basé sur des couplages Def: Bilinear Map (or couplage) Soient G 1 = g, G 2 = h et G T trois groupes cycliques d'ordre p un couplage est une fonction G e : 1 G 2 G T (g x, h y ) z xy where z = e(g, h) Propriétés utiles le log discret doit être dur sur G 1, G 2, G T e doit être non trivial: z 1 e être facile (polynomial) à calculer Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 29 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 Parameters: g G 1, h G 2, z = e(g, h) G T a a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 a Parameters: g G 1, h G 2, z = e(g, h) G T Keys Alice: private: (a 1, a 2 ) Z p, public: (Z a 1, h a 2 ) Keys Bob: private: (b 1, b 2 ) Z p, public: (Z b 1, h b 2 ) a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 a Parameters: g G 1, h G 2, z = e(g, h) G T Keys Alice: private: (a 1, a 2 ) Z p, public: (Z a 1, h a 2 ) Keys Bob: private: (b 1, b 2 ) Z p, public: (Z b 1, h b 2 ) 1 st level Encryption: (U, V ) = (Z a1k, mz k ) a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 a Parameters: g G 1, h G 2, z = e(g, h) G T Keys Alice: private: (a 1, a 2 ) Z p, public: (Z a 1, h a 2 ) Keys Bob: private: (b 1, b 2 ) Z p, public: (Z b 1, h b 2 ) 1 st level Encryption: (U, V ) = (Z a1k, mz k ) 2 nd Level Encryption: (U, V ) = (g k, mz a1k ) a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 a Parameters: g G 1, h G 2, z = e(g, h) G T Keys Alice: private: (a 1, a 2 ) Z p, public: (Z a 1, h a 2 ) Keys Bob: private: (b 1, b 2 ) Z p, public: (Z b 1, h b 2 ) 1 st level Encryption: (U, V ) = (Z a1k, mz k ) 2 nd Level Encryption: (U, V ) = (g k, mz a1k ) Rekey: h b 2a 1 a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

The AFGH Scheme Ateniese, Fu, Green, Hohenberger 2005 a Parameters: g G 1, h G 2, z = e(g, h) G T Keys Alice: private: (a 1, a 2 ) Z p, public: (Z a 1, h a 2 ) Keys Bob: private: (b 1, b 2 ) Z p, public: (Z b 1, h b 2 ) 1 st level Encryption: (U, V ) = (Z a1k, mz k ) 2 nd Level Encryption: (U, V ) = (g k, mz a1k ) Rekey: h b 2a 1 Reencryption (3 rd Level): (U, V ) = (Z a 1b 2 k, mz a1k ) a Dans leur papier, ils ont G1 = G 2 = g, mais bon. Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 30 / 58

Section 5 The Framework Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 31 / 58

The JPBC library PBC est une lib C/C++ implémentant des couplages JPBC est un portage Java de cette librairie 1 Element: represente un élément de Z/pZ, G 1, G 2 ou G T opérations d'addition, multiplication, division, exponentiation dans un groupe, addition et multiplication sont identiques 2 Field: represente le groupe ou le corps en général par ex, permet d'instancier un élément aléatoire 3 Pairing: contient une fonction statique pairing(x,y). Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 32 / 58

JPBC: Génération des Paramètres (une seule fois) int rbits = 160; int qbits = 512; TypeACurveGenerator pg = new TypeACurveGenerator ( rbits, qbits ) ; PairingParameters params = pg. generate () ; System. out. println ( params. tostring () ); Pensez à sauvegarder la description qui s'ache: dans un chier param.properties, ou en dur dans le code (mieux). Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 33 / 58

JPBC: A chaque démarrage A chaque démarrage: Obtenir Z q, G 1, G 2, G T, g, h, Z. Pairing pairing = PairingFactory. getpairing ( params ); Field <? > Zr = ppairing. getzr () ; Field <? > G1 = ppairing. getg1 () ; Field <? > G2 = ppairing. getg2 () ; Field <? > GT = ppairing. getgt () ; Element g = G1. newelementfromhash (" bla ". getbytes (), 0, 3) ; Element h = G2. newelementfromhash (" bla ". getbytes (), 0, 3) ; Element z = ppairing. pairing (g, h); Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 34 / 58

Opérations arithmétiques Attention! Toutes les opérations arithmétiques sont en place: l'objet courant est modié, et il est renvoyé en retour Il faut donc penser à faire une copie si besoin (duplicate). Element u = g. duplicate () u. add (v); // u=u+v u. mul (v); // u=u*v u. mul (v). add (w). negate () // u = -(( u*v)+w) u. invert () ; // u =1/ u u. powzn ( x) // u=u^x si x est dans Zq // bonne pratique : dupliquer le 1 er element Element mga = g. duplicate (). powzn (a). mul (m) Nicolas Gama (Université de Versailles Saint Initiation Quentin au développement en Yvelines) d'applications sécurisées... 2014-2015 35 / 58