реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> TAMPER, что это такое?
hsoft
сообщение Mar 30 2017, 07:31
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 13-02-17
Пользователь №: 95 415



Чтобы не бороться с втекающими токами тампер обычно заводят на два порта I|O.


Сообщение отредактировал hsoft - Mar 30 2017, 14:11
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 30 2017, 07:42
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 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 входа.

Цитата
Насчет работы у клиента, это неверный подход. Изделие потому и закрывается тампером, чтобы заблокировать доступ сразу за стенами завода.
А до отгрузки просто не закрывать и не устанавливать аккумуляторы.
Насчет неверного подхода это надо объяснять путину, шойгу и прочим. Вероятно вы не сталкивались с ситуациями когда ваше изделие может лежать не по одному году на складе. Это не ваш склад, а склад организаций которые закупили оборудование.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 08:00
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(hsoft @ Mar 30 2017, 09:31) *
Чтобы не бороться с втекающими токами тампер обычно заводят на два порта I|O.
Порт A - 10K - тампер - 10К - порт B + 10К на землю.
Когда MCU спит на обоих портах "0" и никаких утечек. Когда MCU просыпается, он подает на один порт A "1", а на другом ловит эту самую "1".
Потребление только в момент подачи "1".

В таком режиме (с периодическими просыпаниями МК) батарейки не уложиться в среднее потребление в 2 мкА. Так как просыпаться МК надо будет довольно часто - не реже чем раз в 1-2 сек. Иначе злоумышленники запросто вскроют корпус и успеют замкнуть батарейку между просыпаниями, заблокировав стирание ключей.
Go to the top of the page
 
+Quote Post
hsoft
сообщение Mar 30 2017, 08:05
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 13-02-17
Пользователь №: 95 415



Прошу прощения, что запутал Вас, не посмотрел RM на STM32F446, все что выше предназначено для MCU у которых нет специализированных входов для тампера.
У Вас такие входы есть, так что смело можете советы пропустить.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 08:07
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(uriy @ Mar 30 2017, 09:20) *
Счет времени мне даже не нужен, достаточно хранить ключи и стирать их при вскрытии. Для семейства L4 заявлено потребление в таком режиме 8 нА.

Не очень понятна задача: Вам нужно чтобы по сигналу "ВСКРЫТИЕ" МК проснулся и успел стереть ключи? Так?
А целостность корпуса как контролируете? Схема внутри залита компаундом или нет? Есть ли контроль нарушения целостности корпуса?
Как вариант действий злоумышленника: просверлить дырку в корпусе, замкнуть через неё батарейку (или кнопку тампера), а дальше - спокойно вскрывать и считывать.

Лучше не стирать ничего, а при производстве зашивать в составе прошивки случайное число (разное для каждого экземпляра и заранее неизвестное), и использовать это число как ключ шифрования - всю инфу в защищаемой памяти шифровать этим ключом. Ну и защитить флешь программ МК от чтения. Если в МК есть хороший генератор случайных чисел (а в STM32F4 вроде есть аппаратный генератор), то можно этот ключ генерить и самостоятельно в ПО МК при первом включении и сохранять во флешь.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 30 2017, 08:17
Сообщение #21


Гуру
******

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



Цитата
Вам нужно чтобы по сигналу "ВСКРЫТИЕ" МК проснулся и успел стереть ключи? Так?
Не совсем так. Да по сигналу вскрытие ключи должны стереться. Для STM32 просыпаться не нужно. Они умееют стирать 80 байт backup регистров без просыпания при наличии только питания на VBAT.
Цитата
А целостность корпуса как контролируете?
Никак. И сейчас действительно нет никакой защиты если у нехорошего человека будет более одного изделия. Он уже будет знать как правильно вскрывать второй корпус. Какие средства защиты есть в таких случаях? Корпус у меня IP67.
Цитата
Схема внутри залита компаундом или нет?
Нет не планировали, но можно это сделать.
Ключи, которые, я планирую стирать предназначены для шифрования данных пользователя. Задачи защитить прошивку контроллера не стоит. Для нее достаточно запрета на чтение.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 08:50
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(uriy @ Mar 30 2017, 10:17) *
Никак. И сейчас действительно нет никакой защиты если у нехорошего человека будет более одного изделия. Он уже будет знать как правильно вскрывать второй корпус. Какие средства защиты есть в таких случаях? Корпус у меня IP67.
Нет не планировали, но можно это сделать.

