Alfonso Maruccia

WebAssembly, nuovo codice binario per il Web

Una coalizione di colossi IT lavora a un nuovo standard di codice binario per il Web, una tecnologia che dovrebbe garantire interoperabilitÓ e contemporaneamente performance simili a quelle del software nativo

Roma - Aziende e organizzazioni di primo piano come Microsoft, Mozilla, Google e Apple hanno dato il via al WebAssembly Community Group, un gruppo di lavoro che nell'ambito del World Wide Web Consortium (W3C) intende promuovere la realizzazione di un nuovo formato utilizzabile per compilare ed eseguire il codice sorgente sulle pagine Web.

Si tratta, in sostanza, di un'evoluzione col turbo di asm.js, tecnologia fin qui usata per convertire codice scritto in linguaggi nativi come il C in listati JavaScript interpretabili dall'engine JS del browser Web; di più, WebAssembly (wasm) ci mette la capacità di decodificare il codice binario molto più velocemente rispetto a un parser JS e una maggiore facilità nell'aggiunta di funzionalità richieste per raggiungere prestazioni simili ai programmi compilati e browser-indipendenti.

Stando a quanto sostengono gli ingegneri di Microsoft, gli obiettivi di wasm includono il mantenimento dell'interoperabilità con JavaScript, il supporto esteso di un gran numero di linguaggi di programmazione (a cominciare da C e C++) e il focus assoluto sulle prestazioni.
WebAssembly sarà un formato di tipo binario ma sarà pienamente leggibile, sotto forma di testo, assieme al resto del codice sorgente di una pagina Web. I listati JS non sono destinati a estinguersi, suggerisce il CEO di Mozilla Brendan Eich, ma wasm permetterà al browser di estendere sensibilmente gli scenari di utilizzo del codice Web.

Parlando di possibili casi di utilizzo, gli sviluppatori di wasm indicano infatti applicazioni come l'editing video o fotografico, i videogiochi casual e non, le applicazioni P2P, i software CAD, le simulazioni scientifiche, gli emulatori e le virtual machine (DOSBox, QEMU, MAME ecc.), le VPN, la crittografia, l'accesso al desktop remoto e molto altro ancora.

Alfonso Maruccia
Notizie collegate
  • TecnologiaMozilla vuole i videogiochi sul WebLe capacitÓ di Firefox in chiave videoludica emergono facendo girare il nuovo Unreal Engine sul browser senza bisogno di plug-in. Le differenze di performance rispetto al codice nativo sussistono, almeno per ora
