題:
沒有技術術語如何解釋Heartbleed?
user36976
2014-04-10 10:21:49 UTC
view on stackexchange narkive permalink

我大多數沒有計算機經驗的朋友都想知道Heartbleed是什麼以及它如何工作。一個沒有技術背景的人會如何解釋Heartbleed?

Heartbleed使攻擊者可以匿名下載服務器的隨機內存塊。這意味著他們可以獲得未加密的密碼和保護您帳戶的低級加密密鑰……更不用說攻擊者可能能夠訪問網站的任何部分(或您發佈到該網站的數據)
您可以讓他們觀看https://www.youtube.com/watch?v=rE5dW3BTpn4
最簡單的解釋方式:http://xkcd.com/1354/
我喜歡MaciejCegłowski在Pinboard博客上的解釋:https://blog.pinboard.in/2014/04/heartbleed_and_pinboard/
與最近5萬個Windows未檢查的緩衝區長度攻擊相同,僅這證明它不僅僅是Windows。
我向一位計算機工程專業的同學展示了xkcd漫畫,但是由於他不了解加密密鑰,https,ssl和服務器,因此漫畫對他實際上沒有任何幫助。我喜歡第一條評論,只是喜歡說:“ Heartbleed允許用戶從當時服務器正在執行的操作中獲取數據,包括密碼,加密密鑰和個人信息,使所有私人信息都處於危險之中。”
@JFA:“ OpenSSL包含一個命令,該命令本質上說:“考慮這23個字節的數據; “告訴您正在考慮的數據的最後23個字節”,但允許其他數字代替23。典型的HeartBleed攻擊消息將“此處考慮的字節數為2;現在告訴我您一直在想的最後65,000個字節。”
@supercat怎麼樣:“這是一種允許攻擊者從內存中請求私有信息的漏洞?”
HTTP://upload.wiki Media.org/Wikipedia/Commons/thumb/從/成本/heart bleed_不過_explained.SVG/1000培訓-heart bleed_不過_explained.SVG.PNG
沒有“ Marco-Polo”一個答案?投票關閉...
Web服務器就像一個冰滿池塘。您的數據就是魚,它受到堅固的冰層的保護。但是有人剛剛發現了冰鑽,現在可以將一條線拉進去並取出隨機的東西。就像您的密碼一樣。
十一 答案:
Uwe Keim
2014-04-11 11:48:39 UTC
view on stackexchange narkive permalink

這個來自XKCD的怎麼樣?

XKCD comics #1354 by Randall Munroe. Licenced CC BY-NC 2.5

最“非技術性”的解釋我找到。

我既是技術人員,又是視覺人員。我可以說這是對Heartbleed的最好解釋:簡潔卻包含任何人需要知道的所有內容。
SPRBRN
2014-04-10 17:17:36 UTC
view on stackexchange narkive permalink

銀行和銀行僱員的比喻

您致電銀行以請求新的銀行帳戶,進行約會-隨便什麼。您和銀行以某種方式確保您是您的身份,而銀行實際上就是銀行。這是TLS流程,可確保您與銀行之間的連接安全,並且我們假設此操作已正確處理。

此劇中的角色

  • 銀行:網絡服務器
  • 銀行員工:針對該服務器的OpenSSL服務服務器
  • 您(銀行搶劫犯):從該服務器獲取所有內容的機器人

保持連接狀態-心跳信號

銀行職員接聽您的電話。您需要一些信息。員工說要等一分鐘,然後禁用麥克風。他可以聽到你,你不能聽到他。那就安靜了。需很長時間。您開始懷疑他是否掛斷了電話。所以你說“你好?”指示該員工回顯您說的內容,並回复“你好”。這是檢查是否仍然存在連接的心跳。

現在有了這個特殊的銀行僱員,您需要先詢問要使用多少個單詞,然後再詢問該僱員是否仍然在線。因此,您不必說“ hello”,而是要說“ one:hello”或“ two:hello there”。現在,員工知道他可以重複上述兩個(第一個)單詞來答复,然後可以根據您的要求繼續工作。這是心跳協議。

問題-令人傷心-不檢查返回的內容

好,你很無聊,開個玩笑。您說“千:你好”。員工不會檢查您是否只說了一個字(打招呼),而是先打“打招呼”再回答他說的,想過的或記憶中的下一個999個字,然後再放麥克風。這是導致問題的錯誤。

