我正在准备两个网站之间的通信和数据交换系统,并希望使用 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 请求类似的方式传输吗?
如果有人试图在传输过程中读取传输的数据,他是否可以解密它,看看它包含什么?
此外,提供改进安全和通信的建议。
帮助表示赞赏。