Aller au contenu principal

Sécurité de la téléphonie

Exposition réseau​

Seul Kamailio est public : SIP 5060 et 5061 (TLS), WSS 7443 pour les softphones. Asterisk n'accepte le SIP que des hôtes Kamailio et LiveKit SIP (sip_networks, ACL PJSIP) ; AMI, ARI, le JSONRPC de Kamailio, le protocole ng de RTPengine et les ports de métriques écoutent sur l'adresse d'administration et le pare-feu du Manager ne les ouvre qu'aux réseaux déclarés (admin_networks). Les plages média (RTP) sont les seules autres ouvertures.

TLS et certificats​

Le Manager émet les certificats depuis son autorité. Kamailio sert SIP sur TLS, WSS et HTTPS sur le JSONRPC et les métriques (tls_enabled, actif par défaut) ; un certificat public peut être fourni pour les opérateurs et les navigateurs (tls_public_cert_file). Asterisk sert, quand tls_enabled est actif, SIP sur TLS, ARI en HTTPS et AMI sur TLS. Les médias du softphone sont en DTLS-SRTP.

Secrets​

Mots de passe SIP des extensions, secrets des trunks, codes de messagerie et de conférence, identifiants AMI et ARI, secret JSONRPC et secret partagé WebRTC sont dans le coffre existant. L'API ne les renvoie jamais (champs en écriture seule, has_secret) ; un pool PBX ne contient que des références openbao:// ou env://. Les mots de passe des services laissés vides à l'installation sont générés et scellés par le Manager.

Softphone WebRTC​

Le navigateur ne reçoit jamais le mot de passe SIP de l'extension. Navin Enterprise délivre des identifiants éphémères (module auth_ephemeral de Kamailio, HMAC SHA-256 avec le secret partagé) ; Kamailio refuse une expiration au-delà de ephemeral_max_ttl_s (3600 secondes par défaut). Les points de terminaison WebRTC d'Asterisk n'acceptent que les adresses de Kamailio.

Protections SIP et fraude​

  • Anti-bruteforce. Une adresse externe est bannie (ipban) après ban_failures authentifications refusées (10 par défaut) pendant ban_time_s (900 secondes).
  • Anti-flood. pike bannit une adresse au-delà de pike_density requêtes par tranche de 2 secondes (30 par défaut) ; les opérateurs et les nœuds internes en sont exemptés.
  • Scanners. Les agents utilisateurs listés dans scanner_user_agents sont refusés.
  • Quotas. Appels simultanés, appels par seconde, préfixes pays autorisés, préfixes surtaxés bloqués et durée maximale par tenant ; droits d'appel par extension (interne, national, international, surtaxé).
  • Blocage immédiat. Un administrateur bloque un tenant ou une extension sur chaque Kamailio du pool (voir Exploitation).

Isolation des tenants​

Chaque tenant a un identifiant court tid (t suivi des 12 premiers caractères hexadécimaux de son UUID) qui préfixe ses points de terminaison, contextes, files et objets LiveKit ; accountcode porte l'UUID du tenant et chaque canal la variable NAVIN_TENANT. Le compilateur refuse tout contexte qui référence un objet d'un autre tenant. Les tables de Navin Enterprise ont toutes un tenant_id et passent par l'isolation existante du Control Plane. En modèle dedicated, le tenant a son propre pool Asterisk et son jeu de dispatcher.

Enregistrements​

Les enregistrements, messages vocaux et messages de SVI sont chiffrés par Navin Enterprise avant leur dépôt dans SeaweedFS, sous des clés opaques tenants/{uuid}/{catégorie}/{aaaa}/{mm}/{uuid}. Seul Navin Enterprise les lit : URL signées de 300 secondes, contrôle des droits, audit ; les identifiants S3 ne quittent jamais le serveur. LiveKit Egress écrit dans un compartiment séparé avec des identifiants limités à ce compartiment.