Защита/аутентификация/идентификация

Обсуждаем контроллеры компании Atmel.
greend
Родился
Сообщения: 15
Зарегистрирован: Ср окт 09, 2013 14:55:10

Защита/аутентификация/идентификация

Сообщение greend »

Доброго времени суток. Передо мной стоит задача создать устройство, оснащенное разнообразными элементами защиты самого устройства от таких вещей, как:
1. Копирование
2. Несанкционированое использование

Гугление на тему защиты устройств на AVR дает лишь ссылки из серии "Вольтметр на ATMega8 с защитой..." (не сложно догадаться), что никоим образом не соответствует желаемому результату. Задача защиты устройства делится на несколько аспектов:
1. Хранение в устройстве уникального номера устройства
2. Защита компонентов устройства от чтения прошивки
3. Создание модуля доступа с уникальным ключом (смарт-карты, флешки, токены - не суть)
4. Предполагается наличие съемного защищенного модуля, без которого работа устройства невозможна.

Все, описанное выше, предполагается использовать вместе с клиентским приложением и серверной частью (вопросы идентификации и некоторые другие должны контролироваться здесь)

Что хочется на выходе:
1. Устройство, активируемое съемным модулем с уникальным номером.
2. Ограниченный круг лиц, имеющих право использовать устройство с использованием персонального ключа
3. Разнообразные методы защиты устройства от копирования, анализа и тп.

Гугл дал мне немного информации по secureAVR, но если верить форумам - я (даже юр. лицо), скорее состарюсь, чем получу контроллеры этой серии, документацию и тп.
Отсюда общий вопрос, как стартовая точка в поиске решения: как (какими средствами) можно реализовать данную задачу и/или отдельные ее части (железного характера и программного, относительно МК)?
Аватара пользователя
radiokot__
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Вс янв 15, 2012 19:58:40

Re: Защита/аутентификация/идентификация

Сообщение radiokot__ »

Приделайте SIMку.
Ни один домашний кот незнает что он домашний.
Аватара пользователя
vek
Вымогатель припоя
Сообщения: 563
Зарегистрирован: Чт апр 16, 2009 04:53:41

Re: Защита/аутентификация/идентификация

Сообщение vek »

Зачем приделывать сим?своей ЕЕПРОМ-ки нехватает? :shock:
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
Аватара пользователя
Eugene.Negrobov
Мучитель микросхем
Сообщения: 472
Зарегистрирован: Ср фев 15, 2012 09:00:34
Откуда: Киев

Re: Защита/аутентификация/идентификация

Сообщение Eugene.Negrobov »

А какое устройство будет активироватся этим модулем? А то если твоя схема просто будет где-то там щелкать релюшкой при подключении ИД-модуля- такую защиту любой дурак сломает, как бы круто не была организована защита самого ИД-модуля.

Насчет блокировки считывания прошивки- есть же лок-фьюзы у AVR, ты что ни одного контроллера еще не залочил? У меня где-то 3 штуки на счету. :))

P.S.
А вообще, копирастия- это очень-очень плохо.
Послушай поучительную и трагическую историю о мальчике Бобби:
http://www.youtube.com/watch?v=QBdo48DM21w
I'm on a huge rock, flying through space!
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Защита/аутентификация/идентификация

Сообщение Flasher »

Eugene.Negrobov писал(а):Насчет блокировки считывания прошивки- есть же лок-фьюзы у AVR, ты что ни одного контроллера еще не залочил? У меня где-то 3 штуки на счету. :))


Ничего не попутал?

Топикстартеру- слышали анекдот про неуловимого Джо? Которого никто не может поймать, потому что он нахрен никому не нужен.
Определитесь с ценностью задачи и суммой которую готовы потратить злоумышленники/конкуренты для взлома-копирования устройства. Если она не превышает 20 килобаксов- можете даже не париться и обойтись студенческим набором. Ну а если девайс тупо дергает релюшкой от кнопки- то на ваше изделие никто даже и не посмотрит- найдутся люди, которые за сравнительно малую сумму сделают аналогичное устройство лучше и надежнее.
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Защита/аутентификация/идентификация

Сообщение kalobyte »

китайцы продают программатор в 2х версиях
одна дороже на 20 баксов и отличается двумя вещами - прошивкой и разъемом для последовательного программирования
прошивка обновляется из софта через криптованный загрузчик
сама прошивка сидит внутри одного файла, который обновляется с каждой версией софта

