powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация шифрования строки подключения
14 сообщений из 14, страница 1 из 1
Организация шифрования строки подключения
    #40060290
newbie876454
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как обычно организуется безопасное хранение строки подключения к базе для приложения winforms?
юзеры с разных компов запускают свою локальную копию приложения, делают некую работу с базой
конфиг файл с логином-паролем sql-аутентификации должен храниться на каждом их компе, в шифрованном виде

технически понятно: в дот нете есть метод Шифровать-расшифровать, уже из коробки
меня интересует общий алгоритм в своем приложении, как организовать всю вот эту кухню по уму:
1. как первоначально должен задаваться юзер и пароль к базе при первой установке приложения?
2. что если имя юзера и пароль впоследствии изменятся, и придется их менять в строке подключения и заново шифровать? надо придумывать механизм сброса текущего пароля? как тогда сделать, чтоыб его не сбросил злоумышленник? или это по барабану и надо защитить только сам пароль и все?
3. насколько безопасно сделать перенос конфига с логином-паролем на другой комп, чтобы на каждом компе снова не задавать подключение? machine level key тогда отпадает?

может вы знаете какие-то "широко известные в узких кругах" мануалы на эту тему, чтобы не придумывать велосипед?
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060343
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, но если пароль это пользовательская настройка. то есть пользователь запускает программу и вводит пароль, который необходимо запомнить, то проще всего использовать "Безопасное хранилище Windows". Пароли будут сохраняться в "Диспетчере учётных данных" консоли управления.
если это параметры конфигурационного файла программы, то любые танцы с бубном, это пустое сотрясание воздуха и всё это обратимо даже для школьника. Лучший способ, при таком раскладе, не хранить пароль вообще, а использовать аутентификацию windows от текущего пользователя
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060455
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Не использовать подключение к БД с аутентификацией по паролю.
2. Использовать трёхзвенку.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060467
newbie876454
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
windows-аутентификацию мне запретили: говорят что хотят контролировать подключение приложения к бд через одну учетку, а не через множество юзеров.
наверно придется делать что-то "на отвались", с якобы подобием защиты.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060535
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не надо ничего городить своего, это только сделает всё еще хуже. секция connectionString может быть зашифрованной. Этого вполне достаточно, для безопасности. Суть такой защиты в том, что украсть сам файл конфига не расшифровав его заранее, невозможно. А для дешифрования надо права админа. Для чтения вроде тоже, но это не точно.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060537
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мы ничего не шифруем. параметры просто подставляются в конфиг приложения при деплое.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060543
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
мы ничего не шифруем. параметры просто подставляются в конфиг приложения при деплое.
winforms же
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060551
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
hVostt
мы ничего не шифруем. параметры просто подставляются в конфиг приложения при деплое.
winforms же


десктопное приложение должно свои конфиги хранить в AppData. а для хранения кредов есть специальное хранилище в винде, называется Credential Manager, или Диспетчер учётных данных.

вот примерчик нагуглил https://github.com/ilyalozovyy/credentialmanagement
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060576
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
десктопное приложение должно свои конфиги хранить в AppData

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

hVostt
а для хранения кредов есть специальное хранилище в винде, называется Credential Manager, или Диспетчер учётных данных

Здесь нюанс в том, что кред может быть записан в это хранилище а) самой программой без участия пользователя - это означает, что кред зашит в какую-то из сборок программы, и, следовательно, может быть вытащен оттуда третьими лицами, что не есть хорошо; б) как результат ввода креда пользователем через интерфейс - но, насколько я понял ТС, пользователь этого пароля не знает, и не должен знать.
Ну, и выше ещё было озвучено требование переноса кредов между компьютерами, что в случае Credential Manager (насколько я помню, там используется DPAPI) проблемно.

newbie876454
windows-аутентификацию мне запретили: говорят что хотят контролировать подключение приложения к бд через одну учетку, а не через множество юзеров.

Это им (админам) просто лень возиться с логинами/юзерами БД на сервере. И как организуется разграничение доступа посредством ролей БД, видимо, они тоже не знают. Конечно, проще на все случаи жизни сделать пользователя с правами dbo (или sa), и трава не расти. Только вот именно контроль работы пользователей в БД от этого становится не проще, а сложнее.
Ну да б-г с ними. В данном случае самый лучший вариант - трёхзвенка. WCF, gRPC, итд.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060635
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>newbie876454, вчера, 11:02 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1335024&msg=22305305][22305305]
>...безопасное хранение строки подключения к базе для приложения...
<
Расмотри как вариант
Решение почти аналогичного вопроса - для MSSQL и PostgreSQL.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060717
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

ваша дипломная работа?
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060816
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Roman Mejtes, сегодня, 14:37 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1335024&msg=22305985][22305985]
>ваша дипломная работа?
<
Нет. Часть построения этого .
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060856
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, перечитал повнимательней и дошло что ниже не стоит предлагатъ

Например в вот это:
System.Security.Cryptography
Microsoft.IdentityModel
оборачивается вот это
System.Convert ... base64 ... System.Text.Encoding
сертификаты там, ключи шифрования, алгоритмы и пр.
...
Рейтинг: 0 / 0
Организация шифрования строки подключения
    #40060927
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Решение почти аналогичного вопроса - для MSSQL и PostgreSQL.


Нет там никакого решения.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация шифрования строки подключения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]