2015年1月23日

7歲女童自學網絡教學片 11分鐘破解Wi-Fi

據英國《每日郵報》1月21日報導,英國一名7歲女童在觀看網上的教程視頻後,用時不到11分鐘就成功破解了一個Wi-Fi熱點密碼。

據悉,該女童名叫貝特西•戴維斯(Betsy Davies),來自倫敦南部的達利奇。她觀看的演示視頻是在網絡安全專家的監督下發佈的,旨在強調網絡安全其實是非常脆弱的。

虛擬專用網絡(VPN)供應商想通徵集一個孩子來攻擊公共網絡的實驗來強調網絡安全隱患問題,而這名小女孩就被選中來完成這次實驗。

據瞭解,她先開始搜索,然後觀看了一則介紹如何破解無線網絡密碼的教程視頻,之後她建立了一個流氓接入點,即經常被攻擊者用來激活所謂的「中間人」,並開始竊聽和嗅探流量。

流氓接入點是一個無線訪問點,可以在公司不知情的情況下,安裝在公司的網絡裡。這些接入點覆蓋合法的網絡,允許黑客攻擊和攔截數據。這樣,該女孩就成為了無線網絡和電腦客戶端之間的合法有效「中間人」。

「實驗結果是令人擔憂的,但並非完全出人意料。」 負責這個實驗的獨立網絡安全專家馬庫斯•鄧普西(Marcus Dempsey)說,「它讓我知道一個門外漢獲得陌生人的信息是件多麼容易的事情。在現在的時代,孩子們往往比成年人更瞭解科技知識,所謂的黑客成了小孩 子的遊戲。這個實驗的目的就是讓青少年知道網絡安全隱患以及增強他們的道德意識。」

據專家預測,在2015年破解免費公共Wi-Fi會變得越來越容易。調查稱,黑客可以使一家咖啡館顧客的手機連上假的Wi-Fi,並且他們還全然不知。如果一部手機被偷,那麼在被攻擊電子郵箱賬戶後,小偷就可以盜取登錄信息,進而跟蹤失主動態,最終竊取網上銀行賬戶。

據調查,超過一半的英國人都受到過網絡侵害,約59%的人經常使用不安全的或開放的Wi-Fi熱點。

7岁女童自学网络教学片 11分钟破解Wi-Fi

2015年1月20日

富有爭議的 48 幀電影

作為中土傳奇的完結篇,電影《霍比特人 3:五軍之戰》目前全球票房已經高達7.8億美元,這部電影將於2015年1月23日在中國大陸上映。

我們都知道,電影被稱之為「24 幀的藝術」,但《霍比特人》系列卻採用了每秒48 幀的技術來拍攝和放映。48 幀版的《霍比特人》能帶給觀眾什麼?會有更多的電影採用每秒48 幀的技術來拍攝和放映嗎?

回答這兩個問題前,我們先說說電影中的幀率和刷新頻率。

電影中的幀率和刷新頻率

對電影有所瞭解的同學都知道,電影得以存在的基礎是人腦的視覺殘留,當一秒內閃現的靜幀畫面足夠多,人眼就會產生運動圖像的幻覺。幀率指的就是每秒出現了多少幀靜止的畫面,用單位 FPS(英文 Frames Per Second 的縮寫)來表示。

那麼每秒要出現多少幀靜止的畫面,人眼才會產生運動圖像流暢的幻覺,不會覺得畫面一卡一卡的?

知名影評人Magasa這樣解釋這個問題:人的雙眼及其數據傳輸系統每秒可以識別10-12幀畫面,大腦的視覺處理中心會將每幀畫面保留 1/15 秒。如果在前一幀畫面尚且保留的1/15秒內大腦又收到一幅新的畫面,那麼就產生了畫面在連續運動的感覺。放映幀率達到了 16-24 FPS,人眼看到的基本是流暢的畫面。

另类的《霍比特人》:富有争议的48帧电影

幀率達到16-24FPS畫面已經可以流暢播放,但由於人眼對連續畫面中細微的變化是非常敏感的,所以畫面上亮度的變化會被人眼察覺到,產生閃爍感。亮度變化越大,閃爍越明顯。