я пробовал ломать - не сломал
через месяца 3-5 я наталкиваюсь на пост на другом форуме, где чел из украины расковырял загрузчик и вытащил его, что можно было просто обновить загрузчик и потом через софт обновиться до дорогой версии
там еще так же был уникальный серийный номер, который так же легко копировался и менялся

теперь еще раз подумай, надо ли тратить время и деньги, если даже китайский программатор за 50 евров сломали :)))
кстати маркировка контроллера была затерта, но даже это не помогло опознать пик18 серии
а потом еще отреверсили схему, а это 2 платы плотного монтажа с 2х сторон

так что простой способ - залочить прошивку от чтения и на этом забить
в лучшем случае взять загрузчик с шифрованием (под авр они есть)

контроллеры стм32 имеют в себе уникальный аппаратный серийник
https://my.st.com/public/STe2ecommuniti ... tviews=422
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Защита/аутентификация/идентификация

Сообщение Gudd-Head »

Недавно была похожая тема про активацию прибора.
От копирования спасут (должны спасти) лок-биты АВР.
Для защиты от несанкц. использования можно использовать "съёмный модуль" с микросхемой с уникальным серийником.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
greend
Родился
Сообщения: 15
Зарегистрирован: Ср окт 09, 2013 14:55:10

Re: Защита/аутентификация/идентификация

Сообщение greend »

radiokot__ писал(а):Приделайте SIMку.


Совет дельный, но не вариант. Девайс может попасть куда угодно.

Eugene.Negrobov писал(а):если твоя схема просто будет где-то там щелкать релюшкой при подключении ИД-модуля


Нет конечно, не только релюшкой. Двумя релюшками :) . У устройства будут как датчики, так и простые внешние устройства, которыми оно управляет.

Eugene.Negrobov писал(а):...есть же лок-фьюзы у AVR...копирастия- это очень-очень плохо...


Ну да, они... Присутствуют. Проблема только в том, что по моим данным китайцы за 1500$ из любого МК душу вытряхивают, плюнув на Lock-Bits. Устройство коммерческое, а его функции являются как моей, так и некоторых других людей интеллектуальной собственностью. Поэтому не соглашусь.

Flasher писал(а):Определитесь с ценностью задачи и суммой которую готовы потратить злоумышленники/конкуренты для взлома-копирования устройства.


Неуловимый Джо - это не про нас :). В общем-то точное взвешивание всех "ЗА" и "ПРОТИВ" побудило меня развивать эту тему.

kalobyte писал(а):так что простой способ - залочить прошивку от чтения и на этом забить
в лучшем случае взять загрузчик с шифрованием (под авр они есть)

контроллеры стм32 имеют в себе уникальный аппаратный серийник


За наводку на STM32 спасибо (нужно глянуть насколько возможно использовать в паре с AVR). О ценности задачи писать больше не буду, намекну что защита действительно нужна суровая. Если за эту штуку и возьмутся, то это будут не "какие-то дядьки с Украины".

Gudd-Head писал(а):Для защиты от несанкц. использования можно использовать "съёмный модуль" с микросхемой с уникальным серийником.


Вот это как раз то, что нужно. Насколько я понимаю (навыки в обеспечении безопасности у меня кое-какие имеются) съемный модуль должен выдавать свой серийник зашифрованным по какому-либо асимметричному алгоритму. С шифрованием в AVR я еще не сталкивался, поэтому аппаратную реализацию представляю себе слабо. Что касается копирования - вешать все на Lock-Bits совсем не хочется, выше я пояснил почему.
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Защита/аутентификация/идентификация

Сообщение Flasher »

Судя по вашим познаниям о защитах и шифровании и упоминаниям о подробностях, задача очень сильно напоминает неуловимого Джо. А ваше "набивание" важности полунамеками с обрывом разговоров еще больше этому способствуют.

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

Интерес для злоумышленников могут представлять только закрытые протоколы, ключи и алгоритмы шифрования, исходные данные и алгоритмы дорогостоящих ноу-хау. Но не переоценивайте важности своих изысканий.
Во всех остальных случаях "дядьки не с Украины" возьмут ваше чудо с двумя релюшками, поржут, выкинут в помойку и сваяют что-то очень серъезное взамен.
Аватара пользователя
Eugene.Negrobov
Мучитель микросхем
Сообщения: 472
Зарегистрирован: Ср фев 15, 2012 09:00:34
Откуда: Киев

