インタフェースのセキュリティを保証する方法、対称暗号化、非対称暗号化、検証署名(md 5)、トークン、ゲートウェイ、検証コードなど


インタフェースデータ暗号化
1.我々のインタフェースに対して対称暗号化を実現し、パッケージをつかむ時に明文のデータが見えないが、解読することができる.クライアントとサーバーは同じ鍵を採用して復号を実現するので、クライアントコードを逆コンパイルすることによって鍵の解読を実現することができ、対称暗号化Des、Aes
2.非対称暗号化RSA公開鍵と秘密鍵の交換メカニズムを使用し、クライアントは公開鍵を使用して暗号化を実現し、サーバー側は秘密鍵を採用して復号を実現し、ハッカーが公開鍵を解読してもデータに対して復号を実現できない.
rsa非対称暗号化:鍵ペア(秘密鍵と公開鍵からなる)です.現在公認されている最も安全な暗号化演算です.
rsa非対称暗号化原理:公開鍵を用いてデータを暗号化するには、秘密鍵で復号する必要がある(鍵対の秘密鍵).
-対称復号化速度はRSA非対称暗号化よりも速いが、安全ではない.
// rsa         
main(){
  // 1.   publicKey
  // 2.   privateKey
  
  // 3.   qizhentao
  
  // 4.         ,    。

  // 5.         ,        。
}

署名の検証(チェック):
urlが伝達するデータはまだ明文であるが、サービス側はmd 5検査を行い、md 5の値で伝達するパラメータを比較し、変化が発生しているかどうかを確認する.
例:
1.商品はfromフォームでパラメータを支付宝に提出する.パラメータMoney=1000&orderNumber=10000でmd 5値sign=YP 8 CFwTwTwTcEidfcxZ 1 NmMZ%2 FiV 5%2 BSw 8 Ihn 8 sorz 6 lVdENKbQDf 5 Iを生成する.
1.1. 最終的に渡されるurl:http://www.zhifubao.com?Money=1000&orderNumber=10000&sign=YP8CFwTwTcEIdfcxZ1NmMZ%2FiV5%2BSw8Ihn8sorz6lVdENKbQDf5I
2.アリペイサーバー側受信パラメータ
 Money=1000&orderNumber=10000&sign=YP8CFwTwTcEIdfcxZ1NmMZ%2FiV5%2BSw8Ihn8sorz6lVdENKbQDf5I
明文のMoneyとorderNumberデータをmd 5値にし、sign署名と同じかどうかを確認します(md 5値は同じ改ざんとして表されます).
MD 5の使用
MD 5を用いて我々のパラメータに対して検証署名(以上のdemoを参照)を実現することができるが、データは明文を転送し、データの改ざんを防止することができる.
トークンの使用
rpc伝達パラメータ中にトークンを使用して実際のパラメータを非表示にします.たとえば,ログインに成功してユーザ情報生成tokenをredisに格納し,keyをクライアントに応答する.
HTTPS
1.インターネット電子商取引プロジェクトはいずれもHttpsプロトコルssl+証明書暗号化伝送デフォルト443を採用し、私たちのHttpプロトコルは明文を採用してデータ伝送を実現し、効率は比較的にHttpsが高いが、安全ではない.
ゲートウェイ
apiゲートウェイフィルタによるxss、sql注入防止の問題
alert(‘ss’)
白黒リスト
  • 我々のapiインタフェースに対してブラックリストとホワイトリスト制御を実現
  •  Money=1899&orderId=123456  
    サービス保護関連
    デルのインタフェースのサービス保護、ストリーム制限、溶断を実現
    検証コード
    グラフィック検証コードを使用してマシンシミュレーション要求を防止する