那些999個單詞無關。其中大多數將無用,有關天氣,對咖啡的要求,午餐約會的要求等。其中一些可能是有關銀行或其他客戶的重要信息。運送黃金,客戶要帶來100萬美元,進入銀行或保險箱的密碼等。

沒有檢查是否實際上要回答1000個單詞。另外,您可以一遍又一遍地執行此請求-員工不會抱怨,而且沒有其他人會注意到發生了什麼。

有一個限制。您將僅從該一位銀行員工那裡獲得信息,並且僅獲得他所談論或考慮的內容。其他員工不受影響。您看不到他的書桌上或rolodex中的物品。 (類比:只有內存(RAM)中的數據才有風險;硬盤上沒有讀入內存的數據以及來自其他程序和進程的數據是安全的。)

這樣做您不知道您將獲得什麼信息,但是長時間反復進行,您將獲得足夠的信息,最終可以在沒有人注意的情況下闖入。您可以在下班後進入銀行,打開保險箱等。這是所涉及的風險。

解決方案-檢查請求並更新代碼

如果員工想一會兒,他只會用一個字回答,然後禁用麥克風,您再也聽不到他在說什麼。通過進行此檢查,您將保持聯繫並知道該員工沒有掛斷電話,但不再聽到任何隨機信息。實際上,員工需要有關回顯內容的新說明。通過更新到最新版本的OpenSSL可以解決此問題。

銀行將不得不為進入銀行和保險櫃而更新安全密鑰,因為尚不清楚有人是否擁有舊密碼。

我想說的是,即使是一個小學生也能理解...。該死,我只能投票一次...
重要的一句話是“有些可能是有關銀行或其他客戶的信息”。如果該員工是多任務處理人員,並且要處理來自許多人的查詢,那麼他可能會告訴您他們的數據,並且以相同的方式告訴他們您的數據。不幸的是,您不知道他在對誰以及他可能將您的數據提供給誰的信息。
dr jimbob
2014-04-10 12:30:08 UTC
view on stackexchange narkive permalink

我將不得不使用一些技術術語,但將盡量減少使用它們並進行描述。

TLS &加密的基本介紹

您(客戶端)訪問使用加密(地址以 https:// 開頭的服務器)的網站(稱為服務器),因此除了您和另一端的網站可以知道您正在發送或接收的消息的內容。因此,當您的郵件在Internet上的計算機之間進行傳輸時,它們將被加密-它們稱為傳輸層安全性(TLS),它是一種加密協議。一種實現TLS的庫是OpenSSL(TLS是SSL的較新名稱,但兩者的意圖相同-加密Internet上的網絡流量)。

什麼是心跳-受損的TLS功能?

要建立TLS連接,需要進行相對昂貴的協商(這需要時間)。客戶端和服務器之間必須相互交換一些消息,然後它們才能相互信任並安全地來回發送加密的數據。為了獲得快速響應的體驗(並最大程度地減少服務器負載),您希望在可能的情況下極少執行此協商,而不是在每個請求之前都進行(因為您通常會在幾分鐘內使用現代交互式網站執行數百個請求)。事情變得複雜,互聯網上的數據包經常丟失或損壞。服務器可能會被太多的請求所淹沒,並需要斷開其TLS連接的末端。否則客戶端可能已關閉其瀏覽器窗口,因此服務器無需繼續存儲其加密連接的末尾。

因此,在2012年,在OpenSSL中實施了一項提議(稱為“心跳”),以在客戶端和服務器之間發送“保持活動”消息,以減少兩端仍在使用連接時的協商次數。客戶定期問網絡服務器“你還在嗎?”和網絡服務器(如果仍然存在),答復以告知是否仍然存在,或者將來的請求是否需要新的TLS協商。

心跳擴展的工作方式

客戶端發送“心跳”消息,該消息由客戶端選擇的有效負載以及包含有效負載大小的簡短標頭組成。例如,您可以發送大小為 18 的心跳請求,並發送文本這是我的有效載荷(儘管通常它將是隨機選擇的數據)。 Web服務器收到該請求,將有效負載的內容保存到Web服務器的內存中,並保存客戶端告訴它的有效負載 18 的大小。

然後,當服務器向客戶端發送“保持活動”響應時,庫從存儲有效負載的位置開始讀取內存的接下來的 18 個字符,然後將其發送回客戶端(由誰檢查)他們收到正確的數據),然後保持連接狀態。

