2009-07-28 93 views
12

我想調用「在數據庫中以純文本形式存儲密碼」是一種不切實際的行爲......但我們的客戶在他的應用程序中這樣做了。他們希望我更新該應用程序。以明文形式存儲數據庫中的密碼與客戶需求

我的觀點:我想改變這個......但是因爲它不是我們客戶的需要,所以目前還不清楚。

你如何處理有關安全性的問題?從我的角度來看,很難向客戶解釋這些問題。

+5

這不是不好的做法,它只是沒有完成。你會打電話交付一輛沒有打破壞習慣的車嗎? – markus 2009-07-28 12:33:46

+0

,我不明白爲什麼應該很難向客戶解釋這一點。我只是告訴我的客戶:應用程序存儲密碼的方式存在很大問題,這非常非常危險,我們需要儘快更改!這不是一個輕率的問題,我們應該努力把它列入本週的議程! – markus 2009-07-28 12:36:41

+0

我從開發人員的角度理解您的觀點......但很多客戶需要像「他們自己的想法」這樣的想法。 我希望他們理解這種強迫他們的背後的需求。 我希望清除它一點點... – bastianneu 2009-07-28 12:40:11

回答

7

寫一封簡短,清晰且不含行話的正式信函,陳述您的疑慮,並得出結論認爲您的專業意見應該糾正。將其交給客戶中合理高的人。

如果他們然後選擇忽略你的建議,那是他們的特權。

(請將信自己的副本,也。)

1

您應該簡單地向客戶解釋,如果有不良意圖的人可以訪問數據庫,則登錄不安全。如果它在公司內部的應用程序,也許不值得去改變它。你必須分析它是否真的是一種價值,你只能通過與客戶交談來了解它。也許這些數據不是非常機密,並且擁有很多安全性並不是一個優先事項。所有這些都取決於軟件目標,數據庫在哪裏以及客戶希望其數據安全。

+0

有一點與哪些軟件目標相關。目標改變。也許今天的數據不是非常保密,但明天可能會。也許數據庫只能在內部訪問,但稍後會暴露於外部。有一個密碼系統的事實告訴我,對安全性的需求最低,而且在我看來,明文存儲並不能滿足這種需求。如果值得實施密碼系統,則安全地存儲密碼是值得的。 – Imagist 2009-07-28 12:28:33

+2

即使該數據庫中的數據不是特別高的值,用戶很可能會在其他系統上重新使用其密碼。 – caf 2009-07-28 12:29:06

+0

在一個完美的世界中,我會同意100%與你caf,但有時在現實世界中,客戶可能不想投資金錢來解決這類問題。客戶有最後的話,這就是爲什麼你需要與他交談,並向他展示問題的可能性,但最終選擇可能不是解決它,如果他認爲它不值得。 – 2009-07-28 12:35:05

3

切勿以明文形式存儲密碼。

我會推薦閱讀這些問題:

如果您的客戶對細節不感興趣 - 只需實施它。 (同時提供適當的密碼恢復程序)。對於程序員來說這對你來說並不是什麼大不了的事情,但它確實提高了產品的安全性。

如果他想知道你打算改變什麼 - 向他解釋。告訴他有關安全問題,他會理解。另外一個現場示例真的有助於打開客戶的眼睛:只需從舊系統中檢索密碼,並向他展示每個人的容易程度。

我一直這麼做:如果我覺得在我的一個產品中擁有安全功能很重要 - 我一直都包含它。它爲您的產品質量增添了很大的優勢,併爲您提供了許多「您想到的一切」時刻。

+0

耶ive已經閱讀了這些問題..我在這裏專注於這個問題是,如果我只是以最佳實踐的方式實施它,而不符合我們的客戶需求。 – bastianneu 2009-07-28 12:18:14

+0

@bastianneu:「不符合我們的客戶需求」?什麼?什麼需要?需要公佈密碼?這似乎不是合理的需要。 – 2009-07-28 12:36:39

+0

他們不要求它。我知道這是危險的,但我們正在爲我們的客戶編寫軟件,而不是爲我們編寫軟件。所以我希望他們得到一個關於它的想法。 – bastianneu 2009-07-28 12:47:23

4

如果可以,現場演示效果很好。要求用戶使用密碼創建一個帳戶(而不是他們通常使用的密碼)。進入數據庫並進行檢索,並解釋任何有權訪問數據庫的人(無論是通過許可還是通過安全漏洞)都可以簡單地繼續並執行此操作。

+1

