簡體   English   中英

選擇密碼並存儲密碼和私鑰

[英]Choosing password and storing password and private key

在我的公司中,我們正在開發一種采用ARM處理器的產品。 我們正在使用Buildroot為其構建Linux系統。

為了進行調試/維護,將使用以太網啟用SSH訪問,並且設備將具有用於串行TTY的UART。 該產品將出售給公司,可能只有員工才能實際使用該設備。

我想知道在用戶密碼和私鑰存儲方面我們應該采取什么策略:

  • 密碼:我們必須選擇什么用戶密碼? 為所有人選擇一個密碼似乎不是一個好主意。 如果有人找到了該密碼,他將有權訪問我們的所有設備,並且由於它們處於離線狀態,因此我們無法對其進行更新。 我們甚至需要選擇一個密碼嗎? 還有其他安全且不依賴密碼的解決方案嗎? 類似於SSH密鑰,也許...
  • SSH私鑰:我正在考慮生成密鑰對,並將公鑰添加到所有設備的authorized_keys文件中。 這樣,我們公司中任何需要維護的成員都可以將私鑰導入到他的計算機中,並可以直接訪問所有設備。 但是,我們如何存儲此私鑰以保持其合理的安全性(而不是丟失它)?

在此設備中,安全性不是至關重要的,因為它不太可能成為有趣的目標,它的功能也根本不重要,它是脫機的,並且將對其進行合理的物理訪問。 知道了這一點,我想對以上幾點做出回答,以便我們擁有合理的安全性而又不會使所有事情復雜化。

我已經考慮過有關SSH密鑰的一些事情:

  • 將其寫在紙上並保存在我們的辦公室中:我不太喜歡這樣做,因為我不相信它不會丟失,銷毀...
  • 將其保存在Bitbucket的私有Git存儲庫中:我並不太喜歡這種方法,因為應該允許有權訪問存儲庫的同一個人擁有私鑰,但是我不知道我必須信任一個密鑰為此的雲服務

我記得在這種情況下對安全性的要求不高,但是仍然希望擁有合理的良好實踐。

絕對不要為所有設備設置相同的密碼,也不要使用相同的ssh密鑰。 將您公司的ssh密鑰包含在authorized_keys中將有效地成為供應商的后門。 不要那樣做 對於您的公司而言,這也是巨大的聲譽風險,如果密鑰被泄露,則您的產品可能已經停產。

根據設備的實際使用情況,您可以選擇一些相對安全的選項:

  • 由客戶(或至少客戶那里)設置設備后,可以生成或輸入新的密鑰對或密碼。 然后,這個秘密將留給客戶,您的公司將消除為所有設備存儲一個主要秘密的巨大風險。

  • 您可以為每個設備預先生成一個隨機密碼,將其設置為密碼,將其打印在紙上並將其粘貼在設備上。 然后,您的公司會忘記該密碼,客戶當然應該能夠更改它。 這樣,就沒有所有設備的主密鑰,攻擊者需要物理訪問權限才能讀取密碼。 請注意,雖然聽起來像mac地址之類的東西聽起來很像是密碼的候選者,但事實並非如此,因為它太容易猜到了。 它應該是具有足夠熵的真實隨機密碼。 另請注意,這要求只有經過授權的人員才能對設備進行物理訪問-通常是這種情況,但是您尚未指定這是哪種設備。

不過,這兩種方法都需要在客戶處為設備進行一次性設置階段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM