Домашняя телеметрия
Система домашней телеметрии
Сбор и анализ информации с датчиков
Главная › Описание › Достоверность данных


V. Достоверность получаемых данных.

Для обеспечения достоверности нужно выполнить 3 составляющие:

  1. Аутентичность отправителя сообщения.
    Возможность получателя проверить, что сообщение получено именно от отправителя, но не от кого-либо другого. Тем самым исключить фальсификацию вида: создание ложного сообщения. Для этого сообщение снабжается подписью - числом, которое вычисляется отправителем на основе содержания сообщения и секретного ключа известного только отправителю и получателю. Получатель при получении сообщения повторно вычисляет подпись и если она не совпадает с подписью в сообщении, то сообщение отбрасывается. Также можно добавить в сообщение контрольную информацию - например контрольную сумму или продублировать некоторую информацию в сообщении, а потом зашифровать его целиком. После расшифровки контрольная информация проверяется.
  2. Аутентичность самого сообщения.
    Возможность получателя проверить, что он получил новое сообщение, а не повтор ранее полученного. Тем самым исключить фальсификацию вида: перехват - воспроизведение. Для этого каждое сообщение должно быть уникальным, а получатель должен иметь возможность проверки уникальности. Чтобы сделать сообщение уникальным, в него надо добавить счетчик сообщений. Отправитель всякий раз после отправки сообщения увеличивает значение счетчика на 1. Получатель сравнивает значение счетчика с хранящимся у него последним принятым и если текущее значение меньше или равно, то сообщение отбрасывается как повторное.
  3. Своевременность получения сообщения.
    Возможность получателя узнать, сколько времени прошло с момента отправки сообщения отправителем. Тем самым исключить фальсификацию вида: подавление передачи и перехват - отложенное воспроизведение. Для этого сообщение снабжается меткой времени. Получатель сравнивает значение метки с текущим временем и если разница превышает заданное значение, сообщение отбрасывается.
Если сообщения отправляются реже, чем изменяется метка времени, то метку времени можно использовать как счетчик.

Таким образом получаем следующее взаимодействие Сервера ЦК и КД.

  1. Криптография между Сервером и ЦК не используется.
    Канал связи между Сервером и ЦК считаем доверенным.
  2. Ключи в ЦК и КД жестко прописаны и записываются во время программирования МК.
    Тиражирование устройства не требуется, а инициализация ключей - это дополнительное усложнение.
  3. Все сообщения между ЦК и КД, полностью шифруются и содержат контрольную информацию.
    Если после расшифровки контрольная информация неправильная, то сообщение отбрасывается. Эта мера обеспечивает 1-ую составляющую.
  4. У Сервера есть часы, которые он периодически синхронизирует через Интернет.
    Ответственность за правильное время целиком лежит на Сервере.
  5. ЦК и КД содержат часы-счетчик.
    Счетчик считает текущее время от некоторого начального значения (например начало эпохи Unix) и увеличивается на 1 каждую секунду. Во всех сообщениях присутствует значение счетчика - метка времени. Эта мера обеспечивает 2-ую составляющую. Если разность между текущим временем получателя и меткой времени в сообщении превышает 2 сек, то КД отбрасывает сообщение, а ЦК посылает команду синхронизации времени. Эта мера обеспечивает 3-ую составляющую.
  6. Кроме часов-счетчика ЦК и КД содержат еще и счетчик сообщений.
    В состав команды синхронизации времени входит метка времени КД, которую получил ЦК и счетчик сообщений. Счетчик нужен для исключения фальсификации установки времени, если в результате аппаратного сброса КД время будет установлено в 0.