2010-05-19 90 views
0

什麼是用於Windows Mobile應用程序的憑證檢查的好方法。知道它是偶爾連接的設備。用於Windows Mobile的登錄實施

我應該將用戶憑證保存到本地數據庫嗎?如果證書不存在於數據庫中,請嘗試查看它是否具有互聯網訪問權限並通過Web服務進行檢查?

如果兩者均失敗,則顯示錯誤消息?

如果登錄成功,則將憑證存儲到本地數據庫存儲,然後在下次登錄時首先對數據庫進行操作?

這是一個很好的方法嗎?

回答

1

我在移動軟件類似的情況,我們使用,我們用下面的辦法:

  • 設備上的第一次登錄時需要驗證憑據的連接。 它將在本地存儲上次使用的用戶名和密碼的散列。
  • 下次登錄,使用相同用戶名將散列輸入的 密碼,並將其與本地密碼進行比較。如果它們匹配,則用戶 登錄而不需要互聯網連接。如果它失敗, 用戶再次嘗試兩次,此時軟件要求通過主服務器驗證憑證 。
  • 下次登錄,使用不同用戶名將始終使用 互聯網連接進行驗證。如果成功,它將再次按照 的步驟。

很明顯,您需要意識到這種方法容易受到暴力攻擊的事實。你無法阻止黑客進行大量嘗試。你只能試圖減慢它們(使用慢哈希算法和其他標準)。如果你真的擔心這種攻擊,使用連接的登錄驗證方法是您唯一的選擇。

還有其他的事情要考慮的方式。設備連接頻繁還是很少?當連接不可用時,是否有很多不同的用戶在設備上登錄?對這些問題的回答可能會導致您進行單一登錄實施。

2

我們很難告訴你什麼是「好」的方法,因爲它高度依賴於你的要求,你的設備,你的網絡和一堆其他東西。對於需要使用某個遠程服務器進行身份驗證的應用程序,您的過程似乎很合理只需要考慮幾件事:

  • 你將如何存儲本地憑證?一個MD5哈希或其他東西?
  • 您是否正在認證回服務器,其中的信譽需要是NTLM還是隻是進行本地應用驗證?
  • 如果用戶丟失設備而其他人發現它,那麼這會如何影響您的身份驗證過程?
  • 如果他們沒有網絡,他們如何得到第一個驗證碼?
  • 您的網絡服務有多安全?它甚至重要嗎?

我相信還有其他很好的問題要問 - 這些只是現在想到的問題。重點是隻有你知道你的應用程序需要什麼樣的安全級別以及用例是什麼樣的,所以判斷一個方法是否合適的最佳人選就是你。