Hardware Key22.02.2023, 16:02. Показов 1571. Ответов 29
Метки нет (Все метки)
Добрый день
Есть "ключ" который вставляется в USB. SDK ключа предоставляет чтение/запись в память ключа и шифрование, пара ф-ций encrypt/decrypt, шифрованная инфа уникальна для каждого ключа. Ну сделал так чтобы приложение (на старте) сообщало и завершалось при отсутствии ключа или если в нем не записаны нужные данные. Теперь надо сделать так чтобы приложение не могло писать файлы данных. Вернее без ключа пусть пишутся невалидные данные, и втихаря, без всяких месяг юзверю. Хочется сделать без "if'ов". Просто использовать шифрование не годится, нормальные файлы должны читаться с др ключом, демо-версией и др приложениями. Что посоветуете ? Спасибо
0
|
|
| 22.02.2023, 16:02 | |
|
Ответы с готовыми решениями:
29
При запуске вылазит Hardware Monitor Press any key to restart Преобразовать многомерный массив [key][key][key] => value #1170 - BLOB/TEXT column 'id' used in key specification without a key length |
| 25.02.2023, 15:34 [ТС] | ||||||
|
Апну темку, актуально. Попробуем с чего-то начать. Напр так работать будет
Сам такое в молодости сколько раз забивал nop'ами. Учтем что decrypt/encrypt - вызовы внешние и присесть на места их вызовов несложноНе по теме: Молчание удивляет, думал тут много знатоков кода:) И Шамиль куда-то исчез..
0
|
||||||
|
653 / 161 / 64
Регистрация: 08.04.2015
Сообщений: 411
|
|||||||||||
| 25.02.2023, 16:12 | |||||||||||
|
Замените
0
|
|||||||||||
|
|
||
| 26.02.2023, 07:14 | ||
|
Еще неприятностей можно добавить размазав проверки по разным участкам кода и сделав их рандомными. Или по расписанию. Ну, скажем, "неделька" -- одна проверка срабатывает по понедельникам, вторая по вторникам - и так далее.
0
|
||
| 26.02.2023, 09:51 [ТС] | ||||||||
0
|
||||||||
|
|
||
| 26.02.2023, 13:16 | ||
|
0
|
||
| 26.02.2023, 14:08 [ТС] | ||
Ну хорошо, вот 3 маски (см выше), их разбросать - не проблема. Но откуда их взять (т.е. как привязать к ключу) ?Не по теме: Подозреваю что дальше общих слов дело не пойдет. Ладно, посмотрим, в людей надо верить :)
0
|
||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 01.03.2023, 16:01 | ||
|
Такой подход дает преимущество в том, что как программу ни ломай, валидный файл все равно формировать не сможешь, т.к. нужен ключ, а ключа-то и нет. И даже если сломать программу так, что она будет писать неподписанные данные или подписывать их левым ключом и будет корректно читать такие файлы, то передавать файлы пользователям оригинальной версии бесполезно, у них будет лишь "неверный формат файла" при попытке открытия.
0
|
||
| 01.03.2023, 16:25 [ТС] | |||
|
Не очень понял
0
|
|||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 01.03.2023, 17:03 | ||
|
Для каждого устройства USB вы формируете ключ. Секретную часть ключа записываете на устройство и больше её нигде и быть не должно, только на устройстве в неизвлекаемом виде. А публичную часть ключа подписываете своим личным ключом и тоже записываете на устройство USB. Собственно, публичный ключ подписанный вашей личной подписью это и есть сертификат ключа. USB устройство должно уметь отдавать записанный в него сертификат по запросу. Собственно, так можно проверить валидность самого устройства защиты. Запрашиваем сертификат. Проверяем подпись с помощью публичной части личного ключа внедренного в программу, убеждаемся что публичный ключ с USB подписан нами. Далее обращаемся к USB с запросом зашифровать или подписать какие-нибудь данные, проверяем полученные в ответ данные и убеждаемся, что шифрование производится именно тем ключом, сертификат которого мы перед этим получили. Вернемся к файлам. При записи: - формируем блок данных - обращаемся к устройству с запросом подписания хеша этого блока - сохранияем в файл: блок данных, сертификат полученный от устройства и подпись полученную от устройства. При чтении: - читаем из файла сертификат - проверяем сертификат с помощью публичной части личного ключа внедренного в программу, убеждаемся что публичная часть ключа используемого для подписания блока данных валидна. В противно случае "неверный формат файла" - читаем блок данных и проверяем подпись публичной частью ключа из сертификата. Если проверка не проходит "неверный формат файла". Если проходит - значит все Ок, в момент записи файла у пользователя был доступ к одному из легальных устройств защиты.
0
|
||
| 01.03.2023, 18:03 [ТС] | |||
|
- читаю, грубо говоря, "ID ключа" + "ID юзера" из памяти ключа (пишутся туда при авторизации ключа) - читаю еще 16 шифрованных байт из памяти ключа - вызываю ф-цию ключа "decrypt", в рез-те расшифровки 16 байт должны получиться те же "ID ключа" + "ID юзера". Иначе ключ невалиден Полагаю Вы говорите о том же. Но вникнуть в Вашу терминологию мне не удается, каждая фраза "бьет по ушам". Напр
0
|
|||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
|||
| 01.03.2023, 18:35 | |||
|
0
|
|||
| 01.03.2023, 20:28 [ТС] | ||
|
0
|
||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 01.03.2023, 21:39 | ||
|
Это та же самая технология с помощью которой браузеры (у всех пользователей одинаковые!) отличают оригинальные сайты от подделок. Причем, сайтов же миллионы, браузеру не нужно знать о всех сайтах заранее, нужно лишь уметь проверять "правильный секретный ключ", который храниться на сервере вместе с сайтом и с помощью которого сервер подписывает свои странички отправляемые пользователям. Наверняка слышали, что некоторое время назад сайты Госуслуг, Росреестра и т.д. перестали открываться в "иностранных" браузерах, но открываются в Яндекс-браузере. Это потому, что "иностранцы" перестали доверять ключам этих сайтов и больше не считают их "правильными". Добавлено через 11 минут Продолжая аналогию: Hardware USB Key - сервер, ключом которого подписываются файлы. Программа должна уметь проверять, доверенным ли ключом подписан файл и если ключ не прошел проверку, файл не открывать. Таким образом, сколько бы разных пользователей с разными Hardware USB Key ни сохраняло файлы, все они будут проходить проверку и открываться на других компьютерах. Подделать Hardware USB Key или создать его копию невозможно, поэтому любые файлы сохраненные в ломанной версии программы проверку валидности не пройдут.
0
|
||
| 02.03.2023, 09:45 [ТС] | ||
|
Хорошо, попробуем по-другому
Проблема "эмуляции" (списать все обращения к ключу и воспроизвести) сводится к тому же. Нужно чтобы при каждом запуске был "свежачок", но тогда с чем его (мне) сравнивать? Тем более той памяти у ключа с гулькин "нос"
0
|
||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 02.03.2023, 13:58 | ||
|
Igor3D, вы сами разрабатываете аппаратный ключ или его вам дали готовым и модификации он не подлежит? Естественно, всё это что я пишу имеет смысл только если можно влезть в аппаратный ключ и "научить" его требуемым вещам.
Если же аппаратный ключ уже изменению не подлежит, то нужно более подробное описание функций encrypt/decrypt, может это уже то, что нужно. Хотя, интуитивно, то что нужно должны были назвать signature, для идентификации в первую очередь подпись нужна, а не шифрование. Аппаратный ключ должен не только иметь память, но и иметь собственный контроллер/процессор для выполнения вычислений. Немного памяти это сколько? Производительности детской игрушки Ардуино вполне достаточно для этих целей. А бывают ли сейчас менее производительные контроллеры? - Берем текущие дату и время, передаем их аппаратному ключу - аппаратный ключ подписывает полученные данные и возвращает подпись - проверяем подпись и убеждаемся в её корректности В этом случае каждый обмен данными будет уникальным и его перехват никак не поможет подделать аппаратный ключ.
0
|
||
| 02.03.2023, 14:23 [ТС] | |||
|
0
|
|||
| 03.03.2023, 15:51 [ТС] | ||
|
И тишина. Ладно, попробую "подытожить". Для меня самое неприятное - не вижу как бороться с "эмулятором", т.е. тупо записываются все обращения к ключу и все его ответы. Ну хорошо, вот я вызвал encrypt для какого-то рандомного значения (всякий раз разного). Получил шифрованный вариант. И... что с ним делать? Единственное - сравнить с тем что записано в ключе. Ну неявно конечно, замаскировать, окружить облаком "холостых". Но в ключе можно записать очень немного.
И, по ходу дела В общем, как всегда, стройная теория и серая реальность
0
|
||
| 05.03.2023, 11:44 [ТС] | ||
|
0
|
||
| 05.03.2023, 11:44 | |
|
Помогаю со студенческими работами здесь
20
Ошибка при работе с указателем! (key[0]->pr) x006790b8 {size=3 d=2 key=0x0067dcc8 {0xfdfdfdfd {pr=? } Violation of Primary key constraint 'PK_otdel'. Cannot insert dupllicate key in object 'dbo.otdel'. Что значит данный код, а точнее key:={'+key+'}
SQLite - оптимальный размер транзакции, стоит ли использовать FOREIGN KEY, связь PRIMARY KEY и INDEX Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|