我不知道他們可以處理這個問題。我不希望他們對最近的描述感到愚蠢。 – bastianneu 2009-07-28 12:23:45

11

我覺得「不好的做法」是輕描淡寫。 「不負責任」可能更準確。

如果值得使用密碼保護它,值得正確使用它。以純文本存儲密碼是一個令人尷尬的安全漏洞,等待發生。

如果客戶希望的「安全」在任何地方(我猜是這樣,因爲有密碼),他們已經隱含要求一個體面的安全系統,其中包括正確處理密碼。他們可能不會要求「安全地存儲密碼」(散列和醃製),因爲他們不是專家;這就是他們聘請你的原因。

0

從嚴格的專業角度來看,你必須問問自己,如果將它留作以後會成爲一個問題(你是否有一個支持合同,可以在搶劫犯被搶斷的情況下被調用)從DB?)

就個人而言,我不認爲這是很難解釋給別人爲什麼存儲通過未加密是不安全的,但是,作爲Daok指出,你真的不用擔心在系統傳球的是不持有私人 - 個人祕密 - 神奇數據。

現在,爲了達到這個目的,使用加密似乎很容易,根據您使用的技術,這可能意味着編碼和時間上的一點點努力。

乾杯隊友!

1

我會解釋他們所做的是不好的做法,並詢問他們是否希望你改變它。我會建議不要在沒有諮詢他們的情況下做任何事情,而是要求你做任何事情。

0

演示和解釋是最有用的,但是當你說你要「更新」應用程序時,你是從文檔,功能還是技術規範工作?

要求參與完成這些文件並將其包含在簽名中將是一個好主意。

最終,它是一個需要的客戶,他們只是沒有意識到它呢。

4

永不保存純文本密碼的最好理由實際上是合法的。

有一些法律,例如英國的「數據保護法」,其中規定必須作出合理的努力來保護敏感數據的安全。以明文形式存儲密碼明顯違反了這一規定,從而有可能導致您在違反安全性時承擔任何賠償保險。如果你不採取這種簡單的措施,這可能會讓你承擔大的責任訴訟。

當談到商務人士時,你總是必須談論自己的口袋,並指出一小時工作來哈希密碼,並改變登錄將花費他們一小部分相比,潛在成本如果錯了。

這也將是值得一提的是,如果有人設計存在根本性的缺陷,因爲這一個系統中,是可以公開這樣的敏感數據出錯的可能引擎蓋成倍更高。

最重要的是,正如其他人所說的,現場演示很好。從數據庫中取出一個隨機的工作人員密碼,並在其他系統上試用它,在你進入之前你不需要嘗試很多。

2

Bastanneu,你知道英文表達「Cover your a **」嗎?想象一下這種情況:

  1. 你擔心他們不關心安全性,他們不想聽你的消息。你反正告訴他們,他們對任何改變都說不。
  2. 他們被黑客入侵。
  3. 他們問你爲什麼不早點說什麼。

我建議您提前告知您的問題。並保留證明(簽名的信件等)。

0

這是一種情況,你必須正確地措詞。明文密碼不是你短語中的「壞習慣」。這是你的短語被破壞的東西,根本無法完成的事情。您必須使您的合同有條件修復密碼存儲,這不是可選的。這並不是說你不能就爲什麼不能完成而進行友好的討論,但是你必須清楚地表明,無論如何你都不會這樣做。

然後問題就變成了如何說服商界人士,這不是一個有效的解決方案。這應該也相當容易。找到決策者,並將他們帶到打開數據庫查詢瀏覽器的機器上。輸入查詢「從憑據中選擇密碼,其中用戶名='DECISION_MAKERS_USERNAME'」,然後讓決策者執行它(有禮貌,不要像他們那樣看屏幕)解釋任何有數據庫訪問權限的員工都可以做這個。一般來說,我認爲這樣做可以做到這一點,但如果您需要進一步說服力,請解釋大部分用戶在應用程序中共享密碼,並且任何員工都可以通過銀行帳戶,電子郵件帳戶等方式分享它。如果這還不夠,請解釋爲此做出的訴訟和罰款案例。

無論你做什麼,不要解釋任何技術細節。只是顯示後果。不要解釋散列,鹽,或使用像「明文」這樣的詞。只需解釋一下,現在是什麼時候,人們可以看到密碼,並且很容易就可以更改密碼,以便任何人都看不到密碼,但他們仍然可以工作。

如果你不能說服他們,不要把客戶端。而且您應該警告應用的用戶他們的密碼沒有安全存儲。

相關問題