TLS na Androidu

tls,srtp,zrtp a bezpečnostní potíže VoIP

TLS na Androidu

Příspěvekod Georgius » pát 14. zář 2018 9:00:58

Zdravím,
před lety jsem kdesi TLS rozchodil, ale teď se mi zaboha nedaří nastavit CSipSimple ani Linphone - po zvolení TLS se ani v logu na serveru neobjeví pokus o registraci. Když přepnu zpět na UDP tak vše OK. Co dělám blbě ? CSIP jsem přehodil na expert mód, ale jak přeložili serverport jsem nepochopil ...

díky
Georgius
Georgius
 
Příspěvky: 215
Registrován: pon 22. črc 2013 16:07:46

Re: TLS na Androidu

Příspěvekod xsouku04 » úte 18. zář 2018 9:09:21

Nemám osobní zkušenost, ale vyjel jsem si, jací SIP klienti jsou právě teď přihlášeni pomocí TLS. Snad to pomůže.
Kód: Vybrat vše
+-----------+--------------------------------------------------------------------+----------------------+
| count(id) | user_agent                                                         | socket               |
+-----------+--------------------------------------------------------------------+----------------------+
|         1 | Asterisk PBX 1.8.28-cert5                                          | tls:81.31.45.51:5061 |
|         1 | Asterisk PBX 11.13.1~dfsg-2+deb8u5                                 | tls:81.31.45.51:5061 |
|         2 | Asterisk PBX 14.7.5                                                | tls:81.31.45.51:6670 |
|         1 | Blink 1.4.2 (Linux)                                                | tls:81.31.45.51:5061 |
|         1 | Blink 3.0.3 (Linux)                                                | tls:81.31.45.51:5061 |
|         2 | Cisco/SPA112-1.4.1(002)                                            | tls:81.31.45.51:5061 |
|         2 | Cisco/SPA112-1.4.1SR1(002)                                         | tls:81.31.45.51:6670 |
|         2 | Cisco/SPA112-1.4.1SR1(002)                                         | tls:81.31.45.51:6689 |
|         3 | Cisco/SPA504G-7.6.2b                                               | tls:81.31.45.51:5061 |
|         1 | Cisco/SPA504G-7.6.2c                                               | tls:81.31.45.51:5061 |
|         3 | CSipSimple_A0001-27/r2457                                          | tls:81.31.45.51:6670 |
|         1 | CSipSimple_cedric-24/r2457                                         | tls:81.31.45.51:5061 |
|         1 | CSipSimple_hero2lte-26/r2459                                       | tls:81.31.45.51:6689 |
|         1 | CSipSimple_OUKITEL-23/r2457                                        | tls:81.31.45.51:6670 |
|         2 | Grandstream GXP1160 1.0.8.9                                        | tls:81.31.45.51:5061 |
|         3 | Grandstream GXP1400 1.0.8.9                                        | tls:81.31.45.51:5061 |
|         9 | Grandstream GXP1405 1.0.8.9                                        | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1450 1.0.8.6                                        | tls:81.31.45.51:6689 |
|         2 | Grandstream GXP1450 1.0.8.9                                        | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1610 1.0.4.128                                      | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1620 1.0.4.128                                      | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1625 1.0.4.128                                      | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1625 1.0.4.50                                       | tls:81.31.45.51:5061 |
|         1 | Grandstream GXP1625 1.0.4.88                                       | tls:81.31.45.51:5061 |
|         4 | Grandstream GXP2140 1.0.9.26                                       | tls:81.31.45.51:5061 |
|         2 | Grandstream GXP2170 1.0.9.108                                      | tls:81.31.45.51:5061 |
|         1 | Grandstream HT-502  V1.2A 1.0.16.2  chip V2.2                      | tls:81.31.45.51:5061 |
|         1 | Grandstream HT701 1.0.6.1                                          | tls:81.31.45.51:5061 |
|         1 | Grandstream HT701 1.0.9.4                                          | tls:81.31.45.51:5061 |
|         2 | Grandstream HT702 1.0.10.3                                         | tls:81.31.45.51:5061 |
|         1 | Grandstream HT801 1.0.9.3                                          | tls:81.31.45.51:5061 |
|         2 | Jitsi2.11.5608Linux                                                | tls:81.31.45.51:6670 |
|         2 | Linksys/SPA2102-5.2.13(004)                                        | tls:81.31.45.51:6689 |
|         4 | Linksys/SPA922-6.1.5(a)                                            | tls:81.31.45.51:5061 |
|         1 | Linksys/SPA942-6.1.3(a)                                            | tls:81.31.45.51:5061 |
|         4 | Linksys/SPA942-6.1.5(a)                                            | tls:81.31.45.51:5061 |
|         1 | MicroSIP/3.3.27                                                    | tls:81.31.45.51:5061 |
|         1 | OpenStage_40_V3 R5.8.77      SIP  180404                           | tls:81.31.45.51:6689 |
|         1 | OpenStage_40_V3 R5.8.77      SIP  180404 simple-uaCSTA             | tls:81.31.45.51:6689 |
|         1 | snom-m9/9.2.33                                                     | tls:81.31.45.51:5061 |
|         1 | snom-m9/9.6.4-a                                                    | tls:81.31.45.51:5061 |
|         2 | snom360/8.4.35                                                     | tls:81.31.45.51:5061 |
|         1 | snom360/8.7.3.25.9                                                 | tls:81.31.45.51:5061 |
|         1 | snom370/7.3.14                                                     | tls:81.31.45.51:5061 |
|         1 | snom370/8.7.5.35                                                   | tls:81.31.45.51:5061 |
|         1 | snom821/8.7.5.35                                                   | tls:81.31.45.51:5061 |
|         1 | snom870/8.7.5.17                                                   | tls:81.31.45.51:5061 |
|         5 | snom870/8.7.5.35                                                   | tls:81.31.45.51:5061 |
|         2 | Well T20 hw7.0.0.54 fw9.73.64.3                        | tls:81.31.45.51:6689 |
|         2 | Well T20 hw7.0.1.61 fw9.60.9.9                    | tls:81.31.45.51:5061 |
|         2 | Well T20 hw7.0.1.61 fw9.61.9.2                    | tls:81.31.45.51:5061 |
|         1 | Yealink SIP-T21P_E2 hw52.0.0.0.0.0.0 fw52.82.9.2 | tls:81.31.45.51:6689 |
|         1 | Yealink SIP-T26P fw6.72.9.10 hw4.0.0.4          | tls:81.31.45.51:5061 |
|         2 | Yealink SIP-T26P fw6.72.9.20 hw4.0.0.4           | tls:81.31.45.51:5061 |
|         2 | Yealink SIP-T32G fw32.70.9.19 hw22.3.2.32.0.0.0  | tls:81.31.45.51:6670 |
|         1 | Yealink SIP-W52P fw25.73.65.1 hw25.0.0.0.0.0.0   | tls:81.31.45.51:5061 |
|         1 | Yealink W52P hw25.1.0.0.0.0.0 fw25.81.9.1     | tls:81.31.45.51:6670 |
|        17 | Zoiper rv2.8.101-mod                                               | tls:81.31.45.51:5061 |
|         1 | Zoiper rv2.8.70-mod                                                | tls:81.31.45.51:5061 |
|         8 | Zoiper rv2.8.87-mod                                                | tls:81.31.45.51:5061 |
+-----------+--------------------------------------------------------------------+----------------------+
60 rows in set (0.01 sec)


Z tabulky plyne, že se úspěšně lidé hlásí z Csipsimple i Zoiperu.
Napadá mne, že chyba by mohla být v čísle portu. Někdy je nutné port neměnit, protože se zapnutím tls změní sám. Nebo jej naopak změnit?
Použitá čísla portů je vidět ve sloupečku socket. Defaultní je 5061, ale kvůli různým certifikátům (port 6670) a případným firewallům či nekorektně chovajícím routerům jsou k dispozici i jiné porty.
Viz návod. http://www.odorik.cz/w/srtp

Je pravda, že zrovna na androidu, kde je pravděpodobné, že se připojujete k různým pochybným wifi sítím, šifrování nemusí být špatný nápad. Nikdo nemůže odposlouchávat hovor.
SIP heslo nejde odposlechnout ani bez šifrování, tedy jde jen o obsah hovoru a volané a volající čísla.

Jestli přijdete na to v čem to bylo, prosím napište to sem.
Uživatelský avatar
xsouku04
Administrátor
 
Příspěvky: 6651
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno

Re: TLS na Androidu

Příspěvekod alfi » úte 18. zář 2018 18:12:11

Taky jsem s tím v CSipSimple zápasil, ale už netuším, jak rozchodil (max. porovnat položku po položce?). Odorik tam má profil - pokud je oficiální, neměl by mít TLS automaticky? :-) Zkusil jsem zálohu nastavení - je to json, který půjde možná i zkopírovat, viz níže.

