1

我想確保從服務器收到的內容實際上來自服務器,並且在傳輸過程中未被篡改。 我有一個從服務器發送命令到移動設備的應用程序。爲了節能目的,將這種有效載荷包含在GCM消息中將是很好的。但是,如果有人試圖模擬服務器併發送不正確或惡意的命令,那將會很糟糕。我想知道GCM是否提供了這方面的機制,如果僅僅對消息進行簽名就足夠了,或者如果最好使用GCM喚醒應用程序,然後使用另一個通道接收命令,即使消耗少量的額外的能量。Google雲消息傳遞是否提供/支持身份驗證,完整性和不可否認性?

+2

你相信谷歌嗎? – flup 2013-03-13 00:49:27

+0

呃...我可以信任他們這個。我沒有看到他們攪亂我的信息的動機。發送的消息內容不是私人的,但它必須來自服務器,而不是惡意的第三方。 – cloudraven 2013-03-13 01:20:53

回答

1

如果要驗證郵件是否來自服務器,則應使用公鑰/私鑰對中的私鑰對其進行簽名。然後您可以使用公鑰在客戶端驗證簽名。這樣你就知道請求來自服務器(假設你的私鑰沒有被泄露,保持安全!)。這是Windows更新的工作方式,以及APT和YUM。

但請注意,這隻會阻止某人冒充您的服務器。它不會加密數據,也不會保證客戶端的任何信息。您不能做相反的事情(用客戶端私鑰簽署客戶端始發數據),因爲來自客戶端的任何內容都可能被篡改/欺騙或以其他方式惡意。如果您希望客戶端信息被加密,您可以使用服務器公鑰對其進行加密,只有服務器的私鑰才能對其進行解密。

+0

謝謝!我也這麼想。我想知道是否有內置的機制來做到這一點,或者如果有一個問題,我忽略了這個問題,那只是通過簽名才能解決。 – cloudraven 2013-03-13 08:08:28

相關問題