代码之家  ›  专栏  ›  技术社区  ›  Questioner

在移动web应用程序中存储“应用程序机密”的最佳方式是什么?

  •  0
  • Questioner  · 技术社区  · 6 年前

    我想开发一个“

    我决定开发一个混合移动web应用程序。 然而,问题是在使用JavaScript开发移动web应用程序时,如何安全地存储应用程序机密?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Exadra37    6 年前

    我想用JavaScript开发一个“响应式移动web应用程序(iOS/Android)”,与智能合约和区块链交互。

    我不清楚您是指将移动应用程序编写为在移动环境中完全响应的网站,还是考虑使用诸如Ionic、React Native或其他框架编写。

    如果是一个有响应的网站,请忽略我的回答,一旦没有安全的方式来确保他们的秘密,就我所知的其余部分。

    在客户端运行的任何东西都容易受到使用诸如 Xposed Frida .

    正如您已经指出的,移动或区块链不是存储应用程序机密的好地方。

    可能的解决办法

    为了加强您的移动应用程序与API服务器之间的通信,您应该使用移动应用程序认证服务,该服务将通过使用集成在您的应用程序中的SDK和在云中运行的服务,在运行时保证您的应用程序未经修改或未在越狱或根设备中运行。

    成功认证应用程序完整性的云服务会出现以下问题: JWT token 使用只有API服务器和云服务知道的秘密签名,失败时,使用API服务器不知道的假秘密签名JWT令牌。这种方法将允许API服务器仅在能够验证JWT令牌中的签名并在验证失败时拒绝它们时,才为请求提供服务。

    一旦云认证服务所使用的秘密不被移动应用程序知道,即使在应用程序被篡改、在有根设备中运行或通过连接成为中间人攻击目标的连接时,也不可能在运行时逆向设计它。

    在…上 this article

    暴露

    Xposed是一个模块框架,可以在不接触任何apk的情况下更改系统和应用程序的行为。这很好,因为这意味着模块可以在不做任何更改的情况下为不同版本甚至ROM工作(只要原始代码没有太多更改)。它也很容易撤销。由于所有更改都在内存中完成,您只需停用模块并重新启动即可恢复原始系统。还有许多其他优点,但这里还有一个:多个模块可以对系统或应用程序的同一部分进行更改。使用修改后的APK,您可以选择一个。除非作者使用不同的组合构建多个APK,否则无法将它们组合起来。

    弗里达

    面向开发人员、逆向工程师和安全研究人员的动态检测工具包。

    JWT Token

    基于令牌的身份验证