压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

為什么Google急著殺死加密算法SHA-1

  Google官方博客宣布,將在Chrome瀏覽器中逐漸降低SHA-1證書的安全指示。但有意思的是Google.com目前使用的也是SHA-1簽名的證書,但證書將在3個月內過期,Google將從2015年起使用SHA-2簽名的證書。SHA-1算法目前尚未發現嚴重的弱點,但偽造證書所需費用正越來越低。

  概述

  大部分安全的網站正在使用一個不安全的算法,Google剛剛宣稱這將是一個長周期的緊急情況。

  大約90%采用SSL加密為什么Google急著殺死加密算法SHA-1的網站使用SHA-1算法來防止自己的身份被冒充。當你去訪問網址為什么Google急著殺死加密算法SHA-1時,保證了你正在訪問的確實是正品Facebook,而不是把自己的密碼發送給攻擊者。然而不幸的是,SHA-1算法是非常脆弱的,長期以來都是如此。該算法的安全性逐年降低,卻仍然被廣泛的應用在互聯網上。它的替代者SHA-2足夠堅固,理應被廣泛支持。

  最近谷歌聲明如果你在使用Chrome瀏覽器,你將會注意到瀏覽器對大量安全的網站的警告會不斷發生變化。

  首批警告會在圣誕節之前出現,并且在接下來6個月內變得越來越嚴格。最終,甚至SHA-1證書有效期至2016的站點也會被給予黃色警告。

  通過推出一系列警告,谷歌這正在宣布一個長周期的緊急情況,并督促人們在情況惡化之前更新他們的網站。這是件好事情,因為SHA-1是時候該退出歷史舞臺了,而且人們沒有足夠重視SHA-1的潛在風險。

  如果你擁有一個使用SSL的網站,你可以使用我創建的SHA-1測試小工具來測試你的網站,它會告訴你應該怎么做。即使你沒有網站,我仍然推薦你去讀一讀。在接下來的博文,我會介紹網站上SSL和SHA-1是如何一起工作的,為什么如谷歌說的那么緊急,和瀏覽器正在采取的措施。

  同樣重要的是,安全社區需要讓證書更換過程少些痛苦和麻煩,因為網站的安全升級不必那么緊急和匆忙。

  科普:安全散列算法與SHA-1

  安全散列算法(英語:Secure Hash Algorithm)是一種能計算出一個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不同,它們對應到不同字符串的機率很高;而SHA是FIPS所認證的五種安全散列算法。這些算法之所以稱作“安全”是基于以下兩點(根據官方標準的描述):

  1、由消息摘要反推原輸入消息,從計算理論上來說是很困難的。

  2、想要找到兩組不同的消息對應到相同的消息摘要,從計算理論上來說也是很困難的。任何對輸入消息的變動,都有很高的機率導致其產生的消息摘要迥異。

  SHA (Secure Hash Algorithm,譯作安全散列算法) 是美國國家安全局 (NSA) 設計,美國國家標準與技術研究院(NIST) 發布的一系列密碼散列函數。

  SHA-1簡介

  要理解替換SHA-1為什么這么重要,首先把自己站在一個瀏覽器的角度上。

  當你訪問一個使用為什么Google急著殺死加密算法SHA-1的網站,該網站向瀏覽器出示一個文件(類似于我們的身份證)即一個SSL證書。這個證書用來做兩件事:加密訪問網站的連接,并驗證網站真實身份。

  任何證書都可以用來加密連接。但是為了驗證你訪問的是真實的Facebook(不是山寨的),你的瀏覽器必須通過某種方式決證書是否可信的,然后再向你顯示一個綠色的小鎖。

  為了完成驗證工作,你的瀏覽器查明網站的證書是否由權威機構(證書簽發機構,簡稱“CA”)頒發的。CA向網站頒發證書文件通常是收費的。你的瀏覽器信任來自超過56個CA(根CA)創建和擔保的證書,如Verisign、GoDaddy、美國國防部等,還有經由56個根CA的授權的成千上萬的中間CA。如你所料,這是一個有很大缺陷的系統,但確實是實際情況。

  此網站的CA在當時是Comodo,通過Namecheap購買的。當網站的SSL證書宣稱是自己由某個CA頒發給該網站時,你的瀏覽器需要進行另一項關鍵的測試:此證書本身能夠證明這個事實嗎?

  普遍情況下,互聯網通過數學來證明事實。當一個證書被頒發時,CA通過使用一個私鑰簽名該證書提供了身份證明。從某種程度上說,只有真正的CA能夠完成這個簽名(除非私鑰丟了,哈哈,我經常丟鑰匙),而瀏覽器能夠驗證該簽名。

  但是CA實際上不簽名原始的證書:它首先運行“單向散列”算法(如MD5、SHA-1、SHA-256)把證書壓縮成一個唯一的字段。

  單向哈希算法能夠壓縮信息:例如,把《戰爭與和平》3.2MB版本通過SHA-1運算,你將得到:

  類似SHA-1,單向哈希算法被用來產生唯一的不可逆的數據塊(原文為slug,彈頭的意思)。你不能夠再從aeb2c3a70c85d44947c1b92b448655273ce22bb反推出《戰爭與和平》的內容(即哈希運算不可逆)。同樣重要的是,沒有其他文件能夠產生相同的數據塊(即指紋具有唯一性)。甚至內容修改一小部分也會導致SHA-1運算的結果發生很大的變化,難以尋找前后的關聯性。

  如果兩個文件經過同一個哈希運算生成相同的值,這種現象被稱作是一個“碰撞”。碰撞具有理論上的可能性,但概率過低而被認為是在現實中是不可能存在的。

  當瀏覽器遇到一個證書時,它會計算證書信息的SHA-1值,然后與被證書用作身份證明的原始SHA-1值作比較。因為SHA-1結果的唯一性,如果兩個值是相同的,瀏覽器就確信提供的證書和CA簽發的證書是同一個,沒有經過篡改。

  如果你設計了一個證書,能夠與目標站點的證書發生碰撞,然后再誘騙CA給你頒發此證書。最終,你就可以使用此證書來冒充目標站點,即使瀏覽器也無法區分真偽。

  具體詳情:如果你想要了解簽名算法和SSL證書的具體細節,喬舒亞·戴維斯有一個極其詳盡的解釋:

  在2005年,密碼學家證明SHA-1的破解速度比預期提高了2000倍。但是破解仍然是極其困難和昂貴的。但是隨著計算機變得越來越快和越來越廉價,在互聯網上停止使用SHA-1算法只是時間的問題。

  后來,互聯網繼續使用SHA-1。在2012年,Jesse Walker寫了一份評估報告,關于偽造一個SHA-1證書所花費的成本。該評估參照亞馬遜Web服務的價格和摩爾定律。

  當時沃克預計一個SHA-1的碰撞在2012年需花費2,000,000美元,在2015年需花費700,000美元,在2018年需花費173,000美元,在2021年需花費43,000美元。基于這些數字,施奈爾暗示到2018年就會有犯罪集團能夠偽造證書,到2021年就會有科研院校具備這種能力。

  在有關更替SHA-1的規劃和爭論中,沃克的評估和施奈爾的推斷被廣泛的引用。一個由主流CA組成的組織:CA安全理事會(CA Security Council),近來使用沃克和施奈爾的結論來抱怨谷歌的時間表。CA把評估結果當作反駁的利器,認為 “等到2018年這種攻擊才會實際出現”。

  我發現CA安全理事會所采取的立場簡直像卡通片一樣幼稚。他們只像在掩飾問題,因為他們深知加快的更換過程給他們帶來很大的不便(直白點就是時間和金錢)。

  沃克和施奈爾的評估是在斯諾登事件之前,在人們弄明白原來政府也是敵人之前。基于他們的評估,在2014年偽造一個證書的成本要少于2000.000美元,許多一線的明星大腕都能支付得起這個數目。

  我們怎么確信他們會這樣做呢?因為他們已經做了。(反正給我這么多錢,我不是干這種傻事的)

  在2012年研究人員發現了大名鼎鼎的火焰病毒。華盛頓郵報報道這是美國和以色列的合作,用于從伊朗搜集情報,阻撓伊朗核武器計劃。一份泄露的NSA文件似乎證實了這一觀點。火焰病毒依賴于一個偽造的SSL證書,實現了一個MD5(SHA-1的前任)的碰撞。令人不安的是,它使用了一個在當時鮮為人知的方法,盡管人們對MD5已經做了多年的研究。此事件給我們的提示是,我們應該假設最危險的漏洞是未知的。

  關于MD5,有一個有趣的故事。因為像SHA-1一樣,很早之前人們就發現MD5存在脆弱性, 而且和SHA-1一樣,從互聯網上移除MD5所花費的時間令人吃驚。

  在1995年,MD5首次被披露存在理論上的脆弱性,并隨著時間推移變得越來越脆弱,但直到2008年,MD5仍被一些CA所使用。

  雖然這是一個很危急的情況,可是一直到2011年Chrome仍然不能取消對MD5的支持-距離首次證明MD5不可信的時間已過去16年了。

  在互聯網上更換簽名算法存在一個特有的挑戰:只要瀏覽器支持SHA-1,任何人的證書都可能被偽造。你可以使用一個SHA-1簽名的偽造證書來冒充一個SHA-2簽名的證書,因為瀏覽器只會查看SHA-1簽名的偽造證書,并不知道存在一個“真正的”證書或證書應該使用SHA-2簽名。(簡言之,為了冒充目標站點的證書,偽造證書的信息和目標站點的證書一模一樣,只是簽名算法改為SHA-1)換句話說,防止利用SHA-1偽造證書的唯一方式就是瀏覽器取消對SHA-1的支持。

  各瀏覽器的響應

  微軟是第一個宣布了SHA-1棄用計劃,在2016年之后Windows和IE將不再信任SHA-1證書。Mozilla也做了同樣的決定。雖然微軟和Mozilla向用戶昭示了問題的存在性,但都沒表明將要改變用戶接口。

  另一方面,最近谷歌丟出一個爆炸性新聞,宣布因為SHA-1太脆弱了,Chrome瀏覽器會向用戶顯示警告:

  “我們計劃通過Chrome中Https安全指示器來強調SHA-1不能滿足當初的設計要求的這一事實。我們正在采取一種可量化的方法,逐漸下調安全指標器并逐漸推進時間表”

  在兩周前,谷歌的Ryan Sleevi首先公布了Chrome的預期策略。建議大家閱讀一下完整的討論過程,具體鏈接如下:

  https://groups.google.com/a/chromium.org/d/msg/security-dev/2-R4XziFc7A/NDI8cOwMGRQJ

  你會發現許多CA和大規模網站的運維人員露面,并試圖和Ryan Sleevi進行辯論,因為Ryan Sleevi告訴他們現在就應該停止頒發脆弱的證書,而不是推遲到明年。

  這是谷歌發起的一個大膽的舉動,同時也伴隨著巨大的風險。瀏覽器移除簽名算法為什么如此艱難,其主要原因是:當瀏覽器告訴用戶一個重要的站點存在風險時,用戶卻認為瀏覽器出問題了,然后去更換瀏覽器。谷歌似乎在打賭用戶對Chrome的安全性足夠信任和對Chrome足夠的喜歡,以致能夠接受該計劃帶來的不便。(畢竟是第一個吃螃蟹,向谷歌致敬!)

  Opera 表示支持谷歌的計劃。Safari團隊正在觀望(俗稱“圍觀群眾”)并未表態。

  指導建議

  為了幫助遷移,我搭建了一個小型站點www.shaaaaaaaaaaaaa.com,用于檢查你的站點是否使用了SHA-1,以及是否需要更新。

  字母A的數目是一個不可預測的大素數(作者為啥選擇個數字讓我費解,也許你能告訴我答案!嘿嘿)

  你需要提交一個新證書請求,讓你的CA頒發一個使用SHA-2的新證書。使用你現有的私鑰:

  openssl req -new -sha256 -key your-private.key -out your-domain.csr

  其中-sha256標志會使用SHA-2簽名CSR,但CA才能決定是否向你頒發一個使用SHA-2簽名的證書。我一直在關注有關從不同的CA獲得SHA-2證書的問題和解決方案。如果你遇到的問題在網站上沒有提到,請在這里反饋,我會及時更新網站。

  你可能更新所有的SHA-1中間證書,因為它們也需通過數字簽名來驗證。這也就意味著你要追蹤你的CA是否頒發了SHA-2中間證書,并發向哪里了。我也一直在追蹤不同的CA頒發的SHA-2中間證書的位置。如果你發現了網站上未提到的,或者你的CA沒有中間證書的話,也請在這里反饋。

  如果你有一個站點,但其他公司控制著證書,你可以向他們的客服發送郵件告知。發送谷歌聲明的連接,并詢問他們的時間表。當然我也需要一些幫助,你如果愿意的話,查看網站上的開放問題,助我一臂之力。

  SHA-1根證書:你不必擔心瀏覽器自帶的SHA-1根證書,因為它們的完整性不是通過數字簽名驗證的。

  結論

  這種推動SHA-1退役的計劃早就應該啟動了。隨著壓力不斷被放大而引發的所有麻煩應該被導向到CA,而不是讓谷歌作替罪羊,因為長久以來CA都不能采取有效的措施。

  對于個人而言,獲得證書應該像購買域名一樣容易,安裝它應該向打開一個網站那樣簡單,并更換它能夠實現自動化。這些思路提供了一些非常明確的商業機會和開源工具的需求。

  對于組織,在他們的基礎設施的設計和更新過程中,頻繁的證書輪換是需要優先考慮的。出色完成這項工作的組織應該廣開言路,共享他們的工作成果。

  與此同時,網站經營者應該更新證書和利用暫無像Heartbleed級別的緊急情況為契機,重新審視自己的SSL配置,并開啟“正向加密”(forward secrecy)之類的配置。

 

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:"病毒之父"參觀國內安全廠商,預言反病毒技術即將改變