我的臺式電腦內(nèi)存條是否不穩(wěn)定?賣掉它們安全嗎?
我的電腦里有兩塊RAM,我想賣掉或捐贈。據(jù)我所知,有些RAM是易失性的,斷電幾分鐘后會丟失所有內(nèi)容,有些是非易失性的,斷電后會保留這些信息。我想知道我有哪種
解答動態(tài)
是的,它們是安全的。消費內(nèi)存DIMM使用易失性SDRAM內(nèi)存。Volatile意味著在您將其關(guān)閉后它不會保持其狀態(tài)。
SDRAM內(nèi)存芯片由一個存儲單元陣列構(gòu)成,每存儲一位數(shù)據(jù)一個單元,F(xiàn)代的記憶集成電路每個都有數(shù)十億個單元。每個存儲單元由一個晶體管和一個電容構(gòu)成。晶體管就像一個電子開關(guān),電容器就像一個小電池。存儲在單元中的值是一個位—0或1的值,由低電壓或高電壓表示單元格:
您可以在你的瀏覽器里模擬這個電路,我會告訴你它是如何工作的。您可以使用右上角的“運行/停止”和“重置”按鈕來控制模擬。如果run/stop按鈕為紅色,則表示已停止模擬。如果它是灰色的,它就在運行。
我已經(jīng)標記了晶體管和電容器,所以你可以看到它們在哪里。標記為10k、100k和1M的部分是電阻器-暫時不用擔心這些。
在電路的左上角,我們有輸入數(shù)據(jù)。這是一個選擇5V或0V(接地)的開關(guān),表示1或0的值。我們使用這個開關(guān)來選擇要寫入單元格的值。右邊是我們的輸出數(shù)據(jù)。當我們從單元格中讀取時,它將顯示為1或0。
在它下面,我們有一個寫/讀開關(guān)。這將選擇要執(zhí)行的操作。當切換到左側(cè)時,它會使用輸入數(shù)據(jù)開關(guān)設置的值將值寫入單元格。當切換到右側(cè)時,它從單元格中讀取一個值并在輸出數(shù)據(jù)上顯示它。
啟用開關(guān)允許我們決定是否要在任何時間點與此特定單元格對話。當這些單元中有許多都連接到相同的輸入和輸出信號時,這允許我們只選擇一個單元進行讀寫。
還有另一個標記為“漏電”的開關(guān);。我待會再談這個問題-讓開關(guān)暫時打開。
首先,讓我們在單元格中寫一個1。將輸入數(shù)據(jù)開關(guān)設置為1,將寫入/讀取開關(guān)設置為寫入。然后關(guān)閉啟用開關(guān)。您將看到電路底部亮起綠色,小點會移動一段時間,表示電容器充電時有電流流過。
電容器頂部變?yōu)榫G色,表示電容器充電完畢,單元值設置為1。
下一步,將寫/讀開關(guān)向右翻轉(zhuǎn),以以讀取單元格中的內(nèi)容。輸出數(shù)據(jù)現(xiàn)在顯示為1.
再次重復此操作,但是對于輸入值0.
,還可以使用啟用開關(guān)-您將看到,當它打開時,無論您如何使用輸入值和寫入/讀取開關(guān),輸出數(shù)據(jù)都將始終為0。此外,電容器中存儲的任何值都會保持在那里,直到您重新打開啟用開關(guān)。
到目前為止,我們看到的是一個理想的存儲單元。它幾乎可以永久地存儲0或1。然而,在現(xiàn)實中,總是有一些電容器泄漏,導致它慢慢失去電荷。您可以用電路中包含的漏電開關(guān)I來模擬此情況。
關(guān)閉漏電開關(guān),然后將輸入數(shù)據(jù)設置為1,將寫入/讀取開關(guān)設置為寫入,然后關(guān)閉啟用開關(guān)。這將導致向單元格寫入1,F(xiàn)在將write/read開關(guān)改為read,并查看輸出數(shù)據(jù)。它將顯示1,就像以前一樣,F(xiàn)在等幾秒鐘。輸出數(shù)據(jù)將翻轉(zhuǎn)回0.
如果你觀察通過漏電開關(guān)和10k電阻的路徑,你會看到隨著電容器電荷泄漏,電流點緩慢流動。最后,電容器電壓降到閾值電壓以下,導致它被讀取為0而不是1.
請嘗試幾次,以了解發(fā)生了什么。一旦你對此感到滿意,是時候進行另一個實驗了。
在漏電開關(guān)關(guān)閉的情況下,再次重復寫過程,并在單元中存儲1。這一次,不是立即執(zhí)行讀取操作,而是提前打開啟用開關(guān)。等待幾秒鐘,然后關(guān)閉啟用開關(guān)。以下是完整的步驟,以防沒有清除:關(guān)閉泄漏開關(guān)。設置將輸入數(shù)據(jù)設置為1。將寫/讀開關(guān)設置為寫。關(guān)啟用開關(guān)。觀察電容器充電情況起來。開門啟用開關(guān)。設置寫入/讀取開關(guān)讀,等等5幾秒鐘。關(guān)閉請注意,enable switch. 的輸出數(shù)據(jù)為零!發(fā)生的是,電容器中的電荷在你等待的時候泄漏了,導致它從1降到0.
這在真正的DRAM芯片中也發(fā)生過。內(nèi)存芯片上的必須不斷地刷新單元中的數(shù)據(jù),讀取它們并將它們的值寫回,以跟上泄漏。當你關(guān)閉電腦時,DRAM內(nèi)存芯片中的數(shù)據(jù)會迅速退化并泄漏回零。這個過程通常只需要幾秒鐘。
(這里有一點有趣:設置開關(guān)和從特定單元獲取數(shù)據(jù)所需的時間是定義內(nèi)存延遲的時間,通常列為四個數(shù)字或類似于“CL16”的數(shù)字;-內(nèi)存計時wiki對此有一些進一步的信息)
通過將芯片到非常低的溫度,可以人為地減慢泄漏過程,這就是所謂的冷啟動攻擊。這會使單元格保留其值的時間更長。只有在關(guān)閉系統(tǒng)電源的同時凍結(jié)RAM時,它才能工作——如果在凍結(jié)之前等待幾秒鐘,所有數(shù)據(jù)都將開始降級。因此,這對你來說不是問題。
還有一些有趣的事情可以在這里討論,例如SPD flash、NVDIMM和Intel Optane,但我將在十分鐘后玩一個D&D游戲,所以我現(xiàn)在沒有時間來擴展這個答案。我稍后會回來編輯它們。不過,別擔心,它們不會影響你的銷售安全!好了,僵尸眼魔死了。讓我們來談談非易失性RAM。
有一種特殊類型的內(nèi)存技術(shù)稱為NVDIMM。NVDIMM就像一個普通的DDRSDRAM模塊,只是它有一個備用電池和一個非易失性閃存芯片。這允許系統(tǒng)在不丟失內(nèi)存狀態(tài)的情況下關(guān)閉電源。DIMM上的備用電池允許它繼續(xù)刷新內(nèi)存單元。然后,它將存儲單元的內(nèi)容復制到非易失性閃存芯片中。然后它可以安全地關(guān)閉電源,因為內(nèi)存的內(nèi)容被保存,并且不需要刷新易失性內(nèi)存芯片。操作系統(tǒng)的構(gòu)建必須支持此功能。這是一種專門的內(nèi)存技術(shù),通常保留給服務器應用程序,在這些應用程序中,您需要能夠在斷電期間恢復內(nèi)存的內(nèi)容,或在維護(例如更換PSU或UPS)后使系統(tǒng)快速恢復到相同的狀態(tài)。
另一種非易失性DIMM是Intel Optane。這實際上根本不是RAM—最好把它想象成一個非常低延遲的NVMe SSD,剛好插入DIMM插槽。
最后,讓我們談談SPD閃存。當您將DIMM插入系統(tǒng)時,主板需要能夠識別它并了解其規(guī)格和功能—其名稱、大?⒗嘈、藗R、延迟、悼姃飒求、闹u貿(mào)蹬渲夢募約案髦制淥晗感畔。凑b畔⒂梢桓齔莆寫嬖詡觳猓⊿PD)的標準接口提供。實際上,信息存儲在一個表中(確切的格式和內(nèi)容由JEDEC定義),該表位于dim上的一個小型非易失性flash EEPROM芯片中,主板可以通過SMBus與之通信。操作系統(tǒng)還可以與該芯片對話,以了解有關(guān)內(nèi)存的信息-您可以使用CPU-Z之類的工具查看它。
通常,該SPD數(shù)據(jù)會在出廠時寫入EEPROM,并且不會更改。但是,完全可以從操作系統(tǒng)寫入閃存芯片。從技術(shù)上講,有些芯片確實有能力鎖定數(shù)據(jù)的前半部分(通常是前256字節(jié)),但通常情況下這并沒有做到,而數(shù)據(jù)的后半部分總是可寫的。DDR4的SPD表的大小是383字節(jié)。然而,沒有人生產(chǎn)383字節(jié)的EEPROM芯片-那就奇怪了。相反,你通常會發(fā)現(xiàn)芯片的大小是512字節(jié)。這意味著在EEPROM中還有129個字節(jié)沒有被用來做任何事情。如果你想的話,你可以把129字節(jié)的非易失性數(shù)據(jù)存儲在你電腦的每一個RAM中,通過寫入SPD閃存。我不建議你自己嘗試,因為如果你做錯了,你很有可能會用磚塊砸你的RAM,但我在不久前的一次安全會議上做了一個舞臺演示。
SPD接口通常只暴露于內(nèi)核,但是有很多簽名的Windows驅(qū)動程序,它們要么通過設計提供對SPD的寫訪問,要么意外地提供對SPD的寫訪問,您可以濫用這些驅(qū)動程序?qū)⑸倭繑?shù)據(jù)寫入SPD閃存芯片。因此,攻擊者可以使用其中一個驅(qū)動程序?qū)懭隨PD閃存的場景。即使在系統(tǒng)重新啟動或重新安裝操作系統(tǒng)后,這些數(shù)據(jù)仍將保留在DIMM上。數(shù)據(jù)本身不起任何作用—您需要系統(tǒng)上已經(jīng)運行的惡意代碼來實際讀取和寫入數(shù)據(jù)—但它是一個很好的隱藏存儲位置,用于存儲幾個字節(jié)的數(shù)據(jù)。在那里- End
免責聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負責,概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。