Ono to ale není tak pitomé, když se nad tím zamyslíte a budete se věnovat smyslu téhle věci. Existuje spousta zařízení, která se připojují přes USB třeba kvůli programování nebo aktualizaci. Dnes je potřeba instalovat ovladače, nějaký program pro ovládání a podobně, navíc to je často jen pro Windows, takže v Linuxu máme smůlu.
Párkrát jsem třeba aktualizoval někomu navigaci a bylo to peklo – sehnat počítač s Windows (už to je pro mě velký problém), pak instalovat ovladače, asi tři aplikace, pak stahovat balíky map, nějak to konvertovat a odemykat a pak to tam dostat. Pokud otevřu nově nějaký web výrobce, prohlížeč se zeptá na přístup k zařízení a z webu se to tam celé multiplatformně nahrne, tak budu jedině nadšený.
Nehledě na různá SDK, programovací software a podobně. Připojím Arduino, na webu naklikám nastavení hotové aplikace a pak se to bez problémů naprogramuje. Nemusím nic řešit a instalovat.
Možnost přistupovat na kryptotokeny ap., ale na druhou stranu na to by bylo ideální nějaké API.
https://msdn.microsoft.com/en-us/library/windows/hardware/dn631754?f=255&MSPPError=-2147217396
Něco bližšího než OMG?
Jak třeba vyrobit elektronický podpis v prohlížeči? Doteď byla jediná (a vůbec ne ideální) cesta dělat to přes Java Applet. Vzhledem k tomu, že to vyžadovalo NPAPI, tak tato možnost v Chrome není a pokud vím Firefox s tím taky končí. Možnost podepsat dokument, např. při podávání nabídky na veřejnou poptávku je IMO potřebná funkce.
Opravdu? Prohlížeče zvládají max. navázat https přes PKCS11, tím končí. Nic jako podepisovat dokument, ověřovat podpis či jiné funkce nemají k dispozici.
Zbytek můžeš dělat pouze přes NPAPI nebo v chromu přes jeho CMP API a komunikovat s chrome apps (jak se používá na ChromeOS), která by ti to zabezpečila. Prakticky ani jedno nejde ve velkém použít.
U nás se podepisují dokumenty přes SignPad. Teď se to musí řešit Java appletem a je to na *píp*. Původně v Java appletu bylo i focení dokumentů, ale to jsem už díky Media API přepsal do Javascriptu a problémy jako mávnutím kouzelného proutku zmizely. Tak doufám, že i to ovládání SignPadu díky tomuhle časem půjde přepsat do Javascriptu.
Kryptotokeny mne taky napadly, akorát nebude to úplně růžové - výrobce zařízení bude muset WebUSB podporovat a zařízení bude muset povolit přístup z dané domény:
[...] USB device can define a set of origins that are allowed to connect to it. This is similar to the CORS mechanism in HTTP. In other words, WebUSB devices are associated with a web origin and can only be accessed from a page from the same origin.
Hardware manufacturers will have to update the firmware in their USB devices in order to enable WebUSB access to their device via the Platform Capability descriptor. Later a Public Device Registry will be created so that hardware manufacturers can support WebUSB on existing devices.
https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web
Párkrát jsem třeba aktualizoval někomu navigaci a bylo to peklo – sehnat počítač s Windows (už to je pro mě velký problém), pak instalovat ovladače, asi tři aplikace, pak stahovat balíky map, nějak to konvertovat a odemykat a pak to tam dostat.
Vidíte. A přitom by stačilo implementovat mass storage, že, a ty stažené mapy tam normálně nakopírovat. Hmmmm.
To byl jen příklad, který mě napadl. Oni tím cílí především na programování různých zařízení – typicky SDK pro IoT. Před pár dny jsem třeba přes ADB flešoval telefon s LineageOS. Co kdyby se tohle dalo krásně automatizovat přes web? Připojte mobil, přepněte ho do debug módu a my vám tam vyměníme systém za LineageOS. Včetně toho, že detekujeme, jaký telefon máte a dáme vám to tam správně a bez složitých návodů, které stejně většina uživatelů tupě opíše, tak jak jsou?
Ovšem jako vždy tu platí – nechcete, nemusíte.
Rozdíl oproti „nabídnu ke stažení a spuštění úžasný urychlovač telefonu, aby se mi na to hejlové nachytali“ v tomhle případě není tak velký. Nevyvíjet nějakou vlastnost jen proto, že pár trotlů odklepne varovné okno bez čtení je blbost.
Navíc konkrétně s telefonem (alespoň androidím) toho případný útočník moc neudělá, pokud nebude mít zaplý USB debug.
Rozdíl oproti „nabídnu ke stažení a spuštění úžasný urychlovač telefonu, aby se mi na to hejlové nachytali“ v tomhle případě není tak velký.
Ten rozdíl je samozřejmě obrovský - právě proto, že se jedná o API, tudíž by to mělo fungovat s libovolným telefonem. Oproti tomu ten megavoser, implementovat to pro funkčním způsobem pro stovky různých modelů, že. Chcete jedním kliknutím zrychlit telefon? ANOOOOOOOOOOOO! Huráááááááááááááá!
Ale připojený foťák s čerstvýma (nezálohovanýma) fotkama, to je jiný kafe... Stačí si vybrat - budeš plati za to, že je nezveřejní, nebo za to, že ti vrátí kopie smazanýho zařízení...
Se skenerem nebo tiskárnou se dá taky zažít kopec srandy, a firewall v tomto případě nepomůže.
Typicky IoT je právě to, na co se to nehodí. Protože to neumí správně rozeznat jednotlivá zařízení. Píší o tom, že si holt výrobci HW budou muset nějak upravit svůj chipset. Do té doby jakmile jednou povolíte specifický vendor code, tak ta webová stránka může přistupovat k zařízení s daným vendor code. A proč je to pro IoT problém? Třebas kvůli FTDI.
Na co se to možná hodí je ta vaše tiskárna - tam je obvyklé, že každý model se identifikuje jako jiné USB zařízení. Ale u IoT se spíše setkáte s tím, že polovina těch věcí použije stejný čip (například FT232) a tudíž budou mít stejnou USB identifikaci.
Největším bonusem tohoto kurvítka (přímého přístupu k USB) bude další masivní snížení už tak tragické bezpečnosti těch Molochů ("browserů").
Třeba v kombinaci s unesenými doplňky ( https://www.root.cz/zpravicky/sest-dalsich-rozsireni-pro-chrome-uneseno-pouziva-je-4-8-milionu-uzivatelu/ ), nebo desítkama jiných koncepcí útoků to budou botnety a vykradený bankovní účty jako na běžícím pásu.
To by samozrejme stacilo a osobne taky nechapu, proc to tak neni. Nebo po tolika letech v IT to vlastne i svym zpusobem chapu... X-D Jako priklad to ale myslim nebylo uplne spatne - proc ty aplikace psat porad dokola, kdyz jde treba jenom o primitivni obsluzne aplikace, ktere na webu pobezi s prstem v nose? Alternativy pro paranoiky tady budou vzdycky, o to se nebojte. A stejne jako predtim vasi paranoiu naprosto chapu... ale to uz je na vas, jestli treba informace, ze jste si do navigace nahral mapy evropy je pro vas tak nepostradatelna.
Vidíte. A přitom by stačilo implementovat mass storage, že, a ty stažené mapy tam normálně nakopírovat. Hmmmm.
Mel jsem v ruce par ruzmych Garminu a TomTom One. USB storage vzdy bylo k dispozici. S tim pouhym kopirovanim stazenych map by to ale nebylo tak jednouche. To by se musel zmenit updatovaci model, kdy by mapa byla generovana individualne podle vaseho vyberu na serveru vyrobce. Treba Garmin ma SW, kde si naklikate mapy, ktere chcete, a ten je na GPS nacpe. Mate treba SW s mapami Evropy, ale chcete v GPS jen kus Evropy nebo, s ohledem na bobtnajici tendenci map, nemate uz na celou Evropu misto. To by sice slo delat na serveru vyrobce, ale mohli bychom polemizovat, jestli by to bylo zadouci.
To jiste, ony totiz ty mapy vubec nejdou rozdelit po statech, nebo klidne i po okresech do jednotlivych souboru ...
Tak jiste, to by slo. Pokud ovsem dokazes zajistit, aby GPS vedelo, ze silnice XY v jednom state pokracuje ve vedlejsim state jako AB34. Abys totiz nemusel cestu z Krakova do Vidne planovat nad papirovou mapou a pak do GPS zadavat az k hranicim a po jejich prejezdu znovu az k dalsim hranici.
A jak bys resil, ze treba budu chtit jen horni pulku Italie, protoze dal asi nikdy nepojedu? Rozdelis Italii na dve mapy? A co kdyz chci jen tretinu?
On to treba Garmin ma rozdelene do segmentu, ktere si naklikam a nahraju. Technicky by slo to, ze tu segmenty budou nejak oznacene a ja si nakopiruju ty, ktere chci a jejich jmena si najdu na mape obrazku segmentu. Ovsem tech segmentu je zatracene mnoho. Takze se vidim, jak si o GPS kopiruju treba 150 segmentu tak, ze nic nezapomenu. O tom, jestli by take byla zajistena jejich navaznost v GPS, by se dalo polemizovat, idealne pote, co by clovek nastudoval, jak ty jejich mapy vlastne funguji.
horni pulka italie a dolni pulka nemecka do jednoho souboru? neni problem:
http://garmin.openstreetmap.nl/
nakreslim na mape ctverecek, pripadne pridam dalsi dilky, kliknu a taha se mi soubor s vybranymi castmi mapy. soubor nahraju do garminu pomoci mass storage.
web stary jak metuzalem. mass storage stare jak metuzalem. zadne webusb netreba.
Párkrát jsem třeba aktualizoval někomu navigaci a bylo to peklo – sehnat počítač s Windows (už to je pro mě velký problém), pak instalovat ovladače, asi tři aplikace, pak stahovat balíky map, nějak to konvertovat a odemykat a pak to tam dostat. Pokud otevřu nově nějaký web výrobce, prohlížeč se zeptá na přístup k zařízení a z webu se to tam celé multiplatformně nahrne, tak budu jedině nadšený.
Myslim, ze muzeme plne duverovat vyrobcum, ze jeste aspon 15 let budou delat updatovaci SW klasicky akorat pro Widle, idealne nejvyse poslednich dvou verzi, aby uzivatel mel pri updatu k dispozici posledni desktopove efekty (treba Garmin uz na XP nejede). Vzdyt ti burani uz davno mohli mit SW v Jave. Jak ji nemam rad, tak zrovna tady by se hodila. Jenze to by soudruzi nesmeli zamestnavat absolventy IT krouzku mistni pomocne skoly, kteri dokazi napsat firmware GPS tak, ze zcihlovati nasledkem chyby v textovem souboru obsahujicim favourites, pricemz oprava je mozna pouze naflashovani alternativniho upraveneho firmwaru, ktery umozni pristup na USB storage a vymazani souboru.
Takze se obavam, ze hlavni vyuziti novych ficur, az se dostatecne rozlezou do ostatnich prohlizecu a i MS impementuje svou vlastni a nekompatibilne rozsirenou verzi, bude tvorba naprosto silenych webovych stranek, k jejich zobrazeni bude potreba aspon osmijadro s 32 GB RAM.
Samy o sobě můžou být ty jednotlivé funkce občas užitečné, ale když se člověk zamyslí, kam to směřuje… tak to nevidím moc pozitivně. Z počítačů budou jen terminály a uživatelé budou mít ještě menší kontrolu nad softwarem a daty – vše se bude odehrávat na vzdálených serverech patřících nějakým korporacím s kilometr dlouhými smluvními podmínkami, které uživatelé nečtou. Výsledkem je, že uživatel nemá prakticky žádná práva a korporace může cokoli. Jasně, uživatelé si za to můžou sami, že nečtou smluvní podmínky a licence, ale otázka je, jestli bychom tento trend měli podporovat a technologicky umožňovat.
Samozřejmě ty technologie jde použít i k dobrým účelům a nechat lidem svobodu – aby měli práva ke svým datům, aby na serverech běžel svobodný software, který si uživatelé mohou stáhnout a spustit na vlastním serveru, když nebudou spokojení s dodavatelem. Ale když vidím, co se běžně děje ve světě webu, tak většina služeb takhle nefunguje – přestože jsou postavené na open source knihovnách (což provozovatelům ušetří většinu nákladů na vývoj), tak aplikace jako takové jsou proprietární a uživatel k tomu softwaru nemá žádná práva.
Proto je potreba nadavat na Firefox a hromadne prejit na Google Chrome, ze.
Ale k veci - uprimne si nemyslim, ze ty dve pridane vlastnosti nejak vyrazne prispeji k nesvobode. Platebni systemy nikdy nebyly vec, ktera by fungovala na samotnem klientu a pristup k USB k nicemu podobnemu nesmeruje taky. Predpokladam, ze ES6 moduly jsi nemel na mysli.