色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢(xún)技術(shù)專(zhuān)家

掃一掃
與技術(shù)專(zhuān)家在線(xiàn)溝通

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

  1. 首先確保服務(wù)器已經(jīng)安裝nginx與OpenSSL,其安裝可參考相關(guān)文章
  2. 生成CA 私鑰, ca.key
openssl genrsa -out ca.key 4096
  1. 生成CA數(shù)字證書(shū),即跟證書(shū)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
  1. 生成 server 端私鑰
openssl genrsa -out server.key 4096
  1. 生成 server 端數(shù)字證書(shū)請(qǐng)求
openssl req -new -key server.key -out server.csr
  1. 用 CA 私鑰簽發(fā) server 的數(shù)字證書(shū)
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 端數(shù)字證書(shū)請(qǐng)求
openssl req -new -key client.key -out client.csr
  1. 用 CA 私鑰簽發(fā) client 的數(shù)字證書(shū)
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 3650
  1. Nginx配置如下圖所示
雙向認(rèn)證NGING配置
客戶(hù)端完成驗(yàn)證與接口的訪(fǎng)問(wèn)
   客戶(hù)端請(qǐng)求接口時(shí)需要加載證書(shū)并發(fā)起http請(qǐng)求,當(dāng)服務(wù)器端驗(yàn)證成功后才能完成后續(xù)的通信工作,客戶(hù)端實(shí)現(xiàn)根據(jù)不同的開(kāi)發(fā)語(yǔ)言有不同的實(shí)現(xiàn)方式,下列已JAVA與PHP為例說(shuō)明主要實(shí)現(xiàn)過(guò)程

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