實驗室研究證明,人眼能夠區分多達每秒48次閃光,如果繼續提高閃光頻率,亮度的變化人眼基本無法察覺。我們用 Hz(赫茲)這個單位來表示每秒週期性變動重複次數的計量。人造燈的閃爍頻率一般要高於48Hz,譬如50Hz交流電下運作的檯燈閃爍,人眼基本上是無法 察覺的。

這個研究結果也用在瞭解決人眼看連續畫面會產生閃爍感的問題上。舉個例子:電影現行放映幀率的標準是24 FPS,那麼如果每格畫面都閃現了2次,一秒內就總共閃現了48次畫面,,即刷新頻率為48 Hz,已經達到了消除閃爍的底線。

而我們經常看到電視和顯示器上有60Hz、120Hz或240Hz 的標識,指的是該硬件設備每秒最多能閃現多少次畫面。

電影為什麼是「24幀的藝術」?

上面說了,現在電影放映採用的幀率標準是24 FPS,可為什麼是24這個數字?電影24 FPS的放映標準其實是由歷史因素決定的,這是一個最經濟的方式,而不一定是最適合人眼視覺的方式。

在默片時代,拍攝和放映都沒有一個固定的幀率標準,從12格、16格、18格到24格都有。後來1926年有聲電影製作技術成熟,人們開始把音頻信息印在膠片上製作有聲電影,而放映幀率上的不同可能會導致膠片上音頻信息丟失,電影製片公司不得不規定一個放映的幀率標準。

另类的《霍比特人》:富有争议的48帧电影

48 幀版的《霍比特人》為什麼「不像電影」?

而之所以選擇24 FPS作為電影放映的標準幀率,僅僅是因為在35 mm膠捲上支持播放音頻的最低幀率就是 24 FPS。電影製片公司們為了節省經費,乾脆把24 FPS規定為電影放映的幀率標準。(下圖右邊的波形圖就是打印在膠捲上的音頻信息)

另类的《霍比特人》:富有争议的48帧电影

然而,《霍比特人》系列的導演彼得·傑克遜卻認為24 FPS的拍攝和放映幀率並不能帶給觀眾最好的觀影體驗。2011 年他曾在 Facebook 上說道:90多年來,我們一直採用24 FPS來拍攝和放映電影,不是因為它最好,而是因為它最便宜!

採用48 FPS拍攝和放映的好處是,看起來畫面上的速度還是正常的,但畫面的流暢度和動作清晰度都大大增強了。你看24 FPS的電影也許覺得還行,但其實這樣的影片中每一幀都會有模糊,尤其是在快速運動的鏡頭中。如果電影鏡頭快速搖移,圖像就會有抖動、頓挫或者閃爍。

以48 FPS的幀率來拍攝和放映電影會非常有助於擺脫這些問題。它會讓電影看起來更逼真,觀看起來也更輕鬆,尤其是在3D電影方面。

使用48 FPS拍攝的《霍比特人1:意外之旅》2011年上映了24幀和48幀不同的版本。而因為放映技術和成本的關係,全球只有1000塊螢幕進行了48幀版本的放映,而且市場反應並不理想。看了48幀版的電影後,部分觀眾抱怨道:太沒有電影感了。

這是因為,讓運動圖像看起來真實還有一個重要的因素是運動模糊。在真實的世界,當人們在看一個快速移動的事物或者眼睛快速轉動時,我們看到的事物是 模糊不清的。而正如彼得·傑克遜自己所說,24 FPS拍攝和放映的電影會有模糊、抖動、頓挫和頻閃這些問題,所以看起來更加接近現實的觀感。

我們可以通過在電腦上播放 24 FPS 的影片來感知:通過軟件逐幀查看影片中的運動物體,可以發現運動物體是虛的。(如果希望進一步瞭解不同幀率之間的區別,可科學訪問 Frames Per Second。)

而48幀版本《霍比特人1:意外之旅》畫面更加流暢,運動物體更加清晰,甚至可能清晰得有點過分!觀眾這麼多年來看的都是 24 FPS 放映的電影,已經習慣了模糊、抖動、頓挫和閃爍這些所謂的「電影感」,突然轉換到流暢度和動作清晰度大大增強的畫面,自然難以適應。

面對各種的壓力,彼得·傑克遜回應道:「沒有人會停下前進的腳步,科技也將持續經歷變革。」《霍比特人》系列的後兩部同樣採用了 48 FPS 的拍攝技術。

