有沒有辦法在Volley上簽名http請求?在Volley中籤署HTTP請求
據我瞭解SSL連接。
- 客戶打開連接
- 服務器包含公開密鑰
- 客戶機存儲服務器的公鑰
- 客戶端創建請求和體徵它與服務器的公鑰
- 服務器證書響應使用自己的私人驗證請求鍵
如果服務器發送響應,客戶端驗證響應與服務器的公鑰?
ssl pinning
如何適應這個過程?
有沒有辦法在Volley上簽名http請求?在Volley中籤署HTTP請求
據我瞭解SSL連接。
如果服務器發送響應,客戶端驗證響應與服務器的公鑰?
ssl pinning
如何適應這個過程?
不,它不以這種方式工作。沒有HTTP請求的簽名。總之:
TLS本身不知道HTTP,即不知道HTTP請求和響應是什麼。它只看到它保護的數據流。 HTTP請求和響應是此流的一部分,因此受到保護,但沒有特定的HTTP請求或響應簽名。
我想你已經知道它的主旨了。 SSL固定只是驗證服務器響應提供的CA證書。
我認爲這個網址是正確的。也許它可以幫助你
但是,如果服務器最終發送給我的回覆,我該如何驗證?他應該用公鑰簽名並且客戶端應該使用私鑰進行驗證。 我看不到客戶的私鑰來自哪裏。 –
從更一般的意義上講,可信CA必須事先存在於密鑰存儲區中。當響應到達時,客戶端通過在trustmanager的幫助下檢查該密鑰庫來檢查收到的CA是否可信。您不需要知道客戶密鑰的來源應該滿足某些標準以證明其真實性 –
並且只是最後一個註釋。作爲客戶,我是否使用(某些)私鑰或服務器的公鑰來請求籤名? –
@ JakubGruber:密鑰交換的結果是一個預主祕密,它被轉換爲主密鑰,然後用它來派生加密和HMAC的祕密。確切的細節並不那麼重要,但如果您有興趣,請參閱[SSL/TLS如何工作?](https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work)或擁有看看[TLS標準](https://www.ietf.org/rfc/rfc5246.txt)。 –
所以..流受到保護,因爲我驗證了服務器的密鑰並且我信任它。 (因爲我的公鑰已經固定並匹配)。後來,我發送請求,我不需要簽名。但是,如果我願意? –
@JakubGruber:沒有爲HTTP對HTTP請求進行簽名的機制,如果您在TLS之上使用HTTP(即HTTPS),則也不可能。但是不應該使用HTTPS來做到這一點,因爲TLS的請求就像所有其他受保護的數據一樣不受操縱。 –