Как создать безопасный доступ к RestAPI-приложения (WPF) - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать приложение (в c # WPF), которое должно взаимодействовать с RESTApi.Я хочу создать RESTApi самостоятельно.

Поэтому в данный момент я пытаюсь выяснить, как лучше всего разрешить пользователю моего приложения c # войти в RESTApi, чтобы он мог получать данные из базы данных.

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

Но в моем конкретном случае я думал о сохранении хеша в моей базе данных с определенной солью, используя алгоритм blowfish.Далее я бы реализовал логику, которая будет предоставлять комбинацию соли, например, комбинацию имени пользователя, некоторого перца, соли и фактического хешированного пароля.Может быть, даже последовательность, которую я мог бы встроить в эту логику.Что было бы трудно реализовать, если я хочу использовать Приложение на разных компьютерах, потому что я должен запомнить последнюю последовательность.В любом случае, и RESTApi, и мое WPF-приложение будут знать эту логику для создания хэша, который будет отличаться каждый раз, когда я вызываю логику (из-за последовательности).Таким образом, я мог сопоставлять результат каждый раз, когда использую логику.

В основном я провел некоторое исследование алгоритмов хеширования.Я нашел BCrypt для C # и PHP.Я уже достиг создания Hashs-пароля, который пользователь будет вводить в моем приложении WPF.С другой стороны, я использовал crypt () на своем сайте, чтобы создать хэш blowfish.Оба отлично совпали (используя одну и ту же соль).

Мои мысли были таковы: как я могу передать хешированный пароль в мой RESTApi без сохранения / передачи паролей в открытом тексте.

Итак, мой основной вопрос:Есть ли лучший способ?Я на правильном пути, чтобы создать наполовину безопасную «логику».Или достаточно использовать Baisc / Digest Authentication, если я использую SSL?

Я знаю, что добиться безопасности очень сложно, но я действительно хочу узнать, как я могу реализовать такие вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...