Вы можете передавать данные дочерним компонентам, используя props
. Но для более крупного приложения это будет сложнее. Итак, вам нужно использовать библиотеку управления состоянием, такую как Redux
или MobX
.
Моя идея человечески-благоприятного не использующего высокие технологии механизма ответа проблемы:
Преимущества:
Недостатки:
Обратите внимание, что PwdHash является открытым алгоритмом хеширования, Bob может легко реализовать его. Веб-сайт PwdHash работает без обратных передач, все - сторона клиента JavaScript только, никакие оставленные позади трассировки.
Я пропускаю что-то очевидное в предложении простой общественности/закрытого ключа и подписании электронной почты?
Firefox имеет по крайней мере одно расширение для разрешения GPG в веб-почте.
Две опции я могу думать:
Разработка на ответе lassevks:
В моей компании мы используем маркеры SecurID от RSA для удаленной аутентификации.
Это дает Вам 6 чисел цифры, которые изменяются каждые 60 секунд как аутентификационный маркер, предположительно, Ваш маркерный генератор и сервер являются единственными во вселенной, которые знают маркер, который допустим прямо сейчас.
Как низкая техническая альтернатива, ряд n (10, 20, 100 - независимо от того, что разумно в Вашем конкретном случае) коды аутентификации времени могут быть даны Alice. Я попросил бы у нее определенного кода (например, номер 42 в списке). После использования этого кода это становится недопустимым для дальнейшего использования.
Править: См. ответ lacop для хорошей реализации низкого технического решения.
В дополнение к ответу Treb можно использовать одноразовые пароли, которые можно распечатать вместо SecurID. См. "Идеальные Бумажные Пароли" для деталей.
Рассмотрите для создания веб-страницы, которая содержит алгоритм как JavaScript, возможно как загрузка (таким образом, она может загрузить его однажды и нести его вперед на Карте памяти).
Идея состоит в том, что она открывает страницу, проверяет исходный код (весь JavaScript должен быть встроен), и затем вводит ее пароль в текстовом поле на странице. JavaScript переведет это в код, поскольку она вводит (так никакой сетевой трафик, в то время как она делает это; если существует, мог бы быть клавиатурный перехватчик, работающий в фоновом режиме).
После того, как у нее будет код, она может скопировать его где-нибудь.
JavaScript может использовать текущее время в качестве семени. Нарежьте текущее время в пятиминутные интервалы. Большую часть времени использования текущего времени будет достаточно для декодирования пароля и если Вы близко к запуску пятиминутного интервала, попробуйте предыдущим.
Обратитесь на этот сайт за примером: https://www.pwdhash.com/
Если Alice может выполнить код своей машины (например, при помощи JavaScript, который найден на некотором общедоступном сайте, как: http://www.functions-online.com/en/sha1.html), она может получить проблему, хешировать ее вместе с паролем и передать ее обратно.
Вот другое предложение:
Проблемы:
Если Вы не собираетесь использовать PKI, который является бесспорно лучшим решением, попытайтесь использовать систему ответа проблемы как CRAM-MD5 (хотя я предложил бы другой алгоритм выборки сообщений).
Ваши ограничения делают реализацию безопасной криптографической системы почти неосуществимой. Нет ли ничто, что можно сделать для изменения транспорта?
Большая часть простого решения состоит в том, чтобы заставить Bob периодически послать письма на почтовый счет Alice. Когда ей нужно что-то от Bob, она должна ответить использованию одного из этих писем. Bob может поместить некоторые маркеры проверки в почту (почтовый ID или строка, которая должна быть повторена в предмете или теле почты).
Точно так же, как многие из работы схем подтверждения адреса электронной почты.
Недостаток: это только доказывает, что у взломщика есть доступ к почтовой учетной записи Alice, не, что это - на самом деле сама Alice. Для решения этого Вы могли сказать Alice пароль и использовать "прием" страницы HTML JavaScript, таким образом, она может закодировать ключ от Bob, использующего ее пароль.
Это доказало бы, что у нее есть доступ к ее почтовой учетной записи и что она знает пароль.
Существует несколько методов, о которых я могу думать:
Установите зашифрованный сервис https, подобный:
или
Или Вы могли выпустить одноразовые пароли в сочетании с шифрованием XOR
Или можно записать простое Приложение Java (если Java может быть выполнен в машине), который может быть загружен через www и обеспечивает шифрование с открытым ключом.
Простым способом защитить данные в пути, не обмениваясь паролями является three-way-XOR:
Хм... это рассчитало бы как третья сторона?
Настройте брата Bob - Charlie, который доступен из Интернета через HTTPS. Отправить сообщение Bob Alice должно было бы сначала войти в систему Charlie (через простой пароль), и затем Charlie даст ей маркер с одним использованием. Затем она посылает свое электронное письмо наряду с маркером Bob.