發展高幀率電影的意義

48 FPS 拍攝和放映的《霍比特人》系列背後,其實是動態圖像製作向高幀率(High Frame Rate, 一般簡稱 HFR)發展的趨勢。微軟高級科技小組的 Simon Cooke 認為,幀率毫無疑問是越高越好。他的理由是:

即使聚焦在一個固定的點上,人類的眼睛也會像布丁一樣慣性地輕微抖動,平均頻率大約是84 Hz。在這些抖動的影響下,人眼視網膜裡的視錐細胞會對同一個物體形成兩個輕微不重合的圖像,以幫助大腦更好地識別運動物體的邊緣。

由於現實環境中有很多干擾信息,人眼會每秒進行2次信息採樣,每次只傳輸很少的有效信息給大腦。以48 FPS放映的電影,經過人眼每秒2次信息採樣後,超過了人眼輕動的平均頻率84Hz。觀眾得到了兩倍於預期的信息,能更好地識別運動物體的邊緣。

而 24 FPS 放映標準的電影在人眼2次信息採樣後,頻率也只是48Hz,遠遠達不到人眼輕動的平均頻率。雖然已經能流暢播放,但觀眾在觀看電影中的運動物體或場景時會有模糊感。

Cooke 從人眼運動規律的角度解釋了,高幀率放映的電影能讓觀眾更好地識別運動物體的邊緣。而從電影產業的角度來看,推廣高幀率拍攝和放映電影同樣具有重要意義。

Extremetech 的 David Cardinal 認為高幀率能提高家庭影院時代實體院線的競爭力:現今越來越多的家庭已經配置了家庭影院,而且你可以很容易地在網上看到自己想看的電影。這種情況對傳統電 影行業是一個很大的衝擊。各大院線需要找到一個突破口,才能在這種窘境中涅槃重生。3D和IMAX電影給大家提供了一個走進電影院觀影的理由。

而48 FPS的拍攝和放映幀率不僅能讓3D電影亮度更高(亮度是 3D 電影觀影體驗的一個重要因素),還因為其運動清晰度大大降低了3D電影帶給觀眾的眩暈感,提供一種沉浸式的觀影體驗。

著名攝影機廠商Red則解釋了高幀率對IMAX放映的好處:24 FPS放映的情況下,IMAX 50英呎大螢幕上一個快速運動的物體會出現2 英呎左右的變形,而在高幀率放映的情況下,變形的程度就會小很多。

這麼看來,無論從人眼運動規律的角度來考慮,還是為電影產業的未來著想,發展高幀率電影都是利大於弊。但正如上面提到,部分觀眾現階段對高幀率電影並不買賬,一些電影原教旨主義者更是直指高幀率電影「過分渲染而使得畫面過假、人造感十足」。

除此之外,高幀率電影無論是拍攝還是放映,都增大了製作成本。製作人員要處理兩倍於 24 FPS 拍攝電影的素材,而影院則要花費額外的預算來購買支持48 FPS放映的電影放映機和媒體處理單元。以上這些都成為了高幀率電影發展的負面因素。

高幀率在民間的流行

高幀率在電影行業發展的並不順利,但在民間卻掀起了波瀾。

許多消費級影像設備廠商和視頻網站很早就開始把注意力放在了高幀率的拍攝和放映上。佳能生產的消費級單反和攝影機基本都配備了60FPS或 50FPS的可選拍攝幀率,「著名相機廠商」蘋果公司從iPhone 5S開始也具備了用120FPS 拍攝以製作慢動作鏡頭的功能。GoPro Hero 3更是在1280 x 720的分辨率下提供了高達120 FPS的拍攝幀速率,進一步推廣了高幀率拍攝在民間的普及。

而在高幀率放映方面,繼提供4K播放功能後,YouTube於上一年 10 月份也開啟 48 FPS 與 60 FPS 影片播放功能,強化了對高幀率視頻的支持。

48幀版的《霍比特人》能帶給觀眾更加流暢和清晰的畫面。尤其在看 3D 和 IMAX 版的時候,高幀率能帶給觀眾更好的視覺效果。但由於我們長久以來看的都是 24 FPS 放映的電影,固有的觀影經驗和美學判斷讓部分觀眾還適應不了48幀版電影帶來的視覺效果。

