Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675

Хранение ключей шифрования

25.09.2010, 16:26. Показов 7325. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане!
Пользую стандартные .NET'ие реализации симетричных алгоритмов для шифрования файлов.
Возник вопрос: как безопаснее хранить используемый ключ шифрования?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2010, 16:26
Ответы с готовыми решениями:

Хранение ключей симметричного шифрования
Пишу программу, использующую алгоритм шифрования AES. Озаботился хранением ключа и вектора инициализации. Хранить буду в файле. Вопрос: как...

Хранение ключей шифрования
Есть программа, которая шифрует некоторые файлы. Шифруется симметричным алгоритмом(ассиметричный использовать не подходит), ключ задается...

Хранение ключей в .dll
Знаю одного человека, который реализовал хранение ключей в .dll И при запуске программы постоянно качается новая версия этой .dll и кдючи...

16
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
25.09.2010, 17:01
А ключ создаете Вы или пользователь?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:06  [ТС]
SSTREGG, я, у меня есть комплект ключей для шифрования различных типов файлов, которыми должна оперировать программа.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
25.09.2010, 17:56
Пока на ум приходит вариант хранить ключи в файле (шифрованном), и блокировать обращение к этому файлу (лучше всего драйвером) или создавать шифрованный раздел на диске... Либо хранить ключи на каком-нибудь внешнем устройстве... Но эти варианты могут быть очень затратными по времени их реализации, или финансово, к тому же всё зависит от того где программа будет применяться )

В общем я склоняюсь к варианту хранения ключей в каком-нибудь зашифрованном хранилище, тот же файл к примеру.
В любом случае кому надо будет, тот найдет способ обойти защиту...
1
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 18:11  [ТС]
Цитата Сообщение от SSTREGG Посмотреть сообщение
Пока на ум приходит вариант хранить ключи в файле
Файл не подойдет - случись, что с ним и все - никогда не сможем ничего расшифровать.
Цитата Сообщение от SSTREGG Посмотреть сообщение
Либо хранить ключи на каком-нибудь внешнем устройстве...
Шифрование файлов (например с данными пользователей) - это лишь заморочки самой программы, пользователь о нем вообще ничего знать не должен, поэтому, к сожалению, этот вариант не пойдет.

Можно в принципе в ресурсах самого приложения их разместить, но вот боюсь, не будет ли это легкой добычей для потенциального взломщика?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
25.09.2010, 18:39
В .NET принципиально всё "лёгкая добыча для взломщика". Для нормальной защиты нужен нормальный обфускатор, а для этого нужны деньги...
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 18:49  [ТС]
Ладно, и на том спасибо!
Пока буду хранить ключи в ресурсах сборки.

Буду очень рад, если кто нибудь подскажет более безопасный вариант хранения.
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
21.10.2010, 17:20
Стоит обратить внимание на объект класс CspParameters. Он позволяет безопастно хранить ключи, правда, только для ассиметричных алгоритмов. Но здесь все проще - сохраняем ассиметричный ключ в безопасном хранилище, с его помощью шифруем файл с нужными ключами. Так и работаем.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
21.10.2010, 18:30
Цитата Сообщение от planar Посмотреть сообщение
сохраняем ассиметричный ключ в безопасном хранилище
Безопасное хранилище это CspParameters? Оно (точнее SecureString) хранит ключ в зашифрованном виде, в памяти. Если его (зашифрованный ключ) сохранить на диск, то восстановить его после завершения процесса будет невозможно.
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
21.10.2010, 18:43
Неправда Ваша

Из MSDN

key container
A part of the key database that contains all the key pairs (exchange and signature key pairs) belonging to a specific user. Each container has a unique name that is used when calling the CryptAcquireContext function to get a handle to the container.
Класс CspParameters - надстройка над CryptoApi.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
21.10.2010, 18:53
Цитата Сообщение от planar Посмотреть сообщение
Из MSDN
Ссылку на цитату пожалуйста.
Цитата Сообщение от planar Посмотреть сообщение
Класс CspParameters - надстройка над CryptoApi.
Если уж не веришь мне, то залезь в рефлектор и посмотри. Максимум что там используется это SecureString, которая в свою очередь использует API RtlDecryptMemory и RtlEncryptMemory из advapi32.dll.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
22.10.2010, 11:40  [ТС]
Цитата Сообщение от planar Посмотреть сообщение
Стоит обратить внимание на объект класс CspParameters.
Насколько я понял ключи хранятся в базе для конкретного пользователя. Это не то, что мне нужно. Необходимо свободно передавать зашифрованные файлы между компьютерами. Грубо говоря у меня есть один ключ с помощью которого шифруются все файлы, с которыми оперирует программа. Мне нужно хранить этот ключ (внутри сборки) наиболее безопасным образом.
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
22.10.2010, 11:48
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Насколько я понял ключи хранятся в базе для конкретного пользователя.
Именно так. Смысл в чем - при первом запуске на компьютере, программа создает защищенный ключ, шифрует файл с ключами, и пользуется только зашифрованным файлом. Опасность только в том, если кто-то установочный дистрибутив распотрошит и заберет ключики. Но это надежнее, чем хранить их в открытом виде в ресурсах.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
22.10.2010, 12:47  [ТС]
planar, т.е. ты предлагаешь вынести ключи в отдельный файл и при установке программы устанавливать этот файл на машину пользователя? Не будет ли это еще хуже, чем хранение в ресурсах?
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
22.10.2010, 12:50
Именно. И после первого запуска (а можно и во время установки) зашифровать его ключом под ту машину. По крайней мере, ключи меньше открыты будут, чем при хранении в ресурсах.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
22.10.2010, 22:21  [ТС]
planar, что в таком случае мешает получить доступ к файлу с ключами в дистрибутиве?
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
22.10.2010, 22:25
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
что в таком случае мешает получить доступ к файлу с ключами в дистрибутиве?
Ничто. Но все равно - это надежнее, чем в открытую хранить в ресурсах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.10.2010, 22:25
Помогаю со студенческими работами здесь

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

Как организовать хранение ключей QSettings?
Всем привет! QSettings стал использоваться у меня во многих местах в программе и надоело каждый раз вводить повторяющиеся ключи и группы....

Хранение двух одинаковых ключей в HashMap
Если создать такую хэш функцию(hashCode так переопределить) которая для разных обьектов класса будет возвращать одинаковый хэш код(например...

Вывод значения ключей массива по условию совпадения других ключей
Есть массив $arElements Array ( => Array ( => first => Name =>...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru