TCP bezpečnost

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:TCP bezpečnost
« Odpověď #15 kdy: 04. 02. 2021, 14:34:01 »
No úplně na koleně to být nemělo. Chtěl jsem použít https://github.com/kokke/tiny-AES-c a ten algoritmus CTR s AES-256. Můj návrh byl ten, že bude pevně daný klíč, který budou znát jen client a server. Pro každé zašifrování se vygeneruje inicializační vektor a ten se pošle spolu s daty (nešifrovaně). Pokud to správně chápu a bude pro každou šifru jiný vektor, který bude generován s co největší náhodností je to neprůstřelné.
Nepopsal jsi jak pak proběhne to samotné ověření (a jak je dále zajištěna integrita dat). A pro začátek u CTR můžu flipovat jednotlivé bity ciphertextu a tím se flipují bity na stejné pozici v plaintextu.

Je to celé naprd, protože znám systém za statisíce a stovky zařízení, které jsou takto blbě navržena a už roky běží (né mojí vinou). Změnit šifrování na TLS není už realizovatelné.
A ten Tiny AES běží přímo na tom zařízení? Pokud to zvládne ještě SHA-2, tak se tam dá udělat AES + HMAC a to bude podstatně lepší. Ale musí to dělat někdo ví co dělá, ne někdo kdo neví jak se dělá MITM. Jinak tohle se normálně řeší tak, že nakoupíš nějaké malé routříky na kterých běží OpenWRT, nastavíš na tom OpenVPN (nebo jinou VPN, wireguard, ...) a dáš to před to zařízení. Samozřejmě ne vždy to jde provést (cena, prostor, spotřeba). Jako bonus získáš přístup na to zařízení i když je za NATem atd.


Re:TCP bezpečnost
« Odpověď #16 kdy: 04. 02. 2021, 14:37:21 »
protokol zdokumentovany byt nemusi, pokud mam k dispozici klienta i server, abych si mohl cist sitovou komunikaci, tak to je lehke.
„Lehké“ je relativní, samozřejmě je možné že ten protokol bude jednoduchý a udělat to bude na pět minut, ale taky tam může být něco nezjevného a reverzování bude chvíli trvat. A protože cílem je hodnotit bezpečnost protokolu, tak je blbost pálit čas na implementaci a řešení toho proč to nefunguje. Navíc s tímhle rozpočtem, a když to vynásobíš odhadem že se to celé podaří (jak technicky, tak že uživatel hazardrok nezdrhne bez zaplacení, případně si nevymyslí ze své neznalosti nějaký pseudodůvod proč se tvůj útok nepočítá, a taky že tě tu někdo nepředběhne - jak vidíme tak už jsme dva co to jako chtějí implementovat) tak 50% tak to celé musíš stihnout za několik málo hodin aby to bylo rentabilní. Jinak z toho co popsal mi přijde že to bude deset řádků Pythonu (necháš projít ten úvodní handshake a pak už si komunikaci upravuješ jak je libo) a tak bych do toho šel :), ale necháme se překvapit.

Protokol je jasně daný a jediné co bude případnému útočníkovy stačit, když mu dám pevně danou sekvenci bajtů, kterou tam pošle a má vyhráno. Nic víc nic míň. Klidně poskytnu HW, který třeba začne hrát mozartovu operu, když se to podaří do zařízení zapsat. Předvedu, že já jsem schopen to udělat, aby jste si nemysleli, že to je podvod. Peníze dám klidně do úschovy někomu zde spolehlivému, kdo je buď předá tomu kdo to dokáže nebo je vrátí.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:TCP bezpečnost
« Odpověď #17 kdy: 04. 02. 2021, 14:42:02 »
Protokol je jasně daný
No a kde teda je popsaný?

Re:TCP bezpečnost
« Odpověď #18 kdy: 04. 02. 2021, 14:46:32 »
Citace
A ten Tiny AES běží přímo na tom zařízení? Pokud to zvládne ještě SHA-2, tak se tam dá udělat AES + HMAC a to bude podstatně lepší. Ale musí to dělat někdo ví co dělá, ne někdo kdo neví jak se dělá MITM. Jinak tohle se normálně řeší tak, že nakoupíš nějaké malé routříky na kterých běží OpenWRT, nastavíš na tom OpenVPN (nebo jinou VPN, wireguard, ...) a dáš to před to zařízení. Samozřejmě ne vždy to jde provést (cena, prostor, spotřeba). Jako bonus získáš přístup na to zařízení i když je za NATem atd.