xsouku04 píše:SIP heslo nejde odposlechnout ani bez šifrování, tedy jde jen o obsah hovoru a volané a volající čísla.

Heslo sice odposlechnout nejde, ale jeho hash + nonce vidět je a následně jde využít hrubou sílu, viz např. https://www.sipsorcery.com/mainsite/Hel ... rdSecurity - i s návodem, jak to rozjet v Amazon AWS vč. ceníku, kolik stojí louskání podle délky hesla :-) Tj. všude, kde to jde, by mělo být TLS nebo aspoň IP whitelist (i limit na ČR je pořád lepší, než vůbec žádný)


Kód: Vybrat vše
{
  "accounts": [
    {
      "id": 1,
      "active": 1,
      "wizard": "EXPERT",
      "display_name": "Odorik.cz",
      "wizard_data": "",
      "priority": 100,
      "acc_id": "<sip:xxxxx@sip.odorik.cz:5061>",
      "reg_uri": "sip:sip.odorik.cz:5061",
      "mwi_enabled": false,
      "publish_enabled": 0,
      "reg_timeout": 1800,
      "ka_interval": 0,
      "force_contact": "",
      "allow_contact_rewrite": 0,
      "contact_rewrite_method": 2,
      "allow_via_rewrite": 0,
      "allow_sdp_nat_rewrite": 0,
      "transport": 3,
      "default_uri_scheme": "sips",
      "use_srtp": 2,
      "use_zrtp": -1,
      "reg_dbr": -1,
      "rtp_port": -1,
      "rtp_public_addr": "",
      "rtp_bound_addr": "",
      "rtp_enable_qos": -1,
      "rtp_qos_dscp": -1,
      "proxy": "sip:sip.odorik.cz:5061",
      "reg_use_proxy": 3,
      "realm": "*",
      "scheme": "Digest",
      "username": "xxxxxx",
      "datatype": 0,
      "initial_auth": false,
      "sip_stack": 0,
      "vm_nbr": "",
      "try_clean_reg": 1,
      "android_group": "",
      "use_rfc5626": 1,
      "rfc5626_instance_id": "<urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>",
      "rfc5626_reg_id": "",
      "vid_in_auto_show": -1,
      "vid_out_auto_transmit": -1,
      "sip_stun_use": -1,
      "media_stun_use": -1,
      "ice_cfg_use": -1,
      "ice_cfg_enable": 0,
      "turn_cfg_use": -1,
      "turn_cfg_enable": 0,
      "turn_cfg_server": "",
      "turn_cfg_user": "",
      "turn_cfg_pwd": "",
      "ipv6_media_use": 0,
      "filters": []
    }
  ]
}
alfi
 
Příspěvky: 387
Registrován: čtv 03. led 2013 16:31:10

Re: TLS na Androidu

Příspěvekod xsouku04 » úte 18. zář 2018 18:52:47

