Является ли Javascript подходящей платформой для криптографии? Или может быть?

Некоторое время назад я заметил, что Википедия ссылается на Реализация Javascript различных хэш-функций. Также нашел Clipperz Crypto. Даже Mozilla реализует крипто-объект в Firefox.

Итак, Является ли Javascript подходящей платформой для криптографии? Или может быть?
Или, я полагаю ... Есть ли какие-либо цели или преимущества для хеширования данных перед POST?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
0
2 145
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Я не понимаю, почему криптографическая функция не может быть реализована с использованием javascript.

Однако .. Криптография - ресурсоемкий процесс.

По сравнению с скомпилированным кодом Javascript медленный.

Больше нет, благодаря V8, Squirrelfish и TraceMonkey. Остался только IE.

Mauricio Scheffer 12.10.2008 18:24

Да, осталось только 80% рынка ...

gizmo 12.10.2008 18:46

даже V8 медленнее по сравнению со статическим скомпилированным кодом.

Nils Pipenbrinck 12.10.2008 19:34

Вы можете зашифровать данные с помощью JavaScript; однако я не уверен в преимуществах. Потому что, если вы используете, скажем, bas64, вам нужно отправить ключ шифрования клиенту, и если кто-то может перехватить зашифрованную информацию, он / она, вероятно, также сможет перехватить ключ шифрования.

Никогда не используйте это для замены сертификатов SSL.

Да, это правда, я не могу придумать, как безопасно передать ключ на стороне клиента. Отредактировали мой комментарий.

alexmac 12.10.2008 18:18

Как вы сказали, JS не следует использовать для сквозного шифрования; однако есть некоторые службы, которые предлагают безопасную электронную почту, выполняя шифрование / дешифрование на стороне клиента и сохраняя только зашифрованную информацию на сервере.

Kyle Cronin 12.10.2008 18:29

Криптография с открытым ключом фактически предназначена для такого рода ситуаций, когда вы не можете доверять распространению ключа (или пользователю ключа). Я не могу придумать ни одного приложения, где это было бы полезно через SSL, как вы говорите.

andy 29.10.2008 13:49
Ответ принят как подходящий

В Javascript используются функции хеширования, например, проверка клиентской части кода проверки (путем сравнения хэша в сеансе с вычисленным хешем из ввода). Очевидно, что его использование ограничено, поскольку он работает почти исключительно на стороне клиента (и вы не можете доверять вводу клиента), но потенциал есть.

Вопрос о том, можно ли доверять вводу клиента, полностью ортогонален вопросу о том, является ли Javascript подходящей платформой для криптографии. Этот недавняя статья утверждает, что это не так, некоторые люди не согласны.

Sebastian 31.08.2011 19:47

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

Но можно сделать md5 или другой тип шифрования на стороне клиента, что даст вам достаточно безопасный способ проверки, который вы могли бы протестировать на стороне сервера! -)

Я вижу по крайней мере одно применение: если вы отправляете клиенту зашифрованные данные, а затем расшифровываете их в JavaScript на основе ключа / пароля, который пользователь вводит локально. Это предполагает общий ключ или известный пароль, который вы использовали для первоначального шифрования данных на сервере. Кроме того, эти функции часто используются вредоносным и / или запутанным JavaScript.

Ответ зависит от того, чем вы хотите заниматься.

Если вы хотите использовать криптографию на стороне клиента, в автономном режиме, в постоянных веб-приложениях, тогда да. Так, например, вы хотите зашифровать все данные, которые хранятся во встроенной базе данных, используя спецификацию HTML 5 globalStorage (). Затем используйте шифрование javascript, потому что вероятность того, что у вас не будет соединения для обработки всей криптографии на стороне сервера.

Если нет, используйте проверенные и проверенные методы.

В этих статьях блога описываются полезные применения криптографии в JavaScript:

Для безопасной идентификации:

http://digitalbazaar.com/2010/08/07/webid/

Для обеспечения безопасного интерфейса для приложений localhost со встроенными серверами через веб-сайт:

http://digitalbazaar.com/2010/07/20/javascript-tls-1/

http://digitalbazaar.com/2010/07/20/javascript-tls-2/

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