26 Commenti alla Notizia WebAssembly, nuovo codice binario per il Web
Ordina
  • So già come andrà a finire... si tornerà agli anni 2009-2011 quando tutti i soloni pontificavano sulla meraviglia di Java, il futuro dell'umanità... io dovevo installare due o tre PC per utente in quanto ogni programma o sito web voleva la sua versione della JRE e guai a toccarla!
    non+autenticato
  • Tra i promotori mancano Oracle e Adobe ... le coincidenze ...
    non+autenticato
  • mi sa che ormai la cosa migliore da fare e' avere una macchina Virtuale con dentro un sistema operativo ai minimi termini con firefox e poco piu'.
    se devi andare su internet usi quella e basta in modo da tenere pulita la macchina fisica.
    non+autenticato
  • - Scritto da: ...

    > se devi andare su internet usi quella e basta in
    > modo da tenere pulita la macchina
    > fisica.


    Se ti bucano, non accederanno ai tuoi dati però accedono alla tua linea.
    E secondo me quest'ultima cosa è più grave.
    non+autenticato
  • le misure per la mitigazione esistono

    ad esempio il mio OS è stateless, per cui un'infezione dura al massimo una sessione

    con le macchine virtuali il trucco si può replicare ancora più facilmente tramite lo snapshotting
    non+autenticato
  • https://github.com/WebAssembly/design/blob/master/...

    ( mi riferisco al 'barbatrucco'
    Browsers will not parse the textual format on regular web content in order to implement WebAssembly semantics.
    )

    poi anche il resto non scherza ( https://github.com/WebAssembly/design/blob/master/... )
    (..)
    WebAssembly minimizes costs by having a design that allows (though not requires) a browser to implement WebAssembly inside its existing JS engine
    (..)
    non+autenticato
  • praticamente ActiveX?
    non+autenticato
  • - Scritto da: collione
    > praticamente ActiveX?
    però multipiattaforma, più virus per tuttiA bocca aperta
    non+autenticato
  • - Scritto da: Hop
    > - Scritto da: collione
    > > praticamente ActiveX?
    > però multipiattaforma, più virus per tuttiA bocca aperta

    Effettivamente la cosa "sembra" comica: tutti a lamentarsi della pericolosità di Flash e della Java VM, e ora si pensa addirittura ad una nuova Virtual Machine da subito cross-platform (finalmente scriverai un virus e girerà ovunque).
  • - Scritto da: bradipao

    > Effettivamente la cosa "sembra" comica: tutti a
    > lamentarsi della pericolosità di Flash e della
    > Java VM, e ora si pensa addirittura ad una nuova
    > Virtual Machine da subito cross-platform
    > (finalmente scriverai un virus e girerà
    > ovunque).

    Come ho detto sotto il paragone non regge:
    Gli Activex sono eseguibili win32 nudi e crudi, quindi possono fare qualunque cosa. Pericolosissimi, anzi da suicidio.

    Anche Java ha i metodi per fare qualunque cosa. Certo, quando gira in un'applet imposta dei permessi limitati, ma i metodi ci sono comunque e in un modo o nell'altro si riesce sempre a raggiungerli. Troppo rischioso, inoltre chi gestisce il plug-in ha dimostrato nel tempo di non avere a cuore la sicurezza.

    Javascript invece non ha proprio i metodi di cui sopra. L'unico modo per fargli fare qualunque cosa è exploitarlo con un buffer overflow o robe simili e iniettare dati/istruzioni compatibili con la cpu e l'OS vittima. E questo valeva ieri come vale oggi come varrà domani.
    non+autenticato
  • - Scritto da: ...
    > Javascript invece non ha proprio i metodi di cui
    > sopra. L'unico modo per fargli fare qualunque
    > cosa è exploitarlo con un buffer overflow o robe
    > simili e iniettare dati/istruzioni compatibili
    > con la cpu e l'OS vittima.

    WebAsm è un bytecode, che gira in una sua VirtualMachine, ESATTAMENTE come java.

    Non ha quasi niente a che vedere con javaScript, se non un periodo di transizione iniziale in cui il bytecode sarà fatto in modo da poter essere tradotto in javaScript equivalente per essere esguito laddove non ci sia ancora la VM webasm.

    I problemi della VM per java si avranno tali e quali con la VM per webasm.
  • - Scritto da: bradipao

    > WebAsm è un bytecode, che gira in una sua
    > VirtualMachine, ESATTAMENTE come
    > java.

    > Non ha quasi niente a che vedere con javaScript,
    > se non un periodo di transizione iniziale in cui
    > il bytecode sarà fatto in modo da poter essere
    > tradotto in javaScript equivalente per essere
    > esguito laddove non ci sia ancora la VM
    > webasm.
    >
    > I problemi della VM per java si avranno tali e
    > quali con la VM per
    > webasm.

    Hai idea di cosa sia una VM?
    Si può fare una VM che in input ha i byte di un linguaggio a tua scelta e in output può solo scrivere su un singolo file fisso e nien'altro, eh, tutto il resto è elaborazione di variabili sandboxed..
    Virtual machine non vuole dire "faccio quel ca**o che mi pare"

    La Java VM, ripeto per l'ultima volta, ha i METODI, per fare quello che vuole su file system, OS, ...., cioè ha i metodi per fare danni.

    La VM che farà girare WebAssembly invece non avrà tali metodi perché, indovina un po', avrà solo i metodi che ha javascript OGGI (deve interagire col DOM eh, mica con altro) e non esiste nessun metodo per lavorare a basso livello con l'OS (a parte, ripeto webgl che può essere cnosiderato un azzardo e lavora a basso livello con l'HW, ovvero gli shader).
    non+autenticato
  • - Scritto da: ...
    > La Java VM, ripeto per l'ultima volta, ha i
    > METODI, per fare quello che vuole su file system,
    > OS, ...., cioè ha i metodi per fare danni.

    Certo, l'assenza (per ora) dei "metodi per fare danni aiuta", ma si tratterà comunque di Virtual Machine nuove, tutte da testare e in cui inizialmente si penserà più alle performance che ad altro.

    Come dicono gli aglosassoni: "what could possibly go wrong?"

    > La VM che farà girare WebAssembly invece non
    > avrà tali metodi perché, indovina un po', avrà
    > solo i metodi che ha javascript OGGI

    Come Flash?
  • - Scritto da: bradipao

    > Come Flash?

    Flash ha metodi che non c'entrano un piffero con JS.
    E in più è fatta da Adobe, non ricordo un solo prodotto di Adobe che non sia bucato quotidianamente.
    non+autenticato
  • - Scritto da: ...
    > - Scritto da: bradipao

    > La Java VM, ripeto per l'ultima volta, ha i
    > METODI, per fare quello che vuole su file system,
    > OS, ...., cioè ha i metodi per fare
    > danni.

    Tu puoi ripeterlo quante volte vuoi, ma la JAVA VM quando lavora all'interno del browser non ha i METODI per accedere al file system della macchina guest.
    non+autenticato
  • - Scritto da: Inutile
    > - Scritto da: ...
    > > - Scritto da: bradipao
    >
    > > La Java VM, ripeto per l'ultima volta, ha i
    > > METODI, per fare quello che vuole su file
    > system,
    > > OS, ...., cioè ha i metodi per fare
    > > danni.
    >
    > Tu puoi ripeterlo quante volte vuoi, ma la JAVA
    > VM quando lavora all'interno del browser non ha i
    > METODI per accedere al file system della macchina
    > guest.
    Però ha i BUCHI va bene lo stesso?A bocca aperta
    non+autenticato
  • - Scritto da: Inutile

    > Tu puoi ripeterlo quante volte vuoi, ma la JAVA
    > VM quando lavora all'interno del browser non ha i
    > METODI per accedere al file system della macchina
    > guest.

    Gli hacker riescono a convincerla di stare girando nell'ambiente desktop e quindi possono usare i metodi lo stesso.
    E' l'idea che è sbagliata: prendono una roba assolutamente pericolosa e cercano di schermare la parti nocive.
    Al contrario con webassembly parti da una roba innocua e non c'è nulla da schermare.
    non+autenticato
CONTINUA A LEGGERE I COMMENTI
Successiva
(pagina 1/2 - 7 discussioni)