WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Projet d'une API IPSEC pour la mobilité et le multihoming

( Télécharger le fichier original )
par Xavier FERRER CABALLERO
Supélec - Ingénieur réseau 2008
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.3.4 Messages pour les applications. Liste de fonctions

Le fichier « app_msgs.c » est le fichier principal que doit incorporer une application qui veut se connecter et utiliser l'API_IPsec et ses fonctionnalités directement. Il incorpore le fichier pour la génération de messages. Ensuite on présente la liste de fonctions qu'on a développés liées au message envoyé et la valeur que retourne. On n'explique pas au détail les fonctions comme dans la section antérieure oil on a déjà traité très bien le but des messages, les fonctions et les paramètres de l'API_IPsec. Fonctions pour se connecter

Type de Message Valeurs de retour

sfd = api_connect (char *addr); APX_SCK_OPEN sfd_local / VKO

ret = api_close (int sfd~local) ; APX_SCK_CLOSE VOK / VKO

sfd = rem_connect (char *adr~rem); REM_SCK_OPEN sfd_rem / VKO

ret = rem_close (int sfd~rem); REM_SCK_CLOSE VOK VKO

ret = api_exit (int sfd~local) ; API_MSG_EXI T VOK / VKO

 

Etude d'IPsec
Projet d'une API_IPSEC pour la Mobilite et le Multihoming

 
 

Fonctions simples pour gérer l'API_IPsec DB, et fonctions de synchronisation

API MSG FUNCTION Valeurs de retour

db_add (sfd, table); > DB_ADD id / VKO

db_add_sa (sfd, spi, *src, *dst, mode, type); > DB_ADD + DB_UPDATE id / VKO

db_getid (sfd, table, spi, *src, *dst); > DB_GE TID id / VKO

db_copy (sfd, table, id, *idext, *mh); > DB_COPY id2 / VKO

db_read (sfd, table, id, *idext, tag); > DB_READ 1_PARAM / NULL

db_update (sfd, table, id, *idext, tag, *value); > DB_UPDATE VOK / VKO

db_delete (sfd, table, id, *idext); > DB_DELE TE VOK / VKO

db_dump (sfd, table, id, *idext); > DB_DUMP VOK / VKO

db_read_xparam (table, id, *xparams); > DB_READ X_PARAM / NULL

db_update_xparam (table, id, *xparams); > DB_UPDATE VOK / VKO

synchro_ipsec (int sfd) API_SYN_IPSEC VOK / VKO

api_re start (int sfd) API_SCK_RES TART VOK / VKO

OPTIONS :

sfd>0 On encapsule le message avec REM_MSG_FUNCTION pour

l'envoyer à une API_IPsec distante avec laquelle on a déjà une connexion établie.

idext = (spi, @src, @dst) Structure pour chercher l'identificateur d'une DB_SA/DB_SP à

partir d'autres paramètres que l'indexent aussi. Si on l'utilise, on introduit dans le message la fonction DB_GETID avant de la fonction spécifique à demander à l'API_IPsec.

> DB_GETID + DB_XX...

mh = (flow, flags) Structure de multihoming que le message/fonction DB_COPY

peut utiliser. On explique cette structure dans la section de fonctions pour la mobilité.

Fonctions pour la mobilité

Ces fonctions spéciales modifient ou dérivent un canal sécurisé (2 SA) dans la machine local et la machine distante. Puis synchronisent pour faire effectif les changes dans la SAD. Seulement trois messages sont échangés entre les deux machines ou noeuds. L'analyse des messages échangés pour chaque fonction est faite dans la prochaine section des tests avec le Démonstrateur de l'API_IPsec.

Pour faire l'opération de mobilité ou de multihoming, à la base les messages font appel aux fonctions de type API_MSG_FUNCTION. Pour la mobilité la fonction est DB_UPDATE de l'adresse source et pour le multihoming est DB_COPY d'une SA utilisant la structure MH (flow, flags) pour remplir la TB_MH.

Les deux opérations utilisent aussi la fonctionnalité DB_GETID parce que la Mobility_Application n'est pas obligée à connaître l'identificateur des DB_SA qu'il veut changer ou utiliser. Une structure « idext » qui contient au moins un des valeurs <spi, @src, @dst> sert alors à trouver les associations de sécurité.

 

Etude d'IPsec
Projet d'une API_IPSEC pour la Mobilite et le Multihoming

 
 

La modification des SAs dans la machine distante ce fait grâce à l'encapsulation du message dans un Header de type REM_MSG_FUNCTION auquel doit suivre le descripteur du socket « sfd » avec l'API_IPsec distante.

mobility

(sfd, (idext, @src_new )

 

+

 
 
 
 
 

> (2SA) DB_GE TID + DB_UPDATE

 
 

multihoming

(sfd, (idext, flow, flags)

 

+

 
 
 
 
 

> (2SA) DB_GE TID + DB_COPY

 
 
 

Ensuite, autre fonction de mobilité est considéré. En effet, dans le cas antérieur les fonctions considèrent opérer sur une connexion sécurisée uniquement. Dans le cas de Multihoming cela reste plutôt correct parce qu'on considère qu'il faut choisir la connexion de référence pour l'héritage et le type de dérivation. Par contre, dans le cas de Mobilité on réussit la mobilité d'un seul canal quand il faut notamment changer tous les canaux de sécurité. Ainsi, on pourrait appeler la fonction « mobility » pour chaque canal, mais cela reste trop lourd à gérer pour la Mobility_Application. La solution est la suivant fonction qui change les adresses @adr par @adr_new dans toutes les SAassociations de sécurité de la base de données.

REM_MSG_FUNC TION > API_MOBILI TY

+

REM_SYN_IPSEC

 
 
 

mobility_all (sfd, @adr, @adr_new )

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite