Динамический код управления. Динамическое кодирование в автосигнализациях

Если любознательный автолюбитель задает вопрос о том, смогут ли перехватить код брелка его сигнализации и, таким образом, - угнать авто, он получает от установщика автосигнализации чаще всего такой ответ: "Код динамический (иногда добавят название алгоритма шифрования), при каждой новой посылке меняется". Обычно после этого ответа не возникает вопросов и радостный автовладелец уезжает восвояси, спокойный и довольный. Конечно не может быть и речи о спокойствии только на основании того, что автосигнализация поставлена и код у нее динамический... И речь здесь идет не о криптостойкости! - дело в том, что недостаточно одной сигнализации, - это вам скажет любой установщик.

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

Однако если взять вполне "приличный" и дорогой охранный комплекс, состоящий из автосигнализации, удаленного реле, висящего на штатном проводе и управляемого от сигнализации, а также, например электромеханического замка на капот Defentime (управляемого от автосигнализации), то электронный ключ от автосигнализации - это все что нужно угонщику, что бы сесть в ваш автомобиль и уехать..... Как печально! Вывод напрашивается сам собой, - трудно переоценить значание криптостойкости вашей автосигнализации!!!

Окунемся немного в историю и посмотрим, - какже появились на свет все эти Килоги, и прочие алгоритмы шифрования

В устаревших сигнализациях применялись коды с числом комбинаций до 512, Подбор такого кода занимает менее 1 минуты. Количество комбинаций кодов в современных сигнализациях может достигать нескольких тысяч миллиардов. Первая структура динамического кода была предложена итальянской компанией Autotechnica еще в 1995 году. Но подлинная революция в применении этой технологии произошла, когда компания Microchip изготовила наборы кодирующих и декодирующих устройств, сопроводив их своими руководствами по внедрению. Эта "техническая интервенция" способствовала появлению у разных изготовителей своих собственных оригинальных алгоритмов. Однако, до сих пор продукция фирмы Microrochip пользуется большим спросом, а технология "Keeloq" известна всем, кто не остановил свое знакомство с автомобилем на замке зажигания, двери и "балоннике".

Именно здесь, я сделаю отступление и расскажу автолюбителям о таком понятии, как антисканирование, - практически стандартная опция для современной автосигнализации. Под этим термином понимают то, что злоумышленник не сможет снять сигнализацию с охраны с помощью сканера. Сканер – это относительно несложное устройство, которое последовательно воспроизводит коды в формате взламываемой сигнализации. Систему с антисканированием нельзя выключить перебором кодов брелока, так как при приеме неверного кода она, на некоторое время блокируется, увеличивая время, необходимое для сканирования. Блокировка снимается многократной передачей правильного кода. При достаточно большом числе возможных кодов перебор займет нереально много времени. Технология антисканирования применяется уже несколько лет и не является новинкой. Системы с антисканированием не защищены от перехвата кодов из эфира с помощью специальных устройств (грабберов или перехватчиков кодов). Антисканирующая пауза является необходимым атрибутом и в системах с динамическим кодом.

Что же такое динамический код...

Технология плавающих кодов делает невозможным, как перехват кодов из эфира, так и их подбор. Действительный код шифруется таким образом, что при каждой передаче излучается внешне совершенно другая кодовая посылка. В приемнике действительный код восстанавливается путем математической обработки. Перехват кодов становится бессмысленным, так как невозможно предсказать какая следующая кодовая комбинация снимет сигнализацию с охраны. Простое повторение предыдущей посылки не приведет к выключению сигнализации, так как бывшие в прошлом посылки считаются недействительными. Предсказать же будущую посылку теоретически можно, только зная алгоритм шифрования кода, который держится фирмой-изготовителем в секрете и достаточное количество выборок кода для анализа. Кодовые комбинации повторяются с очень большим интервалом. Исследования модели MICROCAR 052.1 показали, что для данной модели этот период составляет более 65000 нажатий. Можно сказать что, в процессе эксплуатации, передаваемые кодовые комбинации не разу не повторяются – машина не служит 20 лет. Коды-идентификаторы брелоков автосигнализаций с плавающими кодами записываются в заводских условиях и являются уникальными не подлежащими замене в процессе эксплуатации. Технология плавающих кодов очень эффективно защищает сигнализацию от взлома с помощью электронных средств. Степень защиты от расшифровки зависит от применяемого алгоритма кодирования. Именно здесь и кроется одно большое "НО" (см. далее "Двойной динамический код")

