|
|
  |
TAMPER, что это такое? |
|
|
|
Mar 30 2017, 07:42
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Цитата Чтобы не бороться с втекающими токами тампер обычно заводят на два порта I|O. Порт A - 10K - тампер - 10К - порт B + 10К на землю. Когда MCU спит на обоих портах "0" и никаких утечек. Да у меня доступно два входа TAMPER. Но из вашей схемы я ничего не понял. Можете пояснить по другому, нарисовать схему? Цитата Когда MCU просыпается, он подает на один порт A "1", а на другом ловит эту самую "1". Потребление только в момент подачи "1". Ситуацию с просыпанием контроллера я вовсе не рассматриваю. Считаем что в момент вскрытия есть только питание на VBAT от часовой батарейки. Цитата Есть более продвинутая схема, когда используется три порта. Порт A - 10К - тампер - 1К- портС - 10К - порт B. На порт A = "1", на порт "B" = "0", а порт "С" вход. И затем наоборот на порт A = "0", порт B = "1", порт С вход. Если навесить емкости на линию тампера то можно перезаряжая емкости обнаружить несоответствие, например перемычку поверх платы, а значит вскрытие. Не годится. В моем корпуса только два TAMPER входа. Цитата Насчет работы у клиента, это неверный подход. Изделие потому и закрывается тампером, чтобы заблокировать доступ сразу за стенами завода. А до отгрузки просто не закрывать и не устанавливать аккумуляторы. Насчет неверного подхода это надо объяснять путину, шойгу и прочим. Вероятно вы не сталкивались с ситуациями когда ваше изделие может лежать не по одному году на складе. Это не ваш склад, а склад организаций которые закупили оборудование.
|
|
|
|
|
Mar 30 2017, 08:07
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(uriy @ Mar 30 2017, 09:20)  Счет времени мне даже не нужен, достаточно хранить ключи и стирать их при вскрытии. Для семейства L4 заявлено потребление в таком режиме 8 нА. Не очень понятна задача: Вам нужно чтобы по сигналу "ВСКРЫТИЕ" МК проснулся и успел стереть ключи? Так? А целостность корпуса как контролируете? Схема внутри залита компаундом или нет? Есть ли контроль нарушения целостности корпуса? Как вариант действий злоумышленника: просверлить дырку в корпусе, замкнуть через неё батарейку (или кнопку тампера), а дальше - спокойно вскрывать и считывать. Лучше не стирать ничего, а при производстве зашивать в составе прошивки случайное число (разное для каждого экземпляра и заранее неизвестное), и использовать это число как ключ шифрования - всю инфу в защищаемой памяти шифровать этим ключом. Ну и защитить флешь программ МК от чтения. Если в МК есть хороший генератор случайных чисел (а в STM32F4 вроде есть аппаратный генератор), то можно этот ключ генерить и самостоятельно в ПО МК при первом включении и сохранять во флешь.
|
|
|
|
|
Mar 30 2017, 08:17
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Цитата Вам нужно чтобы по сигналу "ВСКРЫТИЕ" МК проснулся и успел стереть ключи? Так? Не совсем так. Да по сигналу вскрытие ключи должны стереться. Для STM32 просыпаться не нужно. Они умееют стирать 80 байт backup регистров без просыпания при наличии только питания на VBAT. Цитата А целостность корпуса как контролируете? Никак. И сейчас действительно нет никакой защиты если у нехорошего человека будет более одного изделия. Он уже будет знать как правильно вскрывать второй корпус. Какие средства защиты есть в таких случаях? Корпус у меня IP67. Цитата Схема внутри залита компаундом или нет? Нет не планировали, но можно это сделать. Ключи, которые, я планирую стирать предназначены для шифрования данных пользователя. Задачи защитить прошивку контроллера не стоит. Для нее достаточно запрета на чтение.
|
|
|
|
|
Mar 30 2017, 08:50
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(uriy @ Mar 30 2017, 10:17)  Никак. И сейчас действительно нет никакой защиты если у нехорошего человека будет более одного изделия. Он уже будет знать как правильно вскрывать второй корпус. Какие средства защиты есть в таких случаях? Корпус у меня IP67. Нет не планировали, но можно это сделать. Тогда можно залить непрозрачным компаундом всё внутри, вместе с батарейкой. Но будет ремонтонепригодно. Цитата(uriy @ Mar 30 2017, 10:17)  Ключи, которые, я планирую стирать предназначены для шифрования данных пользователя. Задачи защитить прошивку контроллера не стоит. Для нее достаточно запрета на чтение. А нужно чтобы именно пользователь мог ввести свои ключи? Или нужно просто любой ключ, уникальный для данного пользователя? Защищать прошивку нужно не от её клонирования, а от считывания ключа. Его сгенерить внутри (или записать при производстве) и уже эти ключом шифровать или сами данные пользователя или его ключи. Это будет самое надёжное решение. Так как в случае с тамперами, можно найти способ подключиться к схеме извне и замкнуть батарейку или запитать её извне чтобы не допустить стирания ключей. Потом залить своё ПО внутрь и считать ключи.
|
|
|
|
|
Mar 30 2017, 11:52
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(jcxz @ Mar 30 2017, 14:36)  Ну если так, то зачем тогда вообще сбрасывать по тамперу? Раз это внутренняя SRAM, то её никак не считать не подключившись и не залив туда чего-то. Обычная SRAM не сохраняется без питания. Батареечная память сохранятся от батарейки и не теряется при сбросе МК. Тампер очень классная штука! Используем для детекции вскрытия. Можно аппаратно настроить периферию на генерацию импульсов с заданной частотой и длительностью, а также числа последовательных считываний для принятия решения. Все работает от батарейки, когда проц не запитан от основного питания, и надежно ловит изменение состояния тампера. При этом потребление от батарейки мизерное, т.к. тампер опрашивается импульсами.
|
|
|
|
|
Mar 30 2017, 13:51
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(uriy @ Mar 30 2017, 14:34)  Может быть как-то можно полевиком и такой кнопкой сделать так чтобы TAMPER садился на землю при размыкании кнопки. Все что не придумал требует резисторов и появляется статический ток. Мы делали так (ну это правда не на STM, а на LPC1778 вроде): Брали кнопку на три контакта (один - нормально замкнутый (НЗ), другой - нормально разомкнутый (НР), и 3-й - средний, который замыкается на НЗ или НР). Средний контакт - на вход МК, а НЗ и НР - один на GND, другой на Vbat. Тогда никаких резисторов не нужно. А с резисторами не проходило у нас по помехам - на объекте заказчика были такие помехи, что даже на резисторе 10кОм наводился импульс, достаточный для срабатывания тампера. И все схемы с резисторами - были постоянно ложные срабатывания. Вышеописанный же вариант работал железно. Но нужна кнопка о 3-х ногах конечно. И токов тогда никаких лишних нет. PS: А кстати наврал - помехи были настолько мощные, что даже при входе МК засаженном на Vbat через кнопку, наводился импульс, от которого срабатывал тампер (т.е. - для него даже внутреннее сопротивление батарейки было достаточно велико). Поэтому в закрытом состоянии у нас кнопка замыкала вход МК на GND (так помеха не пролазила), а в открытом состоянии - на Vbat (тут не так страшно, если будет вместо "постоянно открыто" показывать "открыто-закрыто-открыто-..." так как важен сам факт вскрытия и его время). А насчёт счёта времени - у нас оно всегда считало, ибо без метки времени сам факт вскрытия мало что даёт. PSS: Только мы так защищали не инфу. Инфу защищать лучше всего шифрованием как я уже говорил.
|
|
|
|
|
Mar 30 2017, 15:11
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(uriy @ Mar 30 2017, 15:34)  Я хочу поставить кнопку которая будет замкнута при закрытом состоянии корпуса и будет размыкаться при вскрытии. Только так для датчика вскрытия и надо делать. Иначе провод перережут или потеряется контакт, и тревога будет пропущена. Кнопку подключать между GND и аппаратным входом TAMPER. Никаких резисторов не надо. На входе TAMPER МК будет сам формировать импульс тока с заданной длительностью и периодом, а по окончании импульса смотреть уровень на TAMPER. Если последовательно N импульсов придет высоких, то установится флаг, сработает прерывание или будут сброшены BKP-регистры. Шпаргалка: Код RTC->TAFCR = 0 | (0 << RTC_TAFCR_TAMPPUDIS) | (3 << RTC_TAFCR_TAMPPRCH) // 0.244 ms | (1 << RTC_TAFCR_TAMPFLT) // 2 consecutive samples | (2 << RTC_TAFCR_TAMPFREQ) // 4 Hz | (1 << RTC_TAFCR_TAMP1TRG) // NC to ground | (1 << RTC_TAFCR_TAMP1E);
|
|
|
|
|
Mar 30 2017, 15:51
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Цитата А насчёт счёта времени - у нас оно всегда считало, ибо без метки времени сам факт вскрытия мало что даёт. Кому как. У меня требование уничтожить ключи шифрования. Раз мое устройство вскрыли значит его скорее всего украли и из него уже ничего не считаю. Цитата Кнопку подключать между GND и аппаратным входом TAMPER. Никаких резисторов не надо. На входе TAMPER МК будет сам формировать импульс тока с заданной длительностью и периодом, а по окончании импульса смотреть уровень на TAMPER. Если последовательно N импульсов придет высоких, то установится флаг, Давайте об этом подробней. В refman пишут: The TAMPER inputs are pre-charged through the I/O internal pull-up resistance before its state is sampled, unless disabled by setting TAMPPUDIS to 1,The duration of the precharge is determined by the TAMPPRCH bits, allowing for larger capacitances on the tamper inputs.0 << RTC_TAFCR_TAMPPUDIS вы включаете pull-up резистор. Я правильно понял что для TAMPER входов это обычный pull-up как на всех пинах? 50 кОм кажется он. Теперь мне казалось что pull-up всегда разрешен и ток потечет через эти 50 кОм и замкнутую кнопку на землю. Его величина будет огромной 60 мкА! А вот до этого: The trade-off between tamper detection latency and power consumption through the pull-up can be optimized by using TAMPFREQ to determine the frequency of the sampling for level detection. я похоже уже не дочитывал. И вот теперь посмотрев ваши регистры и еще раз прочитав описание битов, кажется да вот оно, то что надо! adnega вы не меряли какой у вас ток потребляет при ваших параметрах? При ваших параметрах кажется латентность составляет полсекунды?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|