OpenSSL中的Heartbleed漏洞

致命缺陷(已被稱為Heartbleed)是 OpenSSL庫從未檢查Heartbeat有效負載大小是否與要發送的有效負載的實際長度相符。無論有效載荷的真實大小如何,都允許用戶輸入最大65535(64 KB)的數字。如果攻擊者發送的心跳請求說的大小為 65535 ,但是有效負載只有18個字節長,則易受攻擊的服務器將在內存中僅存儲18個字節。但是,響應將從存儲的18個字節開始,但繼續將接下來的64KB內存中的數據發送回客戶端。這些數據可能是用戶名和密碼,私鑰,用戶名,HTML頁面,隨機垃圾,甚至是網絡服務器用來建立其身份的私有機密。 (在1.0.1g及更高版本中實現的OpenSSL修復程序本質上是按照客戶端的指示對有效負載大小執行健全性檢查。)

該攻擊可以重複多次,並且通常會揭示出不同之處每次都會佔用部分Web服務器的內存。對於典型的Web服務器配置,可以以不可檢測的方式匿名進行攻擊。通常,只有在為網頁提供服務時才記錄IP地址,但是此攻擊可能會在提供任何網頁之前在易受攻擊的版本的協商過程中發生。

對客戶端的攻擊

也有相反的版本,連接到惡意TLS服務器的用戶將信任從惡意服務器發送的保持活動請求,該服務器對其保持活動的大小撒謊有效載荷。這將導致Web瀏覽器最多洩漏64KB的信息到Web服務器。 (當然,要獲取有用的信息會更加困難,並且無法匿名完成,必須由客戶端選擇轉到該網頁來啟動。但是,如果您使用受影響的版本。)

補救措施

使用OpenSSL的客戶端和服務器的補救措施是對其進行更新。運行使用易受攻擊的OpenSSL庫的Web服務器的系統管理員需要撤消其秘密TLS密鑰並生成新的TLS密鑰(並使長期存在的會話令牌無效)。客戶應在可能已洩露的受影響網站上更改其密碼。對於客戶,lastpass發布了一個 heartbleed checker工具,該工具可測試站點是否(1)當前易受攻擊,(2)先前經過測試易受攻擊,或(3)可能易受攻擊(使用unix / linux網絡服務器)和TLS,可能表明使用了OpenSSL(主要是在Unix / Linux系統上使用的),這可能有助於確定您是否需要在給定的網站上更新密碼。

SSH不是TLS,因此SSH密鑰是安全的

SSH(代表Secure Shell)是UNIX和Linux計算機上的常用工具,允許用戶遠程登錄到計算機並發出通過加密的網絡傳輸的命令。 SSH是與TLS完全不同的協議(答案說是SSL,但這只是TLS的舊名稱-這些術語通常可以互換使用)。即使OpenSSH(最常見的SSH實現)和OpenSSL具有相似的名稱,但由於Heartbleed攻擊,您的SSH密鑰也不易受到攻擊。

只有進行TLS加密的進程中的內存可以通過Heartbleed攻擊洩漏。 (進程是應用程序正在運行的實例的計算術語。)現代操作系統實現了進程隔離,該功能可防止進程讀取或寫入分配給同一系統上其他進程的內存。因此,與 xkcd.com/1353相反,您不必擔心計算機的所有內存都受到損害,而只需擔心Web服務器進程(或反向形式的Web瀏覽器)的內存。其他進程(ssh,sshd,ssh-agent)使用的諸如SSH密鑰之類的秘密沒有被洩露,因為您還在Web服務器中使用了TLS。

為完整性起見,我應該提到此漏洞應該影響任何可以使用OpenSSL庫執行TLS,而TLS不限於網絡服務器;例如,FTPS服務器(而不是SFTP),電子郵件服務器,數據庫服務器可能都容易受到攻擊,具體取決於配置。

有關易受攻擊的提交的更多信息