Рассмотрим немного подробнее, что же представляет из себя динамический код на основе все того же Keeloq

В основе технологии keeloq лежит понятие секретных кодирующих/декодирующих ключей (шифров), которые преобразуют исходную информацию в кодированную и кодированные данные в исходные.

Однако к кодирующему ключу разработчикам пришлось добавить еще несколько структур данных специального назначения. Кратко рассмотрим их.

Кодирующий (секретный) ключ 64-битовая комбинация, образуемая генерирующей функцией из серийного номера (ядра) и 64-битового ключа изготовителя. Кодирующий ключ используется для кодирования, а декодирующий для декодирования посылки. Значение ключа не может быть прочитано, и оно никогда не передается.

Счетчик синхронизации 16-битовая комбинация счетчика, передаваемая каждый раз при активации кодирующего устройства (кодера), например, путем нажатия кнопки брелока. Счетчик синхронизации формируется в кодере и передается в закодированном виде в составе переменной части посылки. Эта структура позволяет отслеживать синхронность шагов декодирующего и кодирующего устройств. Текущее значение счетчика синхронизации от каждого кодера запоминается в декодере и позволяет отличить принятую следующую посылку от предыдущей или внеочередной, созданной не в соответствии с алгоритмом.

Дискриминатор 12-битовая произвольная комбинация, передаваемая кодером в закодированном виде в составе переменной части посылки. Он используется для проверки целостности процесса декодирования.

Серийный номер уникальный номер каждого кодера (брелока-передатчика) из 28 или 32 бит. Формируется при изготовлении кодера и передается в некодированном виде в постоянной части посылки.

Каждый кодер характеризуется набором из четырех величин, описанных выше: кодирующего ключа, счетчика синхронизации, дискриминатора и серийного номера. Поскольку значения всех этих величин различны для разных кодеров, то декодер должен хранить в памяти столько наборов, сколько кодеров использует система (обычно не более 6 8).

Формирование кодирующего ключа в кодере производится специальным программатором в процессе изготовления кодера. Для генерации кодирующего ключа необходимы серийный номер и ключ изготовителя.

Ключ изготовителя 64-битовая комбинация, используемая для образования кодирующего ключа и обеспечивающая разделения всего кодового пространства посылок между разными изготовителями. Ключ изготовителя также записывается в память декодирующего устройства. Естественно, для работы со всеми кодерами системы, произведенными одним изготовителем, достаточно запоминания одного ключа изготовителя.

Для того, чтобы сигнализация могла опознать "свои" брелки, в кодовой посылке брелка и памяти декодера сигнализации содержатся одинаковые коды-идентификаторы, которые запоминаются сигнализацией при программировании ("обучении") брелков. Код - идентификатор каждого брелка уникален и, чаще всего, записывается в кодер брелка при изготовлении.

Для того, чтобы код-идентификатор нельзя было перехватить из эфира, все (точнее практически все) уже передававшиеся коды нужно отсеивать, как недействительные. Кроме того, код-идентификатор и служебную информацию нельзя передавать в явном виде. Это возможно сделать, если до передачи налагать на код различные неповторяющиеся маски. Чтобы иметь возможность удалить маску при приеме, ее необходимо пронумеровать. В кодер и декодер включен т.н. счетчик синхронизации. Счетчик синхронизации содержит текущий номер маски. Каждое нажатие кнопки брелка приводит к увеличению состояния счетчика синхронизации брелка и изменению налагаемой маски. Типичная емкость счетчика синхронизации - 16 двоичных разрядов. Таким образом, брелок генерирует 65000 неповторяющихся масок.

Кодовые брелоки

Кодовый брелок сигнализации – это миниатюрный передатчик, работающий в диапазоне дециметровых волн (200...450 МГц). Реже встречаются модели, работающие на инфракрасных лучах, они отличаются малым радиусом действия.
Для сигнализаций оснащенных брелоками на ИК – лучах перехват кодов весьма затруднен из-за малого радиуса действия и направленности брелоков-передатчиков (при пользовании их приходится направлять в определенное место салона автомобиля с расстояния не более нескольких метров). Эта особенность может создавать неудобства при пользовании. Сигнализации с ИК-брелоками: BOSH Blocktronic IR-US, BOSH Blocktronic IM-US

