如何实现2个网站之间的安全通信

时间:2012-04-25 17:11:04

标签: php security encryption openssl aes

我准备沟通& 2个网站之间的数据交换系统,并希望使用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)
  • 使用openssl_public_encrypt函数
  • 加密rkey
  • 加密数据被推送到SE.com

此外,

  • 收到加密数据后,SE.com会使用openssl_private_decrypt取消加密数据
  • 现在,SE.com拥有相同的rkey(如CE.com)

现在,让我们假设SE.com需要将以下字符串'Hello World'发送到CE.com

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

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

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

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

问题

  • 通讯网络安全吗?从网络安全的角度来看,SE.com和CE.com之间传输的数据可以像GET请求一样进行传输吗?
  • 如果有人试图在传输途中读取传输的数据,他是否可以对其进行解密,并查看它包含的内容?

    另外,提供改善安全性的建议。通信。

    帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要使用Two-Way SSL authentication