0

我正在尝试加密我服务器上的数据库与使用 javascript 的 devExtreme 制作的移动应用程序之间的通信。他们的支持团队提供了一个涉及使用 base_64encode 的示例。这是一种安全的方法吗?这是 DevExtreme 的示例:身份验证请求示例

我无法理解这将是多么安全。据我了解,移动应用程序会对数据进行加密(因此应用程序具有用于加密的密钥/解密方法。如果他们访问了应用程序的源代码,难道没有人能够找到这个密钥吗?)这个加密然后数据被发送到服务器并被解密。发送消息以通知身份验证是否失败。

最重要的是,使用 SSL 连接会在应用程序客户端和服务器之间创建一个私有连接。

对不起,我在上面问了很多问题!让我总结一下:

  1. 在 devextreme 中使用 base64_encode 安全吗?我做了一些研究,看到很多文章说它很容易破解。

  2. 由于密码和用户名必须在应用程序端和服务器端进行加密/解密,
    如果应用程序用户能够访问源
    代码,这不会导致问题吗?

  3. 通过 SSL 连接发送 header/string/json 文件是否足够?如果我要使用 SSL,我需要使用加密吗?

  4. 为了构建安全的
    移动应用程序,应遵循什么准则(如果有)?类似于本指南的内容,但适用于移动
    应用程序。

提前致谢。

4

2 回答 2

2
  1. base64不是加密。是编码。(参见例如编码和加密之间的区别)解码编码数据是微不足道的。因此,在需要加密的情况下(例如交换私人数据)单独使用是不安全的。base64很容易通过肉眼识别,所以如果有人拿到了你的 HTTP 数据包,他们只是得到了你的密码。

  2. 如果您使用未被破坏的算法进行加密,并且攻击者不知道您的私钥 - 您很好。在这种情况下,了解您使用的算法对攻击者没有多大帮助。有关详细信息,请参见例如加密。

  3. 使用 SSL 就足够了。参见例如SSL 的安全性。无需加密相同的东西两次。

  4. DevExtreme 是一个 HTML5/JS 框架,因此您应该寻找有关保护 AJAX 等内容的材料。还取决于您在服务器端使用什么。我想这一切都归结为保护易受攻击的数据传输,以及您的服务器端应用程序,无论您在那里使用什么。这个帮不了你太多。

还有一件事:正如我在 pt 中所写。4、DevExtreme是一个HTML/JS框架。只要有人下载您的应用程序,他们就已经拥有代码,因为 DevExtreme 应用程序不是这样编译的——它们只是 Web 应用程序,因此您的用户唯一无权访问的是您的服务器端代码。

于 2013-09-25T20:32:54.407 回答
0

这种方法是安全的,因为访问 Web 服务的必要凭据被传递给每个 HTTP Web 请求。必须使用 HTTPS,以便通过网络对凭据进行加密。Web 服务必须在发送响应之前检查每个请求的传递凭据。该示例将用户名和密码编码为 base64,以确保所有字符(包括在随机生成的密码中发现的特殊字符)在标头中有效(http 协议)

于 2014-10-05T22:34:59.110 回答