Рабочие частоты передатчиков постоянны и нормированы контрольными органами электросвязи стран в которые эти устройства ввозятся.

Для передачи кода в эфир используется однотранзисторный генератор, работающий на одной из вышеуказанных частот. В современных сигнализациях, во избежание ухода частоты при изменении температуры и влажности, частота передачи стабилизируется с помощью фильтров на поверхностных акустических волнах. Для воспроизведения кода – идентификатора в брелоках используются специализированные микросхемы – кодеры, а также, запрограммированные соответствующим образом, микроконтроллеры.

Двойной динамический код

С тех пор, как код – граббер перестал быть экзотикой и доступен угонщикам, все большое значение уделяется степени секретности кодовой посылки, передаваемой с брелока. Как результат этого процесса все большее число систем выпускается с динамическим кодом. Никто не оспаривает его преимуществ. Однако и он не может считаться панацеей на все случаи. Если алгоритм изменения становится известен, (а он известен, по крайней мере, разработчику), то внедриться в систему остается делом техники. Не даром система кодировки так тщательно засекречивается и скрывается производителями сигнализаций. Для исключения и этой возможности для электронного взлома разработан так называемый D2-код, сущность которого заключается в том, что каждому брелоку, помимо разрядного номера, присвоен еще и свой индивидуальный закон изменения кода. Это индивидуальное правило записывается в декодер один раз при вводе (программировании) брелока, в эфире больше не появляется и радиоперехвату недоступно. Таким образом, даже разработчик системы, обладая всей необходимой информацией о способах кодирования и соответствующей аппаратурой, не сможет расшифровать этот код.

// Динамическое кодирование

Люди столетиями бьются над созданием «философского камня» и «перпетум мобиле», т.е. вечного двигателя. И оказывается что-то подобное вечному если не двигателю, то процессу есть. Это борьба создателей охранных комплексов, сберегающие личное имущество, и угонщиков, нато самое имущество зарящиеся. Прямо борьба добра со злом. В автомобильных сигнализациях основным камнем преткновения и предметом пристального внимания как раз стал код сигнала.

Большинство существующих сигнализаций управляются дистанционно по радиоканалу с помощью брелока-передатчика. И, чтобы все брелоки не подходили ко всем сигнализациям, посылки радиообмена между брелоком и сигнализацией кодируются.

На заре возникновения сигнализаций код этот был достаточно несложным. По сути, в модели использовался один код, отличавшийся лишь номером брелока в партии. Тогда то и появились сканеры – устройства, перебирающие код один за другим, пока не будет найден нужный. Озадачившись данной проблемой, разработчики написали программу «антисканирования». При попытке перебора кодов сигнализация блокируется и не воспринимает повторяющиеся один за другим коды.

Следующим этапом было создание «граббера», по сути, являвшегося приемником-передатчиком с памятью, настроенным на нужную частоту. «Граббер» записывал в память один из кодов и, когда владелец автомобиля уходил, воспроизводил этот самый код, которым снимал систему с охраны.

Но «не долго музыка играла». В противовес этим ухищрениям угонщиков создатели сигнализаций начали использовать «динамический код». Суть его заключается в том, что в теле кода есть «счетчик» и при каждом новом нажатии на кнопку брелока в эфир посылается новый код. И количество этих кодов таково, что, чтобы их перебрать, понадобится немало лет, а не минут или секунд. Мало того, если записать однажды воспроизведенный код, то сигнализация уже никогда более его не воспримет (благодаря тому же «счетчику», так как порядковый номер этого кода будет меньше используемого в данный момент).

