接口安全机制

90 阅读2分钟

  在对外发布服务接口的时候,定制一套签名机制,保证数据传递有效性。

安全机制的设计方案

单向加密

  在理论上,从明文加密到密文后,不可反向解密的。无论明文多长,加密出来的密文长度固定(无法从密文长度推算出明文)。如果泄露了大量的明文对应密文的对比,可以从密文逆向推到出明文(碰撞)。通过迭代(多加密几次)和加盐(加密时再加上一个字符串,这个字符串也称为盐值)的方式可以减少被破解的可能。

  传递敏感数据时使用,如:密码。所有金融相关的应用中,客户端都有一个独立的密码输入控件,这个控件就是做单向加密的。使用单向加密的时候,传递的数据只有密文,没有明文,也没有密钥。

双向加密

  可以实现加密和解密双向运算的算法。需要通过密钥实现加解密计算的。密钥种类:公钥、私钥。公钥可以对外公开,私钥必须保密。

  A、B之间传递数据时,A用私钥将数据进行加密,加密后将明文、密文、公钥一同发给B,B通过公钥校验密文与明文内容是否一致。B在返回数据的时候,B也有私钥,B通过自己的私钥加密数据,将明文、密文、公钥发送给A,A再通过B给的公钥校验密文明文是否一致。

  双向加密分为:

  • 对称加密
    • 只有一个密钥(公钥)。
  • 非对称加密
    • 有两个密钥,公钥和私钥(这两个密钥未必一样)。

  在传递按群数据的时候使用。所谓安全数据,就是不可篡改的数据。如:金融交易中的收款人卡号、转账的金额、货币的种类等。使用双向加密的时候,传递的有明文、密文、公钥。