Size: a a a

2020 April 22

M

Mark in BeerJS😺Kyiv
це клієнт банку без авторизації чи що
источник

M

Mark in BeerJS😺Kyiv
скажи хоча б що за банк
источник

M

Mark in BeerJS😺Kyiv
щоб люди встигли гроші забрати
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Mark
скажи хоча б що за банк
ну да, финансовые штучки
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
Можешь рассказать, что вообще за задача?
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Nikita Lyubchich
Можешь рассказать, что вообще за задача?
так выше ж написал в деталях
источник

M

Mark in BeerJS😺Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
условно простой флоу:
1. ты установил аппку себе на моб
2. и только с этой аппки ты можешь дёрнуть апи
3. с любого другого постмана, браузера, курла, вотэва — не можешь
1. після того як я поставив апку я авторизовуюсь?
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Mark
1. після того як я поставив апку я авторизовуюсь?
да, ты получишь токен и будешь его использовать
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
Если финансовые - только просить генерить приватный ключ, переслать публичный, и подписывать каждый запрос - так OAuth и работает
Либо генерировать приватный ключ и отправить вторым, более надёжным, каналом
Можешь посмотреть как работает 1Password в качестве референса
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Nikita Lyubchich
Если финансовые - только просить генерить приватный ключ, переслать публичный, и подписывать каждый запрос - так OAuth и работает
Либо генерировать приватный ключ и отправить вторым, более надёжным, каналом
Можешь посмотреть как работает 1Password в качестве референса
вариант. он у меня пунктом 1 стоит, но не хочется вообще никаких ключей хранить на клиенте. вообще ничего не хочется хранить
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
Как минимум пароль надо
источник

M

Mark in BeerJS😺Kyiv
як ти без секрету на клієнті можеш щось секретно передати на сервер
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Mark
як ти без секрету на клієнті можеш щось секретно передати на сервер
зачем? ты ж там генеришь ключ, и передаёшь его тоже
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
Смотри, к примеру можно так
источник

M

Mark in BeerJS😺Kyiv
ладно останнє питання з клієнту файл без форми будуть слати?
источник

M

Mark in BeerJS😺Kyiv
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Mark
ладно останнє питання з клієнту файл без форми будуть слати?
да, вот тебе статья за смешной прикол: https://hackernoon.com/e2ee-app-backends-286cc94b8a7
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
1. На клиенте генеришь приватный ключ
2. Симметричным паролем (знает только пользователь) шифруешь приватный ключ, публичный прикладываешь рядом
3. Полученный контейнер отправляешь на сервер
4. Сервер сохраняет контейнер в базе

5. Отправляешь клиенту контейнер когда тот попросит
6. Он, на своей стороне, расшифровывает приватный ключ симметричным паролем и подписывает все запросы.

Векторов для атаки тут два: окружение небезопасно во время генерации приватного ключа, и когда  клиент расшифровал контейнер для подписи своих запросов
источник

NL

Nikita Lyubchich in BeerJS😺Kyiv
Но это единственный надежный способ как добиться максимальной сесуриты, не имея 2FA
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Nikita Lyubchich
1. На клиенте генеришь приватный ключ
2. Симметричным паролем (знает только пользователь) шифруешь приватный ключ, публичный прикладываешь рядом
3. Полученный контейнер отправляешь на сервер
4. Сервер сохраняет контейнер в базе

5. Отправляешь клиенту контейнер когда тот попросит
6. Он, на своей стороне, расшифровывает приватный ключ симметричным паролем и подписывает все запросы.

Векторов для атаки тут два: окружение небезопасно во время генерации приватного ключа, и когда  клиент расшифровал контейнер для подписи своих запросов
ну так ты почти е2е и описал, только вместо паблик ключей используются нагенерированные строки
источник