Re: Защита/аутентификация/идентификация

Сообщение Eugene.Negrobov »

Flasher писал(а):Ничего не попутал?

Неа, не попутал. Не стоит недооценивать лок-фьюзы, насколько мне известно, еще ни один любитель защиту эту не поломал. Что до профессионалов, я других вариантов, кроме как прожига корпуса МК азотной кислотой и последующей экспозиции отдельных плавающих затворов ультрафиолетом через какую-нибудь очень крутую систему линз не вижу. И то не факт, что наоборот при производстве эти затворы не программируются в 0, а при локе наоборот, стираются.
Слышал еще про прямое подключение к металлизации кристалла очень тонкой иглой через микроскоп... Но это делалось только на самых первых микросхемах, у современных очень мелкий техпроцесс...

Короче говоря- особо не парься, как бы круто не был защищен ИД-модуль, считать логическим анализатором то, что он передает основному устройству- раз высморкаться.

Что до релюшек- это никуда не годится. Можешь например прошивку бортового контроллера дописать, чтобы та например раз в секунду по UART отправляла зашифрованное время и дату с RTC на ID модуль, затем принимала обработанный пакет байтов обратно. Если все совпадает- аппарат продолжает работу, если нет- работать отказывается.

Но если вообще, тут правильно сказали, что китайцы с аппарата скорее поржут и сделают в 10 раз более крутой. А еще более скорее- вообще не узнают о его существовании.
I'm on a huge rock, flying through space!
greend
Родился
Сообщения: 15
Зарегистрирован: Ср окт 09, 2013 14:55:10

Re: Защита/аутентификация/идентификация

Сообщение greend »

Flasher писал(а):Судя по вашим познаниям о защитах и шифровании и упоминаниям о подробностях, задача очень сильно напоминает неуловимого Джо. А ваше "набивание" важности полунамеками с обрывом разговоров еще больше этому способствуют.


Оставьте сарказм при себе. Я пришел за советом, считаете Вы этот продукт каким-то там Джо, или нет. От Вас лично я не получил ни единого дельного совета, кроме "Бросьте эти глупости".
Что же касается "важности моих изысканий" - не Вам судить. Что же до всего остального мне абсолютно все равно скопирует кто-то устройство или нет. Проблем две - не допустить использования копии и не допустить анализа кода. Вам есть что сказать по теме?
greend
Родился
Сообщения: 15
Зарегистрирован: Ср окт 09, 2013 14:55:10

Re: Защита/аутентификация/идентификация

Сообщение greend »

Eugene.Negrobov писал(а):китайцы с аппарата скорее поржут и сделают в 10 раз более крутой.


Это не так уж и важно. Давайте оставим китайцев впокое в контексте проблемы?
Аватара пользователя
Eugene.Negrobov
Мучитель микросхем
Сообщения: 472
Зарегистрирован: Ср фев 15, 2012 09:00:34
Откуда: Киев

Re: Защита/аутентификация/идентификация

Сообщение Eugene.Negrobov »

greend писал(а):Оставьте сарказм при себе. Я пришел за советом, считаете Вы этот продукт каким-то там Джо, или нет. От Вас лично я не получил ни единого дельного совета, кроме "Бросьте эти глупости".
Что же касается "важности моих изысканий" - не Вам судить. Что же до всего остального мне абсолютно все равно скопирует кто-то устройство или нет. Проблем две - не допустить использования копии и не допустить анализа кода. Вам есть что сказать по теме?


Сказали же уже раза 3, прошивку не дают считать лок-фьюзами, их не дураки придумали и они вполне надежно защищают прошивку... Копию аппарата с залоченным контроллером никто не сделает, а если будет возможность обойти лок-фьюзы- то и ИД-модуль твой не поможет. Никто не будет копировать твою безделушку, успокойся, сегодня гораздо проще с нуля сделать.

P.S.
Я вот что не понимаю, как можно обращается за советом к народу, при этом оказывая к таковому открытое недоверие и заявляя, что не ему судить?
I'm on a huge rock, flying through space!
greend
Родился
Сообщения: 15
Зарегистрирован: Ср окт 09, 2013 14:55:10

