Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как зашифровать данные PIN-кодом? (https://javascript.ru/forum/misc/85157-kak-zashifrovat-dannye-pin-kodom.html)

webgraph 26.04.2023 23:48

Цитата:

Сообщение от MallSerg (Сообщение 551667)
Физический доступ к компьютеру позволяет проводить криптоатаку "человек посередине". Обычно это всякие кейлогеры и расширения браузера.
Что бы этого избежать в систему криптообмена вводят третий фактор не зависящий от скомпрометированной части системы. Например шифрование и расшифровку производит отдельное устройство вставленное в USB порт или сервис в интернете присылает SMS необходимое для расшифровки.
В целом не так важно как третий фактор будет работать с системой главное не полагаться на скомпрометированную часть системы полностью.

Извините, а вы читать умеете?) Речь идет о локальном шифровании, т.е. оффлайн. О каких SMS речь?)

И чем же принципиально отличается USB-флешка от пароля, который вводится для расшифровки данных и вообще нигде не хранится (ну, если только в уме)?

MallSerg 27.04.2023 12:24

Цитата:

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

Цитата:

... вообще нигде не хранится ...
Это мягко говоря очевидная глупость =).В таком случае алгоритм расшифровки не смог бы получить этот пароль и как следствие работать.
Эта и служит источником проблемы заставляя раскрыть секрет пароля уязвимой части системы шифрования.

Цитата:

И чем же принципиально отличается USB-флешка от пароля
Глупо сравнивать такие понятия т.к. такое сравнение теряет здравый смысл. непонятна сама причина такого странного вопроса.

webgraph 27.04.2023 13:04

Цитата:

Сообщение от MallSerg
на телефоне умеет генерировать код для двухфакторной авторизации

Давайте теперь использовать 100500 тысяч устройств, чтобы использовать систему. Сейчас многие пользуются только телефоном, т.е. 1 устройством, поэтому ваша геймерская логика должна отдохнуть.


Цитата:

Сообщение от MallSerg
Это мягко говоря очевидная глупость =).В таком случае алгоритм расшифровки не смог бы получить этот пароль и как следствие работать.

Какая ещё глупость? Всё прекрасно работает — вводишь данные, потом алгоритм запрашивает пароль, которым и шифрует эти данные. После чего сохраняет зашифрованный текст, соль и вектор, т.е. сам пароль не сохраняется ни в каком виде.


Цитата:

Сообщение от MallSerg
Эта и служит источником проблемы заставляя раскрыть секрет пароля уязвимой части системы шифрования.

Иногда вы так пишете, словно пердёжь в лужу. Без логики, без фактов, без доказательств, без какого-то внятного объяснения.


Цитата:

Сообщение от MallSerg
Глупо сравнивать такие понятия

Смотрю в ваших словах слишком часто встречается слово глупость — видимо вы пытаетесь донести то, ваши высказывания глубоко пропитаны глупостью и отсутствием здравого смысла.

Идите лучше учите уроки, у вас ОГЭ скоро. Нечего тут сидеть и нести херню.

Либо выражайтесь конкретно — фактами и доказательствами, без вставки ваших 5 копеек.

webgraph 27.04.2023 13:21

voraa,
Может ты как-то прокомментируешь высказывания от MallSerg?))

MallSerg 27.04.2023 15:39

Цитата:

Какая ещё глупость? Всё прекрасно работает — вводишь данные, потом алгоритм запрашивает пароль, которым и шифрует эти данные. ...
Должно быть очевидно что в этот момент и происходит сохранение пароля в локальной области памяти и передача сохраненной информации в алгоритм шифрующий данные.
Это явно противоречит заявлению - "нигде не хранится".

webgraph 27.04.2023 15:53

Цитата:

Сообщение от MallSerg (Сообщение 551675)
Должно быть очевидно что в этот момент и происходит сохранение пароля в локальной области памяти и передача сохраненной информации в алгоритм шифрующий данные.
Это явно противоречит заявлению - "нигде не хранится".

Данные пароля сразу же высвобождаются из временной памяти после выполнения функции getKeyMaterial — т.е. ещё до того, как текст начнёт дешифровываться. Вы никак не сможете получить данные пароля ни через переменную, ни через что-либо.

Поэтому совершенно непонятно, что вам там "очевидно" — очередные пустые слова без подтверждений.

MallSerg 27.04.2023 16:41

Цитата:

Данные пароля сразу же высвобождаются из временной памяти после выполнения функции getKeyMaterial — т.е. ещё до того, как текст начнёт дешифровываться. Вы никак не сможете получить данные пароля ни через переменную, ни через что-либо.
факты
1. существует таком момент когда пароль хранится (между вводом пароля и вызовом getKeyMaterial).
2. в этот моменть злоумышленник может его сохранить (имеет полный доступ к компьютеру).

вывод
Утверждение - "злоумышленник не сможете получить данные пароля" является ложью.

очевидно или еще нет?

webgraph 27.04.2023 17:19

Цитата:

Сообщение от MallSerg (Сообщение 551677)
факты
1. существует таком момент когда пароль хранится (между вводом пароля и вызовом getKeyMaterial).
2. в этот моменть злоумышленник может его сохранить (имеет полный доступ к компьютеру).

вывод
Утверждение - "злоумышленник не сможете получить данные пароля" является ложью.

очевидно или еще нет?

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

В моём же случае имелось ввиду, что у злоумышленника может быть локальный доступ к системе в том случае, когда рядом нет владельца. Т.е., например, владелец каким-то образом оставил приложение открытым и злоумышленник начал там копаться, чтобы получить доступ к секретным данным. Он может попытаться взломать с помощью перебора паролей.

И в нашем случае речь идет о мобильном приложении PWA.

MallSerg 27.04.2023 18:52

Цитата:

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

повторюсь
Цитата:

Если у злоумышленника есть физический доступ к машине то криптография теряет смысл.
В таких случаях пытаются реализовать другие меры например двух факторную авторизацию. Тогда злоумышленнику понадобиться доступ и к личному телефону или персональному ключу.
Задача двухфакторной криптографии разделить процесс использования секрета пользователя на два независящих друг от друга факта и сделать секрет недоступным злоумышленнику. Например так стим реализует покупки в своем приложении на компьютере, подразумевается что даже если злоумышленник имеет полный доступ к компьютеру то он не сможет совершать покупки т.к. ему остается недоступен код генерируемый приложением на телефоне.

Далеко не факт что это хорошее решение в рамках твоего приложения но не стоит считать такую систему шифрования надежной.

webgraph 27.04.2023 19:02

MallSerg,
А как хранит секретные данные (SEED-фразу) MetaMask?


Часовой пояс GMT +3, время: 03:55.