Actuellement, la vitesse de traitement de l’information évolue plus rapidement que la quantité d’en stocker et bien plus vite que les canaux de transmission malgré les récentes découvertes, car augmenter la bande passante d’un réseau informatique demande de grands changements d’infrastructure comme les installations téléphoniques. Ainsi on préfère user de la capacité de traitement du processeur plutôt que de devoir augmenter les capacités de stockage et de télécommunication. Les messages électroniques sont devenus courant. Un simple message texte occupe environ 12Ko en mémoire. Un simple dialogue de quelques minutes est évalué à 1,2Mo. A l’usage professionnel avec des contacts multiples cela peut aller jusqu’à 250Mo ou plus en une journée.
De plus, l’usage de la messagerie via internet passe par divers protocoles tels que SMTP, IMAP, POP, … Le problème se situe dans le fait que ces protocoles ne sont pas toujours compatible (problème d’interopérabilité). Vient aussi le problème de transmission, il y a un certain décalage entre l’émission et la réception des messages. Le décalage peut aller de quelques secondes à plus de 24 heures.
Présentation du protocole SIP
Session Initiation Protocol (SIP) est un protocole de commande de couche application qui peut établir, modifier et terminer des sessions multimédia (conférences) telles que des communications téléphoniques par l’Internet. SIP peut aussi inviter des participants à des sessions déjà existantes, telles que des conférences en multidiffusion. Des supports peuvent être ajoutés (et retirés) à une session existante. SIP prend en charge de façon transparente la transposition de nom et les services de redirection, ce qui sert de support à la mobilité personnelle [1]. Les utilisateurs peuvent conserver une identification unique vue de l’extérieur, indépendamment de leur localisation dans le réseau. SIP prend en charge cinq facettes de l’établissement et de la terminaison de communications multimédia :
– Localisation de l’utilisateur : détermination du système terminal à utiliser pour la communication
– Disponibilité de l’utilisateur : détermination de la volonté de l’appelé à s’engager dans une communication ;
– Capacités de l’utilisateur : détermination du support et des paramètres de support à utiliser ;
– Etablissement de session : « sonnerie », établissement des paramètres de session à la fois chez l’appelant et l’appelé ;
– Gestion de session : y compris le transfert et la terminaison des sessions, la modification des paramètres de session, et l’invocation des services.
SIP n’est pas un système de communications intégré verticalement. SIP est plutôt un composant qui peut être utilisé avec d’autres protocoles de l’Internet Engineering Task Force (IETF) pour construire une architecture multimédia complète. Normalement, ces architectures vont inclure des protocoles tels que le protocole de transport en temps réel (RTP) [2] pour le transport en temps réel de données et la fourniture d’informations en retour sur la qualité de service, le protocole à défilement continu en temps réel (RTSP, Real-Time streaming protocole) [3] pour le contrôle de livraison de supports à défilement continu, le protocole de commande de passerelle de support (MEGACO, Media Gateway Control Protocol) [4] pour le contrôle des passerelles vers le réseau téléphonique public commuté (RTPC), et le protocole de description de session (SDP, Session Description Protocol) [5] pour la description des sessions multimédia. Donc, SIP devrait être utilisé en conjonction avec les autres protocoles afin de fournir des services complets aux utilisateurs. Cependant, la fonction et le fonctionnement de base de SIP ne dépendent d’aucun de ces protocoles.
SIP ne fournit pas de services. Plutôt, SIP fournit des primitives qui peuvent être utilisées pour mettre en œuvre différents services. Par exemple, SIP peut localiser un utilisateur et livrer un objet opaque à l’endroit où il se trouve. Si cette primitive est utilisée pour délivrer une description de session écrite, par exemple, en Session Description Protocol (SDP), les points de terminaison peuvent se mettre d’accord sur les paramètres d’une session. Si la même primitive est utilisée pour livrer une photo de l’appelant aussi bien que la description de session, un service d’ »ID d’appelant » peut facilement être mis en œuvre. Comme le montre cet exemple, une seule primitive est normalement utilisée pour fournir plusieurs services différents.
SIP n’offre pas de services de contrôle de conférence du genre de la commande de salle ou des votes et n’a aucune exigence sur la façon dont une conférence doit être gérée. SIP peut être utilisé pour initialiser une session qui utilise un autre protocole de contrôle de conférence. Comme les messages SIP et les sessions qu’ils établissent peuvent passer à travers des réseaux entièrement différents, SIP ne peut pas fournir, et ne fournit pas, de capacités de réservation de ressources de réseau d’aucune sorte. La nature des services fournis rend la sécurité particulièrement importante. A cette fin, SIP fournit une série de services de sécurité, qui comporte la prévention du déni de service, l’authentification (à la fois d’usager à usager et de mandataire à usager), la protection de l’intégrité, et de services de chiffrement et de confidentialité.
Différences entre SIP et téléphonie traditionnelle
L’étude des aspects sécurité des protocoles de la voix sur IP (Internet Protocol) passe par celle de la téléphonie classique dont voici quelques points de divergence et de parallèle :
o Dans la VoIP, et étant donné que les paquets ne sont pas chiffrés, tout ce qu’un attaquant a besoin est de prendre les paquets appropriés avec un sniffer de paquets. Ce sniffer de paquets peut être un ordinateur attaché, par exemple, au réseau local de l’entreprise. En téléphonie traditionnelle, la téléphonie mobile est exclue, l’attaquant doit avoir un dispositif spécial, qui doit être physiquement relié à un fil, qui est utilisé pendant un appel [6].
o Internet est largement considéré comme peu sûr. Les réseaux avec commutation à circuit ne sont pas entièrement sûrs mais les personnes ne s’inquiètent pas trop à ce sujet [6].
Définitions des syntaxes
Avant d’étudier de façon plus détaillée le fonctionnement de ce protocole, il est nécessaire d’expliquer la terminologie qui sera utilisée par la suite ainsi que présenter le type de requêtes et leurs significations.
❖ Session : une session multimédia est constituée d’un ensemble d’émetteurs et de récepteurs multimédia avec des données circulant des émetteurs vers les récepteurs [7].
❖ User Agent Client (UAC) : entité générant puis envoyant des requêtes. Ce rôle est ponctuel et dure uniquement le temps d’une transaction SIP (c’est à dire : si une application génère une requête SIP, celle-ci va agir comme un UAC durant cette transaction) [7].
❖ User Agent Server (UAS) : entité générant des réponses aux requêtes SIP. Ces réponses peuvent être une acceptation, un refus ou bien une redirection de la requête reçue. De façon analogue à un UAC, le rôle d’UAS dure uniquement le temps d’une transaction SIP [7].
❖ User Agent (UA) : entité pouvant agir à la fois comme UAC et UAS, c’est l’application et la transaction SIP qui décident si un UA doit agir comme UAS ou UAC. Un tel UA est constitué d’un module SIP interagissant avec une application. La Figure 1.1 illustre la structure d’un UA. La gestion des interactions entre l’application et le module SIP dépend de l’implémentation de l’UA. Cette spécificité explique la diversité et le nombre d’UA différents existants [7].
❖ URI (Uniform Resource Identifier) : les URI sont utilisés pour identifier les UA, leur format est similaire à une adresse e-mail (Ex: sip:clarinet@u-strasbg.fr) [7].
❖ Registrar : un Registrar est un serveur acceptant les requêtes REGISTER et mémorisant les informations reçues pour le domaine qu’il gère. Ce mécanisme permet de gérer la mobilité des UA et de rediriger les requêtes vers la nouvelle localisation. Le Registrar fait correspondre adresses IP et RI pour l’ensemble des URI du domaine sur lequel il a autorité [7].
❖ Proxy, Proxy Server : un proxy est une entité intermédiaire agissant à la fois comme UAC et UAS afin de faire des requêtes à la place d’autres UAC. Son rôle est de s’assurer qu’une requête est envoyée à une autre entité plus « proche » du destinataire de la requête .
|
Table des matières
INTRODUCTION GENERALE
CHAPITRE 1 GENERALITE
1. Presentation du protocole SIP
1.1. Introduction
1.2. Differences entre SIP et telephonie traditionnelle
1.3. Definitions des syntaxes
1.4. Mecanisme
1.5. Structure
1.6. La securite interne du protocole
1.6.1. Le chiffrement
1.6.2. Authentication
1.6.3. Cacher le chemin utilise (Hide-Route)
1.7. Les risques qui restent a envisager
1.7.1. Exemples de scenario
1.7.2. fxaminons maintenant quelques cas d’attaques
1.7.2.1. Exemples d’attaques sur le telephone SIP
1.7.2.2. Exemples d’attaques contre le proxy
1.7.2.3. Exemples d’attaques pour acceder au reseau SIP et faire partie de la communication
1.7.3. Resume
2. Le chiffrement
2.1. Les algorithmes de chiffrements symetriques
2.1.1.1. Le chiffrement par flot
2.1.1.2. Le chiffrement par bloc
2.2. Le chiffrement AESRijndael
2.3. Fonctionnement du chiffrement
2.3.1. Le nombre de tours
2.3.2. La cle de tour
2.3.3. Vue globale du fonctionnement
2.3.4. Les details
2.3.4.1. la procedure SubBytes
2.3.4.2. le corps ni a 256 elements
2.3.4.3. La fonction affine f
2.3.4.4. La procedure SubByte
2.3.4.5. La procedure ShiftRows
2.3.4.6. La procedure MixColumns
2.3.4.7. La procedure AddRoundKey
2.3.4.8. La procedure KeyExpansion
2.4. Etapes de chiffrement
2.4.1. Tour initial
2.4.2. Tours intermediates
2.4.3. Tour final
3. Conclusion
CHAPITRE 2 : Materiels et outils pre-requis
1. Environnement materiel
2. Environnement Logiciel
2.1. Operating system
2.1.1. Windows trust
2.1.1.1. Presentation
2.1.1.2. Windows Trust ASO
2.1.1.3. Process Hacker
2.1.1.4. Soft Perfect Network Scanner
2.1.1.5. CurrPorts
2.1.1.6. Sharp Develop
2.2. Outils de simulation et de verifications
2.2.1. Asterisk
2.2.1.1. Fonctionnalites
2.2.1.2. Extensibilite
2.2.1.3. Interoperabilites
2.2.1.4. Distributions
2.2.1.5. Fichier de configuration Sip.conf
2.2.2. Microsoft .NET
3. Langage C#
3.1. Differences entre C# et Java
4. Conclusion
CHAPITRE 3 : Developpement du programme et tests
1. Cadre de travail
1.1. Environnement materiel
1.2. Environnement logiciel
1.2.1. Les interfaces reseau
1.2.2. Le serveur Asterisk
1.3. Modele conceptuelle
1.4. Les codes
1.4.1. la messagerie
1.4.2. le chiffrement
1.5. Realisation
2. Objectif
2.1. Capacitefonctionnelle
2.2. Facilite d’utilisation
2.3. Rendement
2.4. Portabilite
3. Principe de base
3.1. Principe d’acces
3.2. Principe de discussion
3.3. La deconnection
4. Fonctionnement sans chiffrement
4.1. Connexion
4.2. Creation de session
4.3. Les transactions entre les utilisateurs durant la session
5. Fonctionnement avec chiffrement
5.1. Etapes du chiffrement
5.2. Generation de cle et de vecteur initial (IV)
6. Resistance du cryptage
7. Test de transmission avec chiffrement
8. Conclusion
CONCLUSION