1. 程式人生 > 其它 >RPC實戰與核心原理之安全體系

RPC實戰與核心原理之安全體系

安全體系:如何建立可靠的安全體系?

回顧

非同步化”。呼叫方利用非同步化機制實現並行呼叫多個服務,以縮短整個呼叫時間;而服務提供方則可以利用非同步化把業務邏輯放到自定義執行緒池裡面去執行,以提升單機的 OPS。

呼叫方之間的安全保證

根本原因就是服務提供方收到請求後,不知道這次請求是哪個呼叫方發起的,沒法判斷這次請求是屬於之前打過招呼的呼叫方還是沒有打過招呼的呼叫方,所以也就沒法選擇拒絕這次請求還是繼續執行。

首先我們要有一個可以供呼叫方進行呼叫介面登記的地方,我們姑且稱這個地方為“授權平臺”,呼叫方可以在授權平臺上申請自己應用裡面要呼叫的介面,而服務提供方則可以在授權平臺上進行審批,只有服務提供方審批後呼叫方才能呼叫。但這只是解決了呼叫資料收集的問題,並沒有完成真正的授權認證功能,缺少一個檢票的環節。

集中式認證

更優雅的方式

  • HMAC 就是其中一種具體實現。服務提供方應用裡面放一個用於 HMAC 簽名的私鑰,在授權平臺上用這個私鑰為申請呼叫的呼叫方應用進行簽名,這個簽名生成的串就變成了呼叫方唯一的身份。服務提供方在收到呼叫方的授權請求之後,我們只要需要驗證下這個簽名跟呼叫方應用資訊是否對應得上就行了,這樣集中式授權的瓶頸也就不存在了。

服務發現也有安全問題?

服務提供方啟動的時候,需要把介面例項在註冊中心進行註冊登記。我們就可以利用這個流程,註冊中心可以在收到服務提供方註冊請求的時候,驗證下請求過來的應用是否跟介面繫結的應用一樣,只有相同才允許註冊,否則就返回錯誤資訊給啟動的應用,從而避免假冒的服務提供者對外提供錯誤服務。