Na tom zařízení běží pouze komunikační protokol hodně příbuzný protokolu IRlan nebo možná MODBUS. Používá se na některé průmyslové systémy už desítky let. Ten není možné změnit, ale můžu do něj něco přidat. A také není možné přidávat moc, protože tam je jen STM32F100 a to dělá mnohem důležitější věci než jen komunikaci a počítání klíčů.

To s tím malým routerem s OpenWRT je krásná myšlenka. Škoda, že to někoho nenapadlo už před lety...

Re:TCP bezpečnost
« Odpověď #19 kdy: 04. 02. 2021, 14:51:42 »
Protokol je jasně daný
No a kde teda je popsaný?

Přesný popis není důležitý, protože ten útočník rozklíčuje kompletně jen velice težce. Zkusím večer vygenerovat zničující zprávu a ta se pro celý proces může použít, protože bezpečně to zbortí.


_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:TCP bezpečnost
« Odpověď #20 kdy: 04. 02. 2021, 15:00:36 »
Protokol je jasně daný
No a kde teda je popsaný?

Přesný popis není důležitý, protože ten útočník rozklíčuje kompletně jen velice težce. Zkusím večer vygenerovat zničující zprávu a ta se pro celý proces může použít, protože bezpečně to zbortí.
No minimálně by se nám hodilo vědět jak funguje ta autentizace, nebo alespoň co autentizace je (to by šlo asi i uhodnout kdyby se těch zpráv nasniffovalo víc, bude to něco na začátku co vypadá náhodně). Samozřejmě se neptám na formát payloadu, to je mi fuk a nezajímá mě.

ZAJDAN

  • *****
  • 2 087
    • Zobrazit profil
    • E-mail
Re:TCP bezpečnost
« Odpověď #21 kdy: 04. 02. 2021, 15:15:33 »
Šel bych na to úplně jinak. Na server, který jak říkáš má veřejnou IP nainstalovat OpenVPN nebo  WireGuard. Pokud je to Linux, tak jsi šťastný člověk :_)
Na klientovi pak jen oVPN klienta a hotovo a nepotřebuješ to dávat ani na routery.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Jose D

  • *****
  • 897
    • Zobrazit profil
Re:TCP bezpečnost
« Odpověď #22 kdy: 04. 02. 2021, 15:17:09 »
Mám TCP klienta, který se připojuje na TCP server s veřejnou IP adresou. Jakmile se naváže spojení, tak veškerou komunikaci přebírá TCP server. Tj. server vždy zahajuje komunikaci a client mu odpovídá. Komunikace je nezabezpečená.

No, jestli tomu dobře rozumím, tak tvoje komunikace je bezpečná pouze pokud máš síť mezi klientem a serverem pod svoji kontrolou (třeba díky VPN).
Pokud ne, tak případný man-in-the-middle může počkat, až si klient zahájí komunikaci, unese TCP spojení a klientovi poslat něco ošklivého, a serveru třeba, hmm, RST.

Tím že komunikace byla nezabezpečená, MITM měl dost času naposlouchat správný formát a zjistit co klient rád přijme.

Moc nerozumim tomu, jak by někdo třetí, který sedí někde buhví kde

Vhodné scénáře nasazení MITM, třeba pomocí social engineeringu jsou publikované, HW nástroje typu badUSB jsou dostupné.

Takže celé je to o tom, jestli se někomu vyplatí se tím zabývat, a jakou vám to způsobí škodu. Pokud tím měříte počasí nebo zhasínáte veřejné osvětlení v Horní Dolní, tak je to asi jedno.

Citace
zde je vidět jak naši IT odborníci pracujou

často to je tak, že dostaneš to, co si zaplatíš, a nebo taky že se na projekt nabalují nové a nové features, až původní koncept přestane dostačovat.

Re:TCP bezpečnost
« Odpověď #23 kdy: 04. 02. 2021, 15:21:07 »
No žádná autentizace tam teď v podstatě není, ale možná si jen nerozumíme :-) Server si vyžádá data o zařízení a to mu je pošle jako acsii znaky. Server nemá možnost zjistit jestli klient kecá (jen poznámka: data jsou jen chráněna pomocí CRC to je jediná ochrana). Současně zařízení bude komunikovat s jakýmkoliv serverem, který zná protokol a umí vypočítat CRC.

Můj návrh s autentizací pomocí AES jen tento (má za cíl autorizovat mezi sebou obě strany jen při navazování spojení)...a nemění komunikační protokol
1. jen obě strany už od začátku znají šifrovací klíč
2. server vygeneruje náhodný vektor, který použije k inicializaci šifry a zašifruje nějaký text (třeba náhodný nebo "5*9=")
3. Do zařízení odešle jak vektor tak i šifru
4. Zařízení rozšifruje zprávu a vygeneruje nový náhodný vektor pomocí něj zašifruje výsledek 45. To odešle zpět serveru.