alfi píše:Heslo sice odposlechnout nejde, ale jeho hash + nonce vidět je a následně jde využít hrubou sílu, viz např. https://www.sipsorcery.com/mainsite/Hel ... rdSecurity - i s návodem, jak to rozjet v Amazon AWS vč. ceníku, kolik stojí louskání podle délky hesla :-) Tj. všude, kde to jde, by mělo být TLS nebo aspoň IP whitelist (i limit na ČR je pořád lepší, než vůbec žádný)

Fakt zajímavý článek. V podstatě lze říci, že nonce + hash nechrání hesla, která lze zkombinovat pomocí nějakých slovníků či databází obvyklých hesel. Naše generované heslo dlouhé 8 znaků obsahující velká i malá písmena a číslice by ale mělo být stále v pořádku. Respektive náklady na jeho rozlousknutí jsou vyšší než co by mohlo být pro někoho zajímavé.
Další omezení je, že útočník musí mít přístup k wifině nebo internetové přípojce, kde pobývá jeho oběť. Tedy nejspíš to nebude nějaký guru z druhého konce světa, ale Pepa od vedle. Tedy nedá se to dělat ve velkém. A že by všechno tohle dělal proto, aby vám nakonec provolal 200 Kč kreditu, není reálné, dost možná by jste na něj přišel. Spíš by ho mohlo zajímat kam voláte a co si říkáte.


IP white list je ale celkem k ničemu. Útočníci používají služby jako https://www.hidemyass.com/, které jim umožní mít ip adresy z libovolné země. Pepa od vedle to navíc nepotřebuje. Další problém je že identifikace země na základě ip adresy není úplně spolehlivá a občas bychom mohli blokovat i zákazníky, kteří jsou v ČR. A občas někdo vycestuje a zapomene na to, že má blokované zahraničí a diví se že mu to nejde.
V praxi zatím vždy když uniklo SIP jméno a heslo byla příčina vždy VoIP telefon nebo ústředna na veřejné ip adrese a útočníkovi stačilo takové zařízení/ústřednu najít skenováním celého internetu tyto údaje jednoduše vytáhnout. Případně může přesměrovat příchozí hovory na nějaké drahé číslo v telefonu, pokud není schopen získat SIP jméno a heslo, protože onen VoIP telefon nemá bezpečnostní díru.

Běžně je problém slabých SIP hesel je hlavně v tom, že se je snaží útočník uhádnout na ústředně. To může dělat kdokoli na světě. Velká část pobočkových ústředen i část VoIP operátorů neumí omezit počet pokusů s neplatným heslem a tak útočník několik dní hádá heslo u jedné linky. Zpravidla nejdříve zkouší čísla do deseti tisíc či slovníková hesla. Překvapivě hodně lidí zvolí za heslo číslo nebo nějaké typické slovníkové heslo. Tomu se ale dá relativně snadno bránit tím, že se omezí počet pokusů.
Uživatelský avatar
xsouku04
Administrátor
 
Příspěvky: 6651
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno

Re: TLS na Androidu

Příspěvekod alfi » čtv 20. zář 2018 15:07:10

xsouku04 píše:...
Běžně je problém slabých SIP hesel je hlavně v tom, že se je snaží útočník uhádnout na ústředně. To může dělat kdokoli na světě. Velká část pobočkových ústředen i část VoIP operátorů neumí omezit počet pokusů s neplatným heslem a tak útočník několik dní hádá heslo u jedné linky.

Zatím jsem většinu pokusů o zneužití SIP hesla viděl ze států typu palestina, čína nebo afrika, tj. IP whitelist šanci na zneužití celkem slušně snižuje (předpokládám, že většina jde nějakým skriptem, tj. zkoušení přihlášení ze spousty zemí se asi moc nedělá). Trefit aktuální seznam ČR adres už je na vás :-) (taky jsme jej používali a občas aktualizovali - zásadní problém s tím nebyl).

Odposlech na veřejné wifi v kavárně nebo cestách není problém, tím spíš, pokud se telefon přihlašuje automaticky. A právě na rozdíl od hádání na ústředně má útočník s odposlechem neomezený počet pokusů, na ústřednu už dorazí správné heslo :-)

