【问题标题】:Reading JsonStore token on server side在服务器端读取 JsonStore 令牌
【发布时间】:2015-06-28 01:51:09
【问题描述】:

我浏览了 mobilefirst 文档,了解到 JsonStore 的密钥可以在客户端和服务器端读取:http://www-01.ibm.com/support/knowledgecenter/#!/SSHS8R_6.3.0/com.ibm.worklight.dev.doc/devref/c_jsonstore_security.html

我能够在服务器的响应中看到客户端的令牌。我在客户端使用它来加密数据。我还将数据传回服务器进行一些计算。但是,我无法在没有令牌的情况下解密服务器端的数据。

有没有办法读取发送到服务器端的令牌?
我更喜欢在服务器端使用基于 Java 的 API 来执行此操作,尽管 JavaScript api 也有帮助。

【问题讨论】:

  • 你是否使用默认的 jsonstore 密码机制来保护你的 jsontstore。
  • @Bharasthi - “密钥可以在客户端和服务器上读取” - 你的意思是用来保护 JSON 存储的密钥吗?要清楚地理解,最好以更清晰的方式更新问题。
  • 你能解释一下你是如何在 JSON Store init 上得到服务器响应的吗?

标签: ibm-mobilefirst jsonstore


【解决方案1】:

有没有办法读取发送到服务器端的令牌?

没有。 JSONStore API 仅获取来自服务器的随机令牌,不会向服务器发送任何令牌。

JSONStore第一次用密码打开一个集合, 这意味着开发人员想要加密商店内的数据, JSONStore 需要一个随机令牌。该随机令牌可以从获得 客户端或服务器。

来自文档linked above。随机令牌只是 JSONStore 用于保护数据的安全算法所需输入的一小部分,它不是用于加密和解密数据的密钥,它本身没有用处。

您可以使用SecureRandom Java 类来生成您自己的随机数。

顺便说一句,这里有一篇解释 why secure systems require random numbers 的文章。

在从客户端获取随机令牌(没有网络调用 => 更快,您更信任客户端 => 可能不太安全,localKeyGen:true)和服务器(网络调用 => 更慢)之间存在安全权衡,您更信任服务器 => 可以说更安全,localKeyGen:true)。

【讨论】:

    【解决方案2】:

    AFAIK,令牌(本地生成或远程生成)仅用于加密和解密存储在设备中 JSONStore 集合中的数据。所以我的猜测是,为了能够在服务器端对数据运行一些操作,您需要先在设备中对其进行解密,然后再将其发送到后端 servlet。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2015-03-03
      • 2012-06-20
      • 2023-01-12
      • 1970-01-01
      • 2012-04-18
      相关资源
      最近更新 更多