Тогда можно залить непрозрачным компаундом всё внутри, вместе с батарейкой. Но будет ремонтонепригодно.

Цитата(uriy @ Mar 30 2017, 10:17) *
Ключи, которые, я планирую стирать предназначены для шифрования данных пользователя. Задачи защитить прошивку контроллера не стоит. Для нее достаточно запрета на чтение.

А нужно чтобы именно пользователь мог ввести свои ключи? Или нужно просто любой ключ, уникальный для данного пользователя?
Защищать прошивку нужно не от её клонирования, а от считывания ключа. Его сгенерить внутри (или записать при производстве) и уже эти ключом шифровать или сами данные пользователя или его ключи.
Это будет самое надёжное решение. Так как в случае с тамперами, можно найти способ подключиться к схеме извне и замкнуть батарейку или запитать её извне чтобы не допустить стирания ключей. Потом залить своё ПО внутрь и считать ключи.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 30 2017, 09:02
Сообщение #23


Гуру
******

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



Цитата
А нужно чтобы именно пользователь мог ввести свои ключи?
Да это необходимо.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 30 2017, 10:30
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(jcxz @ Mar 30 2017, 11:50) *
Потом залить своё ПО внутрь и считать ключи.

Вряд ли получится т.к.
Цитата
The only way of resetting the
BKPSRAM is through the Flash interface by requesting a protection level change from 1 to
0.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 11:36
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(adnega @ Mar 30 2017, 12:30) *
Вряд ли получится т.к.

Ну если так, то зачем тогда вообще сбрасывать по тамперу? Раз это внутренняя SRAM, то её никак не считать не подключившись и не залив туда чего-то.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 30 2017, 11:52
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(jcxz @ Mar 30 2017, 14:36) *
Ну если так, то зачем тогда вообще сбрасывать по тамперу? Раз это внутренняя SRAM, то её никак не считать не подключившись и не залив туда чего-то.

Обычная SRAM не сохраняется без питания.
Батареечная память сохранятся от батарейки и не теряется при сбросе МК.
Тампер очень классная штука! Используем для детекции вскрытия.
Можно аппаратно настроить периферию на генерацию импульсов с заданной частотой и длительностью,
а также числа последовательных считываний для принятия решения. Все работает от батарейки, когда проц
не запитан от основного питания, и надежно ловит изменение состояния тампера.
При этом потребление от батарейки мизерное, т.к. тампер опрашивается импульсами.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 30 2017, 12:34
Сообщение #27


Гуру
******

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



Предлагаю вернуться к сути моего вопроса.
Мне понятно что делает TAMPER, когда стирать ключи и когда их заливать мне понятно.

Мой вопрос был как вы подключаете этот вывод?
Доки от ST рекомендуют ставить такую кнопку, которая будет замыкаться при вскрытии корпуса.

Такие кнопки найти проблема, тем более что у меня ограничение по высоте 5мм.

Я хочу поставить кнопку которая будет замкнута при закрытом состоянии корпуса и будет размыкаться при вскрытии.
Одной стороной кнопка соединяется на VBAT другой стороной на вход TAMPER.
В таком режиме на вход будет втекать ток 1 мкА (Если я правильно понимаю даташит).
Кроме этого надо еще поставить внеший pull-down резистор на входе TAMPER, чтобы гарантировано садить вход на землю при размыкании кнопки.
Если ставить резистор на 10 МОм это еще 0.1 мкА потребления.

Может быть как-то можно полевиком и такой кнопкой сделать так чтобы TAMPER садился на землю при размыкании кнопки.
Все что не придумал требует резисторов и появляется статический ток.

И еще туманный пока вопрос. Умеет ли F4 хранить backup регистры без счета времени в RTC?
У L4 указано явно Ultra-low-power mode: 8 nA with backup registers without real-time clock (5 wakeup pins). 8нА это круто, но мне не хватает его частоты.
Для F4 вижу в даташите потребление при Backup SRAM OFF, RTC and LSE OFF составляет 50 нА. Но не понятно работают при этом backup регистры или нет.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 13:51
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 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: Только мы так защищали не инфу. Инфу защищать лучше всего шифрованием как я уже говорил.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 30 2017, 15:11
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 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);
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 30 2017, 15:51
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 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 вы не меряли какой у вас ток потребляет при ваших параметрах? При ваших параметрах кажется латентность составляет полсекунды?
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 23:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01748 секунд с 7
ELECTRONIX ©2004-2016