A propos | Laboratoire | Voisinage | Meilleurs articles | Nous aider | Forums

Panoramisk / Le druide de la VoIP 

Authentification forte par RSA pour faisceau IAX

Pages: 1 2 3

Si l’authentification ne fonctionne pas

Voici quelques points de base à considérer lorsqu’un faisceau IAX utilisant une authentification RSA ne fonctionne pas.

Votre Asterisk supporte-t-il le modul crypto?

Le support de RSA sur un Asterisk nécessite la compilation avec les modules crypto et SSL. Ceci est effectué lors de la compilation du produit mais ne génère pas d’erreur particulière étant donné que cette fonction n’est pas impérative. Pendant la phase de configuration (./configure), la présence des librairies et des fichiers d’en-tête est validée, aussi faut-il disposer de ceux-ci avant d’entreprendre la compilation d’un Asterisk. Afin de vérifier si votre installation dispose du module crypto, vous pouvez utiliser la commande suivante dans le CLI:

CLI> module show like crypto
Module                         Description                              Use Count
res_crypto.so                  Cryptographic Digital Signatures         0
1 modules loaded


Si le module en question n’est pas affiché, votre Asterisk n’est pas compilé avec son support, il faut donc reprendre la compilation. Attention, il est aussi possible que le module ait été désactivé dans la configuration, vérifiez avant tout le fichier modules.conf.

La clé est-elle correctement chargée

Une fois validée la présence du module crypto, les clés (publiques ou privées) doivent être positionnées dans le répertoire /var/lib/asterisk/keys/. Afin de vérifier quelle clé est disponible dans l’Asterisk, on utilise la commande suivante dans le CLI:

CLI> keys show
Key Name           Type     Status           Sum
freeworlddialup    PUBLIC   [Loaded]         5efd552d73309f29212331a75f3c701e
Paris              PRIVATE  [Loaded]         118e9741ca91a2351a0b4f0b1e190be9
iaxtel             PUBLIC   [Loaded]         d919b3ef03eb4dc54c8fee86bfeeada1
3 known RSA keys.

Par défaut les deux clés publiques appartenant à freeworlddialup et iaxtel sont presentes. Ici, on constate que la clé privée du site de Paris est présente, nous avons donc tapé cette commande sur le serveur Asterisk de Paris.

L’appel n’est pas acheminé correctement

Les clés sont disponibles et chargées, mais les appels n’aboutissent pas. On peut tout d’abord effectuer un test en supprimant la partie RSA de la configuration du faisceau, l’appel doit arriver dans ce cas là. Si le faisceau est fonctionnel, remettre en place le RSA et activer le mode debug au niveau d’IAX (iax2 set debug). Attention la sortie est assez verbeuse, mais des choses comme celles présentées ci-dessous doivent apparaître:

Rx-Frame Retry[ No] — OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00003ms  SCall: 00002  DCall: 16384 [192.168.16.41:4569]
   AUTHMETHODS     : 4
   CHALLENGE       : 204451330
   USERNAME        : TRUNK-London

Tx-Frame Retry[000] — OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
   Timestamp: 00030ms  SCall: 16384  DCall: 00002 [192.168.16.41:4569]
   RSA RESULT      : HTzNEcs/qYaQimP21kBAy1KCfGDmVNoYk8go3HnG
kEOwJWvqwX7FzmMJffRHN6E4KeuHrRvppOmHU9c
SmJ7jkhrJNVLW9UBFKhN3933OT3gR9Z8xWcrMh5/
5g1jvvQGk2Zh7gKuBufSKcS9MIrCmglsuTcdY/BtnU
b32gn02Xj4=

Rx-Frame Retry[ No] — OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: ACK
   Timestamp: 00030ms  SCall: 00002  DCall: 16384 [192.168.16.41:4569]
Rx-Frame Retry[ No] — OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT
   Timestamp: 00015ms  SCall: 00002  DCall: 16384 [192.168.16.41:4569]
   CAUSE           : No authority found
   CAUSE CODE      : 50


Tout d’abord on peut valider qu’un appel est bien présenté et qu’une authentification est demandée. Ici on peut voir que l’authentification est bien présentée, mais rejetée pour la cause explicite: “No authority found”. Les deux parties de la clé ne sont pas cohérentes l’une avec l’autre, ou la clé n’est pas installée, il faut donc reverifier les clés.

Comment valider les clés RSA?

Les clés sont contenues dans des fichiers qu’il faut manipuler avec précaution, l’erreur est possible. Si vous disposez des outils openssl sur votre serveur Asterisk, vous pouvez alors utiliser la commande dgst afin de valider les deux parties de votre clé. Faite en sorte d’avoir les deux parties de la clé sur le même serveur1 et effectuez ce petit test:

~/tmp# echo "test" > test
~/tmp# openssl dgst -md5 -sign Paris.key -out test.sign test
~/tmp# openssl dgst -verify Paris.pub -signature test.sign test
Verified OK

Si la vérification n’aboutit pas, les deux clés ne sont pas compatibles. Vous devrez alors recréer une paire de clé et redéployer la partie publique de celle-ci.

  1. attention à ne pas diffuser votre clé privée []

Pages: 1 2 3

Posté par: Alexandre Chauvin-Hameau, le 27/08/2007
Trackback | Popularité: 28%
marqué , et
AddThis Social Bookmark Button
UselessNothing newInformativeLearned a lotAmazingly helpful (1 votes, average: 4 out of 5)
Loading ... Loading ...

Voir aussi

Et pourquoi pas

Laisser un commentaire

© 2009 Panoramisk | Creative Commons License wordpress logo