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