国产成人欧美日韩综合-久久久久无码国产精品不卡-h双腿涨灌捆绑play慎入-啊灬用力灬啊灬啊灬啊灬a片男男-性疼痛tube小坳交hd-国产精品免费大片-日本亚洲成高清一区二区三区-草莓视频在线观看污污-浴室激情hd-欧美午夜理伦三级在线观看激情伦理-91蝌蚪在线,国产黄色大片在线观看一区二区,午夜精品久久久内射近拍高清,特级做a爱片久久久久久

18600329666

咨詢技術專家

掃一掃
與技術專家在線溝通

Menu
高安全軟件接口通信方案
      普通軟件開發中使用HTTPS即HTTP+SSL進行單項認證通信就能夠滿足接口之間通信安全的需求,但是對于一些設計金融,支付,銀行相關業務,軟件系統設計涉密數據等的軟件系統一般接口間通信必須雙向驗證,信息做好防串改工作
      HTTPS雙向驗證區別于單項驗證(單項驗證開發所有客戶端即不對客戶端做證書驗證),不僅客戶端要驗證服務器端證書,服務器端也要驗證客戶端證書,是否進行雙向驗證取決于服務端。雙向驗證更能保障服務器端接口的訪問安全性,誰獲得過證書,誰才能訪問,比之于單向驗證更有安全性,如下圖所示。
雙向驗證協議示意圖
       雙向認證協議的加密需要借助OPENSSL開源工具,以及一些常用的WEB服務器中間件,如NGINX,APACHE,TOMCAT,WEBLOGIC等,下面以LINUX服務下NGINX為例說明雙向認證協議的配置過程。
服務器端證書的生成與配置

  1. 首先確保服務器已經安裝nginx與OpenSSL,其安裝可參考相關文章
  2. 生成CA 私鑰, ca.key
openssl genrsa -out ca.key 4096
  1. 生成CA數字證書,即跟證書
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
  1. 生成 server 端私鑰
openssl genrsa -out server.key 4096
  1. 生成 server 端數字證書請求
openssl req -new -key server.key -out server.csr
  1. 用 CA 私鑰簽發 server 的數字證書
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
  1. 生成 client 端的私鑰
openssl genrsa -out client.key 4096
  1. 生成 client 端數字證書請求
openssl req -new -key client.key -out client.csr
  1. 用 CA 私鑰簽發 client 的數字證書
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 3650
  1. Nginx配置如下圖所示
雙向認證NGING配置
客戶端完成驗證與接口的訪問
   客戶端請求接口時需要加載證書并發起http請求,當服務器端驗證成功后才能完成后續的通信工作,客戶端實現根據不同的開發語言有不同的實現方式,下列已JAVA與PHP為例說明主要實現過程

  1. PHP語言完成客戶端雙向驗證協議的接口請求
PHP雙向驗證客戶端實現
  1. JAVA語言完成客戶端雙向驗證協議的接口請求
雙向認證協議JAVA語言客戶端實現
防串改實現思路是:
1.客戶端第一次訪問(基于雙向驗證,攜帶固定的賬戶密碼等)服務器端程序時服務前端下發隨機簽名秘鑰(該秘鑰通過AES系列算法進行加密),完成通信接口的第一次通信握手
2.客戶端利用簽名秘鑰SHA1加密算法對傳送數據進行加密處理并以POST方式發送到服務前端
3.服務器根據簽名秘鑰使用對應解密算法進行數據解密及驗證,主要是從解密數據中驗證其下發的簽名秘鑰是否正確,若驗證通過則進行業務數據通信傳輸。
4.其中簽名秘鑰也可以是雙方約定的固定值無需完成第一次接口通信握手