zoukankan      html  css  js  c++  java
  • iOS数据安全性问题

    作为一个移动互联网App,天生是需要和服务器通信的。那么,服务器如何识别客户端的身份?我们如何保证数据传输过程中的安全性?要靠两个东西:使用AppKey做身份识别,使用AppSecret校验数据。

    这两个东西的定义可以参考淘宝开放平台上这种比较严肃的说法:
    AppKey
    客户端调用API时的唯一标识,服务器通过App Key来鉴别应用的身份。调用API接口时必须传入的参数。
    App Secret
    App Secret是服务端给客户端分配的密钥,用来保证应用来源的可靠性,防止请求数据被伪造。

    其中,AppKey用来标识客户端的身份,通常保密性没有什么要求。就好比别人知道了我们的名字并不能假冒我们的身份一样。但AppSecret就不一样了。
    先说一下App Secret的使用流程。

    一个App请求中,通常包含AppKey、业务数据、时间戳等等。我们把这些信息定义为A、B、C。我们要把A、B、C这些信息发往服务器肯定不能直接扔过去,那么毫无安全性可言。通常的做法是把A、B、C和AppSecret(D)一起需要做一个校验,生成一个校验码(sign client),把校验码和A、B、C一起发送给服务器,服务器收到信息后,根据客户端发来的AppKey从数据库中检索对应的AppSecret,然后也同样把A、B、C和AppSecret(D)一起做一个校验,生成一个校验码(sign server)。如果sign client和sign server相同,就证明数据在传输过程中没有被修改过。
    可以看出,整个过程中D(AppSecret)和校验过程是旁观者无法得知的。但是校验过程无非就那么几种算法,很好破解。所以说,AppSecret的保密工作就很重要了。

    也有一种加密方式是在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。

    Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    http的连接很简单,是无状态的。

    HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全!

     
  • 相关阅读:
    ValidateRequest问题
    通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值
    正则表达式匹配括号中的字符,不包括括号
    C# String
    C# TYPES
    C# History and Future
    Mixing unmanaged C++ and CSharp
    [Tip: property]C#3.0 autoimplemented property
    C#: constant and readonly
    c#:Nullable Types
  • 原文地址:https://www.cnblogs.com/billy-chou/p/4169013.html
Copyright © 2011-2022 走看看