Nouveautés sur le Web

Services Web

1. Précision

Décision, Micro & réseaux n°487, nov.2001
Services Web: les applications d'une entreprise passent alors par un fournisseur extérieur
- comment facturer ces services
- description (WSDL) et communication: HTML, XML, SOAP
- protocoles concurrents: Corba, DOM, Java-RMI

2. Exemple

Un site LL, "librairie en ligne" propose à ses clients l'expédition des commandes, mais aussi le suivi en ligne de celles-ci. D'où le dialogue, en temps réel, entre LL et les prestataires:
- à la commande pour choisir le prestataire le moins cher ou le plus rapide
- lors des interrogations ultérieures du client vers LL, qui suit l'expédition mais ne s'adresse pas à l'expéditeur, qu'il ne connaît peut être pas, ou ne connaît pas les références de son colis.
Il faut que les applications 'Relation client' chez LL et 'Suivi de colis' chez les expéditeurs communiquent en temps réel, quand le client s'adresse au site Internet de LL.

3. Dialogue entre applications

Modèle d'architecture distribuée bâti sur XML et RPC s'affranchissant des coupe-feux par l'utilisation de HTTP.
Pas de mécanisme transactionnel.
Appel ou interface du service décrit dans le langage WSDL (application XML); ces descriptions sont regroupées dans des annuaires UDDI.
Sécurisation des échanges: chiffrage, authentification de l'expéditeur.
Enchaînement des processus (workflow) à normaliser (WFSL workflow service language).

4. Logiciels

Il faut
- créer un service Web à partir d'applications standards, et le rendre public,
- créer un service Web en assemblant plusieurs services et en gérant leur enchaînement
- administrer les services ( choix d'un hébergeur, installation, statistiques d'utilisation, prix, évaluation, évolution)

Références

En ligne
http://www.3ie.org/technos_articles/web_services.htm
http://www.objectiva.org/dossiers.2002-07-02_web_services.php

Portail d'entreprise

Trois types de portail:
- gestion de document (moteur de recherche, indexation, gestion du courrier)
- accès web aux informations et aux applications de l'entreprise (de façon ergonomique pour l'internaute - identification unique - SSO)
- logiciels d'aide à la décision
Un portail doit dialoguer avec les différents progiciels du système d'information, dont les sgbd, mais aussi les nouveaux serveurs d'application, où java a un rôle croissant. Il doit gérer les contenus documentaires: aide à la création, à la publication, à l'indexation et à la recherche.

Confort de travail de l'internaute: identification par signature unique, versions multilingues

Résumé: un portail est un site Web avec les possibilités:
- aide à la navigation sur le site
- répertoire thématique
- moteur de recherche
- courrier électronique
- particularisation de la page d'accueil

Pare-feu (firewall)

C'est un terme générique pour divers équipements de réseaux, permettant de contrôler les flux entre différents réseaux, ou entre des zones bien délimitées d'un même réseau. L'usage initial est d'accroître la sécurité.
Il ne faut pas confondre le pare-feu avec le serveur cache qui mémorise les pages les plus fréquemment consultées, ou avec le mandataire (proxy) qui envoie les requêtes en lieu et place des machines d'un sous réseau.
Au niveau bas, le flux sur le réseau est une suite de paquets constitués par:
- une entête, contenant les adresses de l'expéditeur et du destinataire, et des octets de contrôle
- des données exploitées par le destinataire
Un pare-feu va analyser ces paquets, les modifier ou les rejeter. La modification fait intervenir des techniques de filtrage, de changement d'adresses (NAT network address translation) et de 'Mangle' (champ TOS).
L'adresse du destinataire contient à la fois l'adresse IP de la machine et le numéro de port auquel est adressé ce paquet; il en est de même pour celle de l'expéditeur. Utilisé comme filtre, un pare-feu pourra limiter les requêtes provenant d'un sous réseau, ou limiter l'usage des ports.

Un ingénieur sécurité devra appliquer une politique définissant le réseau hostile et le réseau à protéger, ainsi que les échanges permis aux utilisateurs.

