SIMD in JavaScript

SIMD in JavaScript」是 IntelMozilla 以及 Google 的計畫,希望在 EMCAScript 裡面增加規格,讓 EMCAScript 可以利用 CPU 的 SIMD 能力加速計算。

另外讓我想到的是 asm.js 也是用類似的技術想法 (做不同的方向),而且已經被 Firefox 22+ 以及 Google Chrome 28+ 支援了,效果相當好...

之後大家想要在 browser 上面做什麼事情,應該都會用類似的技術來做吧 (先檢測系統有沒有原生支援,沒有原生支援時用 plain javascript 模擬)。

Google 在 Chrome 內的 PGP:End-to-End

Google 前天發表了 Chrome 裡面的 PGP 實做套件:「Making end-to-end encryption easier to use」。

目前只放出了 source code,並沒有在 Chrome Web Store 上架,這點在網站上就直接說明了,他們目前認為目前沒有被足夠的人檢查過,所以請不要傳到 Chrome Web Store 上:

Since this is source, I could just build this and submit it to the Chrome Web Store

Please don’t do this.

The End-To-End team takes its responsibility to provide solid crypto very seriously, and we don’t want at-risk groups that may not be technically sophisticated — journalists, human-rights workers, et al — to rely on End-To-End until we feel it’s ready. Prematurely making End-To-End available could have very serious real world ramifications.

One of the reasons we are doing this source code release is precisely so that the community as a whole can help us make sure that we haven’t overlooked anything in our implementation of End-To-End.

Once we feel that End-To-End is ready, we will release it via the Chrome Web Store ourselves.

而為了鼓勵大家去找問題,雖然這是很新的軟體,但已經將 End-to-End 直接納入 Vulnerability Reward Program 裡:

And we mean it: our Vulnerability Reward Program offers financial awards for finding security bugs in Google code, including End-to-End.

不過傳統的方法還是會更可靠一些,畢竟 JavaScript 沒辦法很仔細控制記憶體內容,在放掉的記憶體空間內可能會包含某些未加密的資訊,甚至是 private key 的資訊。

用統計方法反推 JavaScript 壓縮程式的變數名稱

JavaScript 在正式提供服務時一般都會使用「YUI Compressor」、「UglifyJS」或是「Closure Compiler」壓縮後再拿到正式環境上使用,最主要的目的是為了降低網路傳輸量。

這些工具其中一個特點是,local function 與 local variable 會被較短的名字取代掉,這可以讓想要反組譯的人比較麻煩。

不過今天看到的這個工具可以解決「困擾」:「JSNice」。(在 Slashdot 上的「Machine Learning Used For JavaScript Code De-obfuscation」這篇看到的)

用統計方法去「猜測」這些 local function 與 local variable 應該叫什麼名字,讓人比較好理解。官方對準確度的說法是超過 60%:

In our experiments, we found JSNice to be effective for deobfuscating minified code. On average, more than 60% of the identifiers are recovered to the same name as before the minification process.

接下來會想辦法提供 UI 讓使用者可以選擇另外的名字:

Further, as JSNice computes multiple ranked suggestions, we provide a UI to navigate through these suggestions and select alternative identifier names.

先記錄起來,這網站很有趣,之後要 trace 別人的程式碼應該常常會用到 XDDD

Chromium 的 PDFium

PDFium 是 open source PDF rendering engine,功能上像是 Mozilla 所研發的 PDF.js,不過是以 C++ 寫的原生套件。

看起來目標是要進 ChromeChromium,以取代現有 Google Chrome 裡所含的非 open source 版本。

不過 Chromium 目前應該已經有 PDF Viewer 可以用?(利用 PDF.js 開發出的套件)

Google Searchbot 將開始有能力解讀 JavaScript...

GoogleOfficial Google Webmaster Central Blog 上正式向全世界公告他們的 Searchbot 將會解讀 JavaScript:「Understanding web pages better」。

也就是說,再這次改版後,就算你的頁面全部用 JavaScript 產生,Google 也有能力解讀出來。這顛覆了以前學到的觀念...

其他家 (DuckDuckGo?) 會支援嗎?不知道會不會跳下去做...

WebScaleSQL

WebScaleSQLFacebookGoogleLinkedIn 以及 Twitter 四家公司對 MySQL 5.6 的 fork。

Percona 的人也針對 WebScaleSQL 與 Percona Server 5.6 的比較,寫了一篇技術分析的文章:「A technical WebScaleSQL review and comparison with Percona Server」。

Percona 那篇分析文章提到不少改善屬於比較激進類型,對於 Percona Server 以及 MySQL 官方版本的定位並不適合。

而在開發上,語法也換到 C99C++11,也就是打算拋棄很舊的系統 (沒有 C99/C++11 compiler)。不過就這點來說,使得這上面的 patch 要 backport 回 MySQL 又增加了一些狀況...

WebScaleSQL 的出現代表 MySQL fork 又多一家,而且因為背後是這四家公司搞出來的,看起來聲勢會很浩大。進入「合久必分」的階段...

EFF 的 Privacy Badger

EFF 推出新的延伸套件 (有 Firefox 與 Google Chrome 版),透過演算法阻擋嘗試追蹤你的單位:「Privacy Badger」。

在官網上有比較技術面的說明:

At a more technical level, Privacy Badger keeps note of the "third party" domains that embed images, scripts and advertising in the pages you visit. If a third party server appears to be tracking you without permission, by using uniquely identifying cookies to collect a record of the pages you visit across multiple sites, Privacy Badger will automatically disallow content from that third party tracker. In some cases a third-party domain provides some important aspect of a page's functionality, such as embedded maps, images, or fonts. In those cases Privacy Badger will allow connections to the third party but will screen out its tracking cookies.

技術上的作法是分析 third party domain 的行為,用演算法阻擋可能的追蹤。與 Ghostery 這類工具使用人力建立清單的方法不太一樣。

裝起來跑看看,感覺還蠻有趣的...

Google 以 Google+ 為中心的思想

兩則新聞,第一則是 Vic Gundotra (Google+ 的頭) 離開 Google:「Vic Gundotra, the head of Google+, leaves Google」。

第二則則是本來集中在 Google+ 的團隊將會放到其他團隊:「Report: Google to end forced G+ integration, drastically cut division resources」。

Twitter 上馬上就有人想到 Google Reader 這個犧牲品... (而且大家都對 Feedly 做的很爛但沒什麼可用的替代品感到無奈)

嗯哼...

ChaCha20-Poly1305 在 Android 上帶來的效能

Google 主推的 ChaCha20-Poly1305Android 上的 Chrome 可以看出顯著的效能差異:「Speeding up and strengthening HTTPS connections for Chrome on Android」。

在加密速度上與 AES-GCM 的差異:

AES-GCM 畢竟是標靶,被打爆本來就是預期中的事情,在 Google 大力推動下,應該是還蠻有機會成為主流...

不過隔壁棚好像還是沒什麼進展,不知道要等到何時:「Bug 917571 - Support ChaCha20+Poly1305 cipher suites」。