還值得注意的是,編寫易受攻擊的代碼而不驗證有效載荷大小的同一個人是TLS Heartbeat擴展的同一作者(在 RFC 6520中進行了描述)。請注意,該協議未指定“心跳”響應的最大大小(同時指定了最小大小),但允許該長度為任意長度,並讓有效負載大小由兩個字節的標頭描述(允許其最大達到65535,而不是僅增加到65535) 255個(帶有1個字節的標頭),該標頭僅會暴露255個字節以下的Web服務器進程的RAM)。老實說,我想不出任何合理的理由要求心跳有效載荷長於16字節(128位),如果您想成為超級偏執狂,則可以將其設置為32字節(256位)。有了這些限制,就不可能洩漏很多可用的信息。

同樣令人好奇的是,易受攻擊的代碼的日期是2011年除夕之夜,這似乎很可能使某些事情無法得到通過,或者由於假期而受到的審查較少。

感謝您的出色解釋,並明確指出SSH不受影響。最後的陰謀曲折-錦上添花!
“這將導致網絡瀏覽器向網絡服務器洩漏多達64KB的信息。”這可能是什麼信息?例如,是否會緩存有關網站的信息?可能是附件存儲的數據,例如lastpass之類的密碼管理器嗎?
@Celeritas-我期望的那樣(儘管理智的密碼管理器只會根據需要將密碼加載到內存中并快速釋放它們)。同樣,如果您將系統上的OpenSSL修補到1.0.1g或使用了1.0.1之前的版本,則可以免受這種攻擊。如果您使用linux並且熟悉python並且具有root訪問權限,則可以瀏覽內存的內容。只需找到您的Web瀏覽器的PID(例如,頂部),然後使用[here](http://stackoverflow.com/a/23001686/457571)中提供的python2腳本,並記住客戶端攻擊只會得到隨機的塊。
有效載荷的目的是什麼?
Lastpass的心臟出血檢查器工具如何檢測到lastpass可能會受到損害,這幾乎是一件令人討厭的事情。這是否意味著使用lastpass的任何人都應該更改所有密碼?
-1:這是上述問題的“可怕”答案。非技術嫻熟的用戶沒有機會聽,更不用說理解其中的10%。
@MichaelBorgwardt可能是正確的,但對於技術人員卻對Web技術一無所知的人來說,這是極好的
@MichaelBorgwardt-我嘗試給出一個徹底的答案,而不是僅僅依靠技術術語或愚蠢的類比。我相信有些人覺得有幫助。這顯然不是一個“像我五歲的孩子一樣講解”,也不是在一分鐘之內解釋它,而是花時間去解釋和相關的概念,例如您是個聰明的成年人,即使您不是計算機/安全專家。
可以說是這個答案中的技術術語,在使用之前不會進行解釋:加密,庫,SSL,網絡流量,服務器負載,有效負載大小等,這大約是我無聊之前的解釋的四分之一。我認為這裡的人們會忘記大部分人口不知道什麼是“瀏覽器”。
@drjimbob-您的答案對我有用,它幫助我編寫了答案。
是的,這是對Heartbleed的一個很好的解釋,但對於非專業人士則不是。
@MichaelBorgwardt我不會這麼說。這確實取決於您向其解釋的人。出乎意料的是,我經常會遇到這樣的解釋,而幾乎沒有遇到任何技術背景的人。我還要說,驗證提交時間並告知誰報告了故障以及由誰進行了編碼是非常有用的信息。
這應該是公認的答案,非常深入而且內容豐富...地獄,我11歲的女兒讀了它,明白了他在說什麼...
Mark
2014-04-10 13:39:05 UTC
view on stackexchange narkive permalink

用非常簡單的英語說:攻擊者說他們正在發送一個大小為“ x”的數據包,並要求服務器將其發送回去,但實際上發送的數據包要小得多。 OpenSSL庫信任攻擊者,將小的實際數據包作為答复的開始發回,然後從內存中獲取數據以將答复填寫為預期的大小。這可能是服務器最近處理的任何數據,並且通常包含敏感信息。

用更簡單的術語來說,不可信的輸入被認為是可信的。
-1
Rich Bradshaw
2014-04-12 18:39:02 UTC
view on stackexchange narkive permalink

此示例對話框-也許您既是字符,又是讓他們問您的問題:

Q1:您最喜歡的顏色是什麼(1個字)
A1:藍色

第二季度:您最後一次去哪裡度假(2個字)
A2:去法國

第三季度:您開什麼車(1000個字)
A3:Vauxhall Astra。芝士漢堡。明天我要去倫敦。我喜歡蛋糕。哦,松鼠。我的密碼是1234。我喜歡小雞。太空人昨晚我吃了意大利面。 BUD WEIS EEEEERRRR。等等等等

最後一塊主要是垃圾,但是裡面可能有一些好東西。

那真的是我的思路...擔心或什麼!
第三個問題應該是Q3而不是Q2嗎?
Bristol
2014-04-10 15:14:35 UTC
view on stackexchange narkive permalink

這是一種嘗試,幾乎完全不使用術語。

當您連接到“安全”網站(帶有綠色欄和掛鎖圖標的網站)時,您的瀏覽器和該網站會執行一些數學上的軌跡,並且你們倆最終都得到一個秘密密鑰-就像一個很長的隨機密碼-,您可以用它彼此發送加密的消息。每次重做整個軌跡將是非常昂貴的,因此網站和瀏覽器僅使用相同的鍵進行一段時間。由於該網站不想保留每個訪問者曾經使用過的每個密鑰的列表,因此發明了一種稱為心跳的協議。只要您仍在瀏覽,瀏覽器就會不時地向網站發送一條消息,說HEARTBEAT,這表示“我還在這裡,請把握住我的鑰匙”。該網站回復了“建議”的內容。如果該網站一段時間未收到您的任何心跳聲,則認為您已轉到其他站點並扔掉了為新空間騰出空間的鑰匙。

實際上,心跳會更多的東西。您可以將任何您喜歡的文本與它們一起發送,網站將使用完全相同的文本進行回复。為什麼這樣做的方式對我來說還不是很清楚,我想這是為了讓您的瀏覽器可以檢查是否發生了有趣的事情(例如錯誤的文本返回或文本以錯誤的順序返回),並讓您知道有人

因此,您的瀏覽器會不時發送一條消息,例如“ HEARTBEAT,帶有5個字母的文字,HELLO”,然後網站會回复“ roger that,5個字母,HELLO”。文字幾乎可以是任何東西,例如當前日期和時間。如果願意,您可以寄一首詩。

令人毛骨悚然的錯誤是,如果您發送諸如“ HEARTBEAT,1000個字母,CHEESE”之類的消息,則如果網站使用名為OpenSSL的程序進行加密,則會嚴重出錯。而且,OpenSSL是最常用的用於在互聯網上進行加密的程序。它應該做的是注意CHEESE有6個字母,而不是1000個字母,並且抱怨。相反,它將讀取您的消息並將其寫入到其內存中的某個位置。然後,它會回复“建議那1000個字母,...”,並從它存儲您的CHEESE的任何位置開始從其內存中讀出接下來的1000個字母。因此,您可以聽到其內存中接下來的994個字母是什麼,這實際上可以是任何東西。這可能是網站的秘密密鑰。這可能是一首詩。可能是其他客戶的密碼和信用卡詳細信息。可能是一隻貓的照片。它是完全隨機的,但是每次您發送這樣的HEARTBEAT消息時,您都會看到網站內存中不同的隨機部分,因此,如果您只是經常重複您的HEARTBEAT,那麼您遲早會遇到一些有趣的事情。 / p>

可能發生的最壞情況是,您取回網站的主密鑰,每當新訪客進入該站點時,這些主密鑰便會用於啟動場所。如果這樣做,從理論上講,您可以閱讀每個人在站點上所做的所有事情,就像根本沒有加密一樣。每當有人登錄時,您都會清楚地看到他們的密碼。這不是一件好事。

如果攻擊者從Web服務器竊取了“主密鑰”,他們仍然必須a)捕獲往返Web服務器的所有流量,或b)進行中間人攻擊,將所有流量傳遞給他們而是擁有自己的“代理”服務器,以便能夠閱讀每個人在站點上所做的一切。從最終用戶到Web服務器(m-i-t-m或真實服務器)仍將進行加密,並且除了竊取了“主密鑰”的攻擊者之外,所有人之間的用戶通信都是安全的。
確實如此(儘管我沒有在文本中提及它,但也有+1理由使用完美的前向保密性)。對於原始問題中提到的目標受眾,我需要認真考慮如何在這種情況下解釋mitm攻擊。
之所以這樣做,是為了讓您清楚地表明他們已經確認了您的心跳。您已經為他們提供了一些獨特的有效負載,它們可以將這些負載還給您,但是您無法從其他任何來源獲悉,您可以肯定地說連接仍然有效。
@MattBianco除非他們實際上已經竊取了純文本root用戶名和密碼,否則在這種情況下,他們只需要使用ssh即可,服務器就是他們的。
@corsiKa,他們將如何竊取root密碼?為什麼root完全可以使用ssh和密碼身份驗證登錄?那真是愚蠢!
@MattBianco如果有人曾經登錄過該計算機,則他們的密碼可能仍在內存中(即使已被釋放)。因此,如果管理員以“ secretaccount@mydomain.com”的身份登錄,然後提高了他們的特權(例如,“ su提升”),secretaccount和提升的密碼可能會存儲在內存中。 (是的,在釋放數據之前,我們應該始終手動清除密碼,但是由於它必須在某個時間存在於內存中,因此在某個時候必須可以訪問)。
@corsiKa,我不認為Web服務器進程可以使用sshd或login進程的純文本密碼。我相信這也將需要一個破壞大腦的操作系統。
pyramids
2014-04-10 21:19:42 UTC
view on stackexchange narkive permalink

