Ancora su Fring (e Asterisk)
by admin on Apr.25, 2010, under Asterisk, Sicurezza, Telefonia, VoIP
Il mio ultimo post (su Fring) ha dato origine ad una piccola e peraltro civilissima divergenza di opinioni con un lettore, Emilio, che riguardava la mia boutade sul Mossad. Oltre a ribadire che la mia pretendeva di essere una semplice ipotesi, nell’ambito più vasto di una interpretazione, che non ha certo la pretesa di essere reale, ma quanto più possibile convincente.
Anche le ipotesi hanno il diritto di essere sviluppate.
Una certa domestichezza maturata nel campo delle reti e della sicurezza mi ha portato alla convinzione che purtroppo Internet, oltre a rimanere un fantastico universo di comunicazione, è divenuta progressivamente un terreno sempre più insidioso, nell’ambito del quale agiscono attori potenti e molto diversi tra loro. Credo che possiamo anche citarne alcuni:
- gruppi criminali come la famosa RBN (o Russian Business Network), e molti altri di questo genere, che rivendono i loro servizi e parti delle botnets composte di milioni di macchine infettate dalle varie tecnologie virali ad altri gruppi criminali.
- gruppi di hachers organizzati e semimilitarizzati al servizio di nazioni che non sono proprio modelli di democrazia, come la Cina o l’Iran.
- gruppi privati al soldo delle major del cinema e dell’industria musicale, talvolta messi in piedi da ex militari dell’intelligence dell’amministrazione Bush.
- organismi di polizia nazionali e sovranazionali.
- compagnie interessate allo spionaggio industriale.
- gruppi terroristici come AlQaida.
- cani sciolti.
Perché poi escludere dalla allegra compagnia proprio le agenzie di intelligence, che per dovere istituzionale sarebberoo le uniche “in qualche modo” legittimate ad andare sopra le righe, proprio non lo capisco. Perché poi escludere quella più efficiente di tutte, se non altro perché agisce agli ordini di un governo che vive nella psicosi di essere perennemente in guerra col resto del mondo, lo capisco ancora meno.
Messa in altri termini, se io fossi il responsabile di un organismo del genere, mi darei del cretino per non averci pensato a realizzare un servizio di potenziale raccolta informazioni come Fring.
Occorre considerare anche che è il comportamento umano il fattore più determinante nella riuscita di una minaccia informatica (non per niente i nostri politici in tanti anni non sono ancora riusciti a capire che i loro cellulari supercriptati non servono a un accidente quando conversano allegramente coi prorietari di normali terminali mobili).
Quale soluzione potrebbe essere più brillante per intercettare una chiamata skype che farla passare per un gateway intermediario, senza che l’ interlocutore, tra i due, che usa realmente l’autentico software skype abbia alcuna coscienza che quanto dice o chatta sia facilmente intercettabile.
Esaurita la premessa paranoica, sono tuttavia ben disposto a riconoscere che un servizio come Fring possa anche rivelarsi funzionalmente fantastico in determinate situazioni, anche aziendali, e pertanto tratterò una possibile integrazione con Asterisk.
Uno degli scenari più comuni di una qualsiasi azienda con tanti operatori mobili, e che nella fattispecie utilizzi un PBX come Asterisk è l’esigenza di mantenere con essi un contatto centralizzato, possibilmente economico.
Ciò implica in genere l’allestimento di più gateway SIP/GSM o SIP/UMTS, normalmente ancora piuttosto costosi, senza contare poi il costo del traffico telefonico.
Perche non dotarli allora tutti di Nokia Symbian o di un Iphone con il client Fring installato, azzerando di fatto almeno i costi di allestimento dei gateway aziendali.
In tal modo la comunicazione con la sede centrale sarebbe comunque assicurata, dato che potrebbe avvenire sia tramite wifi (qualora si trovassero nell’area coperta da un hot-spot open e free, che tramite UMTS. Inoltre sarebbero in grado di effettuare in maniera gratuita, e senza passare per il PBX aziendale, chiamate di tipo eterogeneo (SIP, Skype, ecc) a tutti i loro contatti.
Consideriamo il caso di una piccola ditta di servizi (la “Patacca srl”) con tre operatori mobili (Timb, Tomb e Tumb).
La ditta possiede un pbx Asterisk con cui gestisce sia la telefonia interna, che quella esterna.
Il PBX ha un IP dinamico esterno, ma grazie al servizio di DynDNS è universalmente risolvibile come patacca.dyndns.com
Si potrebbe impostare nel sip.conf:
Nella sezione general:
realm=patacca.dyndns.com
disallow=all
allow=alaw
allow=ulaw
allow=gsm
useragent=AsterPatacca
sdpsession=AsterPatacca
externhost=patacca.dyndns.com
externrefresh=180
e per ognuno degli operatori esterni (mi limito a Timb) una sezione di questo tipo:
[Timb]
type=friend
defaultuser=Timb
accountcode=Timb
callerid=”Timb_by_Fring”
dtmfmode=RFC2833
qualify=yes
canreinvite=yes
host=dynamic
cancallforward=yes
context=default
insecure=port,invite
secret=timbpass07
Se i tre operatori fossero dotati ognuno di un cellulare con il software Fring installato, dopo aver modificato il proprio profilo:
Opzioni -> Il mio profilo -> Modifica il mio profilo -> Opzioni -> Cambia soprannome: Timb
potrebbero poi definirvi un nuovo specifico servizio SIP:
Opzioni -> Vai a -> Add-ons -> SIP -> Altro
ed impostare ad esempio i parametri:
ID utente: Timb
Password: timbpass07
Indirizzo proxy: patacca.dyndns.com
Ipotizzando un contesto [default] minimalista (tanto per provare):
[default]
exten => entrata,1,Ringing
exten => entrata,n,Wait(2)
exten => entrata,n,Background(demo-congrats)
exten => entrata,n,Hangup
Il riscontro della registrazione del nuovo agent è evidenziabile sulla console di Asterisk:
-- Registered SIP 'Timb' at 77.93.254.230 port 53338
> Saved useragent "fring" for peer Timb
Il flusso della chiamata da parte di Timb alla sede centrale risulta il seguente:
| 77.93.254.230 | 151.65.44.119 |
| |
| INVITE SDP (telephone-event)|SIP From: sip:Timb@patacca.dyndns.com
|(53338) ------------------> (5060) | To:sip:entrata@patacca.dyndns.com
| INVITE SDP (telephone-event)|SIP From: sip:Timb@patacca.dyndns.com
|(53338) ------------------> (5060) | To:sip:entrata@patacca.dyndns.com
| 100 Trying| |SIP Status
|(53338) <------------------ (5060) |
| 100 Trying| |SIP Status
|(53338) <------------------ (5060) |
| 180 Ringing |SIP Status
|(53338) <------------------ (5060) |
| 180 Ringing |SIP Status
|(53338) <------------------ (5060) |
| 200 OK SDP (telephone-event)|SIP Status
|(53338) <------------------ (5060) |
| 200 OK SDP (telephone-event)|SIP Status
|(53338) <------------------ (5060) |
| ACK | |SIP Request
|(53338) ------------------> (5060) |
| ACK | |SIP Request
|(53338) ------------------> (5060) |
| RTP (g711A) |RTP Num packets:2792 Duration:27.982s
|(54394) ------------------> (11840)| SSRC:0x405DB0B4
| RTP (g711A) |RTP Num packets:2796 Duration:27.940s
|(54394) <------------------ (11840)| SSRC:0x75FB40B1
| BYE | |SIP Request
|(53338) <------------------ (5060) |
| BYE | |SIP Request
|(53338) <------------------ (5060) |
| 200 OK | |SIP Status
|(53338) ------------------> (5060) |
| 200 OK | |SIP Status
|(53338) ------------------> (5060) |
Il riscontro della stessa in console:
== Using SIP RTP CoS mark 5
-- Executing [entrata@default:1] Ringing(”SIP/Timb-00000000″, “”) in new stack
– Executing [entrata@default:2] Wait(”SIP/Timb-00000000″, “2″) in new stack
– Executing [entrata@default:3] BackGround(”SIP/Timb-00000000″, “demo-congrats”) in new stack
– <SIP/Timb-00000000> Playing ‘demo-congrats.gsm’ (language ‘en’)
– Executing [entrata@default:4] Hangup(”SIP/Timb-00000000″, “”) in new stack
== Spawn extension (default, entrata, 4) exited non-zero on ‘SIP/Timb-00000000′
*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
Timb/Timb 77.93.254.230 D 53338 OK (52 ms)
Nella fattispecie, l’indirizzo IP 77.93.254.230 non corrisponde a quello del terminale mobile di Timb, bensì a quello del gateway Fring utilizzato (in questo caso appartenente a KPNQwest Italia spa).
Una volta rientrato in sede, se vorrà continuare ad utilizzare il proprio apparecchio come interno SIP, dovrà in qualche modo resettarlo, o impostare un servizio differente, se vorrà evitare che le sue chiamate ai colleghi passino per il gateway esterno di turno.