Угонщики и здесь не остались в долгу. Появился «граббер» нового образца, который при обнаружении излучения в данном диапазоне посылал помеху в эфир, одновременно записывая передаваемый брелоком сигнализации код. Дело в том, что в сигнализациях тех времен для постановки на охрану и снятия с охраны использовалась одна и та же кнопка брелока. По сути, это была кнопка, посылающая сигнал «изменения состояния сигнализации», то есть если система была на охране, то этим кодом она снималась и наоборот. Рассмотрим, так сказать, в реальных условиях, что происходило на самом деле. Владелец авто нажимал на кнопку брелока сигнализации. «Граббер» записывал этот код, одновременно посылая помеху в эфир. Из-за этой помехи сигнализация не воспринимала код своего брелока и неичего не происходило. Автовладелец нажимал на кнопку вновь и вновь, а «граббер» все записывал и записывал коды. Когда злоумышленник считал, что кодов он записал достаточно, он воспроизводил первый записанный код, ставя автомобиль на охрану. Как правило, владелец автомобиля не замечал чего-то странного, либо замечал, но списывал на что угодно, только не на свою невнимательность. Таким образом, водитель уходил, а у злоумышленника оставалось еще несколько записанных кодов, которые сигнализация еще «не видела» и готова была принять. Автомобиль снимался с охраны и уезжал в неизвестном направлении, в большинстве случаев так и остававшемся неизвестным.

Ответом производителей было создание брелоков с раздельными постановкой и снятием с охраны. Для постановки на охрану на брелоке - одна кнопка, для снятия – другая. Таким образом, в эфир в теле кода передается номер кнопки. И если «граббер» записал несколько кодов, то все они служат только для постановки на охрану и снять ими сигнализацию с охраны невозможно. Если, конечно, автовладелец при постановке на охрану (и неудаче с первого раза) не начинает жать на все подряд кнопки, в том числе и на кнопку снятия с охраны. И надо не забывать, что если даже «граббер» записал хоть десять этих кодов, то после первого же прохождения кода между брелоком и сигнализацией все предыдущие коды система воспринимать не будет. Поэтому главный совет владельцам сигнализаций более старых моделей: ставьте на охрану авто в непосредственной близости от водительской двери, а если не получилось - не жмите на все кнопки подряд (только на кнопку постановки). Если попытка все же не увенчалась успехом – воспользуйтесь функцией ручной постановки на охрану.

Но на этом производители сигнализаций не остановились. Во всяком случае, компания SHERIFF. В сигнализациях нового поколения используется уже совсем другое кодирование радиосигнала, имеющее аббревиатуру CFM.

Последние годы получил распространения динамический код от компании Microchip – KeeLog и KeeLog +, но данный алгоритм перестал удовлетворять возросшим требованиям компании SHERIFF к безопасности кодирования сигнала. В связи с этим компанией SHERIFF было принято решение о разработке совместно с одной из ведущих компаний в области электронной криптографии уникальной, абсолютно надежной, полностью исключающую возможность электронного взлома системы кодирования. Результатом этого сотрудничество стала система динамического кодирования нового поколении CFM и CFM II, алгоритм изменения которого держится в секрете. Сущность кода CFM заключается в том, что каждому брелоку, помимо разрядного номера, присвоен еще и свой индивидуальный закон изменения кода. Это индивидуальное правило записывается в память сигнализации один раз при программировании брелока, в эфире больше не появляется и радиоперехвату недоступно. Таким образом, даже разработчик системы, обладая всей необходимой информацией о способах кодирования и соответствующей аппаратурой, не сможет расшифровать этот код. При этом в коде CFM усложнены и нестандартно используются и динамическая и статическая части кода. Мануфактурный код (эта святая святых кодирования), во-первых, держится в строжайшей тайне (он известен свего ОДНОМУ человеку, потому утечки информации не может быть как таковой), а во-вторых, меняется в каждой партии сигнализаций, еще более усложняя жизнь потенциальным угонщикам. Все это направлено на повышение степени секретности кодовой посылки и исключение возможности взлома. На практике проверено - грабберы его не «берут».

Сигнал между брелоком и автоматическими воротами является основой любой современной охранной системы, позволяющей водителям дистанционно открывать гараж или шлагбаум. Радиосигнал каждого дистанционного устройства свободно распространяется во все стороны. В связи с этим его воспринимают не только ваши ворота, но и соседские. Для того чтоб не возникало неразберихи, и пульт приводил в действие только вашу автоматику, сигналы кодируют.

