Hardware Key22.02.2023, 16:02. Показов 1748. Ответов 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
|
||||||
|
654 / 162 / 64
Регистрация: 08.04.2015
Сообщений: 415
|
|||||||||||
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|