0

我正在准备两个网站之间的通信和数据交换系统,并希望使用 Stackoverflow 社区成员发布的建议来增强它。

让我通过以下示例来解释我现在是如何做的。

有2个网站

  • server-example.com(现在将称为 SE.com)
  • client-example.com(现在称为 CE.com)

在执行站点之间的数据交换之前,执行以下步骤。

  • 使用 openssl_* 函数,在 SE.com 生成异步密钥对
  • 私钥保存在 SE.com
  • 公钥通过正常的 HTTP 请求发送到 CE.com(详细过程如下)
  • 公钥使用 json_encode 函数编码
  • 编码数据推送到 CE.com

更远,

  • 一旦 CE.com 接收到编码数据,它使用 json_decode 函数检索 PublicKey
  • CE.com 使用自定义函数生成随机字符串(称为 rkey)
  • rkey 使用 openssl_public_encrypt 函数加密
  • 加密数据推送到 SE.com

更远,

  • 在接收到加密数据时,SE.com 使用 openssl_private_decrypt 对其进行解密
  • 现在,SE.com 拥有相同的 rkey(与 CE.com 相同)

现在,假设 SE.com 需要向 CE.com 发送以下字符串“Hello World”

这两个站点都有用于 AES 加密解密的自定义库。

  • SE.com 使用带有 AES 加密功能的 rkey 生成加密文本
  • 生成的加密文本使用 json_encode 函数编码并推送到 CE.com

现在,CE.com 获得了加密文本

  • 在接收加密文本时,它使用 json_decode 进行解码并获得“Hello World”字符串

问题

  • 通信网络安全吗?从某种意义上说是网络安全的,在 SE.com 和 CE.com 之间传输的数据可以以与 GET 请求类似的方式传输吗?
  • 如果有人试图在传输过程中读取传输的数据,他是否可以解密它,看看它包含什么?

    此外,提供改进安全和通信的建议。

    帮助表示赞赏。

4

2 回答 2

1

实施客户端证书。虽然使用服务器端证书可以防止/阻止截取消息,但它不能阻止欺骗 SE 的人首先与 CE 对话。

于 2012-04-25T17:22:14.480 回答
0

您需要使用双向 SSL 身份验证

于 2012-04-30T09:54:26.280 回答