HTTP/S a certifikáty v embedded zařízeních

jjrsk

  • *****
  • 707
    • Zobrazit profil
Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #30 kdy: 18. 03. 2025, 18:40:59 »
Podle situace možná stačí, když bude v prohlížečích pořád nějaká unsafe volba "považuj tenhle zdroj za důvěryhodný."
Ty nedelas nikde v administraci IT ze? Tohle nestaci uz davno.

Mam trebas pod spravou veci, ktery pouzivaji flash. Do kteryho aktualniho browseru si nainstaluju flash? Nebo se kterym aktualnim browserem, bude fungovat nejaka ta 5tkova java?

Takze mam nekolik systemu ruzneho stari a v kazdym nekolik ruznych browseru ruzneho stari, aby se k tem vecem vubec nejak dalo dostat. Vcetne napr win XP + IE.

Jeste tak nejsvepravnejsi je v tomhle ohledu palemoon, kde si muzu povolit ruzne "nebezpecne" sifry, ale ani v nem nefunguje zdaleka vse.

Az se guugl prohlasi, ze zille neda prachy pokud nezrusi http, tak bude zruseny lusknutim prstu.


Zopper

  • *****
  • 876
    • Zobrazit profil
Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #31 kdy: 18. 03. 2025, 18:45:07 »
Když nad tím přemýšlím, spuštění webového serveru na USB mi nepřijde jako až tak super koncepční řešení:

Ta IP kolize v 1. není až takový problém, pokud jde tu IPadresu změnit. Prostě podobná situace, jako u veškerého wifi IOT s AP mode pro první nastavení.

A ten zbytek... No, tam záleží, jak moc zajímavý cíl to je. Například amatérský osciloskop do USB, který má webový frontent místo instalování nějaké aplikace do systému, mi zní jako krásné využití tohohle systému. A ani úspěšný útok nemá moc co udělat jiného, než si to bricknout, nebo si v tom zařízení udělat bezpečnou enklávu pro znovu-šíření. Jasně, pokud by to ovládalo nějaké čerpadlo v rafinerii, nebo dvoutunového robota ve fabrice, tak to může udělat o dost víc škody, ale... Tak nějak pochybuju, že tam budou mít tyhlety moderní vymyšlenosti, co tady řešíme. Ovládací software dostupný jen pro WinXP je v těch kruzích pořád v módě.  ;D

Podle situace možná stačí, když bude v prohlížečích pořád nějaká unsafe volba "považuj tenhle zdroj za důvěryhodný."
Ty nedelas nikde v administraci IT ze? Tohle nestaci uz davno.
Řešil jsem specificky situaci "funkcionalita je podmíněna použitím HTTPS," jako nějaké webgl nebo clipboard věci, a navrhl to jako self-help alternativu k pouštění lokální proxy, ne snahu držet naživu zařízení s ovládáním přes Flash.  ::)

Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #32 kdy: 18. 03. 2025, 21:29:32 »
Wi-Fi AP mode pro první nastavení je vlastně dobré přirovnání, to je podobné ohnutí nějaké technologie k úplně jinému účelu, s podobnými dopady. Dokonce typicky ještě o něco horší, protože to typicky znamená, že se musím odpojit od sítě, zatímco u USB jen přibyde nová síť.

Kolize většinou není problém, ale když je, je to opruz. Změnit nastavení – ale prvně se tam potřebujete dostat. Jo, odpojíte druhou síť, a pak to půjde.

A k bezpečnosti: Samozřejmě záleží na zařízení i na jeho použití. Já hlavně chtěl vyvrátit představu, že když je to po kabelu, který mám pod kontrolou, tak je plain HTTP v pohodě. Jo, pasivní odposlech tam nehrozí, ale jiné scénáře jako cache poisoning ano.

Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #33 kdy: 18. 03. 2025, 22:26:44 »
Ještě koukám na to WebUSB. Pokud připojím USB zařízení bez další konfigurace OS, na všechny jeho standardní funkce se napojí systémové ovladače a předpokládám, že se na ně libusb/WebUSB nedostane. To by vyžadovalo blacklist zařízení v OS, což už je pro uživatele veliká komplikace. Možná proto Chrome v dokumentaci k extenzi WebUSB píše "The WebUSB API exposes non-standard Universal Serial Bus (USB) compatible devices to the web".

WebHID je zatím v plenkách https://developer.mozilla.org/en-US/docs/Web/API/WebHID_API#browser_compatibility . U přístupu na HID přes browser píše Mozilla https://developer.mozilla.org/en-US/docs/Web/API/HID "This feature is available only in secure contexts (HTTPS)" - jak se vlastně dostane lokální SPA do secure contextu?

Jo, tohle mi přišlo jako vcelku dobrý nápad. Speciálně právě pro lokální administraci různých zařízení a gadgetů.