xsouku04 píše:V podstatě lze říci, že nonce + hash nechrání hesla, která lze zkombinovat pomocí nějakých slovníků či databází obvyklých hesel. Naše generované heslo dlouhé 8 znaků obsahující velká i malá písmena a číslice by ale mělo být stále v pořádku.

Proto píšu šifrování by "mělo být". I když asi už není daleko doba, kdy bude "muset být". Digest je pořád stejný a výkony CPU rostou, louskání bude čím dál snažší a levnější. :-) I SSL/TLS klíče se musí průběžně natahovat..
alfi
 
Příspěvky: 387
Registrován: čtv 03. led 2013 16:31:10

Re: TLS na Androidu

Příspěvekod xsouku04 » čtv 20. zář 2018 19:28:07

alfi píše:Zatím jsem většinu pokusů o zneužití SIP hesla viděl ze států typu palestina, čína nebo afrika, tj. IP whitelist šanci na zneužití celkem slušně snižuje (předpokládám, že většina jde nějakým skriptem, tj. zkoušení přihlášení ze spousty zemí se asi moc nedělá). Trefit aktuální seznam ČR adres už je na vás :-) (taky jsme jej používali a občas aktualizovali - zásadní problém s tím nebyl).

Tohle ale spolehlivě řeší omezit počet pokusů. Pokud nemáte heslo 1234 a máte omezený počet pokusů, heslo je neuhádnutelné. Náhodný útočník z internetu by si navíc neměl být jist ani jménem.
Problém byl, že velká část ústředen útočníkovi prozradí, jestli zkouší platné přihlašovací jméno a pak jej nechá vyzkoušet několik milionu hesel ... . Bylo to defaultní chování např. ústředny Asterisk.
Podle mne tyto věci by mají být ušetřeny už v návrhu protokolu, protože mít neomezený počet pokusů je do nebe volající hloupost. Nic jako šifrování nepomůže.

Odorik má hádání hesla a jakékoli podivné chování "skenování" ošetřeno už hodně dlouho a na dobré úrovni, útočník skenující internet nás zpravidla ani nenajde. K SIP heslům se útočník zatím vždy dostal přes telefon nebo ústřednu uživatele, vždy se podařilo najít způsob jakým to provedl. Tedy zatím nikdy to nebylo přes odposlouchávanou wifi síť. A jakmile zná SIP jméno a heslo omezení na IP adresy z ČR opravdu nefunguje.

Bohužel dle mého názoru velká část "expertů" na bezpečnost moc chytrosti nepobrala. A místo aby omezili počet pokusů tak vymýšlí hlouposti jako povinné obskurní znaky v heslech. Mít neobvyklé znaky může být užitečné, pokud chci mít co nejkratší heslo. Zvolím-li si heslo o dva znaky delší, jestli heslo obsahuje velké písmeno nebo číslici už není podstatné. "Experti" si také často vynucují povinné pravidelné měnění hesel. Pravidelné měnění hesel je pracné a vede k tomu, že lidé nemají šanci si tolik hesel zapamatovat a obvykle mění v heslu jen jednu číslici (tedy je to k ničemu), nebo si hesla zapisují někde na monitor a podobně. A velmi to obtěžuje. Většina lidí má hesla uložená ve svém webovém prohlížeči, či jiném programu a zobrazit si hesla může každý kdo se na chvíli dostane k Vašemu počítači. Včetně útočníka z druhého konce světa, který Vás ani nezná.
O ovládat bankovní aplikaci můžete bez problému ze zavirovaného děravého androidu, to expertům nevadí. Vadit to začne až se vyskytnou nějaké vážná zneužití, které už nepůjde mediálně bagatelizovat. Ale není to jisté. Platba platební kartou na internetu je také nebezpečná už z principu a zatím to prochází. A takový paypal má tak vysokou marži, že zaplatit občas nějaký ten podvod ze svého mu nedělá problém. A nebo ztrátu přenese na chudáka obchodníka, který ale za to nemůže. Dříve také expertům stačilo k bankovním převodům zadávaným online jen jméno a heslo. A až po nějakých problémech s autorizačními SMS.
Čekám nyní, který "expert" se jako první odváží vyslovit myšlenku, provádět bankovní platby jen pomocí jednoho děravého android zařízení není dvakrát moudré. Pravda moc se v bezpečnostních opatřeních (a pseudobezpečnostních opatřeních) které tomu mají zabránit neorientuji. Pravděpodobně se počítá s tím, že android není děravý a nedovolí aby jedna aplikace šmírovala, vykradla data jiné, nebo ovládala jinou aplikaci. A na tomto děravém předpokladu stojí a padá bezpečnost velké části peněz na bankovních účtech.

