Мульти-платформенная библиотека шифрования данных
Подскажите пожалуйста как мне решить следующую проблему.
Есть сервер и клиент которые используя WEB-сервисы пересылают XML-файлы между собой содержащие различные строковые данные. И клиент и сервер написаны на C# .NET но могут быть на Java. Конечная цель интегрировать и в клиент, и в сервер возможность шифрования данных по принципу:
1. Вначале инициации общения клиента-сервера генерируется уникальный ключ который отсылается принимающей стороне при первом запросе.
2. Все дальнейшее общение шифруется на основе данного ключа.
3. Шифровать надо строки в xml-файле
4. Библиотека шифрования должна использовать зарекомендовавший себя алгоритм шифрования (ГОСТ, и.т.д.), и желательно быть open-source.
5. Ось будет Windows. Заказчик не рассчитывает на Linux, по крайней мере пока.
6. Эту библиотеку должно быть возможно подключить как к коду на C# так и коду на Java, я так понимаю библиотека на языке С/С++ это будет лучший вариант
Подскажите пожалуйста если кто уже работал с подобной задачей как еще лучше всего решить?
Цитата: lexluther
Подскажите пожалуйста если кто уже работал с подобной задачей как еще лучше всего решить?
Очередной велосипед? :mad:
Гуглите в сторону SSL и HTTPS.
Цитата: hardcase
Очередной велосипед? :mad:
Гуглите в сторону SSL и HTTPS.
Гуглите в сторону SSL и HTTPS.
Мне официально запретили использовать вышеназванное вами. Так что вопрос остается открытым
Цитата: lexluther
Мне официально запретили использовать вышеназванное вами. Так что вопрос остается открытым
Несовсем ясен смысл подобного запрета. SSL работает на канальном уровне - т.е. шифрует собственно траффик между клиентом и сервером - это уже отлаженная и гаратированная безопасная связь.
По поводу шифрования самих данных. .NET предоставляет криптографические возможности через пространство имен System.Security.Cryptography - это стандартные алгоритмы DES, TripleDES, Rijndael.
По поводу передачи ключа при первом запросе - это батенька бредятина полная, если не используется несимметричный алгоритм шифрования.
Кроссплатформенные библиотеки шифрования существуют - OpenSSL тот же.