Цель: Website1 отправляет данные пользователя Website2 через http-запросы.
Проблема: сайт2 гарантированно получил данные с сайта1, а не какой-то хакер.
ПРИМЕЧАНИЕ: я не буду использовать HTTPS, я понимаю, что это решит большую проблему, но сейчас GAE не поддерживает SSL для вашего собственного доменного имени: http://code.google.com/appengine/kb/general.html#httpsapps
Итак, я добился большого прогресса, шифруя и отправляя данные между двумя сайтами, а другой - сайт, способный дешифровать и читать данные. Я нахожусь на Google App Engine / Python / Django-nonreal, и эта страница была отличным ресурсом для того, чтобы заставить работать pycrypto: http://code.activestate.com/recipes/576980/ Kn
Так что мне удобно знать, что пользовательские данные зашифрованы и вам нужен ключ для их чтения, но как Website2 ЗНАЕТ, что запрос поступил с Website1? Что мешает хакеру снова отправить тот же самый запрос, и Website2 считает, что этот хакер действительно может делать что-то на Website2?
Например, не мог ли кто-нибудь просто прослушать http-запрос и записать, какие зашифрованные данные были отправлены через линию? И тогда хакер может сделать свой собственный запрос с теми же значениями, которые раньше использовал Website1, и хакер может сделать то же самое с Website2, что и Website1? По сути, хакер сказал бы Website2, что он является действительным зарегистрированным пользователем Website1.
Общая цель: Website2 сообщает пользовательские данные, которые поступают только из запросов от Website1. Любые другие запросы от хакера, который использует те же зашифрованные данные Website1, отправленные на Website2, не будут работать, если только ваш Website1.
Не уверен, что я объяснил достаточно хорошо, или это довольно простое понимание, которого у меня просто нет, но спасибо за вашу помощь.