Данные по любому из радиоканалов передаются в виде определенной последовательности, которая носит название пакет данных. Каждый статический и динамический код в пультах несет в себе определенную команду - «поставить на охрану», «закрыть замки», «привести в действие автоматику для открытия». Разберем подробнее, что собой представляет каждый из кодированных сигналов

Статический код

Такую систему кодирования имели самые первые пульты от ворот. Суть работы такого радиосигнала заключался в применении определенных пакетов данных для каждой из команд, которые приводились в действие нажатием той или другой кнопки на брелоке. Определенным недостатком, который проявлялся сразу после начала массовой эксплуатации подобных устройств, стала статистическая вероятность, что свой пульт для шлагбаума мог открыть соседскую дверь. Т.к. всего заложено 4096 комбинаций, по статистике это 1 случай на 1000. Однако. В силу широкой популярности такого рода пультов, подобные ситуации происходили. Кроме того, статичный сигнал оставался ничем не защищенным от код-граберов, который в то время начали массово появляться на черном рынке страны.

Динамический код и его преимущества

Рост спроса на все дистанционные системы управления заставил производителей искать новые способы кодирования сигналов, благодаря чему на рынке Москвы появился принципиально новый брелок от автоматических ворот с динамическим сигналом. Это постоянно изменяющийся пакет данных, повторение которого практически невозможно. Как сам код, так и система декодирования рассчитывается по определенному алгоритму, который закладывается производителем.

Каждое нажатие на брелок несет в себе информацию о количестве предыдущих срабатываний, на основе чего рассчитывается код, который сможет синхронизировать брелок и блок управления автоматикой.

На различных тематических информационных ресурсах, посвящённых электронной коммерции и платежным картам, производители и обозреватели рассказывают об инновациях, призванных делать наши покупки в интернете еще безопаснее. В последнее время в интернете появилось множество статей о последней новинке компании Gemalto - пластиковой карте с автоматически изменяющимся кодом проверки подлинности — Dynamic Code Verification или сокращенно DCV. Особо подчеркивается высокий уровень защиты владельцев карт от мошеннических онлайн-платежей.

Как команда, имеющая непосредственное отношение к процессингу карточных платежей через интернет и радеющая за безопасность электронной коммерции, мы не могли пройти мимо предлагаемой инновации и не сравнить ее с технологией 3-D Secure, которая фактически является стандартом интернет-эквайринга в сфере защиты от мошеннических платежей.

Традиционный СVV/CVC - трехзначный код на банковской карте

Любому владельцу банковской платежной карты, который хоть раз оплачивал что-либо через интернет, хорошо известно, что для совершения платежа наряду со всеми реквизитами карты нужно ввести и трехзначный код, напечатанный на ее обратной стороне. В русскоязычном сегменте интернета эти три цифры обычно так и называют «трехзначный код». В англоязычном мире он известен как CVV (Card Verification Value) или CVC (Card Verification Code).

Изначально CVV/CVC был призван защитить электронную коммерцию от платежей, с использованием похищенных реквизитов банковских платёжных карт. В недавнем прошлом, как минимум лет 20 назад, основным источником хищения карточных реквизитов для интернет-мошенников являлся мир «оффлайна». Номер карты, имя владельца и срок ее действия можно было или подсмотреть и запомнить, когда владелец расплачивался в торговой точке, или скопировать со слип-чеков. А поскольку CVV/CVC просто печатался на обратной стороне карты, увидеть его и похитить было значительно сложнее, чем остальные карточные реквизиты.

Слип-чек - это чек, на который переносились карточные данные, эмбоссированные (или, проще говоря, выдавленные) на карте, путем ее прокатки в слип-машинке. Был такой способ приема карточных платежей, когда электронные каналы связи не были так хорошо развиты как сейчас, и торговые предприятия были оборудованы не электронными POS-терминалами, а такими вот механическими устройствами.

Однако с развитием электронной торговли защитная функция CVV/CVC постепенно утратила свою эффективность, так как мошенники начали активно использовать фишинговые методы добычи карточных данных, при которых, введенные в заблуждение, владельцы карт самостоятельно сообщали им не только выдавленные на карте реквизиты, но и тот самый CVV/CVC.

Эволюция CVV/CVC — динамический трехзначный код

