【问题标题】:Secure web service requests安全的 Web 服务请求
【发布时间】:2012-01-24 00:24:56
【问题描述】:

我需要通过 android 应用程序向网络服务发出请求。 可以根据需要设计网络服务。

在我看来,无论我选择哪种方法,想要破解它的人只需要对我的 android 应用程序代码进行逆向工程(这不是很难)和 可以确切地看到我在做什么,无论我加密数据、使用硬编码密码还是任何其他解决方案。

有没有 100% 安全的解决方案?

【问题讨论】:

  • 看看这个。我认为他们在问同样的事情:stackoverflow.com/questions/2320937/…
  • 我在提出问题之前确实阅读了这个答案 - 但我认为它不能解决对应用程序进行逆向工程的问题。
  • 可以对数据进行加密,将key的hash存入db,对db进行加密。这应该更难破解
  • 没有 100% 安全,永远不会。如果您的用户(即应用程序)需要访问它,您必须在某个时候在设备上同时拥有锁和钥匙。您唯一的选择是更难阻止不那么敬业的攻击者。

标签: android web-services security


【解决方案1】:

您担心“黑客攻击”,但任何安全讨论的基础都是定义风险。

您要防范什么?

例如,您是否试图防止攻击者读取他人与服务器的连接?

对于这种情况,一个简单而安全的解决方案是使用非对称密钥交换来交换对称加密密钥,或者使用执行此操作的现有协议(例如 HTTPS)。嵌入服务器的私钥(或证书,如果使用 HTTPS)也可以防御中间人攻击。对您的应用程序进行逆向工程不会帮助攻击者。

【讨论】:

    【解决方案2】:

    没有 100% 的安全,你所能做的就是让攻击者更难对付。您可以考虑的事项:

    • 加密 - 通过加密通道传递您的请求将停止 基本嗅探(这可以用 MITM 来对付)

    • 混淆 - 当他们反编译您的应用时,让您的意图更难理解

    对此的第二部分是缓解 - 能够注意到您的应用程序何时受到攻击并进行处理。处理此问题的典型方法是在第一次运行时为每个客户端分配一个唯一令牌,然后在每次调用您的服务时将其作为参数传递。

    这样,如果有人反编译您的应用程序并弄清楚如何调用您的服务,您至少可以开始监控滥用请求的来源并监控可疑行为(即在短时间内来自同一密钥的多个请求)不同的 IP 地址)。从那里您可以开始阻止密钥。

    【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2020-01-19
    • 2019-04-20
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多