我將使用一個 s> 兩個 s>三個技術術語,“心跳”,“錯誤”和“網絡服務器”。我希望這不會嚇到您的非技術朋友。

當計算機通過Internet交換數據時,有時知道另一台計算機是否還在收聽很有用。在許多地方,都有類似的規定要問“嘿,你在聽嗎?你能告訴我我剛才說的嗎?”在不同的情況下,這種技術有許多不同的名稱,有時甚至在主流媒體中出現-“ echo”是一種,“ ping”是另一種,並且在廣泛使用的軟件中存在嚴重的錯誤。是“心跳”。這種特殊的“心跳”方案實際上並未在許多應用程序中使用,但是由於總體思路如此有用,因此許多計算機都允許使用它。

問題是大多數Web服務器使用的一個軟件存在一個錯誤。 :取決於“我剛剛告訴您什麼?”有人問,可以欺騙它去嘗試重複比對方實際發送的內容更多的內容,並用網絡服務器碰巧知道的隨機內容填充其餘內容。通過以一種棘手的方式詢問,可以使具有以下錯誤的Web服務器告訴他們幾乎所有的信息,包括用戶密碼和(來自處理此類信息的Web服務器的)敏感數據,例如信用卡號,電子郵件內容等。不要止步於此,甚至其他計算機可能用來冒充這些Web服務器的秘密也受到威脅。