詹姆斯 卡梅隆正在計劃用48 FPS甚至更快的幀率去拍攝和放映《阿凡達》系列的第2部,但並不是每個導演都像彼得·傑克遜和詹姆斯·卡梅隆一樣是個技術狂,加之成本上的考慮,暫時還沒有看到太多的電影有用48 FPS的技術來拍攝和放映的計劃。

最後,由於各種原因,大陸主流院線一直沒有引進48幀版的《霍比特人》系列,所以想要體驗一下的同學唯有另想辦法了。

2015年1月19日

網頁打開時都發生了什麼?

在瀏覽器裡輸入網址或者點擊鏈接,網頁打開了……這是我們上網時再普通不過的一幕,但是如此簡單的表象背後,卻隱藏著無比複雜的技術流程。想漲漲知識嗎?往下看吧。

一個HTTP請求的過程

為了簡化我們先從一個HTTP請求開始,簡要介紹一下一個HTTP求情的網絡傳輸過程,也就是所謂的「從輸入URL到頁面下載完的過程中都發生了什麼事情」。

● DNS Lookup 先獲得URL對應的IP地址

● Socket Connect 瀏覽器和服務器建立TCP連接

● Send Request 發送HTTP請求

● Content Download 服務器發送響應

如果下到物理層去講就有點耍流氓了。如果這些你還認可這幾個步驟的話,我們就來講一下這裡面存在的性能問題。

● 如果你對DNS的查詢還有印象的話現在反思一下,DNS Lookup就是為了獲取一串IP地址要和無數個DNS服務器進行通信,這要消耗多少時間?別忘了,你查詢完了的時候,你還沒和那邊的服務器通信呢。

TCP連接要三次握手。如果服務器很遠的話這三次握手要花多少時間?別忘了建立連接之後你還沒發請求呢。(通常到這裡0.5秒就出去了)

● 發送HTTP請求的時候你要知道一點,就是我們的網絡帶寬上行和下行通常是不一樣的,通常上行的帶寬會小一些,一個的話還好,但是現在的網頁通常都會後續請求很多資源,帶寬小的時候上行擁塞怎麼辦?別忘了已經到第三步了,服務器還沒給你發響應呢,現在你的瀏覽器還什麼都畫不出來。

● 終於到了服務器發響應了,不巧你訪問的這個服務器比較忙,好幾萬個人都要這個資源,服務器的上行帶寬也是有限的,怎麼辦?

我覺得我出了幾道還不錯的面試題。順便提一下,前兩步的延遲和網絡帶寬的影響不大;後兩步加帶寬是能一定程度緩解,不過你要有錢,而且很貴。

雖說博主做過WebKit本地渲染的優化,但是深知網頁加載的主要時間還是浪費在網絡通信上,所以在這些步驟上的優化會比你在瀏覽器內核的優化省力且效果明顯。

網絡方面的主要優化手段,總結一下不外乎緩存、預取、壓縮、並行。以後如果再有面試問性能優化之類的問題,大家都可以照著這個思路去考慮。

下面就分階段介紹一下現有的優化手段。

DNS優化

對於DNS優化,緩存無疑是最簡單粗暴且效果明顯的了。說到緩存就一定要提到緩存層級:

● 瀏覽器DNS緩存

● 系統DNS緩存

● Hosts文件

● 各個DNS服務器上的緩存

當然DNS緩存失效期通常都比較短,很多情況下都要再去查找。為了降低用戶體驗到的延遲(注意這裡不是網絡延時),預取是一個不錯的方法。

比如說你敲網址的時候還沒有敲完,但是瀏覽器根據你的歷史發現你很有可能去訪問哪個網站,就提前給你做DNS預取了,比如你打了一個「w」的時候,chrome已經幫你去找weibo.com的IP地址了。chrome用戶看一下chrome://predictors 你就知道了。

此外瀏覽器還會記錄你過去的歷史,知道每個域名下通常還會有哪些其他的鏈接,以便建立起網站的拓撲結構。當你訪問這個域名下的網站,它就會預先對其他鏈接的域名進行DNS解析。

TCP優化

看到前面的DNS的具體優化這麼繁雜,知道這簡單的一步沒那麼簡單了吧。