Není to zdaleka tak nové, registruju to minimálně 8 let. Největší praktický problém je v tom, že je to v podstatě aktivita od Google. Takže jejich produkty to sice podporují už hodně dlouho, ale v podstatě nikdo jiný.
Na Andoridu, ChromeOS to chodí v pohodě, do PC, macOSu nebo Linuxu si člověk doinstaluje jakýkoliv Chromium based prohlížeč, pokud už ho tam rovnou nemá. Ale není cesta, jak to rozchodit na iOSu (což je pořád tak čtvrtina uživatelů na mobilních patformách).

Ten myšlený use case mi přišel tak, že místo toho, aby výrobce gadgetu dělal nativní aplikaci pro x různých platforem, tak udělá webovou administrační aplikaci s JS na svém webu, aktualizuje jí podle potřeby (bez koleček schvalování, publikování na storech) a když si uživatel ten web otevře, a povolí přístup, tak může ovládat gadget.
Takže není to off-line, ale to myslím, nebyl ten hlavní point. Pokud je to nějaký otevřený projekt, může to plácnout třeba na GitHub Pages - github.io a propojit do hlavního projektu, kde jsou pak zdrojáky. O HTTPS se pak nemusí starat.

HID zařízení (BaseClass - 03h) s nějakou šikovně vybranou podřídou, aby se to v systému nechytalo jako standardní vstupní zařízení (tzn. dostupné pro custom ovladač, nebo třeba WebHID), se vcelku běžně používají. Jak pro nějaká vstupní ovládací zařízení (pady, joysticky, tlačítkové panely), tak i třeba ovládání USB zvukovek (pokud to nejsou zrovna ovládací prvky, co chce výrobce namapovat do standardní audio třídy). Oproti těm některým ostatním základním třídám, které rovnou vyžadují samostatný ovladač, to má výhodu v tom, že to nikde v systému (Win) nevisí jako neznámé zařízení a jsou už definované základní parametry inicializace, komunikace co používá interrupt transfery s nízkou latencí.
Zas samozřejmě pokud by bylo potřeba přenášet nějaké kýble dat pomocí bulk nebo iso transferů, tak to není úplně nejvhodnější. Proto tam taky často bývá třeba další endpoint vyloženě s DFU třídou pro update firmware.

Jinak, neříkám, že je to pro konkrétní použití (co neznám) úplně nejvhodnější, jestli je tam nějaký silnější SBC, co už má Ethernet, tak se vyloženě nabízí to využít. Protože přístup z více zařízení, i přes WiFi atd. I když tam samozřejmě můžou přijít zmíněné komplikace s certifikáty atp.
Jen jsem chtěl zmínit na co ta USB JS API asi byla původě míněná.



Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #34 kdy: 18. 03. 2025, 23:06:22 »
1. IP adresa se může krýt s něčím v místní síti apod.

Přes USB jsou to link-local adresy 224.0.0.0/24, tj. v jiném segmentu, než zbytek místní sítě. Tam bych se konfliktu nebál. Vzdálený přístup na takovou adresu by vyžadoval NAT a routování, což už je věc uživatele (tj. extrémně nepravděpodobné).


Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #35 kdy: 18. 03. 2025, 23:13:10 »

Ten myšlený use case mi přišel tak, že místo toho, aby výrobce gadgetu dělal nativní aplikaci pro x různých platforem, tak udělá webovou administrační aplikaci s JS na svém webu, aktualizuje jí podle potřeby (bez koleček schvalování, publikování na storech) a když si uživatel ten web otevře, a povolí přístup, tak může ovládat gadget.
Takže není to off-line, ale to myslím, nebyl ten hlavní point. Pokud je to nějaký otevřený projekt, může to plácnout třeba na GitHub Pages - github.io a propojit do hlavního projektu, kde jsou pak zdrojáky. O HTTPS se pak nemusí starat.


Jo, to by bylo hezké řešení. Na github dát aplikaci (tam by mohla vydržet spoustu let bez údržby) a komunikovat přes nějaké HID webusb.  Bohužel podpora v prohlížečích je taková, jaká je... tedy nepoužitelné.

Pořád mi nejlépe vychází to webové rozhraní s importem CA certifikátu přes mass storage... please any comments?

Re:HTTP/S a certifikáty v embedded zařízeních
« Odpověď #36 kdy: 20. 03. 2025, 00:41:28 »
Ad 224.0.0.0/24 – IIUC je to určeno na multicasty v místní síti. Pravda, asi se to moc nepoužívá, ale čisté mi to nepřijde.

Ad dostupnost zvenku – zmínil jsem ostatní uživatele (v praxi spíše sandboxy, třeba na Androidu), cache poisoning (pokud se počítač připojuje do různých sítí) a DNS rebinding (pokud server neřeší Host, mohu si z prohlížeče udělat proxy). To všechno jsou realistické útoky, kde pro útočníka není překážkou, že k tomu nemá přímý přístup po síti. Analogicky: pancéřové dveře jsou hezká věc, ale útočník poleze oknem.