Il doit séparer les serveurs de la machine pare-feu. Il aura intérêt à faire exécuter par des machines différentes les opérations de filtrages et celles de routages. Ce filtrage doit aussi se faire au niveau supérieur, c'est à dire celui des applications; mais ce cas demande des puissances de traitement plus importantes que le filtrage de paquets.

Il n'aura pas d'à-priori et devra envisager que les comportements hostiles peuvent provenir aussi bien de l'intérieur que de l'extérieur. Ne pas oublier que les accès hostiles ne réussissent que parce qu'il y a des failles de sécurité dans les logiciels.

Références

Revue
Informatique magazine - numéro 144, juillet/août 2002
En ligne:
cerig.efpg.inpg.fr/Note/2002/proxy2.htm
netfilter.samba.org
www.wallfire.org
www.linuxdoc.org/HOWTO/mini/Firewall-Piercing.html

Cryptographie

La cryptographie est une science remontant à l'antiquité. Les messages chiffrés étaient principalement utilisés dans le domaine militaire et dans la diplomatie. Ce n'est que depuis une trentaine d'années qu'ils sont aussi utilisés dans le domaine commercial.

Intercepter des données qui transitent sur un réseau est peu intéressant si elles sont publiques, mais le devient grandement si elles sont confidentielles et intelligibles. D'où la nécessité de chiffrer les données confidentielles, afin qu'elles ne soient intelligibles que pour leur destinataire.

Une grande partie de la cryptographie actuelle se fonde sur l'arithmétique, et les propriétés de certains algorithmes utilisés ne sont pas toutes démontrées à l'heure actuelle. On espère que le nombre d'opérations nécessaires pour casser les codes utilisés, par des recherches systématiques (facilement programmables sur une machine) est astronomique, et que les temps d'exécution sont de plusieurs années, sur les machines les plus performantes.

Faisons des évaluations en se posant la question de découvrir une valeur codée sur 100 bits, soit 2100 possibilités, ou encore 1030 cas environ. Si la fréquence de traitement est de 1 giga cas par seconde, soit 1012 Hz, il faut prévoir un temps de 1018 secondes, ou en comptant 3*107 secondes dans une année, un temps de 3*1010 années. C'est décourageant !
Si vous conjuguez les efforts d'un million de processeurs, tournant en parallèle, à cette tâche, le temps n'est plus que de ... 30 000 années !

La conclusion est immédiate: ce n'est pas une recherche systématique et aveugle qui permet de casser un code, basé sur une clé d'une centaine de bits.

Intégrité, confidentialité, authentification