結果到TCP這一步優化反而簡單了,因為剛才DNS已經把IP都預先弄到了,那麼我們順著剛才的步驟再建立連接就好了。

所以在你敲第一個字母的時候,DNS解析完了就去建立連接了,這時候你可能網址還沒敲完。當你剛訪問一個網站的時候,瀏覽器刷刷刷的幫你把到別的服務器的TCP連接給你建好。

HTTP傳輸優化

寫到這裡可能有人會想,既然已經把TCP連接建立好了,那我乾脆預取更進一步,把所有的鏈接內容直接預取下來不就好了,這樣我網址還沒敲完網頁就已經加載完成了。

這個想法是好的,但現實卻是殘酷的,因為要記住我們的帶寬是有限的,DNS和TCP連接量級都比較輕,對網絡帶寬不會佔據太多,但是HTTP傳輸就不一樣了。如果你所有鏈接都去預取的話,你的帶寬很快就被佔滿了,這樣你正常的請求無法得到滿足,性能反而會嚴重下降。

緩存就又出現了,提緩存必提層次結構。

● PageCache 這個是最快的了,直接在內存中緩存了現有網頁的DOM結構和渲染結果,這就是你為什麼在點前進後退的時候會這麼快。

● HTTP Cache 文件級別的Cache存在本地的文件系統上按照RFC2616實現。

● 代理Cache 如果是通過代理服務器上網的話,代理服務器通常也會按照緩存標準

● CDN 一個地理上離你很近的內容服務器,比如說你在北京請求杭州淘寶的一個圖片,結果在北京的一個CDN上有這個圖片,那麼就不用去杭州了。

● DMOC(distributed memory object caching system)CDN主要存放的是靜態數據,但是網頁中通常有很多動態的數據需要查數據庫,流量多了壓力就會很大,通常服務器外圍還會有一層內存緩存服務 器,專門緩存這些數據庫中的對象,據《淘寶技術這10年》稱可以減少99.5%的數據庫訪問。

● Server 其實真正落在服務器上的請求已經不多了。

大家看到這裡有沒有想到能在什麼地方再加一層緩存呢?其實可以在2和3之間加,也就是在路由器上加緩存。

小米路由器和搜狗合作的預取引擎其實就相當於在路由器上加一層緩存款順便智能預取一下。為什麼在這裡另起一段專門談小米呢?難不成是小米的水軍?才不是呢,是因為博主看到這個消息的時候心都涼了,和博主的畢設撞車了有木有。

去年在360剛出隨身Wi-Fi的時候博主想到了這麼個點子,還想著把這個東西做出來之後用這個創業和360談合作,結果最近剛做完,論文也投出去 了,幻想著開啟人生巔峰,顛覆行業,結果就發現小米和搜狗出了這麼個一樣的東西還都商業化了。說好的人生巔峰就這樣沒有了,早知道去年就先申請個專利了。

另一個HTTP常用的優化就是壓縮了,網絡傳輸時間=消息大小/網速。既然網速比較貴那麼就壓縮一下吧,大部分服務器都會對HTTP消息進行gzip壓縮。可以在Http Header中看到,具體的就不細說了。

未來協議:SPDY

上面的都是傳統做法,下面講一個未來的技術。由於HTTP協議是上個世紀制定的協議了,已經不能很好地適應現在Web的發展,所以Google提出了SPDY協議,目前是指定中的HTTP2.0標準的一個底版。

SPDY主要有下面的特點:

● 一個TCP連接上並行多個HTTP連接,減少連接的建立時間。

● 請求優先級(目前還沒看到具體實現)。

● HTTP頭部壓縮,上文提到的HTTP壓縮是對HTTP body的壓縮,並沒有對頭部壓縮。對於小的HTTP消息,頭部的比重還是很大的,而現在的web中存在大量小消息。

● Server push/hint 服務器主動推送對象(可以想像成服務器幫客戶端預取)。

業界目前對SPDY是有贊有彈,博主也持謹慎的態度,主要在1和4上,4其實和之前提到的HTTP直接預取的矛盾點一樣,萬一推送的不需要又佔據了帶寬怎麼辦?hint到底該如何實現都有困難。

第一條潛在的風險就是TCP連接中途斷開,那麼所有的連接就全部停掉了,PC互聯網這種情況可能會少一些,但是移動互聯網中TCP連接斷開的情況還是比較常見的。