Re: Защита/аутентификация/идентификация

Сообщение greend »

Eugene.Negrobov писал(а):Я вот что не понимаю, как можно обращается за советом к народу, при этом оказывая к таковому открытое недоверие и заявляя, что не ему судить?


Возможно, потому, что Вы уверены, что я ваяю "безделушку"?

Про лок-биты мне известно, не первое утройство собираю.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Защита/аутентификация/идентификация

Сообщение BOB51 »

Защищать чего - либо таким способом "дохлое" дело...
Самое лучшее , что придумано - "защита технологией" - что значит: взлом и/или повторение устройства, созданного более технологически развитой структурой(государством/фирмой) обойдутся дороже, чем его покупка у производителя. Остальное лишено смысла. 8)
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Защита/аутентификация/идентификация

Сообщение shads »

http://microsin.net/programming/AVR/avr ... oader.html
Помоему самое защищенное, что можно на AVR сделать.....
Аватара пользователя
Unreal_2009
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Пн авг 06, 2012 10:39:53
Откуда: Москва

Re: Защита/аутентификация/идентификация

Сообщение Unreal_2009 »

Доброго времени суток.
Позвольте сказать свое МЯУ.
Занимался и копированием чужого и защитой своего.
Стратегически пришел к выводам -
- Чаще всего прототип берется как образец для подражания и потом делается свое железо и свой софт.
- Если работа девайса - конечный автомат - защитаться от копирования бессмыслено, можно просто для очистки совести поставить биты защиты. Либо - выпускать новые модели дешевле и(или) с более крутым функционалом достаточно часто, чтобы не было смысла копировать.

Стоит отметить вопрос использования любой криптографии - даже из открытых исходников. Для разработки и продажи изделий (тем паче экспорта/импорта), имеющих что то криптографическое нужна лицензия ФСБ. Иначе можно сесть. Шутки щутками, а законодательсво надо соблюдать.

Стоит еще упомянуть - использование бутлодера (в случае отправки прошивки на завод для заливки в изделия), который расшифровывает прошивку по симметричному алгоритму - зло.
Я конечно не криптоаналитик - но ... Для подбора ключа нужны зашифрованные данные и открытый текст. Прошивка для микроконтроллера сурово детерминирована и имеет большие куски шаблонного кода.
Например область векторов прерываний или типичные для компилятора куски. Так что лобовая атака на современных ПК вполне возможна.
Надо помнить об этом.. :-)))
Чем больше разных шифр-данных для одного открытого текста - тем лучше.
Т.е. если я куплю штук десять ваших девайсов и получу зашифрованные прошивки для них - это упростит задачу, так как исходный текст один - а его шифрованных собратьев аж 10 штук и более.
Я пробовал делать в одном проекте так, чтобы шифровались не только данные, но и расположение блоков в зависимости от от ключа.


1. Защита от копирования железа
1.1 Плату защитить от копирования невозможно. Цена вопроса в китае (сам занимался копирование чужих девайсов) - от 50$ за двухслойку, 1000$ сменя взяли за копирование 6-ти слойной платы. Причем отдали гербера, проект в Protel и фотографии слоев (слой снимали фрезой на специальном оборудовании). Потом по этим же герберам сделали платы и собрали. Все заработало. ДЛя копивроания надо 2-3 штуки, причем желательно работающие - вывод : плату защищать бессмысленно.
1.2 Стирать маркировку есть смысл - затрудняет опознание ( но не сильно).
1.3 В п.1.1 прошивка контроллера лежала во внешней флэш. Причем пины для загрузки были выведены на разъем - копируй не хочу. - вывод - такие вещи в рабочей версии прятать внутрь. Затрудняет чтение.
1.4. Отрезать выводы JTAG (эту фишку мне советовал один товарищ) + отжигать их высоким напряжением. Но это не тривиальная процедура. Процент выхода брака высокий...
1.5 Административная мера - продажа изделий под номерами четко идентифицированным пользователям..
1.6 Стоит помнить - любой сигнал на плате можно считать потенциально открытм для измерения. Все что вне микроконтроллера может быть измерено. :-)

