Шифрование данных для доступа к БД

Возник вопрос касающийся шифрования:есть строка, содержащая в себе данные подключения к бд (логин, пароль пользователя, порт и тд). Стоит ли их как-то зашифровывать в коде и расшифровывать во время запросов к базе или как-то по-другому защищать? Пишу код на c#.

Читал на форумах, что стоит пользоваться симметричным и ассиметричным типами шифрования. Например,у пользователя есть публичный ключ, а затем с его помощью расшифровывается симметрично зашифрованная строка (или как-то так этот принцип объясняют...)


Ответы (1 шт):

Автор решения: PashaPash
  1. В случае десктопного приложения - шифрование не поможет. Ну или поможет от уровня "посмотрел в конфиг, а там пароль". Пользователь с правами администратора в любом случае сможет достать пароль пользуясь отладчиком. Возможное решение - использовать Windows auth в случае доменной сети и SQL Server. Тогда воровать будет нечего.

  2. В случае web - шифрование почти не имеет смысла, т.к. защищает от случая "кто-то залез на сервер и утащил оттуда конфиг". Может быть при совместном доступе к серверу, когда другой пользователь может зайти на сервер, почему-то может посмотреть конфиг, это имеет какой-то смысл, но сценарий imho нереальный.

Так что в общем случае - не стоит. Просто не храните пароль в исходниках, подкидывайте его в момент деплоймента, и все будет хорошо.

→ Ссылка