Přes všechny hlouposti, kterých se tito bezpečnostní experti dopouští ale mají tendenci přeceňovat šifrování. Je to moderní. Šifrování vás ale zpravidla ochrání jen před vašim nejbližším okolím. Jako majitelem wifi, ostatními uživateli wifi. Také by mohl šmírovat poskytovatel internetu, ten má ale jiné zájmy. U agentur typu NSA lze předpokládat, že mají k dispozici zadní vrátka/dostatečný výkon k rozlousknutí většiny šifrování, tedy tam ochrana šifrováním není jistá, navíc tyto ďábelské agentury mají obvykle páky na poskytovatele obsahu, aby o vás vyzradili co potřebují vědět, případně vás i zablokovali, když budete nepohodlný. Myslím že ilegální šmírácí typu NSA v ČR vůbec neoperují, jejich operační prostor je především vyspělý západ a podmořské kabely.
Uživatelský avatar
xsouku04
Administrátor
 
Příspěvky: 6651
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno

Re: TLS na Androidu

Příspěvekod alfi » čtv 20. zář 2018 22:03:08

xsouku04 píše:Tohle ale spolehlivě řeší omezit počet pokusů. Pokud nemáte heslo 1234 a máte omezený počet pokusů, heslo je neuhádnutelné. Náhodný útočník z internetu by si navíc neměl být jist ani jménem.

Tady to bylo myšleno právě jako prevence odposlechnutého Digestu = známé jméno a lousknuté heslo. Ideálně buď nic nezveřejnit (=TLS) nebo heslo klidně zveřenit, ale mít whitelist na jedinou povolenou IP :-)

xsouku04 píše:A místo aby omezili počet pokusů tak vymýšlí hlouposti jako povinné obskurní znaky v heslech. Mít neobvyklé znaky může být užitečné, pokud chci mít co nejkratší heslo. Zvolím li si heslo dostatečně dlouhé (stačí tak o dva znaky delší), jestli heslo obsahuje velké písmeno nebo číslici už není podstatné.

Dneska rychle přibývá databází už spočítaných hashů (viz třeba https://md5hashing.net/hash/sha1), tj. v důsledku to ani tak není o délce nebo složitosti hesla, ale spíš o tom, mít heslo, které ještě nikdo nespočítal, když už jeho hash může odposlouchávat :-)

xsouku04 píše:O ovládat bankovní aplikaci můžete bez problému ze zavirovaného děravého androidu, to expertům nevadí. Vadit to začne až se vyskytnou nějaké vážná zneužití, které už nepůjde mediálně bagatelizovat.

Nj, děravý android bude časem asi problém - ono je to jako jít dneska na internet a pak do banky s windows XP. Jak to řeší v bankách netuším. Na druhou stranu, platební karty jsou samy o sobě taky dost děravé a často zneužité - i tak se to pohodlí uživatelů bankám vyplatí, tím spíš teď s NFC.
alfi
 
Příspěvky: 387
Registrován: čtv 03. led 2013 16:31:10


Zpět na Bezpečnost a šifrování hovorů

Kdo je online

Uživatelé procházející toto fórum: Google [Bot] a 1 návštěvník