Динамический код, DCV - это эволюционное развитие устаревших CVV/CVC. В отличие от них, на протяжении всего действия срока карты DCV регулярно меняется через равные промежутки времени (по умолчанию каждые 20 минут) по определенному алгоритму, известному только банку-эмитенту. Для отображения DCV в платежную карту встроен миниатюрный дисплей.

По замыслу разработчика технологии, DCV делает невозможным использование похищенных карточных реквизитов. Даже если мошенникам удалось получить полный набор данных, как максимум, через 20 минут код изменится, и попытка интернет-платежа с использованием устаревшего трехзначного кода будет отклонена банком-эмитентом.

Динамический верификационный код или 3-D Secure? Вопросы безопасности, удобства, стоимости.

Идея DCV понятна, логична и, действительно, обеспечивает более высокую защиту интернет-платежей по сравнению с использованием статичных CVV/CVC.

Но не опоздала ли технология DCV с выходом на рынок? Сможет ли она составить конкуренцию уже устоявшемуся и общепринятому стандарту в платежной индустрии — верификации владельца карты при совершении интернет-платежа c 3-D Secure? И, наконец, насколько карты с DCV могут быть удобны для эмитентов и конечных пользователей?

Вероятно, DCV могла бы стать революционно прорывной технологией обеспечения безопасности интернет-платежей, если бы в этой области уже не существовало 3-D Secure. Дело в том, что при всей своей инновационности и технологичности DCV все же уступает 3-D Secure в уровне обеспечения безопасности платежей.

Да, DCV меняется каждые 20 минут. Но при использовании современных реализаций 3-D Secure, код подтверждения платежа генерируется и сообщается владельцу карты непосредственно в процессе обработки транзакции (платежа). И поэтому, если в случае с DCV у злоумышленника теоретически есть, пусть и очень небольшой, но шанс использовать похищенные карточные данные до очередной смены DCV, то в случае 3-D Secure у мошенника такого шанса в принципе нет.

А если пластиковая карта физически украдена? DCV, в этом случае, никак не сможет защитить владельца от траты его денег мошенниками в интернет-магазинах. Конечно, банковские инструкции требуют от владельца карты незамедлительно сообщить в банк о ее утрате для немедленной блокировки. Но между хищением и обнаружением пропажи может пройти не один час, а в некоторых случаях и не один день. Этого времени более чем достаточно, чтобы мошенник выкачал с карты все деньги через интернет.

В случае, если интернет-платежи защищены 3-D Secure, преступник не сможет воспользоваться украденной картой. Но, даже если каким-то образом и сможет (например, интернет-торговец отключил опцию проверки по 3-D Secure для всех своих покупателей), правила платежных систем будут на стороне владельца карты и банка-эмитента. Если транзакция по карте, защищенной 3-D Secure, прошла без проверки плательщика (т.е. у владельца карты в процессе покупки не был запрошен код), то ответственность за такую транзакцию лежит на продавце и банке-эквайере, и в случае мошенничества деньги будут возвращены покупателю.

Возникают опасения и в отношении удобства повседневного долговременного использования карты с DCV. Далеко не все люди бережно и осторожно обращаются с куском пластика. Карта может изрядно потереться, как минимум. Она может согнуться. От нее может отколоться уголок. И, тем не менее, при всех повреждениях такую карту можно использовать при оплате через интернет. Очевидно, что с картой, оснащенной DCV, придется обращаться аккуратно, чтобы не дай бог не повредить миниатюрный дисплей. Иначе DCV продолжит меняться, но владелец карты ничего не увидит.

И также очевидно, что стоимость изготовления карты с DCV должна быть выше, чем карты с обычными CVV/CVC.

Все эти размышления дают основания полагать, что DCV пока не может на равных конкурировать с уже существующей и проверенной технологией 3-D Secure. А потому вряд ли эта технология получит широкое распространение в банках-эмитентах тех платежных систем, где 3-D Secure уже используется.

А вот в тех платежных системах, где 3-D Secure по каким-то причинам до сих пор не внедрена (например, БЕЛКАРТ или российской «Мир»), DCV может стать неплохой альтернативой.

Время покажет. К слову интернет-магазины, принимающие платежи по банковским картам через процессинговую платформу bePaid, надежно защищены от мошенничества технологией 3-D Secure и другими инновационными инструментами безопасности.

С уважением,