71502631 Sujets Exercices

Embed Size (px)

Citation preview

  • 7/23/2019 71502631 Sujets Exercices

    1/126

    Sujets des exercices dirigs

    Technologie pour les applicationsclient-serveur

    UE RSX 102

    Anne 2007-2008

    G. Florin, S. Natkin, E. Gressier,L. Duchien, J.M. Farinone

    CNAM- Anne 2007/2008 -1- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    2/126

    Table des matiresPREMIER CHAPITRE..........................................................................................................................................4

    EXERCICES CONTROLE REPARTI.................................................................................................................4

    SRIED'EXERCICESMODEMESSAGE..............................................................................................................................4Exercice 1: Automate de connexion TCP........................................................................................................4

    SRIED'EXERCICES : APPELDEPROCDUREDISTANTE.....................................................................................................6Exercice 2 : Traitement des pertes de messages...................................................................................... .......6Exercice 3 : Excutions trs longues...............................................................................................................6Exercice 4 : Appels en parallle (redondance massive).............................................................................. ...6Exercice 5 : Serveurs multiples (redondance slective)..................................................................................6Exercice 6 : Paralllisme et performance des communications en RPC........................................................7

    SRIED'EXERCICES : ETUDESDECAS...........................................................................................................................9Exercice 7 : Conception d'une application de niveau session....................................................................... .9Exercice 8 : Comparaison de la programmation d'applications rparties avec TCP et avec CORBA.......10Exercice 9 : Objets rpartis en CORBA........................................................................................................15

    SECOND CHAPITRE..........................................................................................................................................17

    EXERCICES PRSENTATION DES DONNEES............................................................................... .......... ...17

    SRIED'EXERCICESCONVERSIONS...............................................................................................................................17Exercice 1 : Optimisation des conversions............................................................................................ .......17Exercice 2 : Problme des formats de mmoire (petit boutiste, grand boutiste)..........................................17Exercice 3 : Dfinition de syntaxe ASN1....................................................................................... .......... .....18Exercice 4 : Dfinition de format de transfert ASN1............................................................................ ........19Exercice 5 : Dfinition de donnes en ASN1 et de leur format de transfert............................................. ....19Exercice 6 : Problme gnral ASN1............................................................................................................20Exercice 7 : Dfinition d'une traduction du langage IDL de CORBA vers le langage Pascal......... ........ ...21Exercice 8 : CORBA......................................................................................................................................23

    SRIED'EXERCICESSCURIT....................................................................................................................................28Exercice 9 : Cryptogramme 1............................................................................................................ ......... ..28Exercice 10 : Cryptogramme n 2.................................................................................................................28Exercice 11 : Cryptogramme n 3.................................................................................................................28Exercice 12 : Etude du systme de chiffrement cl publique RSA......................................................... ....29Exercice 13 : Kerberos..................................................................................................................................30Exercice 14 : Partage d'un secret........................................................................................................ .........34Exercice 15 : Problme de notarisation.......................................................................................................34Exercice 16 : Gestion d'une connexion scurise................................................................................... ......36Exercice 17 : Changement priodique de cls en cryptographie cls publiques.......................................38Exercice 18 : Commerce lectronique sur Internet: SET ("Secure Electronic Transactions")................ ....41Exercice 19 : Authentification des usagers et autorisation des requtes dans le WEB............................. ...45Exercice 21 : Scurisation des communications en Internet avec SSL-TLS.......................................... ......49Exercice 22 : Protocole de micro-paiement sur Internet.............................................................................52Exercice 23 : Scurisation du DNS : les normes DNSSEC-1................................................................ ......55

    TROISIEME CHAPITRE....................................................................................................................................58

    EXERCICES APPLICATIONS REPARTIES...................................................................................................58

    Exercice 1 : Systme de fichiers rpartis NFS et rplication........................................................................58Exercice 2 :Dsignation des fichiers dans le systme de fichiers rpartis NFS................................... ........59Exercice 3 : Messagerie X400.......................................................................................................................61Exercice 4 : Transactionnel rparti OSI-TP.................................................................................................63Exercice 5 : Transactionnel rparti....................................................................................................... .......64Exercice 6 : Systme transactionnel rparti................................................................................... .......... ....65Exercice 7 : CORBA et le transactionnel......................................................................................................67Exercice 8 : Administration de rseaux avec SNMP.....................................................................................69Exercice 9 : change de donnes informatises EDI......................................................................... ..........74

    Exercice 10 : XML.........................................................................................................................................76Exercice 11 : tude du protocole HTTP.................................................................................................... ...78

    CNAM- Anne 2007/2008 -2- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    3/126

    Exercice 12 : DNS "Domain Name System" sujet 1......................................................................................81Exercice 13 : DNS "Domain Name System" Sujet 2................................................................................... ..83Exercice 14 : Services et protocoles d'annuaires rpartis............................................................................84Exercice 15 : Messagerie Internet SMTP............................................................................................ .........90Exercice 16 : DNS et messagerie Internet/l'approche SPF................................................................... .......95Exercice 17 : Messagerie Internet: Analyse du contenu d'un courrier.............................................. ..........97

    Exercice 18 : Utilisation d'un rsolveur DNS.............................................................................................100Exercice 19 : IMAP Internet Message Access Protocol...........................................................................103Exercice 20 : WAP ('Wireless Application Protocol').................................................................................105Exercice 21 : Services sur la toile ('Web Services')........................................................................... .........110Exercice 22 : Protocole SIP ('Session Initiation Protocol')........................................................................114Exercice 23 : Protocole UPnP ('Universal Plug and Play)........................................................................119

    CNAM- Anne 2007/2008 -3- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    4/126

    PREMIER CHAPITRE

    EXERCICES CONTROLE REPARTI

    Srie d'exercices mode message

    Exercice 1: Automate de connexion TCP

    1) Citez diffrentes raisons qui justifient l'introduction de la couche transport dans la pile des

    protocoles de communication OSI.

    2) Rappelez les principaux choix de conception du protocole de transport TCP.(quelles sont lesfonctions ralises par TCP?).

    3) Une vision partielle de l'automate de l'ouverture de connexion et de la fermeture de connexion enTCP est donne par la figure page suivante. Dterminez les lments de service et les lments de

    protocole utiliss dans cet automate?

    4) Examinez lautomate en suivant les transitions portes en traits gras. Il sagit dune ouverture deconnexion suivie dune fermeture. Analysez les principales options de conception de cette squence

    de connexion dconnexion en TCP.

    5) Compltez la lecture de lautomate en examinant dautres tats et dautres transitions (ouverturepassive, ).

    CNAM- Anne 2007/2008 -4- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    5/126

    "CLOSED"

    "LISTEN"

    "SYN_RCVD" SYN_SENT

    "ESTABLIHED"

    FERME

    ?LISTEN

    ?Recevoir SYN

    !EnvoyerSYN,ACK

    ?Recevoir RST

    !Envoyer SYN,ACK

    ?CONNECT

    !Envoyer SYN

    !Envoyer SYN

    ?SEND

    ?Recevoir ACK ?Recevoir SYN,ACK

    !Envoyer ACK

    ATTENT

    OUVERT

    ?Recevoir SYN

    Demi-passif Demi-actif ?CLOSE

    ?Timeout

    "CLOSING"

    "CLOSE_WAIT"

    "FIN_WAIT_1"

    ?Recevoir FIN!Envoyer ACK

    ?Recevoir FIN! Envoyer ACK

    !Envoyer FIN

    "LAST_ACK"

    ?Recevoir ACK

    "FIN_WAIT_2"?Recevoir FIN!Envoyer ACK

    "TIME_WAIT"

    ?RecevoirACK?Recevoir

    ACK

    ?RecevoirFIN,ACK

    !Envoyer ACK

    !Envoyer FIN

    !Envoyer FIN

    ?CLOSE

    ?CLOSE

    ?CLOSE

    CNAM- Anne 2007/2008 -5- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    6/126

    Srie d'exercices : Appel de procdure distante

    Exercice 2 : Traitement des pertes de messagesOn souhaite raliser trs efficacement des appels de procdure distants en se plaant

    non pas au dessus d'une couche transport fiable mais au dessus d'une couche rseau sanscontrle d'erreur.

    Proposez des solutions efficaces au problme des pertes de messages d'appel et derponse.

    Exercice 3 : Excutions trs longues.

    On souhaite excuter en mode appel de procdure distante des traitements de durenon prvisible (par exemple des interrogations distantes de bases de donnes dont lesrponses peuvent prendre des dures trs variables et trs longues).

    Proposez une solution pour le contrle de l'excution distante, en particulier pourpouvoir distinguer une panne de serveur d'une excution longue.

    Exercice 4 : Appels en parallle (redondance massive)

    L'appel distant active une seule procdure distance chaque fois. Un utilisateur peut

    souhaiter faire raliser n excutions distance simultanment en lanant en diffusion unerequte.Explicitez le schma du fonctionnement ainsi dfini.Utilisez le dans le cas de donnes rpliques. On suppose que l'on a n serveurs de

    donnes en copies multiples (pour la scurit) qui peuvent raliser les mmes oprations lireet crire. Comment sont ralises les lectures, les critures. Quelle proprit minimum doiventsatisfaire les requtes pour maintenir la cohrence des donnes si l'on considre qu'il n'y a pasde partage de donnes entre plusieurs activits?

    Exercice 5 : Serveurs multiples (redondance slective)

    Dans certains types de service on souhaite disposer de plusieurs instances du mmeservice sur plusieurs machines diffrentes (par exemple pour un service de compilation).L'appel distant active une seule excution distante chaque fois.

    Dans quel but utiliserait-on de tels services instances multiples?Proposez une organisation pour rendre efficacement un tel service.

    CNAM- Anne 2007/2008 -6- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    7/126

    Exercice 6 : Paralllisme et performance des communications en RPC

    Un appel de procdure distante prsente les caractristiques temporelles suivantes(valeurs donnes titre d'exemple):

    Traitements client de prparation d'appel: 5 ms

    - Traitements RPC mission de la requte cot clientTraitements de la souche client: 0,5 msTraitements logiciels rseaux cot client: 0,3 ms

    - RseauAcheminement dun message entre le client et le serveur 3 ms

    - Traitements RPC rception de la requte cot serveurTraitements logiciels rseaux cot serveur: 0,3 ms.

    Traitements de la souche serveur: 0,5 ms

    Traitements serveur de lappel (excution de la procdure): 10 ms

    - Traitements RPC mission de la rponse cot serveurTraitements de la souche serveur: 0,5 msTraitements logiciels rseaux cot serveur: 0,3 ms

    - RseauAcheminement dun message entre le serveur et le client 3 ms

    - Traitements RPC rception de la rponse cot clientTraitements logiciels rseaux cot client: 0,3 ms.Traitements de la souche client: 0,5 msUn client souhaite excuter sur un mme serveur deux appels de procdures distantes

    indpendantes (non relies) ayant les caractristiques temporelles prcdentes.

    1) On fait l'hypothse que les RPC sont synchrones. Rappelez la dfinition dun RPCsynchrone.

    2) On fait l'hypothse que client et serveur travaillent squentiellement. Le client excute lesdeux appels au moyen dun seul processus squentiel. La procdure distante est excute pourles deux fois par le mme processus. Quelle est la dure totale ncessaire la ralisation desdeux appels?

    3) On cherche maintenant une excution parallle efficace en utilisant le paralllisme chez leclient et chez le serveur . La procdure distante est toujours en mode synchrone. Le client et leserveur utilisent des processus sur la machine client et la machine serveur ("multiprocessing"). Les appels sont donc raliss sur le client au moyen de deux processus paralllesassocis aux deux appels indpendants. Les traitements sont raliss sur le serveur au moyende deux processus lancs en parallle associs chaque appel de procdure distante. Onnglige les temps de commutation de contexte entre les processus. On se place dans le cas demachines mono processeur cest dire que les excutions lances en parallles sont excutespar un seul processeur (pseudo paralllisme).

    Dessinez le diagramme dordonnancement des oprations dans le cas delordonnancement parallle le plus efficace des oprations client et serveur. Reprsentez par

    CNAM- Anne 2007/2008 -7- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    8/126

    des segments verticaux sur un dessin les diffrentes oprations selon les quatre filsdexcution associs aux quatre processus Reprsentez galement les messages de requte etde rponse? Quelle est la dure totale du traitement des deux appels?

    4) On suppose maintenant que l'on dispose d'un RPC asynchrone. Rappelez la dfinition dun

    RPC asynchrone ?

    5) Le RPC asynchrone ne suppose pas lexistence de paralllisme sur le site client pouramliorer les performances. On considre dans cette question, que les clients et serveurs sontpurement squentiels. Le processus client ralise deux appels en RPC asynchrone et leprocessus serveur ralise les deux traitements des appels asynchrones. Dessinezlordonnancement le plus efficace des oprations pour les deux processus associs au client etau serveur. Reprsentez les messages changs entre les deux processus. Quelle est la duretotale du traitement des deux appels ?

    CNAM- Anne 2007/2008 -8- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    9/126

    Srie d'exercices : Etudes de cas

    Exercice 7 : Conception d'une application de niveau session

    Une application de longue dure (de type traitement par lots ou transfert de fichier)est ralise distance partir d'un calculateur metteur E sur un calculateur rcepteur R. Lesite E met des suites de messages correspondant des donnes transmettre (par exempledes articles d'un fichier). La conception de l'application doit prendre en compte des objectifsde reprise et amne donc transmettre les donnes par groupe de 100 messages et valider latransmission des messages d'un groupe avant de passer au suivant.

    1 Le concepteur utilise la notion de point de synchronisation dfinie dans la couche sessionOSI et utilisable par les applications au moyen des protocoles RTS et prsentation OSI.Rappelez la dfinition et l'usage des diffrentes notions de synchronisation mineure, majeure,dialogue de session, activit de session.

    Le service de synchronisation majeure comporte quatre units de service qui sont:S-SYNC-MAJOR.requestS-SYNC-MAJOR.indicationS-SYNC-MAJOR.responseS-SYNC-MAJOR.confirmationDonnez l'automate du service de demande de pose de point de synchronisation

    majeur (c'est l'automate de service du cot metteur qui demande la pose). Cet automate necomporte donc que des missions d'units de service et des arrives d'units de service.

    On suppose que l'metteur possde le jeton de synchronisation majeure et d'activit etqu'il peut donc poser un point de synchronisation majeur. Pour cet automate on ne s'intressequ'au mode de fonctionnement normal dans lequel aucune panne n'intervient (ni panne de

    site, d'entit distante, ...).Pour chaque tat on dfinira clairement en une phrase la situation laquelle

    correspond cet tat. Pour chaque transition on donnera la condition et l'action associe en lesjustifiant.

    2 On souhaite ajouter au mcanisme prcdent l'acquisition du jeton de synchronisationmajeure et d'activit lorsque le site n'en dispose pas (par exemple au dbut de l'change).Les units de service pour la demande du jeton sont:

    S-TOKEN-PLEASE.requestS-TOKEN-PLEASE.indication

    Les units de service pour la cession du jeton sont:S-TOKEN-GIVE.requestS-TOKEN-GIVE.indication

    On suppose l'existence d'une variable boolenne "jeton_majeur" indiquant la prsence dujeton majeur. Donnez l'automate du service de demande de cession et d'obtention du jetonmajeur. L encore on ne s'intresse qu'au fonctionnement sans pannes.

    3 On souhaite enfin dfinir le comportement de l'metteur qui transmet entre deuxsynchronisations majeures 100 messages de donnes normales au moyen de:

    S-DATA.requestS-DATA.indication

    Donnez l'automate de ce dernier comportement (dans les mmes conditions queprcdemment).4 En dduire l'automate complet comprenant vos rponses aux questions 2, 3, 4.

    CNAM- Anne 2007/2008 -9- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    10/126

    Exercice 8 : Comparaison de la programmation d'applications rpartiesavec TCP et avec CORBA

    Pour comparer les deux modes de communication on tudie une application de commercelectronique, qui consiste obtenir dun site serveur distant une cotation pour une valeur

    boursire. La solution en mode message utilise le niveau transport TCP avec linterface socketet la solution en mode RPC utilise lapproche objets rpartis CORBA.

    Ce problme ne traite que des comportements dun client. Il nest pas ncessaire decomprendre trs en dtail les codes prsents en C ou en C++ pour rpondre aux questionsdordre gnral concernant les aspects rseaux des deux solutions.

    A) Utilisation du niveau transport TCP avec linterface Socket

    Lapplication considre est celle dun mode client serveur basique avec un messagerequte de demande de cotation et un message rponse contenant le cours de bourse. Onidentifie donc comme premier lment du protocole (message et donne changer dans lemessage) une requte qui comporte un nom de valeur boursire coter. Cest une chane decaractres de longueur variable. La longueur est code sur un entier long (valeur maximum100 octets). La rponse comporte la cotation demande (code pour simplifier sous la formedun entier long). Elle comporte aussi un code rponse entier au cas ou des erreurs auraientrendu lopration impossible. Les structures de donnes changes dans les messages enlangage C sont donc dcrites comme suit :

    #define MAXSTOCKNAMELEN 100

    struct Quote_Request{long len; /* Longueur de la requte */char name[MAXSTOCKNAMELEN]; /* Nom de la valeur coter */};struct Quote_Response{long value; /* Cours de la valeur */long errno; /* 0 si succs, code derreur sinon */

    };On rassemble, dans une procdure utilise par le client (connect_quote_server), les

    instructions ncessaires pour la mise en connexion du client avec le serveur, selon lesprimitives de linterface socket.

    - En entre de la procdure, server est une chane de caractres qui dfinit le nom duservice de cotation.

    - En entre de la procdure, port contient le numro de port du service de cotation.

    - En rsultat HANDLE est un entier qui contient la rfrence du descriptif de la socket.

    CNAM- Anne 2007/2008 -10- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    11/126

    typedef int HANDLE;

    HANDLE connect_quote_server (const char server[], u_short port){

    struct sockaddr_in addr;struct hostent *hp;HANDLE sd;

    /* Cration de la terminaison locale */sd = socket (AF_INET, SOCK_STREAM, 0);

    /* Dtermination adresse du serveur */hp = gethostbyname(server);

    /* Remise zro de la zone adresse et initialisation adresse du serveur */

    memset ((void *) &addr, 0, sizeof addr);addr.sin_family = AF_INET;addr.sin_port = htons (port);memcpy (&addr.sin_addr, hp->h_addr, hp->h_length);

    /* Ouverture de la connexion avec le serveur */connect (sd,(struct sockaddr *)&addr, sizeof addr);return sd;}

    1) A quoi sert la primitive socket ? Pourquoi utiliser le paramtre AF-INET ? Pourquoi

    utiliser le paramtre SOCK-STREAM ?

    2) A quoi sert la primitive gethostbyname. Quel est le nom de lapplication Internet qui estutilise par la primitive gesthostbyname. Quel doit donc tre le format dun nom de service ?

    3) Quel est le rle de la primitive connect ?

    Une seconde procdure utilise par le client send_request rassemble toutes lesinstructions ncessaires pour la transmission de la requte.

    - En paramtre entre de la procdure, sd est le descriptif de la socket.

    - En paramtre entre stock_name contient le nom de la valeur boursire coter.- Il ny a pas de rsultat (void).

    void send_request (HANDLE sd ,const char stock_name[]){struct Quote_Request req;size_t w_bytes;size_t packet_len;int n;

    /* Dtermination longueur du nom de valeur boursire et */

    /* recopie du nom de valeur boursire dans la requte */packet_len = strlen (stock_name);

    CNAM- Anne 2007/2008 -11- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    12/126

    if (packet_len > MAXSTOCKNAMELEN)packet_len = MAXSTOCKNAMELEN;strncpy (req.name, stock_name, packet_len);

    /* Calcul longueur totale de la requte et conversion vers lordre des octets rseau */

    packet_len = packet_len + sizeof req.len;req.len = htonl (packet_len);

    /* Envoyer le message au serveur */n = send (sd, ((const char *) &req),packet_len , 0);}

    4) Dans la procdure prcdente send_request la primitive htonl est applique la longueur dupaquet packet_len pour fabriquer la zone req.len (longueur de la requte). Htonl (littralementhost to network long integer) convertit lordre des octets de la machine client dans lordrerseau. Pourquoi effectuer une telle conversion. Sous quel nom est connu le problme rsolu

    par htonl?

    On rassemble dans la procdure client recv_response la collecte dun message derponse une requte de cotation. La structure de donne dun message de rponseQuote_Response a t dfinie plus haut.

    int recv_response (HANDLE sd, long *value){struct Quote_Response res;recv (sd, (char*) &res, sizeof res, 0);errno = ntohl (res.errno);

    if (errno > 0) /* Erreur */return -1;else { /* Succs */*value = ntohl (res.value);return 0;

    }}

    5) A quoi servent les primitives ntohl utilises dans le code recv_response ?

    6) On souhaite valuer la solution propose de programmation client-serveur en mode

    message avec les sockets relativement lassemblage des donnes dans les messages. Quel estle point de vue adopt relativement aux conversions dans ce programme (quel est le niveaudinteroprabilit de la solution) ?

    B) Utilisation de lapproche objets rpartis avec Corba

    On se propose dtudier la solution au problme de cotation prcdent en utilisantlapproche objet rparti CORBA.

    7) Rappelez les principes gnraux de lapproche CORBA ? Comment est raliselinvocation distance en CORBA ?

    CNAM- Anne 2007/2008 -12- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    13/126

    Le code IDL suivant dcrit laccs au serveur de cotation :

    module Stock {

    exception Invalid_Stock {};interface Quoter {long get_quote (in string stock_name)raises (Invalid_Stock);

    };};

    8) A quoi sert la dclaration interface Quoter. A quoi sert la dclaration long get_quote (instring stock_name) ( quoi correspond elle dans le programme socket) ? A quoi sertlexception exception Invalid_Stock {}; (quest ce quelle remplace dans le programmesocket) ?

    Un programme client CORBA pour linvocation du service de cotation est le suivant:

    int main (int argc, char *argv[]){// Nom du service de cotation invoqu.const char *name = "Quoter";

    Name service_name;service_name.length(1);service_name[0].id = name;

    // Obtention objet obj invoqu localement (tous les traitements// ncessaires sont rsums par une procdure bind_service)Object_var obj = bind_service (argc, argv, service_name);

    int result = 1;try {

    // Obtention dune rfrence q sur obj (avec vrification de type)Quoter_var q = Quoter::_narrow (obj);

    // Invocation sur obj du service de cotation distante pour la valeur IBM

    const char *stock_name = "IBM";long value = q->get_quote (stock_name);

    // Edition du rsultat et traitement des erreurscout

  • 7/23/2019 71502631 Sujets Exercices

    14/126

  • 7/23/2019 71502631 Sujets Exercices

    15/126

    Exercice 9 : Objets rpartis en CORBA

    Gnralits CORBA

    1) Les protocoles de communication en mode client-serveur raliss en mode messageutilisent au moins deux messages principaux. Quels sont ces messages ? Donnez leur nomdans le contexte de CORBA ?

    2) Dans les approches RPC comme celle utilise dans CORBA on utilise des souches outalons (ou encore en anglais stubs, skeletons,). Quels sont les rles assigns aux souches ?

    3) Dans ses objectifs, il est indiqu que CORBA permet l'interoprabilit entre diffrentesplates-formes matrielles/logicielles. Indiquez ce qui dans CORBA assure cetteinteroprabilit. Indication: comment un client en C++ avec un ORB Corba (par exemple leproduit Orbacus de la socit IONA) sur en Windows peut-il dialoguer avec un serveur enJava avec un ORB Borland Visibroker en Unix.

    Langage IDL

    4) Le langage IDL CORBA est un langage qui ne possde pas d'instructions de traitement.Pourquoi ?

    5) Un compilateur C++ gnre du code chargeable et excutable. Qu'est ce que gnre uncompilateur IDL ?

    Le code IDL suivant dfinit quelques lments pour une interface d'accs desfonctions de comptabilit.

    module CORBACompta{struct Compte {

    attribute string IdentCompte ;attribute string TypeCompte ;attribute Client client ;

    };struct Client {

    attribute string NomClient ;};typedef sequence SeqCompte ;typedef sequence SeqClient ;

    interface GestionFamilledeCompte {Compte obtenirCompte (in string IdentCompte) ;SeqClient recherchepartypeCompte (in string TypeCompte);SeqCompte rechercheparnomclient (in string NomClient);

    };};

    CNAM- Anne 2007/2008 -15- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    16/126

    6) Commentez cette dfinition. Quels sont les variables, les types et les oprations prvues ce niveau d'implantation ?

    7) Le code IDL prcdent offre des avantages de performances par rapport une conceptiondans laquelle les types construits (comme Compte ou Client) seraient dfinis comme des

    interfaces. Pourquoi ?

    Architecture CORBA

    8) CORBA dfinit dans son architecture l'existence d'un annuaire d'interfaces ('interfacerepository'). A quoi sert cet annuaire ?

    9) CORBA dfinit dans son architecture un annuaire d'implantations ('implementationrepository'). A quoi sert cet annuaire ? Qui lutilise principalement ?

    10) CORBA ralise pour un utilisateur des fonctions habituelles dans un protocole rseau de

    multiplexage l'mission et de dmultiplexage la rception. Expliquez en quoi. Commentest assure cette fonction de multiplexage dmultiplexage par CORBA?

    Corba et l'approche objet

    11) CORBA se place dans le cadre des approches objets. L'une des caractristiques majeure del'approche objet est l'encapsulation (en anglais 'information hiding'). En quoi CORBA assuret'il le respect du principe d'encapsulation ?

    12) L'un des lments considrs comme trs important dans le dveloppement de l'approcheobjet a t la possibilit de rutilisation de code par hritage. Comment l'hritage est il traitdans CORBA ?

    CNAM- Anne 2007/2008 -16- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    17/126

    SECOND CHAPITRE

    EXERCICES PRSENTATION DES DONNEESSrie d'exercices conversions

    Exercice 1 : Optimisation des conversions

    Lorsque l'on ralise des changes sur des systmes informatiques qui utilisent desformats internes diffrents, on utilise (par exemple en ASN1) un format de prsentation desdonnes commun toutes les machines du rseau. On doit donc convertir l'mission lesdonnes en ce format rseau et restituer la rception le format de la machine cible.

    Dans le cas ou les sites metteurs ou rcepteurs sont de mme type ce travail estinutile. Que peut-on faire pour optimiser les traitements?

    Exercice 2 : Problme des formats de mmoire (petit boutiste, grandboutiste)

    On considre dans un calculateur 16 bits le rangement d'un enregistrement de type chane decaractres en mmoire centrale.Une chane est constitue par la donne :

    - de sa longueur sous forme d'un entier sur 16 bits- de la suite des caractres octet par octet.

    Par exemple : pour la chane de caractres dans laquelle b matrialise un espace" treboubnebpasbtreb"

    On mmorise :. un mot qui reprsente l'entier "0014" en hexadcimal pour dire que la chane fait 20

    caractres. la chane elle-mme " treboubnebpasbtreb".

    Question 1 Le problme rside dans la faon de stocker la reprsentation d'une donne, et enparticulier d'un entier, dans le mmoire d'une machine. Il existe deux solutions :

    * petit boutiste ("little endian")

    * grand boutiste ("big endian").Rappelez le principe de stockage de ces deux solutions.

    Question 2 On considre deux machines A et B mots de 16 bits. La machine A utilise laconvention petit boutiste et la machine B la convention grand boutiste pour le rangement desoctets en mmoire. On suppose, pour A et B, que les bits d'un mot mmoire sont toujours

    numrots de gauche droiteF E D C B A 9 8 7 6 5 4 3 2 1 0

    Donnez l'image de la mmoire dans les deux cas octet par octet de l'enregistrement donn plushaut. Les caractres successifs d'une chane sont rangs en mmoire dans l'ordre croissant desadresses d'octets pour les deux solutions : premier caractre dans la premire case mmoire,deuxime caractre dans la case suivante. On numrote les octets et les mots mmoire partirde 0.

    CNAM- Anne 2007/2008 -17- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    18/126

    Question 3 Dans une premire exprience de communication rseau de la machine A vers lamachine B on extrait l'information de la machine A octet par octet dans l'ordre o ils sontrangs. On les stocke sur la machine B dans l'ordre d'arrive.

    Quel est le rsultat obtenu ? Pourquoi est-il faux?

    Question 4 Dans une seconde exprience de communication on inverse l'arrive chaquecouple d'octet : le premier octet du couple est permut avec le deuxime.

    Quel est le rsultat obtenu ? Pourquoi est-il faux ? Quel serait le texte affich ?

    Question 5 Quel est le remde aux deux problmes prcdents adopt dans ASN1 ?

    Exercice 3 : Dfinition de syntaxe ASN1

    On donne la spcification gnrale en ASN1 de la zone de donne utilisateur d'unePPDU (Presentation Protocol Data Unit, unit de protocole de prsentation). Dans cettespcification PDV est l'abbrviation de Presentation Data Value. L'exercice consiste commenter cette spcification pour comprendre les choix effectus et par suite prparercorrectement des messages.

    User-data ::= CHOICE{[APPLICATION 0]

    IMPLICIT Simply-encoded-data.[APPLICATION 1]

    IMPLICIT Fully-encoded-data.}

    Simply-encoded-data ::=OCTET STRING

    Fully-encoded-data ::=SEQUENCE OF

    PDV-listPDV-list ::=

    SEQUENCE

    {Transfer-syntax-name OPTIONAL,Presentation-context-identifier,presentation-data-valuesCHOICE {

    single-ASN1-type[0]ANY,

    octet-aligned[1]IMPLICIT OCTET STRING,

    arbitrary[2]IMPLICIT BIT STRING

    }}

    CNAM- Anne 2007/2008 -18- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    19/126

    Presentation-context-identifier ::= INTEGERTransfer-syntax-name ::= OBJECT IDENTIFIER

    1 Le concepteur a dfini deux formats principaux de donnes utilisateurs. Quels sont-ils? Enfonction de leurs dfinitions a quels besoins correspondent t'ils selon vous?

    2 La dfinition de la syntaxe de transfert utilise est optionnelle. Pourquoi ce choix est-ileffectu?3 La dfinition du contexte de prsentation vient ensuite. A quoi correspond cette notion?Pourquoi est-elle obligatoire?4 Dans les diffrentes possibilits de PDV on trouve trois formats. Quels sont-ils? A quelsbesoins correspondent-ils selon vous?

    Exercice 4 : Dfinition de format de transfert ASN1

    On souhaite pour une application graphique 2D changer des objets dont l'un des types

    est le point coordonnes entires. Un point va donc tre dfini comme un type squencecomportant deux entiers, d'tiquette application et pour gagner un peu de place on va viter derenvoyer le type squence en le dclarant implicite.

    Question 1 - Donnez la dclaration en syntaxe abstraite du point? Rappelez la significationprcise dans cette dclaration les mots cls APPLICATION, IMPLICIT, SEQUENCE?

    Question 2 - On rappelle que la syntaxe de transfert ASN1 repose sur la structure suivante.Le numro associ au type universel entier est 2. On suppose que tous les objets sont dfinispar leur longueur explicitement donne dans les champs longueur (pas par un dlimiteur defin).

    2 bits 1 bit 5 bits

    Numro

    00 : UNIVERSEL01 : APPLICATION10 : SPECIFIQUE AU CONTEXTE11: PRIVE

    0 : Type primitif

    1 : Type construit

    Classe Longueur Donnes

    1 n octets Longueur octets

    C

    Donnez en hexadcimal le codage de transfert d'un point de coordonnes (5,4)

    Exercice 5 : Dfinition de donnes en ASN1 et de leur format de transfert.

    On souhaite pour une application de gestion accder distance diffrents items dedonnes dont la cl est le numro national d'identit.

    On donne la dfinition suivante du numro national d'identit qui est compos de sixchamps (dfinition simplifie) :

    - le champ sexe est un entier qui vaut 1 ou 2,- l'anne de naissance est un entier sur deux chiffres dcimaux compris entre 00 et 99,- le mois de naissance est un entier sur deux chiffres dcimaux compris entre 01 et 12,

    - le numro de dpartement de naissance est un entier sur deux chiffres dcimaux ,

    CNAM- Anne 2007/2008 -19- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    20/126

    - le numro de la commune de naissance dans le dpartement de naissance est unentier sur trois chiffres dcimaux,

    - le numro de la personne sur le registre de l'tat civil est galement un entier sur troischiffres dcimaux.

    Question 1 - Dfinissez en syntaxe abstraite ASN1 le numro national d'identit. Diffrentessolutions sont possibles. On pourra s'aider des exemples donns en cours ou en exercices enexpliquant la nature des choix effectus. .

    Question 2 Le numro associ au type universel construit SEQUENCE ou SEQUENCE OFest 16, et celui du type universel primitif ENTIER est 2, le type NumericString est cod 18 .On suppose que tous les objets sont dfinis par leur longueur explicite (pas par un dlimiteurde fin).

    Donnez le codage de transfert d'une personne de numro 2510641008009 soit ensyntaxe ASN1 l'instance suivante du type dfini la question prcdente: { 2, 51, 06, 41,008 , 009 } (en hexadcimal).

    Exercice 6 : Problme gnral ASN1

    On souhaite construire un serveur d'annuaire tlphonique simple. Ce serveur d'annuaire peuttre consult et mis a jour par des utilisateurs. Nous avons donc un modle client serveur.

    Question 1 - Donner une structure de donnes en C pour un enregistrement du fichiercorrespondant l'annuaire.Question2 - Donner la structure ASN1 et donner une ide du codage.Question 3 - Dfinir les oprations possibles sur ce fichier.Question4 - Dfinir le protocole d'accs au serveur (format des requtes, des rponses et deserreurs)Question5 - Coder ce protocole en ASN1.

    CNAM- Anne 2007/2008 -20- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    21/126

    Exercice 7 : Dfinition d'une traduction du langage IDL de CORBA vers lelangage Pascal

    Vous disposez d'une application comprenant plusieurs dizaines de milliers de lignes crites enPascal (Cf. en fin de sujet la note sur le langage Pascal). Vous avez t charg d'intgrer cette

    application dans un environnement CORBA. On vous demande donc de raliser une tudepour interfacer cette application avec des programmes CORBA existants : on souhaite que cesprogrammes puissent invoquer l'application crite en Pascal et puisse lui soumettre desrequtes.

    Cette tude comprend deux parties :- la dfinition d'une traduction du langage IDL de CORBA vers le langage Pascal- un certain nombre de modifications des sources Pascal de l'application

    Nous ne nous intressons ici qu' la premire partie de l'tude (i.e. la traduction du langageIDL vers le langage Pascal).

    1/ Langage IDL

    1.1/ Barrer la mauvaise rponse.Le langage IDL de CORBA permet de dfinir :- les interfaces des objets serveur dune application : oui - non- les implantations des objets serveur dune application : oui - non

    1.2/ Commenter le code IDL suivant en prcisant le rle de chaque mot-cl.

    module Garage{

    typedef long typeChevFisc;interface Voiture{

    attribute long NbPlaces;long Vignette( in typeChevFisc cf );

    };};

    2/ Traduction IDL vers Pascal

    2.1/ En vous inspirant des traductions IDL vers respectivement C, C++ et Java du polycopi,proposer une traduction du code IDL de la question 1.2/ vers le langage Pascal.

    2.2/ Expliquer en quelques mots, pour chaque mot-cl traduit, vos choix.

    3/ Passage de paramtres

    3.1/ Rappeler le rle des mots-cls in, inout et out dans la dclaration IDL dune mthode.

    3.2/ Proposer une traduction en Pascal du code IDL suivant :

    CNAM- Anne 2007/2008 -21- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    22/126

    long maMethode( in long arg1 , inout long arg2 , out long arg3 );

    4/ Traduction des types de donnes du langage IDL

    4.1/ En plus du type IDL long vu aux questions 1/ et 3.2/, citer les autres types du langage IDL

    pour lesquels il est ncessaire de dfinir une traduction vers les langages Pascal. En proposerune traduction.

    Note propos du langage Pascal

    Pour les besoins de ce problme, on considre que le langage Pascal retenu est identique aulangage Pascal habituel, mais qu'il comporte un type spcifique OBJECT permettant dedfinir des classes d'objets.Par exemple, le code suivant :

    TYPE tHeure = RECORD (* ... *) END;TYPE tHorloge = OBJECT

    FuseauHoraire : Integer;METHOD RetourneHeure : tHeure;METHOD PositionneFuseau( fh : Integer );

    END;dfinit en plus du type tHeure, l'interface d'une classe tHorloge qui comporte : une variableentire FuseauHoraire et deux mthodes RetourneHeure et PositionneFuseau. La dfinition ducode de ces mthodes est identique celle des procdures Pascal traditionnelles.

    CNAM- Anne 2007/2008 -22- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    23/126

    Exercice 8 : CORBA

    Pour permettre l'interoprabilit dans des systmes d'objets rpartis de constructeursdiffrents, le standard CORBA (version 2.0) dcrit deux lments essentiels qui sont lelangage de dfinition des interfaces (IDL "Interface Definition Language") et les protocolesGIOP (General Inter-ORB Protocol) et IIOP (Internet Inter-ORB Protocol).

    1 Questions IDL CORBA

    L'IDL CORBA permet de dcrire pour des objets clients, les interfaces d'accs desobjets serveurs (c'est--dire les services fournis par les objets serveurs). Nous donnons enannexe la grammaire fort simplifie du langage IDL que vous pouvez consulter si ncessaire.Pour rpondre aux questions qui suivent la comprhension de la totalit de la grammaire IDLCORBA n'est pas ncessaire.

    Soit le fichier IDL contenant la dfinition suivante pour des services fournis par unobjet Calcul. Celui-ci opre sur un nombre rel stock en mmoire :

    module Math{interface Calcul

    {exception DivByZero { String commentaire;} ;

    oneway void Init ( in Double valeur) ;Double Add ( in Double valeur ) ;

    Double Sub ( in Double valeur ) ;Double Mult ( in Double valeur ) ;

    Double Div ( in Double valeur ) raises ( DivByZero ) ;};

    };

    1.1 Quel est l'ensemble des services ou oprations offerts par le serveur ou l'objet Calcul?

    1.2 Que signifie la suite de caractres : '( in Double valeur )' dans l'exemple prcdent ?

    1.3 En IDL CORBA le mot cl "oneway" dfinit une invocation de procdure distanteasynchrone sans rponse Quel est le mode de fonctionnement d'un tel appel?

    1.4 Par dfaut, lorsque le mot "oneway" n'est pas prcis, les oprations dcrites en IDL sontdes appels de procdure distante synchrone avec la smantique "au plus une fois" vers l'objetou le serveur distant. Rappelez le fonctionnement d'un appel de procdure synchrone avec unesmantique au plus une fois. Qu'est-ce que cela signifie pour le dveloppeur d'applicationsrparties?

    1.5 Par rapport au langage de syntaxe abstraite ASN.1 tudi en cours et en travaux dirigs,quel est l'apport du langage IDL CORBA prcdent?

    2 Questions GIOP et IIOP

    CNAM- Anne 2007/2008 -23- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    24/126

    Le bus logiciel CORBA, appel ORB pour Object Request Broker, sert de support decommunication entre les clients et les serveurs. Il vhicule les requtes et les rsultats ou leserreurs associes. Pour permettre l'interoprabilit entre des bus de diffrents constructeurs, unprotocole gnral GIOP a t dfini ("Gnral Inter-Orb Protocol"). Le protocoled'interoprabilit inter-bus sur l'Internet ou Internet Inter-ORB Protocol (IIOP) est la mise en

    uvre du protocole GIOP pour l'architecture TCP/IP. On peut driver du protocole GIOPd'autres protocoles inter-orb associs d'autres architectures de rseau.

    Entre autres fonctionnalits le protocole GIOP dfinit une syntaxe de transfert. Lareprsentation des donnes au format CDR ("Common Data Representation") utilise par leprotocole GIOP spcifie un format de donnes pour reprsenter tous les types IDL sous laforme d'une suite d'octets. CDR dcrit prcisment le codage et l'alignement de chacun destypes dans un message.

    2.1 Quelle est la solution adopte par ASN1/BER relativement au problme de l'ordred'mission des octets (petit boutiste, grand boutiste)?

    2.2 L'un des premiers octets du message GIOP contient la valeur d'un boolen indiquantl'ordre des octets des donnes encapsules. Si le boolen est faux, les octets sont alignsdans l'ordre grand boutiste ("big endian'); si la valeur est vrai, les donnes sont encodesdans l'ordre petit boutiste ("little endian"). Donner les raisons du codage de ce premierboolen dans un message.

    Pour pouvoir accder aux services offerts par un serveur ou un objet, il faut trecapable de l'identifier et de le localiser et de raliser des RPC. C'est l'une des fonctions du buslogiciel que de grer des rfrences d'objets cette fin. Une rfrence d'objet est baptise (IORInteroperable Object Reference). Il n'y a pas un format unique de rfrence car les

    dveloppeurs sont libres de cette dfinition.. Par exemple ces rfrences contiennent desinformations spcifiques la couche de transport utilise pour accder l'objet. Cependanttout rfrence doit au moins contenir les informations suivantes:

    - le numro de version de la spcification de la couche transport accepte par leserveur d'objet.

    - l'adresse transport permettant d'atteindre le serveur destinataire de la requte (dans leformat du protocole de transport utilis).

    - une cl d'accs reprsente par une squence d'octets permettant d'identifier et delocaliser l'objet sur le serveur.

    Un exemple de rfrence d'objet IOR qui est fourni par l'ORB industriel ILU est donnpar:

    1.0:sunrpc_2_0x61a79_153029598/rm=tcp_163.173.128.208_3503:IDL%3AMath%3A/Math/Calcul

    2.3 Pour cet exemple donner la signification des diffrents champs.

    2.4 Dans l'exemple de l'IOR prcdent, quels sont les protocoles de transport et de RPCutiliss par l'ORB pour raliser les invocations distantes?

    2.5 Le protocole IIOP ne fonctionne pas en mode connect. Par contre il utilise pour envoyerses messages une voie de communication TCP qui elle est en mode connect. Citez au moins

    CNAM- Anne 2007/2008 -24- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    25/126

    deux protocoles tudis en cours fonctionnant galement en mode non connect au dessus deTCP?

    Le protocole GIOP dfinit 7 types de messages diffrents qui sont mis soit par leclient, soit par le serveur, soit par les deux.

    Request : mis par le client pour invoquer des oprations sur les objets ou serveurs CORBA.L'entte du message contient entre autres un identificateur de requte. Le corps d'un messagerequest contient les valeurs des paramtres en entre (mode in et inout du langage IDL).

    Reply : mis par le serveur en rponse un message Request. L'entte du message contientl'identificateur de la requte. Le corps du message contient le rsultat de l'opration ainsi queles paramtres en sortie de celle-ci (mode inout et out). Si un problme survient lors dutransport ou de l'excution de la requte, le message contient alors la valeur de l'exceptionindiquant ce problme.

    CancelRequest : permet un client d'informer un serveur qu'il ne dsire plus attendre larponse une requte qu'il a mis.

    LocateRequest : ce message permet de savoir si une rfrence IOR est valide, si le serveur estcapable de recevoir directement des requtes pour un objet donn, et dans le cas contraire, dedterminer la nouvelle adresse IOR permettant d'accder l'objet. Cela permet de grer lamigration des objets.

    LocateReply : c'est la rponse associe un message de type LocateRequest. Il contient unboolen indiquant si la rfrence IOR dsigne un objet local. Si ce boolen est faux, alors lemessage contient en plus une rfrence IOR indiquant la nouvelle localisation de l'objet.

    CloseConnection : ce message informe le client que le serveur interrompt son service. Lesclients savent alors que toutes les requtes pour lesquelles ils attendaient des rponses neseront jamais traites. Les clients peuvent retransmettre leurs requtes vers d'autres serveurs.

    MessageError : ce message est envoy en rponse tout message GIOP qui ne peut pas tretrait car il est erron. Par exemple, le numro de version est inconnu, un type de message estinconnu, ou un en-tte est erron.

    L'en-tte d'une requte (Request) se dfinit principalement en IDL de la faonsuivante:

    struct RequestHeader {Unsigned long request_id;

    boolean reponse_expected;sequence object_key;string operation;

    };

    2.6 Donner la signification de chaque champ et leur fonction.

    2.7 Dans le cas d'une opration dfinie en IDL de la faon suivante :

    Double exemple (in Short m, out String str, inout Double p);

    CNAM- Anne 2007/2008 -25- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    26/126

    Quels sont les lments qui vont faire partie du corps de la requte ?

    2.8 On s'intresse dans cette question la ralisation du protocole IIOP au dessus de la couchetransport TCP (interface socket). En supposant qu'il n'y ait encore eu aucune requte entre le

    client et le serveur, un client dcide de demander la ralisation d'une requte un serveur. Uneconnexion TCP doit tre tablie puis le message de requte doit tre achemin. On utilise l'interface socket pour TCP.

    Donner l'enchanement des primitives socket qui sont ncessaires la ralisation d'unerequte sur un objet distant. Vous commenterez votre solution en donnant la signification desdiffrentes tapes successives proposes aussi bien pour la souche ct client que pour lasouche ct serveur

    Annexe : Grammaire de l'IDL CORBA

    Nous rappelons quelques conventions d'criture d'une grammaire d'un langage: lesmots en gras sont des noms terminaux ou mots-cls, les mots entre sont des mots qui sontensuite redfinis, les mots entre [ ] sont des mots optionnels. Lorsqu'une dclaration ou unmot est suivi d'une *, cela signifie que on peut trouver de 0 n fois cette dclaration ou cemot. Le texte entre /* et */ est un commentaire.

    Un module est un espace de nommage permettant de dcrire les interfaces de serviceofferts par un serveur ou objet distant. Dans une interface on trouve la dclaration de types, deconstantes, d'attributs, d'exceptions et d'oprations.

    module /* un contexte */

    {

    interface /*interface d'un service ou d'un

    objet*/{

    *;*;

    *;

    ::= exception '{'*'}'

  • 7/23/2019 71502631 Sujets Exercices

    27/126

    '(' *')'

  • 7/23/2019 71502631 Sujets Exercices

    28/126

    Srie d'exercices scurit

    Exercice 9 : Cryptogramme 1

    1) Cassez le cryptogramme suivant qui utilise une substitution monoalphabtique. Le texte enclair ne contient que des lettres. Cest un extrait dune trs clbre fable de La Fontaine.

    gcxobwryv ib ogx tb syiibypsyxg ib ogx tbv qmgzevt cpb wgqrp wrox qysyibg tbv obiybwv t roxrigpvvco cp xgeyv tb xcojcybib qrcsbox vb xorcsg zyvab igyvvb g ebpvbo ig syb

    jcb wyobpx qbv tbcd gzyvib obfgi wcx wrox mrppbxboybp pb zgpjjcgyx gc wbvxyp

    2) En supposant que vous disposiez dun histogramme de la rpartition des lettres et desdigrammes dans la langue franaise ainsi quune fonction Nombre_fautes(texte) qui donne(selon un correcteur orthographique) le pourcentage de mots dans un texte qui ont au moinsune faute dorthographe, imaginez un algorithme de cryptanalyse de ce type de crypto-systmes

    Exercice 10 : Cryptogramme n 2

    Casser le cryptogramme suivant qui utilise une transposition par colonnes. Le texte enclair est issu d'un ouvrage classique sur l'informatique; on peut donc supposer que le mot"ordinateur" y figure. Le texte ne contient que des lettres (sans espace). Il est dcoup en blocsde 5 caractres pour plus de lisibilit.

    ntsus ueire eibps etsio ootuu rpmrn eaicq iunps cnlogeuern lndur raose xnntu dnaeo eseue clton nretd trels

    Exercice 11 : Cryptogramme n 3

    1 Chiffrer avec le chiffre de Vigenre le texte suivant "textesecretadecoder" en utilisantcomme clef le mot crypto

    2 Pour le mme texte en clair on obtient le texte chiffr suivant "brqksmzcspxiqxtcxzr" .Quelest la clef ?

    3 Supposons que vous disposiez dun texte en clair et une partie du mme texte chiffr, maisque ce texte soit plus court que la clef (par exemple vous ne connaissez que brq danslexemple prcdent). Quelle information cela vous apporte til ? Imaginez des stratgies de

    cryptanalyse dans le cas ou la clef est un mot franais et dans le cas ou cest une suite alatoirede lettres. Comment distinguer priori ces deux cas ?

    CNAM- Anne 2007/2008 -28- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    29/126

    Exercice 12 : Etude du systme de chiffrement cl publique RSA

    On rappelle l'algorithme du MIT ( Rivest, Shamir, Adleman, 1978).

    1- Choisir deux nombres p et q premiers et grands (p, q > 10100)

    2 - Calculer n: = p * q z: = (p - 1) * (q - 1)

    3 - Soit d un nombre premier avec z (z et d sont premiers entre eux).

    4 - Dterminer un entier e tel que e * d = 1 mod z .

    Soit A un message binaire. Dcouper A en blocs de k bits tel que k soit le plus grand entier tel

    que 2k< n.

    Soit P un bloc de k bits, le codage de P est donn par : C = E(P) = Pe (mod n)

    Le dchiffage d'un message crypt C est donn par: P= D(C) = Cd (mod n)

    1)- On donne les valeurs numriques suivantes : p = 3, q = 11 (trop petites en pratique, maistraitable en exercice).

    Calculer les valeurs des nombres d et e vrifiant les conditions de l'algorithme du MlT. Pouravoir un couple unique on prend la plus petite valeur possible de d et pour cette valeur la plus

    petite valeur possible de e.

    Quelle est la cl publique et quelle est la cl secrte?

    2) - Soit le message de 3 chiffres 1, 6, 15 soit par blocs de 5 bits la configuration de bitssuivante:

    00001 00110 01111Coder ce message en utilisant les paramtres de chiffrement RSA prcdents.

    3) - On reoit le message suivant par blocs de 6bits (4 , 14 , 24):000100 001110 011000

    Donner la valeur initiale du message (texte en clair), en prenant les mmes valeurs pour d, e etk qu' la question 2.

    Question 4 - Pourquoi ne peut-on prendre p et q petits ?

    Que se passe-t-il lorsque p et q sont de l'ordre de l0l0 ?

    CNAM- Anne 2007/2008 -29- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    30/126

    Exercice 13 : Kerberos

    Le projet Athena du MIT (Massachusetts Institutes of Technology) tait, dans le milieudes annes 80, un projet de recherche portant sur les systmes rpartis. Il avait pour objectif la

    dfinition d'un environnement homogne d'accs pour des PC sous MS/DOS, des stations detravail ou des calculateurs sous UNIX en grand nombre et relis par plusieurs rseaux locaux.L'un des points forts de cet environnement est le protocole qui gre la fois l'authentificationdes utilisateurs et certains mcanismes de protection. Ce protocole est dnomm Kerberos(Cerbre, le chien trois ttes, gardien de l'enfer). Depuis ces origines Kerberos a connu denombreuses variantes et a t implants dans diffrents produits (En particulier chez DigitalEquipment et plus rcemment chez Microsoft). Il constitue le standard des systmes dedistribution des clefs symtriques (gardiens des clefs) et est trs utilis dans lInternet, en

    particulier par les organismes de recherche et denseignement. La plus part des protocoles delInternet (PPP, HTTP, SMTP, FTP) supportent une authentification des entitscommunicantes bases sur Kerberos. Ses principes ont t repris dans des architecture de

    protection comme DCE et Windows NT (c. f. le chapitre sur la protection de cette secondepartie). La version en cours de normalisation lIETF est la v5 qui nutilise que lacryptographie symtrique (DES et triple DES) et les fonctions de hachage sens unique(MD5 et SHA-1), la v4 faisant lobjet de la RFC1501.

    Questions 1Quelle sont les fonctions que doit raliser un gardien de clefs ?Expliquer les principes du triple DES et ses avantages par rapport au DES ?A quoi peut servir la combinaison dune fonction de hachage et dun crypto systmesymtrique ?

    Description du protocole

    Kerberos met en communication trois entits :- lentit client : un programme ou un utilisateur sur une machine donne. Pour

    simplifier nous considrons que lentit client figure uniquement un utilisateur humain. Pournous ce sera Alice.

    - lentit serveur: un programme requis par lentit client (par exemple le serveur defichier). Ce sera dans la suite le serveur de Bob.

    - le centre de distribution des clefs, appel KDC (pour Key Distribution Center), ilconnat les clefs prives de toutes les entits clients ou serveurs quil conserve dans une base

    de donnes, il gnre aussi des clefs de session (temporaires).Pour fonctionner Kerberos ncessite une synchronisation des horloges de toutes les machinesdu rseau. Ce protocole doit raliser entre tout couple d'horloge du rseau un cart infrieur 5 mn pour des dates lues au mme instant (ce qui est assez facile raliser).

    Pour pouvoir utiliser un serveur, Kerberos ralise un protocole de distribution de cls desession qui respecte les tapes suivantes :1. Alice sauthentifie auprs du KDC2. Alice demande un ticket d'utilisation du serveur Bob au KDC. Un ticket au sens deKerberos comporte essentiellement une cl de session et diffrentes informations annexes

    dtailles plus loin. KDC lui renvoie un ticket valable pour le serveur demand.

    CNAM- Anne 2007/2008 -30- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    31/126

    3. Quand Alice sollicite le serveur Bob, elle utilise le ticket que lui a remis le KDC quil metdans sa requte.

    Nous allons dtailler les trois tapes prcdentes. Pour cela, nous dfinissons prcisment les

    notations des diffrents objets manipuls par le protocole :

    Alice Le nom du client.A,a Une clef utilise par Alice pour sauthentifier qui en gnral est drive

    dun mot de passe A est connue dAlice et de Kerberos (en majusculequand elle est utilise pour le dchiffrement, en minuscule pour lechiffrement)

    SA,sa La clef de session dAlice SA est connue dAlice et de KerberosBob Le nom du serveur invoqu.B,b La clef prive du serveur Bob. (en majuscule quand elle est utilise pour le

    dchiffrement, en minuscule pour le chiffrement)

    Kerberos Le nom du serveur de distribution des clefsKDC,kdc La clef de Kerberos connue de lui seul(en majuscule quand elle est utilise

    pour le dchiffrement, en minuscule pour le chiffrement)KAB,kab La clef de session dtermine entre client et serveur. (en majuscule quand

    elle est utilise pour le dchiffrement, en minuscule pour le chiffrement)Ticket Le ticket donn un client Alice pour utiliser un serveur Bob.date_fab_X La date de fabrication de l'objet Xdate_courante Date donne par lhorloge locale de la machine

    Comme dans tout systme d'accs a mots de passe, le client a convenu pralablement avec

    ladministrateur systme dun nom (Alice), et dun mot de passe qui devient la clef prive AdAlice. Pareillement, il a t convenu, pour le programme serveur, dun nom (Bob), et duneclef prive B. Les clefs ne sont connues que de leur propritaire (qui doivent donc les gardersecrtes), et du serveur d'authentification Kerberos. Ce systme doit donc tre

    particulirement bien protg.

    Etape 1 : Authentification du client

    Alice commence par envoyer une requte dauthentification KSB_AS_REQ contenant sonNom de login (Alice) Kerberos. Kerberos lui renvoie un message KSB_AS_REP contenantune clef de session SA personnelle Alice et un ticket de contrle daccs TGT (TicketGranting Ticket).

    CNAM- Anne 2007/2008 -31- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    32/126

    Questions 2Expliquez lusage des deux chiffrements raliss dans cette tape.Contre quel type dattaque est destine la variable date_per_SA ? Expliquez son usage

    Etape 2 : Obtention du ticket daccs au serveur

    Lorsque Alice dsire (durant la priode de validit de son ticket dauthentification) utiliser leservice du serveur Bob, elle adresse Kerberos une requte daccs ce serveur. Cetterequte contient outre le nom du serveur, TGT et la date courante chiffre avec SA.A rception de cette demande Kerberos dchiffre TGT, rcupre la clef SA, dchiffre la dateavec SA et vrifie que cette date est voisine de son heure courante.

    Questions 3Que prouve ce contrle ?

    Quelle technique de protection peut utilser Kerberos pour le contrle des droits dAlice?Quel est lusage du chiffrement ralis par Kerberos?

    Etape 3 : Accs au serveur applicatif

    Dans un dlai compatible avec la dure de validit du Ticket, Alice va demander au serveurBob dexcuter la transaction pour laquelle elle a obtenu le ticket. Elle envoi donc ceserveur une requte avec le ticket.

    Questions 4A quoi sert la variable d1 et pourquoi est elle chiffre ?Expliquez le principe du contrle ralis par BobQuel est lusage de la variable REP2 ?A quoi pourra servir KAB dans la suite des change de la transaction courante entre Alice etBob ? Comment appelle ton une telle variable?

    Extension de Kerberos

    Une extension de Kerberos est en cours de normalisation. Elle consiste utiliser uncrypto systme asymtrique pour toutes les oprations utilisant des clefs rmanente (A,B,

    KDC). Dans ce cas Kerberos na plus besoins de stocker les clefs symtriques de chaque

    CNAM- Anne 2007/2008 -32- Exercices Technologie client-serveur

    KSB_AS_REQ, Alice, Kerberos

    Gnre la clef SA ;date_per_SA := date_courante+ dure_validit ;TGT=REP :=

    KSB_AS_REP, Kerberos, Alice,REP

    Alice Kerberos

    SA,TGT :=

  • 7/23/2019 71502631 Sujets Exercices

    33/126

    participant. Il ne stocke que des clefs symtriques de session et sa clef (KDC) et des certificatspour chaque utilisateur. Ceci rduit considrablement le risque li une attaque de Kerberos.

    Question 5Donnez le schma dchange de messages de ltape 1 (cas nominal) correspondant cette

    extension en justifiant lutilisation de chaque opration cryptographique.[Adr_c ; Adr_s ; ( { Ac }Cl_sess_c,s ; { Tc,s }Cl_s ) ]

    CNAM- Anne 2007/2008 -33- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    34/126

    Exercice 14 : Partage d'un secret

    Un conseil d'administration prend ses dcisions au moyen de votes lectroniques. Ilcomporte un prsident dont la voix compte double et trois membres dont la voix est simple(nots 1,2,3).

    Une dcision n'est prise que si un vote rassemble au moins 3 voix.Les votes sont acquis lorsque le titulaire prsente selon son rang soit une soit deux parts d'unsecret selon ses droits qui l'authentifie.

    - Les services de scurit ont fait implanter la mthode de Shamir avec une arithmtiquemodulo 31.- Le secret partag est tir alatoirement la valeur 7- Les coefficients alatoires du polynme sont 1, 9, et le terme constant 7- On dduit les parts de secret du prsident aux points

    1 , 2- On dduit des parts du secret des membres 1, 2, 3 des valeurs du polynme aux points

    3 , 4 , 5

    1 Quelles sont les valeurs des parts?

    2 On suppose que le prsident et le membre 1 sont d'accords.Montrez qu'ils peuvent emporter le vote.

    Exercice 15 : Problme de notarisation

    On souhaite raliser un service ayant pour objectif la non rpudiation de transactionsentre deux sites A et B qui fonctionnent en mode A client et B serveur (service denotarisation). Le notaire est not N.

    On note b la clef de chiffrement (clef publique dans les crypto systmes asymtriques)de Bob et B sa clef de dchiffrement (clef prive dans les crypto systmes asymtriques) .

    Les tapes du protocole sont les suivantes :

    1. Alice chiffre et signe M avec sa clef a et lenvoie au notaire.2. Le notaire dchiffre le message, vrifie la signature qui garantit que le demandeur du

    service est bien Alice. Il attribue lenvoi du message un numro de squence envoi(M),date cet envoi te(M), enregistre envoi(M), te(M), M dans un fichier intgre. Il constitue unmessage contenant envoi(M) sign avec la clef dAlice et (envoi(M), te(M), M) chiffravec sa clef.

    3. Alice peut alors contrler la signature qui authentifie le notaire (qui est le seul avec Alice connatre la clef dAlice) et constitue une rfrence de la preuve denvoi. Par contreAlice ne peut pas dchiffrer la seconde partie du message. Elle lenvoie Bob.

    4. Bob ne peut pas, lui non plus, lire le message. Il le renvoie au notaire5. Le notaire dchiffre le message avec sa clef. Il vrifie que le numro denvoi est dans son

    fichier. Il attribue la rception du message un numro de squence rception(M), datecette rception tr(M), enregistre rception(M), tr(M), M dans le fichier intgre. Il constitue

    un message contenant (envoi(M), te(M), rception(M),tr(m), M) sign et chiffr avec la

    CNAM- Anne 2007/2008 -34- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    35/126

    clef de Bob. Il transmet ce message Bob. Il envoi un message contenant rception(M) Alice.

    6. Bob peut dchiffrer le message, contrler la signature qui authentifie le notaire. Il envoieun accus de rception sign avec sa clef au notaire.

    7. Le notaire enregistre la fin de la transaction.

    Question 1 Rappelez la dfinition du problme de non rpudiation.

    Question 2 Dcrivez par des diagrammes d'change de messages chaque tape en utilisantuniquement des algorithmes de chiffrement symtriques; pour chaque tape, exprimez lesproprits obtenues: confidentialit, intgrit, non rpudiation, vis a vis de tous lesparticipants (A, B, N, les autres entits prsentes dans le rseau) qui sont ralises parchacune des six tapes.

    Question 3 Proposez pour chacune des tapes une solution cl publique qui atteigne

    exactement les proprits prcdentes vis a vis des mmes intervenants. Expliquez demanire trs prcise pourquoi votre solution assure les proprits recherches.

    Question 4 On suppose que l'usager client A dispose d'un dlai dmax pour signaler la pertede sa cl. Toute perte non signale dans le dlai dmax ne peut-tre tenue charge contrel'usager. Toute perte non signale aprs le dlai dmax entrane la responsabilit totale duclient en cas de contestation.

    Que pourrait faire le notaire pour que le serveur B et le notaire ne soient jamaispigs par un client malveillant qui dclare la perte de sa cl aprs avoir donn un ordre etavant dmax. Dans quelles applications une telle stratgie est elle utilisable? Dans quellesapplications est-elle inutilisable?

    Question 5 La solution utilise l'algorithme RSA. Si un utilisateur pour rpudier sa signaturelectronique conteste la scurit du protocole quels arguments peuvent tre opposs?

    Question 6 Le site B peut essayer de dnier avoir reu l'ordre (s'il ne lui convient pas) enn'mettant pas l'acquittement final et en prtendant ensuite qu'il n'a jamais reu la transactioninterprtable ou que son calculateur est tomb en panne ce moment. Comment le notaire

    peut-il contrer cette attitude (recherchez une solution dduite des pratiques bancairescourantes)?

    CNAM- Anne 2007/2008 -35- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    36/126

    Exercice 16 : Gestion d'une connexion scurise

    Dans ce problme sont tudis les mcanismes de gestion d'une connexion scurise,c'est dire offrant des services de confidentialit ou d'intgrit des donnes.

    On considre que le protocole de scurisation est construit en utilisant les services d'un

    protocole de transfert fiable comme le transport ISO TP4, TCP

    I.1 Principes gnrauxUne communication scurise ncessite les oprations principales suivantes, elles

    mmes divises en tapes:

    1) Ouverture de la connexion scurise:a) Ouverture de la connexion du protocole sous-jacent,

    b) Authentification (rciproque) des entits communicantes,c) Ngociation du mode de scurisation des transferts,d) change d'une clef de session.

    2) Transfert des donnes:e) En mission: chiffrement des messages, construction des trames scurises,f) En rception: Dchiffrement des messages et dtection des attaques ventuelles,g) Priodiquement: changement de la clef de session.

    3) Fermeture de la connexion scurise:h) Fermeture de la connexion du protocole sous-jacent,i) Destruction du contexte de connexion scurise.

    Expliquez en deux trois lignes l'utilit de chacun des 9 points prcdents.

    Dans la suite de ce problme nous utilisons les notations suivantes:- A,B les entits impliques dans l'change scuris- A----->B: M (dans le protocole A doit envoyer M l'entit B)- S est un serveur de clef

    - K est une clef et K-1

    son inverse (dans le chiffrement asymtrique K est la clef

    publique et K-1

    la clef prive)- {X}

    Kest un texte X chiffr avec K comme clef

    On a donc {{X}K

    }K-1

    =X et l'on suppose aussi que{{X}K-1

    }K

    =X

    - On utilise dans ce problme la notion de fonction de hachage H. H(M) application deH un message M fournit une valeur dpendant de l'ensemble du message M (ce pourrait treune somme de contrle ou le rsultat d'une division polynomiale).

    I.2 Authentification des correspondants

    Un schma d'authentification clef publique dans la communication scurise est lesuivant. On utilise un chiffrement asymtrique tel que le RSA. Kb est la clef publique de B.

    Pour que B s'authentifie auprs de A on procde aux oprations suivantes:1) A tire un nombre alatoire N2) Message 1 A----->B:A,B,N

    3) Message 2 B----->A:B,A,{N}Kb-1

    CNAM- Anne 2007/2008 -36- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    37/126

    A vrifie que {{N}Kb-1

    }Kb

    =N ce qui authentifie B.

    I.2.1 Rappelez les principes du chiffrement asymtrique ( clef publique)

    I.2.2 Pourquoi N doit-il tre un nombre alatoire (pas une constante par exemple) ?

    I.3 Utilisation d'un serveur de clefs publiques

    Pour obtenir la clef publique Kb de B, A fait appel un serveur S de clefs publiques.Ce serveur gre un fichier qui ne peut tre modifi que par un responsable de scurit dont laclef publique Ks est connue de tous les utilisateurs habilits utiliser le protocole de scurit.

    Un enregistrement du fichier a la structure suivante:B,Kb,{H(B,Kb)}

    Ks-1I.3.1 Quel est l'utilit du dernier champ de cet enregistrement?

    I.3.2 Compltez le protocole d'authentification donn la question prcdente en introduisantles oprations entre A et le serveur S pour rcuprer Kb et vrifier sa validit.

    I.4 Ngociation des paramtres et change la clef de session

    Dans l'change suivant de ngociation et d'change:

    A est l'appelant et B l'appel.Y est une proposition du mode de protection qui peut prendre soit la valeur C

    (confidentialit et intgrit), I (intgrit seule) ou U (pas de protection),Z est la valeur accepte par B,

    K' est une clef de session pour un algorithme de chiffrement symtrique type DES,Num est la valeur initiale des numros de squences des messages changs qui serontutiliss par la suite dans le transfert.

    1) A tire deux nombres alatoires K' et Num2) Message n : A----->B:A,B,{Y,K',Num,H(Y,K',Num)}

    Kb3) B calculeY,K',Num,H(Y,K',Num)={{Y,K',Num,H(Y,K',Num)}Kb}Kb-1 et vrifie le H.4) Message n+1: B----->A:B,A,{Z}

    Ka5) A calcule

    Z={{Z}

    Ka}Ka-1

    I.4.1 A et B peuvent souhaiter des modes de protection diffrents. En fonction du mode deprotection dsir par A et B, discutez la valeur finale de Z accepte par B.

    1.4.2 A quoi sert l'usage d'une clef de session? Pourquoi utiliser un protocole de type DES (etpas le RSA) pendant l'change?

    1.4.3 Pourquoi faut il renumroter les messages pendant l'change alors que le protocole sous-jacent, qui est fiable, doit dj le faire ?

    1.4.4 Commentez les 5 tapes de l'change prcdent en expliquant la raison des diffrentesoprations

    CNAM- Anne 2007/2008 -37- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    38/126

    1.5 Phase de transfert

    Proposez une structure des trames scurises changes (les champs de contrle quidoivent tre ajouts et le chiffrement appliqu), en fonction du mode de protection choisi.

    1.6 Programmation en RPC

    L'ouverture de connexion prcdente est programme dans un environnement d'appelde procdure distance.

    On structure l'application de la faon suivante. A et B changent leur message enmode asychrone sauf pour l'appel S o A et B jouent le rle de client et de serveur et S lerle de serveur. On suppose que l'on dispose des primitives du niveau infrieur:ouverture_connexion (metteur, destinataire), envoyer(metteur, destinataire, contenu),recevoir(metteur, destinataire, contenu).

    Dcrire schmatiquement les oprations ralises sur le client et le serveur pourobtenir les clefs publiques.

    Exercice 17 : Changement priodique de cls en cryptographie clspubliques.

    On tudie un protocole de transmission d'informations dvelopp pour scuriser unevoie point point (logiciel de communication Nicecom). Dans l'une des versions on utilise un

    algorithme de cryptographie cls publiques comme le RSA.Chaque utilisateur dispose donc au dpart d'un couple cl publique, cl prive pour unalgorithme cls publiques RSA:

    Pour un utilisateur A: cl secrte DA et cl publique EAPour un utilisateur B: cl secrte DB et cl publique EB

    Pour rendre excessivement difficiles les violations de scurit on dcide dans ceproduit de pratiquer un changement priodique des cls de faon automatise (par change demessages en cours de dialogue).

    En fait les cls vont donc tre modifies priodiquement de sorte que l'on utilisera

    pour un site comme A une suite de couples de cls:

    (EA(0) = EA, DA(0) = DA ), puis (EA(1), DA(1)) , ....., puis (EA(i), DA(i)) , (EA(i+1),DA(i+1)) ,....

    A l'instant initial A utilise (EA(0), DA(0)) et B connat EA(0) et symtriquement. Butilise (EB(0), DB(0)) et A connat EB(0).

    On veut atteindre les objectifs suivants:

    O1 : Authentification des correspondants.

    Dans les exemples traits A est l'appelant et B l'appel.

    CNAM- Anne 2007/2008 -38- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    39/126

    O2 : Confidentialit des informations qui circulent sur le rseau.

    O3 : Authentification de l'origine de tous les messages changs.

    O4 : Limitation de la dure d'usage des cls par changement priodique.

    Le logiciel considr utilise un protocole Px suivant entre les deux usagers A et B.Dans le schma suivant on ne dcrit pas compltement le rle de tous les messages etl'utilisation des variables changes (objet de questions du problme).

    A B

    Choisir un nombrealatoire RA

    Choisir un nombrealatoire RB

    Envoyer [DA{EB(RB)}]

    DB{EA(RA),RB}

    Recevoir [DB{EA(RA),RB}]

    Envoyer [DB{EA(RA),RB}]

    DA{EB(RB)}

    Recevoir [DA{EB(RB)}]

    Envoyer [RA]

    Recevoir [RA]

    RA

    Dcoder RA et RB

    Dcoder RB

    Question 1 : Quel type de problme permet de rsoudre le protocole Px (justifiez votrerponse en discutant du fonctionnement du protocole Px en particulier du rle des nombres

    RA et RB)? Que pensez vous de l'efficacit de ce protocole pour rsoudre ce problme entermes de scurit et de performances?

    Question 2 : On prend le protocole Px comme base pour obtenir une version modifie Pypermettant le changement scuris des cls c'est dire le passage du couple (EA(i), DA(i)) (EA(i+1), DA(i+1)) et galement du couple (EB(i), DB(i)) (EB(i+1), DB(i+1)). On supposeque les sites disposent d'algorithmes leur permettant de dterminer quand ils le souhaitent descouples cl publique, cl prive comme (EA(i+1), DA(i+1)) pour l'algorithme RSA.

    2.1 Proposez des modifications du protocole Px pour dfinir le protocole Py quiassurent le changement scuris des cls.

    2.2 Quelles cls change-t-on, quel moment, selon quel cryptage? Justifiez votre

    solution. On rappelle que la scurit de l'algorithme RSA repose sur le fait que les cls privesdoivent rester confidentielles.

    CNAM- Anne 2007/2008 -39- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    40/126

    Question 3 : En quoi la technique de modification des cls applique rend t-elle extrmementdifficile l'action des pirates.

    3.1 On examinera d'une part le problme de dcryptage par un pirate qui essaierait decasser le code par analyse des messages changs.

    3.2 On examinera ensuite le cas d'un pirate qui connatrait les cls initiales d'unutilisateur A ou B par des moyens autres que le dcryptage (ngligence de l'utilisateur). Que sepasse-t-il?

    3.3 L'accs au calculateur de l'metteur ou du destinataire en session distanceconstitue une possibilit d'attaque d'un tel protocole. Que doit faire un pirate qui a russi seconnecter?

    3.4 Quels sont les moyens matriels et logiciels qui protgent les systmes de ce typed'attaque?

    Questions 4:4.1 Quand on est en phase i (avec les couples des cls (EA(i), DA(i)) (EB(i), DB(i)) )

    comment sont assures la confidentialit et l'authentification des messages en mode RSA ?4.2 Quel est l'inconvnient majeur de cette approche ?4.3 Comment pourrait-on rsoudre ce dernier problme ?

    CNAM- Anne 2007/2008 -40- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    41/126

    Exercice 18 : Commerce lectronique sur Internet: SET ("SecureElectronic Transactions")

    Pour scuriser le commerce lectronique sur Internet le standard SET a t proposen 1996/1997. Il est soutenu par les principaux groupements de cartes bancaires Visa etMaster Card ainsi que par de nombreux fournisseurs (IBM, Microsoft, ...). SET propose unensemble de protocoles de scurit pour le paiement par carte bancaire sur Internet. Il utilisepour cela des techniques de cryptographie ( cls publiques RSA, cls secrtes DES, defonction de hachage SHA-1). C'est une solution purement logicielle.

    Une vision simplifie de l'architecture de SET est donne par la figure suivante ouapparaissent les diffrents calculateurs de l'acheteur, du marchand, des banques ainsi qu'unepasserelle faisant interface entre le monde Internet (utilisant le protocole SET) et le rseaubancaire.

    Banquede l'acheteur

    Banquedu marchand

    Passerellede paiement

    Rseau dugroupement

    bancaire(architecure

    Internet ou autre)

    PCde l'acheteur

    Serveurdu marchand

    Rsau des utilisateurs(architecture Internet avec

    protocoles SET)

    Le fonctionnement de base est analogue celui des cartes de crdits habituelles.L'acheteur connecte son poste de travail sur le serveur du marchand. Il consulte le cataloguedes produits proposs, passe commande et autorise le paiement. Le marchand accepte lacommande et la ralise. Le marchand pour se faire payer adresse sa banque l'autorisation depaiement de l'acheteur via la passerelle de paiement. On trouve donc trois protocolesessentiels dans SET:

    - Le protocole d'achat.- Le protocole d'autorisation de paiement.- Le protocole de paiementVoici (parmi de nombreuses autres) quelques rgles de scurit de base que les

    protocoles SET doivent respecter :

    a) L'acheteur et la passerelle de paiement doivent pouvoir vrifier que le marchandest bien celui qu'il prtend tre. Le marchand doit pouvoir vrifier que l'acheteur et lapasserelle de paiement sont bien ceux qu'ils prtendent tre.

    CNAM- Anne 2007/2008 -41- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    42/126

    b) Une personne non autorise ne doit pas pouvoir modifier les messages changsentre le marchand et la passerelle de paiement.

    c) Le marchand ne doit pas pouvoir accder au numro de la carte de l'acheteur.d) Le banquier na pas connatre la nature de la commande passe par lacheteur au

    marchand.

    1) Les problmes de scurit associs aux rgles a) b) c) prcdentes sont desproblmes gnraux traits en cours. Donnez pour les rgles a) puis b) puis c) les noms desproblmes associs. Rappelez de manire succincte la dfinition de ces problmes (en unephrase).

    SET est un protocole applicatif, qui dfinit une politique de scurit. A partir deslments prcdents on cherche spcifier cette politique

    2) Quels sont les quatre rles qui doivent tre considrs ?

    On dfinit les objets suivants

    a) La carte bleueb) Le PIN code de la carte bleue ("Personal Identification Number", le code secret)c) Le numro de la carte bleued) L'identifiant de la commandee) Le contenu qualitatif de la commande (sa nature)f) Le prix de la commande

    Selon le cas on dfinit pour les objets prcdents une ou plusieurs des mthodes suivantes:A. Crer

    B. Lire (connatre la donne)C. Accepter (signer la donne)

    3) Pour chaque objet donnez les mthodes applicables (A, B ou C)

    4) Etablir la matrice des droits: Il s'agit d'une matrice ayant en colonne (au nombre de 13) lesmthodes et en ligne (au nombre de 4) les rles. Si un rle X a le droit d'utiliser la mthode yl'lment X,y est marqu 1 et n'est pas marqu sinon.

    Pour mettre en oeuvre les protocoles de scurit utilisant la cryptographie SET dfinitune phase d'accrditation pralable des acteurs par une autorit de certification (en fait unehirarchie d'autorits).

    CNAM- Anne 2007/2008 -42- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    43/126

    Autorit de certification

    Acheteur MarchandPasserelle

    depaiement

    Vue globalement, l'autorit de certification dlivre des certificats aux diffrents acteursdes protocoles SET.

    5) Qu'est ce qu'un certificat? Quelles en sont les proprits principales?

    6) On tudie maintenant le processus d'achat. Il se droule en deux changes requtesrponses successifs.

    Premier change (l'change initial)La requte initiale de l'acheteur vers le marchand indique simplement en clair

    l'intention par l'acheteur de passer commande.La rponse initiale du marchand comporte trois lments:

    - un identifiant de commande plus sa signature numrique- le certificat du marchand avec sa cl publique- le certificat de la passerelle de paiement avec sa cl publique.

    A la suite de ce premier change, quelles vrifications peuvent tre effectues par l'acheteur ?

    7) Le second change du processus d'achat comporte l'envoi de la requte d'achat et unerponse d'accus de rception de commande.

    Envoi de la requte d'achatL'acheteur construit la structure de donne commande qui a vocation a tre

    communique au marchand (produits, quantits, prix avec l'identification de la commandefournie par le marchand pendant l'change initial...). Elle est baptise par la suite OI ("OrderInformation").

    L'acheteur construit la structure de donnes de paiement qui a vocation a trecommunique la passerelle de paiement (informations concernant la carte bancaire del'acheteur et identification de la commande payer fournie par le marchand pendant l'changeinitial). Elle est baptise dans la suite PI ("Payment Information").

    En fait les deux structures de donnes sont lies. Le paiement ne concerne que lacommande identifie. Il doit tre effectu que si la commande est accepte par le marchand.La commande n'est effective que si la banque approuve le paiement. De plus le contenu de lacommande doit tre cach la banque et le contenu des instructions de paiement doit trecach au marchand.

    Pour lier les deux structures de donnes, l'acheteur calcule par l'algorithme SHA-1 lafonction de hachage de chacune des structures de donnes SHA-1(OI) et SHA-1(PI). Ilapplique nouveau la fonction de hachage SHA_1 l'ensemble (SHA-1(OI), SHA-1(PI)) des

    fonctions de hachage concatnes. Il chiffre cette dernire empreinte en RSA avec sa cl

    CNAM- Anne 2007/2008 -43- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    44/126

    prive. C'est en fait une signature numrique double qui est ralise. Elle est baptise dans lanorme SET signature duale.

    Signature duale = OI{ } SHA1, PI{ } SHA1{ }SHA1{ }RSAclef_prive_acheteur

    Le message suivant est prpar pour la passerelle de paiement:PI, Signature duale

    L'acheteur choisit une cl alatoire cl_ala pour le DES. Le message a destination dela passerelle de paiement est chiffr en DES au moyen de cette cl.

    PI, Signatureduale{ }DES

    cl_ala

    La cl DES est chiffre au moyen de la cl publique de la passerelle arrive avec lecertificat de la passerelle.

    cl_ala{ } RSACLEF_PUBLIQUE_PASSERELLE

    Finalement le message de requte d'achat envoy au marchand contient toutes lesinformations suivantes:

    PI, Signatureduale{ }DES

    cl_ala,

    PI{ } SHA1 ,cl_ala{ } RSA

    _ _,

    OI,Signature duale,Certificat de l'acheteur.

    Envoi de la rponse du marchand la requte d'achatLe marchand construit un message de rponse qui a comme unique signification d'tre

    un accus de rception de la commande. Le marchand signe numriquement cemessage(fonction SHA_1 et chiffre RSA avec sa cl prive). Il ajoute l'ensemble son proprecertificat.

    7.1) Comment le marchand vrifie t'il l'intgrit de la commande OI?

    7.2) Comment est ralise la confidentialit des informations concernant la carte de crdit vis vis du marchand?

    7.3) Comment le marchand vrifie t'il que l'acheteur est bien celui qu'il prtend tre?

    CNAM- Anne 2007/2008 -44- Exercices Technologie client-serveur

  • 7/23/2019 71502631 Sujets Exercices

    45/126

    Exercice 19 : Authentification des usagers et autorisation des requtesdans le WEB

    Le World Wide Web a tout dabord t conu comme un outil de diffusion dedocuments publics de sorte que peu defforts ont t effectus au dpart pour contrler laccs

    aux informations offertes. Comme un domaine de plus en plus large dinformations et surtoutde services ont t distribus au moyen du WEB, des outils de scurit ont t proposs poursatisfaire les besoins qui sont apparus. Ce sujet examine des solutions successives qui ont tdveloppes dans le cadre du protocole HTTP pour rpondre aux besoins dauthentificationdes usagers et dautorisation des requtes quils mettent.

    La version 1.0 du protocole HTTP (HTTP/1.0 RFC 1945 mai 1996) propose unmcanisme de base de contrle daccs utilisant une authentification mot de passe(mcanisme basic).

    Si un utilisateur client requiert une page protge dun serveur WEB sans fournir decouple usager, mot de passe, il reoit en rponse un code derreur 401 (unauthenticated). Surrception de ce diagnostic le navigateur du client demande alors lutilisateur un nomdusager autoris et son mot de passe au moyen dun dialogue interactif dans une fentre.Lorsquune rponse est fournie le navigateur client rmet la requte vers le serveur avec lesinformations usager:mot_de_passe.Lorsque lon met sur le rseau une requte avec le couple nom dusager et mot de passe, cesinformations sont codes mais non cryptes (enregistrement de la requte baptisAuthorization). La mthode de codage en format texte ascii employe est baptise Base64.Elle consiste essentiellement dcouper les informations par groupes de 6 bits et reprsenterles groupes de 6 bits par un caractre ASCII. Par exemple si on souhaite transmettre le coupleusager:mot_de_passe "Aladdin:open sesame", il apparat dans la requte une ligne de laforme :

    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=