как обеспечить безопасную связь между двумя веб-сайтами

Я готовлю систему связи и обмена данными между двумя веб-сайтами и хотел бы улучшить ее, используя предложение, опубликованное членами сообщества Stackoverflow.

Позвольте мне объяснить, как я делаю это прямо сейчас, на следующем примере.

Есть 2 сайта

  • server-example.com (теперь будет называться SE.com)
  • client-example.com (теперь будет называться CE.com)

Перед выполнением обмена данными между сайтами выполняются следующие шаги.

  • С помощью функций openssl_* на SE.com генерируются асинхронные пары ключей.
  • Закрытый ключ хранится на SE.com
  • Открытый ключ отправляется на CE.com через обычный HTTP-запрос (подробный процесс ниже)
  • Открытый ключ кодируется с помощью функции 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 такой же ключ (как и у CE.com)

Теперь предположим, что SE.com необходимо отправить следующую строку «Hello World» на CE.com.

Оба сайта имеют собственную библиотеку для шифрования-дешифрования AES.

  • SE.com использует rkey с функцией шифрования AES для генерации зашифрованного текста.
  • Сгенерированный зашифрованный текст кодируется с помощью функции json_encode и отправляется на CE.com.

Теперь CE.com получает зашифрованный текст

  • При получении зашифрованного текста он декодируется с использованием json_decode и получает строку «Hello World».

Вопросы

  • Безопасно ли общение в Интернете? В смысле веб-безопасности данные, которые передаются между SE.com и CE.com, могут передаваться аналогично запросу GET?
  • Если кто-то попытается прочитать передаваемые данные по пути передачи, сможет ли он их расшифровать и посмотреть, что в них содержится или нет?

    Кроме того, предоставьте предложения по улучшению безопасности и связи.

    Помощь приветствуется.


person I-M-JM    schedule 25.04.2012    source источник
comment
По большей части это ерунда — если вы используете SSL для шифрования передаваемых данных, то вы достаточно защищены от большинства шпионов, и только крупные правительственные учреждения или математические супергении, которые могут быстро разложить большие простые числа, смогут прочитать ваши данные.   -  person Marc B    schedule 25.04.2012
comment
@MarcB не понял тебя по поводу пуха?   -  person I-M-JM    schedule 25.04.2012


Ответы (2)


Внедрение клиентских сертификатов. Хотя использование сертификатов на стороне сервера может предотвратить/предотвратить перехват сообщения, оно не может помешать кому-то, подделывающему SE, в первую очередь общаться с CE.

person Ignacio Vazquez-Abrams    schedule 25.04.2012
comment
Спасибо за предложение. Не могли бы вы также прокомментировать коммуникацию? Предложение по улучшению. - person I-M-JM; 25.04.2012

Вам необходимо использовать person Majoris    schedule 30.04.2012