不過作為一個未來的技術,還是有必要關注一下。

网页打开时都发生了什么?我被吓着了

http://news.mydrivers.com/1/372/372665.htm

2015年1月12日

Mac OS X再曝隱私漏洞

儘管很多人都相信Mac OS比微軟Windows更安全,但蘋果的操作系統也絕非萬無一失。

MacX網站報導,近日國外媒體發現蘋果Mac OS X系統Spotlight搜索的隱私漏洞,這可能導致隱私信息洩露,比如IP地址、電子郵件地址等。Spotlight的隱私漏洞影響所有在郵件應用中關閉「郵件中加載服務器端內容」設置的Mac OS X用戶。這項設置組織服務器端內容,比如圖片等加載。攻擊者可以利用郵件中的圖片收集用戶隱私信息。

Mac OS X郵件用戶使用Mac OS X Spotlight 搜索功能時,會在搜索結果中顯示郵件。Spotlight會忽略郵件應用中的遠程內容禁止加載,並將遠程郵件文件作為搜索過程加載。當Spotlight 加載完可以追蹤的圖片內容後,攻擊者可以獲得用戶的IP地址,Mac OS X版本、瀏覽器信息以及Quick Look版本。

眼下唯一阻止這種信息洩露的方法就是禁止Spotlight搜索郵件內容。我們只需進入系統偏好設置,找到Spotlight搜索選項,並取消勾選郵件和信息選項。

目前,蘋果還沒有對Spotlight會暴露隱私的漏洞做出回應。

Mac OS X再曝隐私漏洞

2015年1月7日

為什麼天冷會常感冒?

冬天一定有很多人受到感冒的困擾。美國耶魯大學的一項最新研究指出,比起人體正常的核心體溫,鼻腔裡的寒冷溫度條件更利於那些引起普通感冒的病毒進行複製。這一發現或許可以解釋一個流行但存在爭議的觀念:天氣冷的時候更容易感冒。

鼻病毒,是引起普通感冒的最常見病毒。它們在較為涼爽的鼻腔環境中比在溫暖的肺部更容易複製。

然而,耶魯大學免疫生物學教授、本課題主要研究者之一岩崎明子 (Akiko Iwasaki)指出,之前的研究主要是針對體溫是如何對病毒產生影響的,而不是免疫系統。

為了探究溫度與免疫應答之間的關係,岩崎明子和一個由艾倫-福克斯曼(Ellen Foxman)帶領的跨學科的研究團隊對小鼠氣道上皮細胞展開了研究。他們對比了細胞在不同溫度下(37攝氏度或者核心體溫和較低的33攝氏度)培養時鼻病毒的免疫反應。

岩崎說:「我們發現與核心體溫條件相比,在低於體溫的條件下細胞對鼻病毒的固有免疫應答出現了缺陷。

這項研究還提示,溫度變化影響的是免疫應答而不是病毒本身

。研究人員對免疫系統感受器基因缺陷的小鼠的氣道細胞內的病毒複製進行了觀察,該感受器在抗病毒反應中負責監測病毒的出現。

他們發現當出現這樣的免疫缺陷時,病毒可以在較高溫度條件下進行複製。岩崎解釋說:「這證明除了病毒本身,宿主的反應也是影響病毒複製的主要因素。」

雖然該研究的實驗對象是小鼠,但它為人類提供了有益的線索,要知道人類之中有約20%的人鼻腔裡一年到頭長期存在著鼻病毒。

岩崎說道:「一般來說,溫度越低,機體對病毒的固有免疫應答作用越低。」

換言之,這一研究結果印證了那句老話,天冷要注意保暖,甚至要武裝到鼻子,才能避免感冒。

耶魯大學的研究人員也希望這一研究可以有助於揭示體溫是如何對其他疾病的免疫應答產生影響的,比如兒童哮喘。

福克斯曼說,普通感冒對許多人來說只是件無關痛癢的煩心事,而患有哮喘的兒童卻可出現嚴重的呼吸障礙。接下來研究人員可能會針對與鼻病毒誘導的哮喘有關的免疫應答進行探索。

为什么天冷爱感冒?原来如此啊
引起普通感冒常見的鼻病毒(左)和引起流感常見的A型流感病毒(右)