On parle d'intégrité des données lorsque le message reçue est identique au message envoyée. Les techniques de calcul de hashcode, sur les octets d'un fichier ( utilisée depuis une trentaine d'année), fournissent une empreinte ou un résumé du message, permettant de tester l'intégrité. Les algorithmes MD2, MD4, MD5 calculent des empreintes sur 8 octets (MD: message digest).

La confidentialité des données correspond à l'impossibilité pour un tiers de comprendre le message. L'authentification du signataire doit être garantie par la signature digitale et comprend deux volets; être assuré de l'identité du signataire d'une part et être sûr que celui-ci ne peut répudier les informations envoyées.

Chacun de ces concepts est traité par des techniques différentes; le problème d'intégrité, le plus simple, est résolu par des algorithmes de condensation ou hachage. La confidentialité qui est justement l'objet du chiffrement est traité par des algorithmes cryptographiques. L'authentification est traitée par combinaison des deux techniques.

Actuellement, on ne cherche pas de méthode de codage infaillible, mais seulement une méthode pour laquelle le temps de reconstitution du texte clair est très long même en utilisant plusieurs machines de forte puissance. En effet dans quasiment tous les cas, l'information codée ne présente plus d'intérêt quelques dizaines d'années plus tard.

Clé secrète, clé privée, clé publique

Un peu de formalisation pour aider à saisir les appellations différentes.
Coder un texte t correspond à lui appliquer une fonction, dite de chiffrement, qu'on note C, dépendant d'une clé notée K. Cela donne un message m.
Pour décoder m, on lui applique une autre fonction D (qui est peut être identique à C) dépendant d'une clé L. On obtient un texte u. Si le décodage correspond au codage, on doit avoir u et t identiques.

En résumé:
  chiffrement:             m = CK(t)
  déchiffrement:           u = DL(m)
  reconstitution correcte: DL( CK(t) ) = t

Dans un algorithme à clé secrète, ou algorithme symétrique, ou algorithmes à clé de session, il existe une seule clé: K = L. La transmission de cette clé entre la personne qui envoie un message et celle qui le reçoit, et a besoin de la clé pour décoder, est un point faible, pour l'utilisation des algoritmes de chiffrement symétriques.
Le DES (Data Encryption Standard) et sa version plus récente AES (Advenced Encryption Standard) est le plus connu des algorithmes symétriques; c'est un standard USA.

Dans un algorithme à clé publique ou algorithme dissymétrique, K et L sont différents; K est la clé publique et L est la clé privée.
Si Alfred veut envoyer un texte t à Bibi, que seul Bibi doit lire, Alfred utilise la clé publique K de Bibi et fait passer m=CK(t) sur le réseau.
Seul Bibi, qui possède la clé privée L associée à K, pourra décoder le message, c'est à dire évaluer DL(m), et obtenir t, le texte émis par Alfred.
Le RSA (initiales des auteurs: Rivest Shamir Adleman) est un algorithme à clé publique très utilisé.

Un texte long est découpée en tranches et chaque tranche est codée; le message transmis est un assemblage de ces tranches, avec des informations supplémentaires comme par exemple une empreinte et une signature qui sont également codées.

Les opérations t → CK(t) et m → DL(m)   doivent être rapides, surtout pour les échanges en temps réels.

Références

En ligne
Empreinte, résumé ou condensé de message (hashcode)
michel.arboi.free.fr/cryptFAQ/scicryptFR7.html
Cryptographie à clé publique; signatures numériques
michel.arboi.free.fr/cryptFAQ/scicryptFR6.html
cryptosec.lautre.net/article.php3?id_article=13
Annuaire
www-sop.inria.fr/semir/personnel/Laurent.Mirtain/ldap-livre.html
Introduction
www.ssh.fi/tech/crypto/intro.html
www.hsc.fr/ressources/cours/crypto.pdf
fntc
www.fntc.org

Courrier électronique

Il est basé sur un ensemble de serveurs de messagerie qui transmettent de proche en proche les messages (fichiers) entre l'expéditeur et le destinataire.

La machine de l'expéditeur s'adresse au serveur le plus proche qui peut être une machine du fournisseur d'accès internet, où une machine dédiée d'un réseau local. Le dialogue vers ces serveurs de messagerie est régi par le protocole SMTP (simple mail transfert protocol); le même protocole est utilisé entre les serveurs. Ces échanges utilisent le transport par TCP.
Le programme sendmail réalise ce traitement.

La machine du destinataire demande à son propre serveur de messagerie si du courrier est en attente, en utilisant le protocope POP3 (post office protocol, version 3).
Le programme fetchmail réalise la réception du courrier.

Dans la pratique, un seul utilitaire, plus ou moins élaboré (messenger, outlook, eudora, pine ...) réalise les deux opérations, et même fournit d'autes fonctionalités, comme la mémorisation du courrier, l'expédition à plusieurs destinataires du même courrier ...

Ces protocoles sont particulièrement simples, mais ne garantissent rien au niveau de la confidentialité ni de l'assurance que le courrier a été délivré. Un nouveau protocole, IMAP, plus fiable, tend à les remplacer; il n'a pas de fonction de confidentialité car les informations circulent en clair sur le réseau.
Pour assurer la confidentialité des échanges il faut ajouter des modules de codage et décodage entre la machine d'un utilisateur et le serveur des messagerie. On peut même ajouter un module qui limite la réception du courrier afin de ne pas être géné par la publicité non désirée.

 

Références

En ligne
http://linuxline.epfl.ch/Doc/rhl-fr-7.3/rhl-rg-fr-7.3//ch-email.html
Introduction: http://www.station-internet.com/montpellier/internet/email/email.html
http://samer.free.fr/docs/utilisation-couriel.html
Sur la sécurité: http://www.td.com/francais/securite/faq.html