2 Защита от копирования прошивки
2.1 Если нужно что то серьезное то действительно стоит посмотреть в сторону специализированных контроллеров - не крипто AVR, а заточенных под защиту прошивки. Я например знаю BF513 и т.п. от AD. У них есть технология защиты прошивки. Внутри процессора есть ячека которая прошивается однократно. Наверняка есть и другие чипы от других производителей. В таком варинте считанная прошивка не будет работать на другом камне. В принципе у TI и NXP етсь уникальный серийный номер внутри(в спец регистрах) - если генерить прошивку под это номер то тупое копирование тоже не прокатит.
2.2 Можно добавить еще один процессор или CPLD/FPGA. Соответственно это существенно увеличит стоимость копирования. В таком варианте микроконтроллер должен детектировать работы сопроцессора/CPLD/FPGA. При обнаружении ошибки не сразу ломаться, а начинать сбоить, причем желательно через разные интервалы времени. Это затруднит детектирование алгоритма работы. И при детекции попытки взлома (запуск вхолостую) писать что нить в EPROM или сурово затирать прошивку (как реальный пацан), чтобы не было что копировать в принципе.
2.3 Обратить внимание на административные меры при серийном производстве, чтобы в открытом виде прошивка не ушла на свободу. :-))) Враг может скопировать прошивку прямо с программатора.
2.4 Продумать вопрос обновления софта - получения серийника от клиента, генерация индивидуальной прошивки, отправка клиенту и загрузка в девайс..
2.5 Как вариант делать индивидульную прошивку, хранить ключ в RAM микроконтроллера и сделать питание от батарейки + добавить линии проверки целостности корпуса. При отключении батарейного питания или детекции нарушении целостности корпуса - сбрасывать ключ(см. ниже как сделана защита в пин клавиатуре). НО - срок службы такого изделия равен сроку службы батарейки + возможны проблемы при жестких условиях эксплуатации.

Собственно комплект этих мер даст определнный уровень защиты.
Кстати о стоимости - если цена конечного изделия или прошивки больше 20-30 тыс. $ - надо очень задуматься....Скорее всего этих мер будет недостаточно если реальные пацаны возьмутся за копирование.

Еще хочу рассказать как сделана защита в пин клавиатурах от банкоматов - давно давно попадалась в руки старая списанная железка.
1. На основной плате стоит специализированный микроконтроллер от DALLAS типа 8051. Ессно полной документации на него нет. Только короткая справка.
2. МК запитан от литиевой часовой батарейки.
3. Провода для кнопок выведены наружу.
4. Вся эта плата замотана в тонкую гибкую печатную плату, на которой разведены параллельные дорожки с шагом 0.1-0.2 мм. Причем гибка плата обмотана вокру основной хаотически, как убдто бумагу смяли. Дорожки гибкой печатной платы припаяны к основной и микроконтроллер проверяет их целостность.
5. Все из п.1-4 залито компаундом. Сурово залито с вкраплениями металла и уже этот кирпичик установлен в корпус пин-клавиатуры.

Следует учесть что такие конструкции используются и сертифицированы(были в то время) для защиты информации стоимостью до 30000 евро. Т.е. стоимость взлома такого девайса должна быть больше 30000 евро..

И вот еще нюанс - если есть что то оригинальное именно в алгоритме работы или в применении девайса - есть смысл помимо защиты задуматься о патентовании.

Да прибулет с Вами сила ;-)))
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Защита/аутентификация/идентификация

Сообщение Gudd-Head »

Unreal_2009 писал(а):Позвольте сказать свое МЯУ.

Круто 8)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
radiokot__
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Вс янв 15, 2012 19:58:40

Re: Защита/аутентификация/идентификация

Сообщение radiokot__ »

А ещё можно бомбу засунуть в корпус.
Как только залезли во внутро, так сразу и получи по рукам. :))
Ни один домашний кот незнает что он домашний.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Защита/аутентификация/идентификация

Сообщение Jack_A »

Сам не видел, но говорили. М/сх с механической защитой : вскрыл корпус -- а там находившаяся в сжатом состоянии пружинка разламывает кристалл.
Может -- байка.
Из опыта : у нас в отделе чел заморочился не в меру защитой своего творения. Смыслу никакого, бо прога была тупая и имела смысл ислключительно для поставляемого оборудования -- 3...5 стоек, набитых приборами. Результат : бомба взорвалась прямо у него в руках : хитрая защита отформатировала ему С: :)
Ответить

Вернуться в «AVR»