Tím se zajistí, že klient i server si musí rozumět a můžou spolu komunikovat.

Re:TCP bezpečnost
« Odpověď #24 kdy: 04. 02. 2021, 15:24:42 »
Citace
Takže celé je to o tom, jestli se někomu vyplatí se tím zabývat, a jakou vám to způsobí škodu. Pokud tím měříte počasí nebo zhasínáte veřejné osvětlení v Horní Dolní, tak je to asi jedno.

Je to mnohem horší, což osobně vidím jako velkej průser. Naštěstí mě se to netýká, protože já jsem jen z FEL a kreslím pouze čáry. To, že se jako hobby zajímám o programování nikoho kolem mě nezajímá :-D

Jose D

  • *****
  • 897
    • Zobrazit profil
Re:TCP bezpečnost
« Odpověď #25 kdy: 04. 02. 2021, 15:42:36 »
Je to mnohem horší, což osobně vidím jako velkej průser.

no podle toho co popisuješ, tak ta autorizace to moc dál neposune ... případnej MITM nechá server a klient se autorizovat dle libosti a do komunikace vleze, až budeš zpět v plaintextu. Takže jak psali kluci přede mnou, asi bych se nezabýval vynalézáním kola, a hodil tam malýho mikrotika, kterej bude volat domů na openVPN server a máš řešení s cenou ~30€ na koncový zařízení..

To že crypto knihovny maj commity každej den není kvůli grafomanství autorů, ale proto, že mít dobrej bezpečnostní model je těžký a málokdy trvalý.

Re:TCP bezpečnost
« Odpověď #26 kdy: 04. 02. 2021, 15:48:03 »
Je to mnohem horší, což osobně vidím jako velkej průser.

no podle toho co popisuješ, tak ta autorizace to moc dál neposune ... případnej MITM nechá server a klient se autorizovat dle libosti a do komunikace vleze, až budeš zpět v plaintextu. Takže jak psali kluci přede mnou, asi bych se nezabýval vynalézáním kola, a hodil tam malýho mikrotika, kterej bude volat domů na openVPN server a máš řešení s cenou ~30€ na koncový zařízení..

To že crypto knihovny maj commity každej den není kvůli grafomanství autorů, ale proto, že mít dobrej bezpečnostní model je těžký a málokdy trvalý.

Nějakej osvědčenej typ na model se kterým se každej naučí?

Jose D

  • *****
  • 897
    • Zobrazit profil
Re:TCP bezpečnost
« Odpověď #27 kdy: 04. 02. 2021, 15:58:40 »
Nějakej osvědčenej typ na model se kterým se každej naučí?

výhoda mikrotiků je, že maj všechny stejnej koncept konfigurace, takže není rozdíl mezi 8-portovým routerem který mi běží v serverovně, wifi krabičkou kterou jsem u kohosi doma řešil wifi a CPE boxy kterejma jsem za starejch špatnejch časů tahal internety po střechách.

Takže si klidně pořiď něco, co ti bude vyhovovat velikostí a počtem portů - hEX lite nebo mAP (to dvojportový mysím)

Re:TCP bezpečnost
« Odpověď #28 kdy: 04. 02. 2021, 16:41:50 »
Citace
Takže jak psali kluci přede mnou, asi bych se nezabýval vynalézáním kola

Jen taková poznámka k této větě. Když jsem se kdysi chtěl naučit programovat, tak jsem si mimo jiné koupil knihu o tom jak různí přední světoví programátoři (nebo alespoň to tak bylo publikováno) radí ze svých zkušeností, jak se vyvarovat chyb. Jedna rada byla:
Citace
Znovu a znovu vynalézejte kolo.
Napadá mě otázka čemu pak věřit. Když se mě tady třeba snažíte přesvědčit, že metody útoků na toto existují a že je potřeba to šifrovat je to vůbec správné tvrzení? Pořád by mě ještě zajímala odpověď na to, zda by to někdo tady skutečně dokázal prolomit a ukázat mi to v reálném provozu. Nechápejte to špatně, myslím to tak, že se mi dost těžko věří tomu, že něco lze, když jsem to ještě neviděl a to i přes to, že na internetu se to píše.

Re:TCP bezpečnost
« Odpověď #29 kdy: 04. 02. 2021, 17:44:38 »
To asi prohlížeče vyžadují https jen pro buzeraci majitelů stránek.