Я хотел бы, чтобы код, обрабатывающий регистрацию пользователя на example.com
, немедленно отправлял запрос https
на exampletwo.com
(который, конечно, проверяет его на основе сертификатов), означая "добавить этого пользователя с этими учетными данными". Этот подход представляется работоспособным для любых двух веб-серверов / сред / языков, если они могут отправлять и получать HTTPS-запросы и проверять подлинность сертификатов.
Если вы не можете аутентифицировать сертификаты, вы можете отправить сообщение «Добавить этого пользователя» в зашифрованном виде (при условии, что эти два сайта могут совместно использовать секрет для шифрования). Это может быть уязвимо к атакам воспроизведения, но если вы сделаете временную метку частью сообщения «добавить этого пользователя», вы можете сильно ограничить временной интервал уязвимости для атак воспроизведения, вероятно, достаточно, чтобы сделать этот подход жизнеспособным.
Если вы не можете безопасно делиться секретами между двумя сайтами, не все потеряно: вы все равно можете использовать открытый ключ. Отправитель зашифровывает «добавить это сообщение пользователя» (включая, конечно же, временную метку) своим личным ключом, а затем открытым ключом получателя; получатель расшифровывает то, что он получает, с помощью своего собственного закрытого ключа, а затем с помощью открытого ключа отправителя. Немного грязно и, возможно, немного медленно, но при таких сложных ограничениях удивительно, что это все еще можно сделать вообще; -).