這不僅限於Web服務器,而且任何使用Internet的人都可以與之聯繫。但是計算機安全人員現在忙於處理可能受到影響的許多計算機和許多不同的軟件。

這很好,但是我會說:“當我回答“我剛剛告訴你的最後一千件事是什麼?”這個問題時在只說了1件事之後,它粗心地回答了那件事和它正在考慮的999件事。
當然。麻煩的是,如果我嘗試包括所有這些詳細信息,在我不知道它之前,我將先嘗試解釋有關位和字節以及十六進制計數(為什麼是999?為什麼不是0xFFFF?)...
是的,但沒有描述無效的長度請求,似乎每個無辜的心跳都會洩漏數據,而不僅僅是惡意數據。這似乎是一個很大的區別,但並不是太技術性。 (如果需要,請省略具體數字。)
@AShelly我已經編輯了答案,以顯示並非每個心跳都會洩漏數據,儘管仍然沒有在談論數字。當然,現在我想知道您最初的主張是否會更好!
user44002
2014-04-10 11:45:46 UTC
view on stackexchange narkive permalink

當您訪問使用“ https”的網頁時,您與網絡服務器之間的連接將被加密。該保護層稱為SSL或TLS。此實現的基礎組件存在安全問題-導致為網頁提供服務的服務器“洩漏數據”(即向攻擊者披露內存內容)。此數據的洩漏方式有一些限制,但它非常嚴重,可能會在易受攻擊的服務器上暴露各種數據。易受攻擊的服務器,還顯示瞭如何防止數據洩漏: https://www.youtube.com/watch?v=UjkK22VBzjA

Nzall
2014-04-10 14:26:36 UTC
view on stackexchange narkive permalink

新的比喻:

想像一下,您正在打電話給該銀行,詢問其某個辦事處是否已營業。您得到一台在線機器(臭名昭著的“英語,請按1”女士),它詢問您要了解多少銀行,以及哪些銀行。然後,您說您想要65,000家銀行的營業時間,但只提供單個銀行的代碼。該機器認為它需要提供65,000家銀行的時間,但是由於您只給出1個銀行代碼,因此它將用它能找到的任何東西填充其餘的代碼:隨機帳戶的銀行對帳單,信用卡號和代碼,鑰匙圖片為了安全起見,經理當時與他的醫生進行了討論,...並沒有意識到其他數據無關緊要,並且您應該只為1家銀行提供營業時間。


舊答案:

假設您的銀行有一個系統,您可以在其中發送安全請求以獲取借記卡的當前密碼,然後系統會返回密碼和銀行卡號。此系統會進行更新,您可以在其中發送要重置的卡列表。

您發送的請求是要重置65,535張借記卡的列表,但只能傳遞1張卡號。您的銀行不會只退還那張單張卡片或拋出錯誤,反而會從其他隨機用戶那裡發回65,534張其他卡片的現有代碼。

如果您不贊成,請至少說明原因,以便我可以根據需要進行編輯。我個人認為這是一個相似的概念:您向服務器發送格式錯誤的請求,服務器將不應該發送的數據發送回去。
不是我的不贊成,但是您的答案與解釋發生的事情並不接近。也許這個答案對您的祖母有用,但這是不同的受眾,即使要求使用非技術性答案。
問題是“我想向我的非技術朋友解釋什麼是Heartbleed”。 OP希望為不擅長計算機的人提供非技術性的解釋。在這種情況下,僅通過解釋概念就不會走那麼遠。您需要類比。我可以使用相同的規模和相同的風險為受影響的用戶創建的最好的類比之一是使用銀行帳戶數據。我意識到對於普通觀眾來說這是遠遠不夠的,但是我認為它對於不知道SSL,心跳或內存是什麼的人更合適。
好,請閱讀Jimbob的答案。然後修復您的。假設請求是由人而不是計算機處理的。處理此問題的銀行員工不會發送這64k卡的代碼,但會發送他正在處理的所有內容,例如經理的註釋,電話交談,笑話等(但僅適用於該64k)。該人處理的任何事情。通過一遍又一遍地執行此操作,您可以了解正在發生的事情,程序如何工作,特別是什麼安全程序,並由此可以假裝自己是該銀行的員工。
您的示例的另一個問題是,它與實際請求有關,而心跳只是打給銀行的電話,以查看它是否已打開。
@rxt我做了另一個比較,在這種情況下,它可能更準確。
Kiwy
2014-04-10 15:19:19 UTC
view on stackexchange narkive permalink

想像一本您從未讀過但又不知道內容的書,因為書是關閉的,令人傷心的錯誤,只是一種隨機打開頁面並能夠從書中讀取文字的方法。提取足夠的信息後,您就可以復制這本書並將其放在庇護所中,而無需任何人注意。這本書可以是您的計算機或服務器。

這將是我對非技術人員的最簡單的解釋。


如果您想要一個更準確的版本,可以說您有一本書以電子方式關閉鎖那本書是你的個人日記。您是唯一擁有鑰匙的人,因此您是唯一能夠讀取和寫入鑰匙的人。
可惜的是,您的電子鎖有缺陷,並且允許知道此竅門的人進行2次解鎖
通過這樣做,您將能夠讀取全部內容,並最終在以後進行修改。
Lightness Races in Orbit
2014-04-14 00:21:35 UTC
view on stackexchange narkive permalink

就是這樣。

您正沿著街道行走,經過銀行的入口,在他出門時遇到一名自閉症專家。他看起來像個好人,但您卻不是,您知道您可以將他用於邪惡的目的,因為您已經看了足夠多的電影,了解到專家可以保留和重複大量數據,並且通常都很謹慎,

所以,你問他時間。他告訴你時間,但禁不住繼續講話。他會告訴您在他在那裡時耳目一新的每個銀行帳號和密碼。

這些信息現在是您的。您所要做的就是詢問時間,因為憑藉他的病情,這位智者無法阻止自己對您說出比他想像的更多的信息。他沒有意識到的是,通過要求時間來解決您的邪惡目的,由於您知道可能發生的事情,因此您提出的要求也超出了預期。

>

差的人。

-1不解釋如何獲取信息
@Nick:是一個類比。沒有技術細節。按照要求。如果您需要技術細節,則可以在Internet上找到它們。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...