Nouvelles Technologies de
l’Information
Projet TransAzure
• NVOD : Near Video On Demand
– Avantages par rapport à la VOD
• Réseau multicast
– Satellite DVB
– ADSL multicast
• Distribution de films
– Stockage local
– Expérience VOD
Projet TransAzure
• Briques technologiques
– COM / COM
– XML
– Services distribués
– Web Services
– ADO
– Cryptographie
– etc…
PREMIERE PARTIE
Technologies des Systèmes
d’Information
COM
XML
.NET
Web Service
Plan
• COM
• XML
• Web Services
• .NET Framework
• ADO.NET
COM
• Architecture Microsoft
• Component Object Model
• Réutilisation du code binaire
• Black Box
– Objet
– Interfaces
– Evènements
• GUID
– CLSID pour les objets
– IID pour les interfaces
Clients et serveurs
• Serveur COM
– Implémente (héberge) un objet COM
– Inprocess / Executable / Remote
• Client COM
– Appelle les fonctions et propriétés du
serveur
Interface
• Un objet doit supporter au moins une
interface
• L’objet « implémente » l’interface
• Convention d’écriture :
INomInterface
• Chaque interface à un GUID : IID
– Interface Identifier
• Description d’une interface : IDL
– Interface Definition Language
IUnknown
• Interface primordiale de COM
– Toutes les interfaces dérivent de IUnknown
• Méthodes :
– QueryInterface
• Navigation entre les interfaces de l’objet
– AddRef
• incrémentation du compteur de référence
– Release
• décrémentation du compteur de référence
Développement COM
• Visual Studio .NET
• Langages :
– Visual C++
– Visual Basic
– Etc.
• Interopérabilité COM / .NET
– Objet COM utilisable sous .NET
– Utilisation d’un objet .NET en tant que
COM
XML
• Langage de markup
– Tags, sous-tags et attributs
– Fichier texte
• DTD
– Règles de construction du document
– Bien formé / valide
XML
• DTD
• <!ELEMENT name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT item
(name,quantity,price)>
XML
• XML Schema
• <ElementType name="name"/>
<ElementType name="quantity" dt:type="int"/>
<ElementType name="price"
dt:type="fixed.14.4"/>
<ElementType name="item" model="open">
<element type="name"/>
<element type="quantity"/>
<element type="price"/>
</ElementType>
XML
• Parser
– Lecture et écriture d’un document XML
– Modes :
• Parcours récursif des noeuds (arborescence)
• Accès direct aux noeuds (XPath)
• Transformation
– XSLT
• MSXML
Exemple de programmation
XML
• Environnement .NET / C#
• XmlTextReader / XmlTextWriter
Web Services
• Définition :
– Programmable application logic
– Accessible via les protocoles standards Internet
• Combinaison entre :
– La technologie des composants réutilisables
• Black box
– Les technologies de communication sur le web
• Différence avec DCOM et RMI
• Utilisation de HTTP et de XML
Web Services
• Fonctionnalités :
– A standard way to represent data
– A common, extensible, message format
– A common, extensible, service
description language
– A way to discover services located on a
particular Web site
– A way to discover service providers
Web Services
• Fonctionne sous :
– XP, 2000, NT4, 98, ME
• ASP.NET uniquement sur XP/2000
• Pas de développement sur 98/ME
• Projet MONO sous Linux
.NET Framework
• Serialization
– Convertir un objet en une série d’octets
– Pour le stockage
– Pour le transport
• Types de serialization
– Xml
– Binaire
ADO.NET
• Successeur de ADO
– Architecture complètement différente
– Plus grande abstraction
• Disponible pour tous les langages du
.NET Framework
ADO.NET
• Concepts de base
– DataSet
– DataTable
– DataColumn / DataRow
– DataRelation
ADO.NET
• Utilisation intensive de XML
– Disconnected access to data
• Un DataSet peut être rempli par un
document XML
• Un DataSet peut être structuré avec
un XML Schema
• Idéal pour le partage d’informations
entre tiers
Data Provider
• Connection
– établir la connexion à une source de données
• Command
– exécuter une commande sur une Connection
– avec des Parameters
– dans le cadre d’une Transaction
• DataReader
– Lecture forward-only et read-only
• DataAdapter
– remplir un DataSet
– résoudre les mises à jour sur la source de données
Data Provider
class Sample
{
public static void Main()
{
SqlConnection nwindConn;
nwindConn = new SqlConnection("Data Source=localhost;Initial
Catalog=northwind");
nwindConn.Open();
while (myReader.Read())
{
Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0),
myReader.GetString(1));
}
myReader.Close();
nwindConn.Close();
}
ADO.NET
• Notion de DataView
– Tri
– Filtre
DirectX
• Exemples d’utilisation
– Création d’un nouveau filtre
• Codec
• Traitement spécial pour la vidéo et l’audio
– Play d’un fichier multimedia dans une
application
Installation
• Visual Studio.NET
• InstallShield
• MSDE / SQL Server 2000
• Visio 2003
DEUXIEME PARTIE
Sécurité des Systèmes
d’Information
Eléments de cryptographie
Sécurité
des systèmes d’information
• Stéganographie
– L’information est cachée
• Cryptographie
– L’information est codée, chiffrée,
cryptée
Stéganographie
• Antiquité grecque
– Crâne rasé
• Représentations graphiques
– Support des messages cachés
– Arbre binaire
• Fontes différentes
– Codage binaire
• Encre invisible
– Citron
Cryptographie
• Chiffre de César
– Alphabet cyclique
– Le décalage est la clé
– Recherche exhaustive
– Il existe 25 chiffres
Chiffres de substitution
• Substitutions monoalphabétiques
– Substitution via un alphabet désordonné
– 26! Substitutions = 4x1026
– Analyse statistique
– L’alphabet peut être reconstitué petit à
petit
– Statistiques d’occurrences
Chiffres de substitution
• Substitutions monoalphabétiques
% % % TH THE
• Substitutions polyalphabétiques
– Plusieurs alphabets désordonnés
– Plus robuste à la cryptanalyse par étude
statistique
– Détermination possible du nombre
d’alphabets
– Codage des alphabets par un mot clé
• EXHAUSTINGBCDFJKLMOPQRVWYZ
Chiffres de substitutions
• Chiffre de Vigenère
Chiffres de transposition
• Transposition simple
– Groupes de 5 lettres
– Clé : 4 1 5 3 2
– Représentation mnémotechnique de la
clé :
• COMPUTER = 14358726
Chiffre de transposition
• Chiffre nihiliste
– Clair : NOWISTHETIMEFORALLGOODMEN
– Crypté : HTEITONWSIEMFRODOMNELALOG
L E M O N
2 1 3 5 4
L 2 O N W S I
E 1 H T E I T
M 3 E M F R O
O 5 L A L O G
N 4 D O M N E
Menaces contre un système
sécurisé
• 2 catégories :
– Menaces actives
• Lire ce qui est transféré ou stocké sans en
altérer le contenu
– Menaces passives
• L’intrus cherche à altérer les données
transférées ou stockées
Services de sécurité
• Chiffrement
• Authentification et intégrité
• Signature
• Non répudiation
Services de sécurité
Authentification et intégrité
• Mêmes risques :
– Message de A modifié de manière
indétectable
– Message qui semble provenir de A mais
n’en provient pas
• Authentification et intégrité sont
liées
Chiffrement à clé publique
• Chiffrement sans transport de clé
– A pose son verrou
– Le message est envoyé à B
– B pose son verrou
– Le message est envoyé à A
– A enlève son verrou
– Le message est envoyé à B
– B enlève son verrou
Algorithmes de chiffrement
M i = DK ( M ) ⊕ M
i
' '
i −1
Cryptographie à clé
asymétrique
• Exemple : RSA
– Problème de factorisation en nombres
premiers
• Une clé pour crypter : clé publique
• Une clé pour décrypter : clé secrète
Fonction de Hash
• Message Digest
• Entrée : données de longueur
quelconque
• Sortie : valeur courte
– Sensible aux modifications sur l’entrée
– Résistant à l’analyse statistique
• Exemple : MD5
• Utilisé dans les signatures et le
contrôle d’intégrité
Signature
• Problèmes critiques :
– Distribution des clés
– Stockage des clés
• Hiérarchie de clés
– Clé maître KM
– Clé de terminal KT
– Clé de session KS
Gestion des clés
• Exemple :
– Back Orifice : permet la prise de
contrôle à distance
Spyware
• Contamination :
– Via des software bundle
• KaZaa, DivX
– Via la navigation sur Internet
• Exploitation de failles de IE par exemple
• Installation volontaire d’un logiciel, ActiveX,
etc.
– Via des SPAMs qui incitent à visiter des
sites infestés
Spyware
• Détection
– Comportement anormal de la machine
• Popups
• Modification de la page d’accueil du
navigateur
• Apparitions d’icônes sur le bureau
• Connexions à Internet intempestives
• Trafic réseau anormal
• Désactivation des outils de sécurité locaux
Spyware
• Détection
– Outils de sécurités locaux
• DLLs modifiées (détectables avec un anti-virus)
• Firewall personnel
– Outils de sécurité réseaux
• Connexions récurrentes et/ou nocturnes
• Téléchargements suspects
• Connexion vers des sites non référencés par un DNS
• Connexion vers des sites .ru .tw etc.
SPAM
• Protection
– Assez délicate car il ne faut pas rejeter
des emails réels
– Protection au niveau du client de
messagerie
– Protection au niveau du serveur de
messagerie (éviter le Open Relay par
exemple)
– Gestion des listes noires
Ethereal
Introduction
• Analyseur réseau libre
– Licence GPL
– Windows et Unix
– Crée en 1997
• Outil de sécurité indispensable
– Capture réseau
• Bibliothèque pcap sous Unix
• Bibliothèque winpcap sous Windows
– Lecture de nombreux formats de trace
– Décodage (analyse) de nombreux protocoles
Ethereal
Architecture
• Wiretap
– Récupération des données
– A partir du réseau ou d’un fichier de trace
• Analyseurs
– Modules de décodage d’un protocole spécifique
• Interface utilisateur
– Mode graphique
– Mode ligne de commande
Ethereal
Fonctionnalités
• Réassemblage
– Datagrammes IP, segments TCP, …
• Aperçu rapide du trafic
– Hiérarchie de protocoles
– Conversations et EndPoints
• Filtrage de trames
– Affichage dans des modules spécifiques
• Export
– Ex: sauvegarde d’une image dans un flux HTTP
Ethereal
Mécanismes de décodage
• Appel des modules de décodage
(analyse)
– A partir d’une couche inférieur du
protocole
• Ex: un champ de l’entête spécifie le
protocole supérieur
• Ex : l’analyseur HTTP : dépend de 80/tcp
8080/tcp, etc.
– De manière heuristique
• Essayer de reconnaitre un protocole
– A partir d’autre modules de décodage
Ethereal
Exemples d’utilisation
• Décodage des protocoles Windows
– SMB, MS RPC
• Relecture du trafic Wifi 802.11
– Avec déchiffrement WEP si les clés sont
disponibles
• Décodage des protocoles VoIP
– Famille H323 : H225, H235, H245, …
– Protocole SIP
– Protocoles relatifs aux médias : RTP, RTSP
Ethereal
Développements
• Modèle ouvert
– Nombreux développements autour des
modules d’analyse
– Les constructeurs de matériels
spécifiques fournissent un module
d’analyse pour leurs protocoles
propriétaires
Ethereal
Conclusion
• Nécessité de maitriser un outil
d’analyse réseau
• Ethereal est un outil adapté
– Libre
– Supporte de très nombreux protocoles
– Constamment en cours d’amélioration
Cloisonnement de réseau
Principes
• Découper le réseau en domaines
• Appliquer des filtres IP
• N’autoriser que les flux de services
nécessaires
• Appelé aussi partionnement réseau
• Elimine le trafic non-voulu au plus
près de là où il est généré
Cloisonnement réseau
Niveaux d’application de la
sécurité
Niveau OS et applicatif Niveau TCP/IP
• Video On Demand
– Unicast
– Problème de scalability
• Montée en charge
• Bandwidth / cpu
• Near Video On Demand
– Multicast
– Stockage au niveau du device client
Video On Demand
• Formats vidéo
– AVI
– QuickTime
– MPEG-1, MPEG-2
– MPEG-4
– Windows Media (WMV)
– RealMedia (RM)
Video On Demand
• Serveurs de streaming
– Windows Media Server
• Series 9 / Series 10
• Player associé : WMV, MPEG
• DRM
– Real Server
• Player associé : RM, MPEG
Multicast
Téléphones portables
Personal Digital Assistant
SIXIEME PARTIE
Qualité et Productivité
Pratiques d’architecture
• Problématique :
– Dépendances complexes
• Librairies internes
• Librairies externes
– Etat du système cible
• Version OS, service packs, etc.
– Cross-platform
• Windows, Mac, Linux
Déploiement
• Setup Project
– Intégré dans Visual Studio
– Adapté aux projets VB,C++,C#,etc.
• InstallShield
– Produit commercial
– Multiplateforme (Windows, Linux, Mac)
Communication intra-projet
• Principes généraux
– Centralisation des documents
– Accès client/serveur
– Opérations de base :
• Checkout
• Checkin
• Get Latest Version
• Rollback
Méthodologie de création de
rapports et de documentation
• Rapport d'architecture
– Projet du port
– Fonctionnement de l'application (user
experience)
– Schéma d'architecture
– Argumentation technique
– Fonctionnement interne détaillé
• Rapport de bug
• Documentation de code
– NDoc
Applications distribuées
• Architecture .NET
• Deux technologies maîtresses :
– Web Service
– .NET Remoting
• Objectif :
– développement d’applications
distribuées
Web Services
• Integration cross-platform
• HTTP, XML, SOAP
• Integration business-to-business
• A travers les firewalls
• Indépendance :
– Langage de programmation
– Plateforme
– Device
.NET Remoting
• Notion de « domain »
– Indépendance vis-à-vis des process et
threads
– Plusieurs domaines dans un process
– Un domain n’existe que dans un seul
process
– .NET Remoting pour le franchissement
– Objet local / Objet remote
– Proxy object
.NET Remoting
• Types de remote objects
– Client activated
• Crée lors du new
– Server activated
• Crée lors du premier appel
• Deux types :
– SingleCall
Un objet pour chaque appel
Stateless
– Singleton
Un objet sert plusieurs clients
Statefull
Comparaison
• Performance
– TCP channel + binary formatter
• State management
– Web Service
• Stateless
• Utilisation des objets Session et Application (ASP.NET)
– .NET Remoting
• Stateless et statefull
• Possibilité de mixer
Comparaison
• Securité
– Web Service :
• sécurité basée sur IIS et ASP.NET
– .NET Remoting
• aucun framework predefini
• Robustesse
– Web Service :
• Robustesse inhérente à IIS
– .NET Remoting
• Robustesse à gérer soi-même
• Pb hébergement dans un exe ou un service NT
• Aucun problème si hébergement sous ASP
Comparaison
• Extensibilité
– .NET Remoting :
• Création de nouveaux formatters
• Création de nouvelles channels
– Web Service
• Contrôle précis via XmlSerializer
• using System; namespace RemoteClassLib
{
public class MyRemoteObject : System.MarshalByRefObject
{ public MyRemoteObject() { Console.WriteLine("Constructor
called"); } public string Hello(string name)
{ Console.WriteLine("Hello Called"); return "Hello " + name; } } }