2015-04-20 80 views
0

我在一個項目中工作,我必須遠程配置一些產品。 這些產品有一個SIM卡,可以通過互聯網通過GSM連接,所以我將無法直接連接到他們。django如何保護我的項目

客戶將通過填寫表格在我的網站上進行配置請求,當他們完成時,我在DB中保存所有產品的新配置,並且我會發送短信給每個產品,短信使產品知道他們必須使用http連接到sms中指定的url,當他們連接到URL時,我用他們的序列號標識產品併發送他們的新配置。

現在我真的不知道如何保護短信中發送的所有數據或管理從產品到我的服務器的認證。

我想基於MD5/SHA HASH公式進行認證,但問題是用於散列的祕密將存儲在產品中,並且如果知道祕密和公式,它將成爲危急。 也許使用具有產品信息的日期的動態散列會更好。 HTTPS可以解決一切可能,但我不僅可以使用產品的序列號作爲授權。

我認爲還要添加一個私人密鑰基礎,但我認爲它太複雜。 我會用產品公鑰加密數據,產品會用我的服務器公鑰加密數據,但我不知道它是否太難實現這個架構。

我使用django框架,ngnix。

+0

此問題[太寬](http://stackoverflow.com/help/on-topic)。有太多可能的答案,或者這個格式的答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 – jurgemaister

+0

縮小我想知道如果使用散列來驗證我的產品連接可能是安全的,如果哈希公式不包含在產品和代碼中硬編碼的密碼,所有公式數據將包含產品序列號,一天的日期其他產品信息。 – Alex

回答

0

我認爲你會混淆'散列'是什麼,加密/解密數據。散列通常是一種方式,無法輕鬆地「散發」已傳輸的信息。

設計中最薄弱的環節是用於傳輸數據的非常有限的SMS(短信)系統。它缺乏使用大/全字符集(例如二進制)的能力 - 這意味着加密的消息必須相當長以確保安全。但是它也限制了消息的長度,所以這些長的加密消息不能被髮送。

正如評論中提到的,這個問題太籠統了,無法提供具體的答案。但是,如果這些是「智能」設備,則使用SSL的專用配置「應用程序」可能是您的最佳解決方案。