我浏览了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也有帮助。
答案 0 :(得分:1)
有没有办法读取发送到服务器端的令牌?
没有。 JSONStore API仅从服务器获取随机令牌,它不会向服务器发送任何令牌。
JSONStore第一次使用密码打开集合, 这意味着开发人员想要加密商店内的数据, JSONStore需要一个随机令牌。该随机令牌可以从获得 客户端或服务器。
这来自文档linked above。随机令牌只是JSONStore用于保护数据的安全算法所需输入的一小部分,它不用于加密和解密数据的密钥,并且它本身没用。
您可以使用SecureRandom Java类生成自己的随机数。
顺便说一句,这是一篇解释why secure systems require random numbers的文章。
从客户端获取随机令牌(没有网络呼叫=>更快,您更信任客户端=>可能更不安全,localKeyGen:true
)和服务器(网络)之间存在安全权衡call =>慢,你更信任服务器=>可以说更安全,localKeyGen:true
)。
答案 1 :(得分:0)
AFAIK,令牌(本地生成或远程生成)仅用于加密和解密存储在设备中的JSONStore集合中的数据。所以我的猜测是,为了能够对数据运行某些操作,在服务器端,您需要先将其解密,然后再将其发送到后端servlet。