Совместимые библиотеки шифрования между клиентом и сервером (Javascript -> C# или Java)

Иногда HTTPS недостаточно. Особенно, когда мы говорим о защите пользовательских данных от троянов с доступом на уровне winsock32, где они могут прослушивать https в виде простого текста или объекты BHO, которые уже имеют доступ к расшифрованным опубликованным данным в памяти браузера.

В этом сценарии я разработал подпрограмму javascript -> classic для клиентского сервера asp, в которой javascript шифрует и отправляет данные, полученные и расшифрованные ASP. Это работает очень хорошо.

Это решение было построено с использованием шифрования xICE, которое обеспечивает хорошую совместимость между JavaScript и PHP или ASP. Но сейчас я перехожу на ASP.NET или Java, и в XICE нет порта для этих сред.

Любое предложение?

3 ответа

Решение

В зависимости от библиотеки JavaScript, может быть достаточно легко портировать на C#, хотя вам, вероятно, захочется пробежаться и немного его реорганизовать. Один из лучших способов выучить язык - это перенести на него библиотеку. Иначе, в JS есть множество реализаций для AES и других. Многие из них оптимизированы для ActionScript и JavaScript (некоторые незначительные отличия от собственно EcmaScript).

Я никогда не слышал о xICE, поэтому я попытался найти дополнительную информацию. Все, что я нашел, это информация, опубликованная компанией, и статья об алгоритме под названием "ICE", который явно не связан. Я не смог найти информацию об алгоритмах, используемых xICE. Информация, которую я нашел, была от 4 до 5 лет.

Все эти признаки соответствуют криптографии "змеиного масла". Вы вряд ли найдете авторитетного поставщика совместимой библиотеки для другой платформы.

Я бы рекомендовал использовать известный алгоритм, такой как AES. Доступны бесплатные реализации JavaScript для поддержки криптографии на стороне клиента. Лично мне нравится прозрачность JavaScrypt (а также кредо его автора), но есть и другие реализации, которые могут быть быстрее.

Такое решение обеспечивает лучшую криптографию и упрощает интеграцию с другими платформами - бесплатно.

По сути, SSL достаточно. Или, скорее, так хорошо, как вы можете получить.

Все, что клиент может увидеть, с помощью JavaScript или иным образом, может быть замечено троянами и тому подобным на клиенте.

Любое JavaScript-шифрование - это безопасность по неясности.

Другие вопросы по тегам