У меня есть приложение Silverlight, которое подключается к веб-сервису php.Я хочу зашифровать связь между веб-сервисом и клиентом Silverlight.Я не полагаюсь на SSL.Я сам шифрую / дешифрую строку POST, используя 256-битный ключ AES и IV.
Тогда возникают большие вопросы:
Как мне создать случайную уникальную пару ключ / iv в PHP.
Как мне безопасно и безопасно разделить эту пару ключ / iv между веб-сервисом и клиентом Silverlight.
Кажется невозможным без какого-либо жестко закодированного ключаили iv на клиенте.Что может поставить под угрозу безопасность.
Это общедоступный веб-сайт, здесь нет логинов.Просто требование безопасной связи.
Я могу жестко запрограммировать начальное значение для ключа / iv (который хэшируется с помощью SHA256 с солью метки времени, а затем назначается в качестве ключа или iv) в исходном коде PHP, этона сервере, так что это довольно безопасно.Однако на клиенте семя для пары ключ / iv будет видно, если оно жестко закодировано.
Более того, использование отметки времени в качестве основы для уникальности / случайности определенно не подходит, поскольку отметки времени предсказуемы.Однако он обеспечивает общий фактор между кодом C # и кодом PHP.
Единственный другой вариант, о котором я могу подумать, это задействовать третью службу, предоставляющую ключ / iv клиенту Silverlight,а также веб-сервис php.Это, конечно, начинает цикл заново, с вопроса о том, как сохранить учетные данные для доступа к службе распространения ключа / iv на клиенте Silverlight.
Похоже, что решение - это асимметричное шифрование, поскольку конфиденциальные данные будутпросматривается только на административной части сайта.К сожалению, Silverlight не имеет классов асимметричного шифрования.Решение?Сверните мой собственный обмен ключами Диффи-Хеллмана!Вставьте этот ключ в AES256!