2013-09-23 106 views
-1

讓我們假設我想實現一次性鍵盤。假設我有一個安全的隨機數發生器,並且我已經創建了一個隨機數的隨機數。比方說,我想保存在USB棒或我的文件系統上的一些空間。如何完全擦除數據?

現在我有一個腳本或程序,可以使用存儲的一次性時間信息對消息進行加密或解密。完成此操作後,我想嘗試以編程方式銷燬一次性打擊墊。

你會怎麼做?我知道僅僅刪除文件是不夠的,因爲數據仍然在磁盤上。用0或其他日子覆蓋一次性墊是否足夠。這會使它真正無法恢復。

另外墊需要讀入RAM和一些階段做模塊化算術。確保RAM不再可恢復的最佳做法是什麼?

真正可以用軟件實現一次性打印墊。考慮如何實現一次性鍵盤,我還缺少了哪些其他因素?

+0

最大的問題不是零填充。相反,它確保雙方保持密鑰同步,即使在發生崩潰,連接丟失等情況下。 –

+0

通常最好解釋downvote,以便可能會提煉出問題。 –

回答

3

我不是專家。這是我的想法。

雙方之間的一次性墊需要雙方使用相同的墊。對於雙方之間交換的每條消息,每個參與方將從該平板上移除一個「頁面」。 在軟件的情況下, 「頁面」是一個加密密鑰。 因爲錯誤可能會發生,你需要一些東西,使其工作:

  1. 你需要爲當事人同步跟進他們在其中「網頁」的方式。通常在消息交換期間,雙方只知道要使用哪個頁面(當前頁面), ,但是如果它們不同步,則需要確定使用哪個頁面( )。

  2. 當墊子用完時,各方需要決定是時候使用下一個墊子了。 很像頁碼, 他們只需要一種方式來表示「使用新的墊」。

  3. 看來有可能各方將需要一種方法來確定他們使用相同的墊。 你可能想要一種方法來做到這一點,而不需要在pad中燒頁面; 看起來沒錯, 但可能不是必需的。

  4. 刪除焊盤(或焊盤中的頁面)非常棘手。 你將不得不閱讀經典的「如何擦除驅動器,使nsa不能恢復」的東西。 我認爲這涉及重複寫入不同的垃圾到磁盤上的相同扇區。

  5. 請記住永遠不要使用相同的「頁面」兩次。 請求的頁面與對請求的響應的頁面不同。

+0

實際上,我認爲第4點是我最感興趣的那一點。實質上,我需要找到最新的信息和安全刪除鍵盤的方法。 – KennyBartMan

+1

多通道刪除建議基於非常古老的研究。現在,磁盤驅動器密度更高,電子顯微鏡不再足夠靈敏,無法恢復覆蓋的數據。有關該主題的高層次報道,請參閱:https://www.anti-forensics.com/disk-wiping-one-pass-is-enough/ 這就是說,出於非技術性商業原因。能夠說你使用多遍刪除以使人們感覺更好,這可能是有用的。 – Aurand

0

RAM

物理方式

關閉PC的一小段時間後會刪除它。對於cold boot attack而言,RAM可能會持續幾秒/分鐘,但隨後數據將在物理上消失。

的的程序化的方式

/*C code*/ 

//Ask OS for some ram, the size of our data. 
char * SensitiveData = malloc(myDataSize); 

//Copy data from hard drive to the ram memory we 
//...just allocated. Implement this function your own way. 
load_key_from_hardrive(SensitiveData); 

/*Use key here*/ 

//Now let's overwrite the key: 
for (i=0;i<myDataSize;i++) 
{ 
    SensitiveData[i]='\0'; //Fill it with zeros. 
} 

free (SensitiveData); //Give the memory back to the OS. 

硬盤

物理方式

保存在USB記憶棒的鍵,然後進行物理破壞它會G保證清除鑰匙。

的的程序化的方式

有很多的方式。這裏是Linux的一個:創建一個新的分區,把密鑰放在那裏。記下分區號,在本例中爲sda2

爲了擺脫關鍵的,補零分區:

#Linux bash code 
dd if=/dev/zero of=/dev/sda2 bs=1M 

如果您更喜歡推諉填充隨機數據,使用:

#Linux bash code 
dd if=/dev/urandom of=/dev/sda3 bs=1M 

其他說明

零填充一次就足夠了。零填充一個現代硬盤驅動器可能已經足夠,但有些不止一次。

某些操作系統緩存磁盤I/O在RAM中,爲了安全起見,擦拭硬盤後,還應該使用Ram>物理方式。我可能在這裏太偏執了。我對IO緩存沒有深入的瞭解,也許別人會更好地編輯這一部分。

如果RAM內存的一些其他部分可以用來推斷的關鍵,一定要以類似的方式太補零那些拉姆>的的程序化的方式