2016-05-05 126 views
2

我們必須確保我們的REST服務是安全的,我們正在考慮使用SSL證書,但有人建議使用代碼簽名證書,我不確定它是否會提供HTTPS協議和安全的客戶端/服務器通信。 (點對點) 互聯網上沒有太多可用的信息,如果有人可以詳細說明,並且讓我知道代碼簽名證書是否也會在瀏覽器中使用https來實現安全的客戶端/服務器通信,將會有所幫助。SSL或代碼簽名證書

在此先感謝。

回答

2

...然而,有人建議使用代碼簽名證書,我不確定它是否會提供HTTPS協議和安全的客戶端/服務器通信。

代碼簽名無濟於事。網絡安全模型不是以這種方式設置的。關於這個問題的一些很好的閱讀是STREWS web security report。它突出顯示了幾乎所有的安全功能,但通常會忽略安全漏洞(即它沒有記錄風險)。

在當前模型下,瀏覽器執行代碼,無論它來自何處。它可能是HTTPS,HTTP或由壞人注入。隨着「作爲平臺的瀏覽器」擴展並變得更加全面,可以與本地應用程序保持一致,目前的模式並不能滿足需求。這是因爲有些API會處理敏感數據,例如Camera,Microphone和Location,所以需要比「任何代碼都可以從任何地方運行」更多的東西。

網絡的模型正朝着Secure Origins移動,以授權代碼在與敏感數據相交時運行。 安全來源所需的唯一東西是用於標識主機的服務器證書。另請參閱Chrome中的Prefer Secure Origins For Powerful New Features以及IETF的web-app-sec郵件列表上的各種討論。

現在應該提到網絡的好時間,使飛躍認證是授權。 X509證書只能識別服務器;它不授權任何特權本身。證明主機身份的CA不會使這些索賠或保證遠離它。和Public Key Pinning with Overrides breaks the presumptions of Secure Contexts

身份驗證是授權是Java與其小程序和沙箱所犯的同樣的錯誤。將Java授權視爲身份驗證非常糟糕,以至於建議變爲「不要求任何權限,因爲它允許您跳出沙箱(並且只有惡意軟件纔會請求權限)」。欲瞭解更多信息,請參閱Java’s Losing Security Legacy

+0

謝謝,這是非常有用的,我會花時間去理解這一點,如果你還詳細說明了代碼簽名證書及其用於HTTPS通信,我理解它可能是基本的,但我在加密技術方面相對天真。 – xslguy

+0

@xslguy - 沒有代碼簽名,因爲它適用於HTTPS和Web服務。或者我沒有意識到任何標準化。例如,請參閱[靜默網絡服務「代碼簽名」](http://www.google.com/search?q=restful+web+service+「代碼+簽名」)。 – jww

+1

您的意思是說HTTPS應該足夠用於點對點安全性,不需要代碼簽名證書。我仍然試圖瞭解這個證書的使用情況,它與SSL證書有何不同以及它如何提供幫助,因此我無法在Google上得到明確的答案。 – xslguy

0

有人不知道他們在說什麼。 SSL端點使用SSL證書進行保護。代碼使用代碼簽名證書進行保護。從來沒有兩個人見面。

+0

我認爲你說的是​​對的,但是我們在討論結束時已經清楚了,任務完成了。 – xslguy