СПОСОБ БЕЗОПАСНОЙ ПЕРЕДАЧИ ДАННЫХ И СИСТЕМА СВЯЗИ ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ
METHOD OF SAFETY DATA TRANSMISSION AND COMMUNICATION SYSTEM FOR ITS IMPLEMENTATION

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу безопасной передачи данных между по меньшей мере одним узлом, выполненным в качестве сервера, и несколькими узлами, каждый из которых выполнен в качестве клиента, а также к системе связи для осуществления этого способа.
Уровень техники
В транспортных средствах отказ критичных с точки зрения безопасности функций или выход из строя таких компонентов, прежде всего блоков управления транспортного средства, может привести к тяжелым авариям. Поэтому на безопасность и надежность функций транспортного средства, таких, например, как тормоза, установлены высокие требования. При этом представлены и охарактеризованы как методы тестирования, так и диагностические мероприятия для удовлетворения этим требованиям и для идентификации неисправностей. Особым назначением диагностической функции является реализация мониторинга важных с точки зрения безопасности систем для обеспечения возможности целенаправленного поиска неисправностей при ненормальном поведении транспортного средства, вызывающем" подозрения о его неисправности.
В способе диагностирования неисправностей, например, предусмотрена проверка того, выполняются ли взаимосвязи, существующие между по меньшей мере двумя значениями. При этом предлагаются различные способы проверки такого рода взаимосвязей. Мониторинг транспортного средства, прежде всего блоков управления транспортного средства, реализован посредством диагностической системы. Между тем, диагностическая система относится к базовому объему блока управления серийного производства. При этом проводят различия между бортовой (встроенной) и стендовой диагностическими функциями. Стендовыми диагностическими функциями именуют функции распознавания неисправностей, при работе которых соответствующий блок управления подключен к диагностическому тестеру. Кроме того, к диагностическому тестеру может быть подключено несколько блоков управления. При этом диагностический тестер подключают к центральному диалоговому интерфейсу транспортного средства, так называемому центральному штекеру для присоединения диагностического стенда, связанному с различными блоками управления транспортного средства. Так может быть получен доступ ко всем обладающим способностью проведения диагностики блокам управления. Для регламентирования связи между блоком управления и диагностическим тестером были разработаны стандарты. Как правило, с учетом этого стандарта связь в стендовых условиях определяется однозначно. Путь для стандартизации также был задан законодательно предписанными нормами, которые для проверки важных с точки зрения контроля отработавших газов системных функций обязывают использовать относительно унифицированный интерфейс. Так называемый протокол Keyword 2000 был реализован сначала с помощью линии К, однопроводной шины двунаправленного действия, а позднее с помощью шинных систем па основе протокола CAN (сокр. от англ. "Controller Area Network", протокол сети контроллеров), которые нормированы, среди прочего, в стандарте ISO 14230. В другом стандарте, ISO 14229, обобщены принципы, введенные с диагностикой согласно протоколу Keyword 2000, для обеспечения в результате этого возможности интеграции других шинных систем, таких как LIN (сокр. от англ. Local Interconnect Network) или FlexRay. Однако во всех перечисленных стандартах до настоящего времени описана только стендовая связь между служащим в качестве сервера диагностическим тестером и блоком управления, функционирующим в качестве клиента.
Способ обеспечения безопасности передачи данных между по меньшей мере двумя блоками управления известен из публикации DE 19652256 A1, принадлежащей компании "Robert Bosch GmbH". В этом способе один из блоков управления передает случайную битовую последовательность по шине данных. Вслед за этим во всех блоках управления генерируется код-ключ со случайной битовой последовательностью и внутренним ключом. Один из блоков управления посылает сообщение, сгенерированное с кодом-ключом, которое проверяется в принимающих блоках управления на правильность его кодирования с кодом-ключом и считывается в них. Также при этом существует возможность, что первый блок управления с помощью несущего ключ сигнала вводится в эксплуатацию, причем этот первый блок управления квитирует прием несущего ключ сигнала посредством активизирующего сигнала по шине данных, а второй блок управления инициализируется по активизирующему сигналу. Помимо этого, начинается передача случайной битовой последовательности от второго блока управления к первому блоку управления. Оба блока управления могут генерировать код-ключ со случайной битовой последовательностью и внутренним ключом.
Способ распределения ключей посредством сети является предметом публикации US 7346771 B2, принадлежащей компании "Nokia Corporation". При осуществлении этого способа ключи используются между маршрутизаторами сети с использованием сообщений в соответствии с протоколом обмена маршрутной информацией, выступающими в качестве средства для распределения ключей. С этой целью в этом способе предусмотрено использование системы аутентификации цепочечного принципа действия (с последовательным выполнением операций).
Из публикации EP 1959606 A1, принадлежащей компании "Secunet Security Networks AG", известен блок обеспечения безопасности для транспортного средства. Указанный блок обеспечения безопасности содержит по меньшей мере один криптографический модуль, с помощью которого происходит генерирование криптографического ключа, сохранение его в памяти, управление им и/или его обработка. Блок обеспечения безопасности соединен по шине транспортного средства с несколькими блоками управления.
Раскрытие изобретения
Задача настоящего изобретения состоит в том, чтобы исходя из приведенного уровня техники, предусмотреть возможность обеспечения стендовой связи между несколькими блоками управления и диагностическим тестером, которая была бы эффективна и организована, прежде всего с учетом важной с точки зрения безопасности передачи данных.
Указанная задача решается разработкой предлагаемого в изобретении способа с отличительными признаками, изложенными в пункте 1 формулы изобретения, и системы связи с отличительными признаками, изложенными в пункте 8 формулы изобретения.
В зависимых пунктах формулы изобретения приведены дополнительные варианты осуществления изобретения.
В изобретении разработан способ безопасной передачи данных между по меньшей мере одним узлом, выполненным в качестве сервера, и несколькими узлами, каждый из которых выполнен в качестве клиента, причем сервер может связываться посредством центрального диалогового интерфейса только с тем из клиентов, который функционирует в качестве главного клиента, и все выполненные в качестве клиентов узлы соединены между собой посредством шины данных.
В рамках настоящего описания под главным клиентом понимается клиент из числа нескольких клиентов, который может восприниматься сервером как выступающий в качестве точки доступа узел, посторонний по отношению к нескольким клиентам, и который по отношению к серверу может быть вызываемым абонентом или стороной, направляющей к нему исходящие вызовы. В отличие от этого, к остальным клиентам из числа нескольких клиентов сервер не может иметь прямого доступа.
В соответствии с предлагаемым в изобретении способом главный клиент в качестве реакции на выполненный сервером запрос на получение доступа генерирует значение инициализации и посылает его серверу. Сервер на основании значения инициализации вычисляет с помощью правила вычисления первый ключ и посылает его главному клиенту. Главный клиент сопоставляет первый ключ, вычисленный сервером, со вторым ключом, определенным им самим с помощью указанного правила вычисления, и при совпадении первого ключа и второго ключа инициирует установление доступа по меньшей мере к одному из остальных клиентов.
При упоминании в описании предлагаемого в изобретении способа термина "сервер" речь может идти, например, о названном выше уже известном так называемом диагностическом тестере. Несколько клиентов могут представлять собой блоки управления транспортного средства. Тогда один из этих блоков управления функционирует в качестве описанного выше главного клиента по отношению к диагностическому тестеру и в сравнении с другими блоками управления.
При осуществлении предлагаемого в изобретении способа на первом шаге предусмотрено, что сервер посылает первый запрос на получение безопасного доступа к главному клиенту, который на основе этого генерирует значение инициализации, также называемое "начальным числом" ("Seed"), и посылает его серверу. На основе принятого им значения инициализации сервер вычисляет ключ и посылает его обратно главному клиенту. Далее главный клиент на основе правила вычисления, например, алгоритма обеспечения безопасности, также используемого сервером, вычисляет второй ключ и сопоставляет этот второй ключ с принятым первым ключом. В еще одном варианте осуществления предлагаемого в изобретении способа главный клиент инициирует установление доступа по меньшей мере к еще одному клиенту из числа нескольких клиентов. При этом для по меньшей мере еще одного клиента главный клиент выполняет задачу сервера и также посылает этому по меньшей мере еще одному клиенту запрос на получение безопасного доступа. Способ может иметь рекурсивное продолжение, в результате чего возможно генерирование одного за другим ключей для соответствующего безопасного доступа для каждого клиента из числа нескольких клиентов.
В варианте осуществления предлагаемого в изобретении способа значение инициализации выбирают как случайную битовую последовательность, а правило(-а) вычисления жестко задают и сохраняют на сервере и в клиентах, в каждом случае с возможностью вызова правила из памяти.
В еще одном варианте осуществления предлагаемого в изобретении способа при совпадении первого ключа и второго ключа и после инициирования процесса установления доступа по меньшей мере к еще одному клиенту главный клиент извещает сервер о том, что идет процесс установления доступа по меньшей мере к еще одному клиенту.
Кроме того, в изобретении предусмотрено, что в случае, если в процессе установления доступа по меньшей мере к еще одному из остальных клиентов этот клиент определяет, что ключ главного клиента, вычисленный для обеспечения доступа к по меньшей мере одному клиенту, не совпадает с ключом, вычисленным соответствующим образом им самим, главный клиент останавливает процесс установления доступа к этому по меньшей мере еще одному клиенту, извещает об этом сервер и блокирует передачу данных.
В еще одном варианте осуществления предлагаемого в изобретении способа предусмотрено, что при совпадении первого ключа и второго ключа главный клиент пошагово инициирует процесс установления доступа к каждому из всех остальных клиентов, при этом главный клиент каждый раз действует в качестве сервера, а соответствующий клиент - в качестве главного клиента. Это означает, что установление доступа к одному из остальных клиентов происходит по той же самой схеме, как и установление доступа сервера к главному клиенту. Длина соответствующих вычисленных ключей и правила вычисления, соответственно алгоритмы для вычисления соответствующих ключей могут быть определены, например, конкретным производителем и отличаться друг от друга. Это означает, что правило вычисления, предназначенное для вычисления первого ключа со стороны сервера и вычисления второго ключа главным клиентом, может отличаться от правила вычисления, применяемого для вычисления соответствующих ключей для установления доступа от главного клиента к одному из остальных клиентов. Кроме того, также могут между собой отличаться применяемые в каждом случае правила вычисления для установления соответствующего доступа от главного клиента к остальным клиентам.
Кроме того, в изобретении предусмотрено, что соответствующий клиент выдает главному клиенту ответный сигнал, извещая его о том, совпадают ли ключи, соответственно вычисленные для доступа к этому клиенту. При несовпадении ключей для доступа по меньшей мере к одному из остальных клиентов главный клиент останавливает соответствующие процессы установления доступа ко всем остальным клиентам, извещает об этом сервер и блокирует передачу данных. Это означает, что при несовпадении ключей для доступа уже только к одному из клиентов становится невозможным всякий доступ сервера к остальным клиентам, поскольку главный клиент незамедлительно блокирует все соответствующие доступы к клиентам, выступая в своем функционировании как единственная точка контакта, соответственно как диалоговый интерфейс между сервером и клиентами. В результате этого невозможна передача данных между сервером и одним из клиентов из нескольких клиентов. Только когда, с помощью положительного ответного сигнала от соответствующих клиентов к главному клиенту, подтверждены и тем самым разрешены все доступы ко всем клиентам из числа нескольких клиентов, для которых требуется доступ со стороны сервера, главный клиент информирует сервер с помощью положительного ответного сигнала, в результате чего тот может выдавать команду на соответствующую передачу данных.
Еще одним объектом изобретения является система связи, включающая в себя узел, выполненный в качестве сервера, и несколько узлов, каждый из которых выполнен в качестве клиента, причем сервер выполнен с возможностью связи, осуществляемой посредством центрального диалогового интерфейса, только с тем клиентом из числа нескольких клиентов, который функционирует в качестве главного клиента, а все выполненные в качестве клиентов узлы соединены между собой с помощью шины данных. При этом в предлагаемой в изобретении системе связи связь между главным клиентом и сервером реализована таким образом, что главный клиент в качестве реакции на выполненный сервером запрос на получение доступа генерирует значение инициализации и посылает его серверу, сервер на основании значения инициализации вычисляет с помощью правила вычисления первый ключ и посылает его главному клиенту, главный клиент сопоставляет первый ключ, вычисленный сервером, со вторым ключом, определенным им самим с помощью указанного правила вычисления, и при совпадении первого ключа и второго ключа главный клиент инициирует установление доступа по меньшей мере к еще одному из остальных клиентов.
В одном из вариантов выполнения предлагаемой в изобретении системы связи она может представлять собой систему контроля, в которой сервер - это блок контроля, а клиенты - это соответствующие блоки управления транспортного средства.
Из соображений безопасности необходимо в каждом случае обеспечить конфиденциальность и защищенность доступа к важным с точки зрения безопасности функциям блока управления или к важным с точки зрения безопасности областям, таким, например, как программирование данных. Для получения доступа блок контроля с помощью первого сообщения может пригласить к сеансу соответствующий блок управления, чтобы предоставить безопасный доступ. Условия для предоставления такого доступа определяются производителем транспортного средства. Отныне, с момента внедрения предлагаемого в изобретении решения для установления такого доступа связь между блоком контроля и несколькими блоками управления осуществляется посредством центрального диалогового интерфейса между блоком контроля и служащим в качестве главного клиента блоком управления. При этом блок контроля регистрируется в блоке управления, функционирующем в качестве главного клиента, с помощью процедуры обмена ключами с целью получения доступа к блоку управления и его функциям, а также к другим блокам управления, связанным с главным клиентом. Для этого блок контроля посылает второе сообщение, на которое блок управления, функционирующий в качестве главного клиента, отвечает значением инициализации. Оно может представлять собой, как уже упоминалось выше, случайное число или случайную битовую последовательность. Из него блок контроля вычисляет первый ключ и посылает его с третьим сообщением обратно блоку управления, функционирующему в качестве главного клиента. В случае совпадения ответа со значением, ожидаемым блоком управления, исполняющий роль главного клиента блок управления инициирует процесс установления доступа по меньшей мере к еще одному следующему из остальных блоков управления, как правило, осуществляя последовательное установление соответствующих доступов ко всем блокам управления, связанным с функционирующим в качестве главного клиента блоком управления, для получения таким образом безопасного доступа ко всем связанным между собой блокам управления. При этом установление доступа к соответствующим клиентам происходит по той же самой схеме, что и доступ к блоку управления, функционирующему в качестве главного клиента, со стороны блока контроля, исполняющего роль сервера. Если каждый из клиентов, или соответствующих блоков управления, может подтвердить совпадение ключей, вычисленных соответствующим образом в каждом случае, то функционирующий в качестве главного клиента блок управления посылает обратно блоку контроля положительный ответ и разблокирует доступ или доступы. Длина вычисленных в каждом случае ключей, а также алгоритмы для их вычисления, например, могут быть предопределены соответствующим производителем транспортного средства и отличаться в соответствующих случаях.
Возможен вариант, в котором при установлении соответствующих доступов активируется механизм взятия тайм-аута. Если в течение всего отрезка времени длительностью x секунд блок контроля не получает сообщения от блока управления, функционирующего в качестве главного клиента (где х является крайним сроком такого поступления сообщения), то прерывается связь между блоком контроля и блоком управления, функционирующим в качестве главного клиента. Исходя из этого главный клиент в течение отрезка времени длительностью y секунд отправляет сообщение о своем присутствии (где y - число, меньшее х, и является крайним сроком для такой отправки), в случае, если в это время ему не предстоит отсылать подлинно диагностические сообщения.
Другие преимущества и варианты осуществления изобретения выявляются в приведенном ниже описании его осуществления, поясняемом приложенными чертежами.
Понятно, что описанные выше и поясняемые ниже признаки могут использоваться не только в указанной комбинации, но и в других комбинациях или по отдельности, не выходя за рамки настоящего изобретения.
Краткое описание чертежей
На фиг.1 показан вариант осуществления предлагаемого в изобретении способа, в котором происходит установление соответствующего доступа к нескольким клиентам.
Осуществление изобретения
Ниже приведено подробное описание изобретения на примере варианта его осуществления, сделанное со ссылками на приложенные чертежи, на которых оно схематически изображено.
Чертеж на фиг.1 подразделяется на фиг.1а, 1б и 1в, в совокупности своей иллюстрирующие предлагаемый в изобретении способ, в котором происходит установление соответствующего доступа к нескольким клиентам.
При этом на фиг.1а показан выполненный в качестве сервера узел 1, а также несколько выполненных в качестве клиентов узлов 10_1, 10_2, 10_3, 10_4, …, 10_n. В соответствии с предлагаемым в изобретении способом один из выполненных в качестве клиентов узлов выполнен в качестве главного клиента и рассчитан на то, чтобы вступать в связь с сервером 1. В дальнейшем описании выполненные в качестве клиентов узлы в общем случае обозначаются как клиенты. В рассматриваемом случае главный клиент изображен посредством клиента 10_1. Для открытия сессии запускается связь между сервером 1, под которым может иметься в виду, например, диагностический тестер, и главным клиентом 10_1. При этом сервер 1 регистрируется (отправкой своего логина) у главного клиента 10_1 при помощи обмена ключами для получения доступа к определенному диагностическому сервису и к связанным с главным клиентом другим клиентам 10_2, … 10_n. Для этого сервер 1 посылает главному клиенту 101 первое сообщение 101, на которое главный клиент отвечает выработкой и отправкой значения инициализации, содержащегося в сообщении 102. Это означает, что в качестве реакции на сообщение 101 главный клиент 10_1 генерирует значение 11 инициализации. Оно может представлять собой, как уже упоминалось выше, случайное число или случайную битовую последовательность. Из этого значения сервер 1 вычисляет первый ключ и посылает его со вторым сообщением 103 главному клиенту 10_1. Главный клиент 10_1 вычисляет второй ключ по уже использованному сервером 1 правилу вычисления и сопоставляет второй ключ с первым ключом. В случае несовпадения первого ключа, вычисленного сервером 1, со вторым ключом, вычисленным главным клиентом 10_1, этот главный клиент 10_1 посылает соответствующее отрицательное сообщение 104 серверу 1 о том, что передача данных производиться не будет, и доступ блокирован. В случае совпадения ключей, т.е. первого ключа, вычисленного сервером 1, и второго ключа, вычисленного главным клиентом 10_1, главный клиент 10_1 посылает серверу 1 положительное сообщение 105, уведомляя его о том, что он инициирует установление доступа к следующему клиенту.
В результате этого главный клиент 101 посылает к следующему клиенту, которым в рассматриваемом случае является клиент 10_2, соответствующий запрос, т.е. сообщение 106, соответствующее сообщению 101. По отношению к остальным клиентам 10_2, 10_3, …, 10_n главный клиент действует в качестве сервера. В качестве реакции на поступившее от главного клиента 10_1 сообщение 106 клиент 10_2 генерирует следующее значение 12 инициализации. Клиент 10_2 посылает это значение 12 инициализации обратно главному клиенту 10_1 с сообщением 107. В качестве реакции на это сообщение главный клиент 10_1 вычисляет ключ с помощью правила вычисления с использованием алгоритма обеспечения безопасности и посылает вычисленный таким путем ключ с сообщением 108 обратно клиенту 10_2. Клиент 10_2 с помощью того же самого правила вычисления также вычисляет соответствующий ключ и сопоставляет его с ключом, переданным главным клиентом. В случае несовпадения ключей клиент 10_2 в сообщении 109 уведомляет об этом главного клиента 10_1, который вслед за тем информирует сервер 1 с помощью сообщения 110 и блокирует доступы. Благодаря этому сервер 1 не имеет никакого доступа ни к главному клиенту 10_1, ни к следующему клиенту 10_2 или другим клиентам. В случае же, если оба ключа совпадают, то клиент 10_2 уведомляет об этом главного клиента 10_1 с помощью положительного сообщения 111.
Теперь приводится описание со ссылками на фиг.1б, где показано продолжение процесса инициирования осуществления следующих доступов к следующим клиентам, после того, как был успешно осуществлен доступ к клиенту 10_2. Здесь главный клиент снова действует в качестве сервера и опять посылает клиенту 10_3 сообщение 112, соответствующее сообщению 101. В качестве реакции на это сообщение клиент 10_3 генерирует следующее значение 13 инициализации, которое он с помощью сообщения 113 пересылает главному клиенту 10_1. На основании значения 13 инициализации и правила вычисления главный клиент 10_1 снова вычисляет ключ, который он передает клиенту 10_3 с помощью сообщения 114. Клиент 10_3 снова вычисляет, с помощью все того же самого правила вычисления, следующий ключ и сопоставляет его с ключом, который ему передал главный клиент 10_1. В случае несовпадения ключей клиент 10_3 посылает отрицательное сообщение 115 главному клиенту, который в свою очередь передает соответствующее отрицательное сообщение 116 серверу 1. В случае совпадения ключей клиент 10_3 посылает положительное сообщение 117 главному клиенту 10_1. После этого главный клиент 10_1 в своем функционировании продолжает действовать в качестве сервера в ходе установления последующих доступов к следующим клиентам. Для этого он опять посылает к клиенту 10_4 сообщение, соответствующее сообщению 101, на этот раз это сообщение 118, при этом вслед за тем клиент 10_4 генерирует следующее значение 14 инициализации и с сообщением 119 передает его главному клиенту 10_1. На основании этого значения 14 инициализации и особого правила вычисления главный клиент 10_1 вновь вычисляет следующий ключ и передает этот ключ с сообщением 120 к клиенту 10_4. Последний с использованием того же самого правила вычисления вычисляет следующий ключ и сопоставляет этот ключ с ключом, который ему передал главный клиент 10_1. Если ключи не совпадают, то клиент 10_4 посылает отрицательное сообщение 121 главному клиенту 10_1, который направляет соответствующее отрицательное сообщение 122 серверу 1. В случае совпадения ключей друг с другом клиент 10_4 реагирует посылкой главному клиенту 10_1 положительного сообщения 123.
На фиг.1в показано продолжение этого способа, обозначенное троеточием, пока дело, в конечном итоге, не дойдет до последнего из нескольких клиентов, для установления доступа к нему. Для этого главный клиент 10_1 опять посылает сообщение 130, соответствующее сообщению 101, к клиенту 10_n, который вслед за тем генерирует следующее значение 1n инициализации и посредством сообщения 131 передает его главному клиенту 10_1. Последний на основании значения 1n инициализации и особого правила вычисления вычисляет ключ и передает его с помощью сообщения 132 к клиенту 10_n, который на основании того же самого правила вычисления вычисляет еще один ключ и сопоставляет его с ключом, сгенерированным главным клиентом 10_1 и переданным ему посредством сообщения 132. В случае несовпадения ключей клиент 10_1 отправляет соответствующее отрицательное сообщение 133 главному клиенту 10_1. После этого главный клиент 10_1 посылает отрицательное сообщение серверу 1 с помощью сообщения 134. В случае же совпадения ключей это клиент 10_n с помощью сообщения 135 также уведомляет об этом главного клиента 10_1, который в завершение передает серверу 1 положительный ответный сигнал 136, в результате чего сервер 1 в состоянии безопасно передавать данные всем клиентам 10_1, 10_2, …, 10_n через главного клиента 10_1. Возможен вариант, в котором для генерирования всех ключей используется то же самое правило вычисления, соответственно тот же самый алгоритм обеспечения безопасности, а отличается или должно отличаться в каждом случае только используемое значение инициализации. Вместе с тем, возможен вариант, в котором закладываются различные правила вычисления, которые и используют для вычисления соответствующих ключей. Это может задаваться со стороны специального изготовителя, например, производителя транспортного средства, в случаях связи между блоками управления.