ФЕДЕРАЛЬНОЕ
ГОСУДАРСТВЕННОЕ УНИТАРНОЕ ПРЕДПРИЯТИЕ
«ВСЕРОССИЙСКИЙ НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ ИНСТИТУТ
МЕТРОЛОГИЧЕСКОЙ СЛУЖБЫ» (ФГУП «ВНИИМС») РОССТАНДАРТА
РЕКОМЕНДАЦИЯ
ПРОВЕРКА ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И
ОПРЕДЕЛЕНИЕ ЕЕ УРОВНЯ ПРИ ИСПЫТАНИЯХ СРЕДСТВ
ИЗМЕРЕНИЙ В ЦЕЛЯХ УТВЕРЖДЕНИЯ ТИПА
МИ 3286-2010
Москва
2010
ПРЕДИСЛОВИЕ
РАЗРАБОТАНА Федеральным государственным унитарным предприятием «Всероссийский научно - исследовательский институт метрологической службы» (ФГУП «ВНИИМС») РОССТАНДАРТА
ИСПОЛНИТЕЛИ Стефанов Ю.В., (руководитель темы), Кудеяров Ю.А., д.ф.-м.н., профессор, Спроге А.Г., Стефанов А.Ю.
УТВЕРЖДЕНА ФГУП «ВНИИМС» 9 октября 2010 г.
ЗАРЕГИСТРИРОВАНА ФГУП «ВНИИМС» 9 октября 2010 г.
ВВЕДЕНА ВПЕРВЫЕ
СОДЕРЖАНИЕ
ПРОВЕРКА ЗАЩИТЫ ПРОГРАММНОГО |
РЕКОМЕНДАЦИЯ МИ 3286-2010 |
1. Настоящая рекомендация содержит указания по составлению раздела программы и проведению испытаний средств измерений (СИ) в целях утверждения типа, относящихся к проверке уровня защиты программного обеспечения (ПО). Проведение таких испытаний обусловлено необходимостью реализации п. 2 ст. 9 Закона РФ № 102 «Об обеспечении единства измерений» в части, относящейся к обеспечению ограничения доступа к ПО в целях предотвращения несанкционированных настройки и вмешательства, приводящим к искажению результатов измерений.
2. Проверка защиты ПО и определение ее уровня применяется в том случае, если Заявитель испытаний предоставляет сведения о наличии программного продукта, используемого для получения результатов измерений.
3. Уровень защиты ПО представляет собой одну из его важнейших комплексных характеристик, определяющих степень доверия к показаниям соответствующего СИ и обеспечивающих достоверность измерительной информации, в частности, при коммерческих расчетах между поставщиками и потребителями продукции и услуг. Комплексность этой характеристики обусловлена тем, что уровень защиты определяется не только прямыми аппаратными и программными средствами, непосредственно обеспечивающими защищенность программного обеспечения, но также зависит от других характеристик и свойств ПО, таких как наличие идентификационных признаков, наличие или отсутствие защищенных интерфейсов пользователя и связи, степень влияния ПО на метрологические характеристики СИ и др.
При проверке уровня защиты ПО СИ должны использоваться методы определения и оценки его характеристик, основанные на международных и отечественных правилах и рекомендациях [1 - 6], которые позволяют с достаточной степенью достоверности установить соответствие характеристик требованиям нормативных документов и определить их действительные значения.
4. Все характеристики ПО СИ можно разделить на две группы:
К первой группе относят характеристики, которые в соответствии с приказом Минпромторга России от 30 ноября 2009 г. № 1081 [7] должны быть внесены в описание типа СИ, а именно:
уровень защиты от непреднамеренных и преднамеренных изменений;
идентификационные данные (признаки);
степень влияния ПО на метрологические характеристики (MX) СИ.
Ко второй группе относятся характеристики, которые не вносятся в описание типа СИ, но без оценки и проверки которых невозможно в полной мере установить действительные значения характеристик ПО в целом, в том числе, значения характеристик, относящихся к первой группе. К таким характеристикам относятся:
степень соответствия ПО сопровождающей документации;
разделение на метрологически значимую и незначимую части;
наличие или отсутствие защищенных интерфейсов и др.
5. Для проведения проверки уровня защиты ПО СИ разрабатывается раздел программы испытаний СИ в целях утверждения типа, содержащий детальное описание всех действий, выполняемых в процессе проверки. Указанный раздел должен включать следующие основные этапы:
определение перечня исследуемых характеристик и параметров, исходных данных и критериев, которым должны удовлетворять результаты, полученные проверяемым ПО;
проведение проверки ПО и получение результатов проверки на основе анализа документации и функциональных проверок испытываемого ПО;
обработка результатов проверки и их оформление для внесения в протокол испытаний.
6. В разделе программы испытаний, относящейся к проверке ПО:
приводится перечень исследуемых характеристик, свойств и параметров ПО, необходимых исходных данных и опорных ПО, а также критерии, позволяющие производить оценку характеристик ПО;
определяются и описываются методы проверки, которые должны обеспечить проверку всех основных функций ПО, а также его соответствие требованиям к ПО СИ;
описывается последовательность действий при проведении процедуры проверки ПО.
Примечание - По аналогии с понятием «принятого опорного значения», приведенным в ГОСТ Р ИСО 5725-1-2002. «Точность (правильность и прецизионность) методов и результатов измерений. Часть 1. Основные положения и определения», под опорным ПО понимается программное обеспечение, используемое для сравнения с тестируемым ПО и отвечающее высшим требованиям к его вычислительным и функциональным характеристикам, подтвержденным (в ряде случаев независимыми методами) при его неоднократном тестировании и применении (п. 3.1 МИ 2955-2010 [5]).
7. Результаты проверки ПО признаются положительными, если при анализе документации и проведении функциональных проверок, предусмотренных разделом программы испытаний, устанавливается соответствие ПО критериям, сформулированным при разработке программы испытаний, и требованиям нормативной документации.
Примечание - Под функциональными проверками понимаются проверки, реализуемые как с помощью программных, так и аппаратных средств (испытательного оборудования), имеющие своей целью инициацию проверяемых функций ПО. ПО должно откликаться на процедуру инициации так, как это описано в документации.
2.1. Проверку защиты ПО СИ проводят с целью установления наличия средств защиты метрологически значимой части ПО СИ и измеренных данных и определения уровня защиты ПО СИ от непреднамеренных и преднамеренных изменений.
Под проверкой защиты программного обеспечения понимается:
проверка защиты метрологически значимой части ПО СИ и измеренных данных от случайных или непреднамеренных изменений;
проверка защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений.
Примечание - Под метрологически значимой частью ПО понимается та его часть, которая может оказывать влияние на метрологические характеристики средств измерений (ГОСТ Р 8.654-2009 [1]).
Проверку защиты программного обеспечения необходимо начинать с проверки и анализа документации, сопровождающей ПО СИ.
2.2.1. Представление всей необходимой документации на проверку в соответствии с требованиями ГОСТ Р 8.654 и стандартов Единой системы программной документации (ЕСПД) [3] является необходимым условием ее проведения.
2.2.2. В соответствии с требованиями указанных нормативных документов проверяется наличие, достаточность и правильность представленной документации.
2.2.3. В отдельных случаях при проведении проверки ПО СИ его документацию рекомендуется дополнять текстами программ или их фрагментами в соответствии с ГОСТ 19.401. При этом может быть заключен договор о соблюдении конфиденциальности.
2.2.4. Минимальный набор документов, сопровождающих ПО СИ при его проверке, рекомендуется представлять в следующем составе:
техническое задание по ГОСТ 19.201;
спецификация по ГОСТ 19.202;
описание применения по ГОСТ 19.502;
схемы алгоритмов, программ, данных и систем по ГОСТ 19.701;
руководство пользователя.
2.2.5. В перечисленных документах проверяется наличие следующей информации:
обозначение ПО, включающее в себя его наименование, обозначение его версии или версий его модулей;
описание назначения ПО, его структуры и выполняемых функций (структура ПО может быть представлена в виде одного или нескольких взаимосвязанных модулей, реализующих функции ПО, с учетом его разделения, при этом описание структуры ПО может быть осуществлено в графическом виде с пояснениями и/или в текстовой форме);
описание методов и способов идентификации ПО, а также его метрологически значимых частей, функций и параметров, т.е. проверяется наличие информации о методе (алгоритме) идентификации ПО, способах идентификации ПО в соответствии с принятым методом, о системе кодификации номера версии;
описание реализованных в ПО расчетных алгоритмов, а также их блок-схемы, т.е. проверяется описание логических схем алгоритмов, функций, реализуемых алгоритмами ПО, а также всех величин, рассчитываемых с их помощью, с их математическим представлением в виде формул; проверяются также данные о степени округления при расчетах (точность алгоритмов);
описание интерфейсов пользователя, всех меню и диалогов;
описание интерфейсов связи ПО для передачи, обработки и хранения данных в том числе посредством открытых или закрытых сетей связи, т.е. проверяется наличие информации о методе связи СИ и ПО, о данных, получаемых от и передаваемых в СИ программным обеспечением, наличие описания всех аппаратных и программных компонент СИ, а также описания исполняемых файлов (название, размер в мегабайтах));
описание реализованных методов защиты ПО и данных, т.е. проверяется описание реализованных методов (авторизация пользователя, журнал событий, кодирование данных и т.д.), защиты ПО и данных от случайных (непреднамеренных) и преднамеренных изменений и искажений, а также наличие в документации описания методов фиксации сообщений об ошибках;
описание способов хранения измеренных данных на встроенном, удаленном или съемном носителе;
описание требуемых системных и аппаратных средств, если эта информация не приведена в руководстве пользователя.
2.2.6. Результаты проверки, в том числе выявленные несоответствия, полученные при анализе документации ПО, заносятся в протоколы испытаний.
2.2.7. Перечень документов, сопровождающих ПО, объем и методы проверки документации могут корректироваться соглашением между Исполнителем и Заказчиком испытаний ПО.
2.3.1. Возможными причинами случайных или непреднамеренных изменений метрологически значимой части ПО СИ и измеренных данных могут быть:
непредсказуемые физические воздействия;
эффекты, обусловленные действиями пользователя.
2.3.2. На основе анализа документации определяется наличие (отсутствие) средств защиты метрологически значимой части ПО СИ и измеренных данных от изменения или удаления в случае возникновения непредсказуемых физических воздействий (например, наличие энергонезависимой памяти для хранения измеренных данных).
2.3.3. С помощью функциональных проверок, имитирующих непредсказуемые физические воздействия, убеждаются в действии средств защиты метрологически значимой части ПО СИ и измеренных данных от изменения или удаления в случае возникновения непредсказуемых физических воздействий.
2.3.4. На основе анализа документации и проведения функциональных проверок убеждаются, что интерфейс пользователя ПО СИ содержит в себе средства предупреждения пользователя, если его действия могут повлечь изменение или удаление метрологически значимой части ПО СИ и/или измеренных данных.
2.3.5. На основе анализа документации и проведения функциональных проверок, имитирующих различного рода ошибки или иные изменения случайного или непреднамеренного характера, проверяется их обнаружение и фиксация в журнале(ах) событий.
2.4.1. Метрологически значимая часть ПО СИ в необходимых случаях должна содержать специальные средства защиты, исключающие возможность несанкционированной модификации, загрузки (в том числе загрузки фальсифицированного ПО и данных), считывания из памяти СИ, удаления или иных преднамеренных изменений метрологически значимой части ПО СИ и измеренных данных. К специальным средствам защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений могут быть, в частности, отнесены:
средства проверки целостности ПО;
средства обнаружения и фиксации событий;
средства управления доступом;
иные средства защиты.
2.4.2. На основе анализа документации и проведения функциональных проверок убеждаются, что действие средства проверки целостности ПО распространяется на метрологически значимую часть ПО СИ и данные. Для этой цели вносят изменения в метрологически значимую часть ПО СИ и измеренные данные и проверяют реакцию средства проверки целостности ПО на внесенные изменения.
2.4.3. На основе анализа документации проверяется соответствие алгоритма проверки целостности ПО достаточному уровню защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений.
2.4.4. Несанкционированная модификация метрологически значимой части, т.е. проверка целостности ПО, может быть проверена расчетом контрольной суммы для метрологически значимой части ПО СИ, например, с помощью алгоритма электронной подписи CRC-16, и сравнением ее с номинальным значением, заявленным разработчиком СИ и зафиксированным при испытаниях СИ в целях утверждения типа. Таким образом, если для проверки целостности ПО применяют расчет контрольной суммы, то на основе документации проверяется, что алгоритм, используемый для расчета контрольной суммы, и количество символов контрольной суммы соответствуют достаточному уровню защиты метрологически значимого ПО СИ и измеренных данных от преднамеренных изменений.
2.4.5. На основе анализа документации определяется набор событий, который подлежит обнаружению и фиксации в соответствующем журнале событий. Убеждаются, что в набор событий, подлежащий обнаружению и фиксации, включены события, связанные с обновлением (загрузкой) метрологически значимой части ПО СИ, изменением или удалением измеренных данных в памяти СИ, изменением параметров ПО СИ, участвующих в вычислениях и влияющих на результат измерений.
2.4.6. Проведением функциональных проверок, имитирующих наступление событий, подлежащих обнаружению и фиксации в журнале событий ПО СИ, проверяют соответствующую реакцию средства обнаружения и фиксации событий.
2.4.7. Проверяют, что данные журнала событий невозможно исказить либо несанкционированно удалить без нарушения защиты иных средств защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений.
2.4.8. На основе анализа документации определяются полномочия пользователей, имеющих различные права доступа к функциям метрологически значимой части ПО СИ и измеренным данным.
2.4.9. С помощью функциональных проверок убеждаются в соответствии полномочий пользователей, имеющих различные права доступа к функциям метрологически значимой части ПО СИ и измеренным данным, полномочиям, описанным в документации на ПО СИ.
2.4.10. Проверяют корректность реализации управления доступом пользователя к функциям метрологически значимой части ПО СИ и измеренным данным. Для этого проверяется реакция средства управления доступом на неоднократный ввод неправильных идентификационных данных пользователя. Формат идентификационных данных пользователя, используемых для доступа к функциям метрологически значимой части ПО СИ и измеренным данным, должен соответствовать достаточному уровню защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений.
2.4.11. Для СИ, в которых отсутствуют интерфейсы связи, несанкционированная модификация, удаление или иные преднамеренные изменения метрологически значимой части ПО СИ и измеренных данных возможны посредством замены запоминающего устройства(в) другим, содержащим фальсифицированную метрологически значимую часть ПО СИ и измеренные данные. Проверяется, что конструкцией СИ, непосредственно запоминающим устройством(ми) или иным способом обеспечивается защита запоминающего устройства(в) от несанкционированной замены.
В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, защита метрологически значимой части ПО СИ и измеренных данных от преднамеренных, случайных или непреднамеренных изменений может дополнительно проверяться при помощи анализа исходного кода ПО, или его фрагментов.
2.6.1. Определение уровня защиты ПО СИ от непреднамеренных и преднамеренных изменений проводят на основании результатов исследований ПО СИ, выполненных в соответствии с разделами 2.2, 2.3 и 2.4 настоящей Методики.
2.6.2. При определении уровня защиты ПО СИ от непреднамеренных и преднамеренных изменений учитывают необходимость применения и достаточность примененных специальных средств защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений (см. табл. 1).
2.6.3. Уровню «А» защиты ПО СИ от непреднамеренных и преднамеренных изменений соответствует такой уровень защиты метрологически значимой части ПО СИ и измеренных данных, при котором не требуется специальных средств защиты, исключающих возможность несанкционированной модификации, обновления (загрузки), удаления и иных преднамеренных изменений метрологически значимой части ПО СИ и измеренных данных.
2.3.6. Уровню «В» защиты ПО СИ от непреднамеренных и преднамеренных изменений соответствует такой уровень защиты метрологически значимой части ПО СИ и измеренных данных, при котором примененные специальные средства защиты не исключают возможность несанкционированной модификации, обновления (загрузки), удаления и иных преднамеренных изменений метрологически значимой части ПО СИ и измеренных данных. ПО СИ с таким уровнем защиты от непреднамеренных и преднамеренных изменений не может применяться в СИ без внесения дополнительных специальных средств защиты, позволяющих в достаточной мере исключить возможность несанкционированной модификации, обновления (загрузки), удаления и иных преднамеренных изменений метрологически значимой части ПО СИ и измеренных данных.
2.6.5. Уровню «С» защиты ПО СИ от непреднамеренных и преднамеренных изменений соответствует такой уровень защиты метрологически значимой части ПО СИ и измеренных данных, при котором примененные специальные средства защиты в достаточной мере исключают возможность несанкционированной модификации, обновления (загрузки), удаления и иных преднамеренных изменений метрологически значимой части ПО СИ и измеренных данных.
Содержание п.п. 2.6.3 - 2.6.5 представлено в таблице 1.
2.6.6. Для каждого уровня защиты ПО СИ от непреднамеренных и преднамеренных изменений должна быть в достаточной степени обеспечена защита метрологически значимой части ПО СИ и измеренных данных от случайных или непреднамеренных изменений.
2.6.7. Сведения о защите метрологически значимой части ПО СИ и измеренных данных от случайных или непреднамеренных изменений, о защите метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений, и об уровне защиты ПО СИ от непреднамеренных и преднамеренных изменений вносят в протокол испытаний.
Уровень защиты ПО СИ от непреднамеренных и преднамеренных изменений |
Описание |
А |
Не требуется специальных средств защиты метрологически значимой части ПО СИ и измеренных данных от преднамеренных изменений. |
В |
Метрологически значимая часть ПО СИ и измеренные данные недостаточно защищены с помощью специальных средств защиты от преднамеренных изменений. |
С |
Метрологически значимая часть ПО СИ и измеренные данные достаточно защищены с помощью специальных средств защиты от преднамеренных изменений. |
3.1. Проверка идентификационных данных (признаков) является неотъемлемой и важной частью проверки уровня защиты ПО.
3.2. К идентификационным данным (признакам) относятся:
наименование ПО СИ;
номер версии метрологически значимой части ПО СИ;
контрольная сумма метрологически значимой части ПО СИ.
3.3. Идентификационные данные (признаки) определяются только для метрологически значимой части ПО. Проверке идентификационных данных должна предшествовать проверка разделения ПО на метрологически значимую и не значимую части.
3.4.1. Разделение ПО СИ проводят в целях выделения в составе ПО СИ метрологически значимой части, т.е. той его части, которая может оказывать влияние на MX СИ и которая, следовательно, подлежит проверке.
3.4.2. К метрологически значимой части ПО СИ относятся программы и программные модули, выполняющие функции сбора, передачи, обработки, хранения и представления измерительной информации, а также параметры, характеризующие тип СИ и внесенные в ПО.
3.4.3. После утверждения типа СИ метрологически значимая часть ПО не должна изменяться. Любая модификация метрологически значимой части ПО приводит к изменению его идентификационных данных (признаков) и к необходимости повторной проверки ПО.
3.4.4. Метрологически не значимая часть ПО проверке не подлежит. Ее модификация может быть выполнена без уведомления уполномоченных органов, если изменение этой части не проводит к изменению идентификационных данных (признаков) метрологически значимой части ПО СИ.
3.4.5. Если разделение ПО СИ не проведено, то все ПО рассматривается как метрологически значимое.
Примечание - Все встроенное ПО рассматривается как метрологически значимое.
3.4.6. Разделение ПО на метрологически значимые и не значимые части рекомендуется проводить разработчикам автоматизированных СИ. Оно может быть проведено как на «низком», так и на «высоком» уровнях.
«Низкий» уровень разделения выполняется независимо от операционной системы внутри кода ПО (на уровне языка программирования). Такой уровень разделения ПО может быть реализован как в СИ со встроенным ПО, так и в СИ на основе персонального компьютера.
«Высокий» уровень разделения означает, что оно реализуется в виде независимых объектов операционной системы (например, части ПО содержатся в отдельных файлах операционной системы). «Высокий» уровень разделения возможен только в СИ на основе универсального компьютера.
3.4.7. На основе анализа документации и проведения функциональных проверок определяется правильность разделения ПО СИ или устанавливается отсутствие разделения. При этом проверяется, что к метрологически значимой части ПО относятся:
программы и программные модули, принимающие участие в обработке (расчетах) результатов измерений или влияющие на них;
программы и программные модули, осуществляющие представление измерительной информации, ее хранение и передачу, идентификацию и обновление (загрузку) ПО, защиту ПО и данных;
параметры ПО СИ, участвующие в вычислениях и влияющие на результат измерений;
компоненты защищенного интерфейса для обмена данными между метрологически значимыми и незначимыми частями ПО СИ.
3.4.8. В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, правильность разделения ПО СИ дополнительно проверяется при помощи анализа его исходного кода.
3.4.9. Сведения о разделении ПО или об его отсутствии заносятся в протокол испытаний.
3.5.1. Проверку идентификационных данных (признаков) ПО и методов его идентификации проводят при испытаниях СИ в целях утверждения типа. Подтверждение соответствия ПО СИ, осуществляемое при поверке (калибровке) СИ, представляет собой проверку соответствия ПО СИ тому, которое было зафиксировано (документировано) при испытаниях в целях утверждения типа СИ, с последующим обеспечением защиты ПО от несанкционированного доступа во избежание искажений результатов измерений.
3.5.2. Проверку идентификационных данных (признаков) ПО и методов его идентификации проводят на основе анализа документации и проведения функциональных проверок. При этом для представителей уполномоченных органов должен быть при необходимости обеспечен доступ к исполняемому коду ПО, поскольку без такого доступа не могут быть установлены идентификационные данные (признаки) ПО.
3.5.3. Доступ к исполняемому коду может быть организован с помощью стандартных интерфейсов связи (RS 232, USB и т.п.) или с помощью иных, описанных в документации интерфейсов связи в комплекте с необходимым набором аппаратно-программных средств.
3.5.4. На основе анализа документации определяют, какими из следующих способов осуществляется идентификация ПО СИ:
с помощью интерфейса пользователя (например, по команде пользователя на дисплее СИ);
в процессе штатного функционирования ПО (например, на дисплее СИ через определенные интервалы времени);
с помощью интерфейса связи (например, на экране персонального компьютера, подключенного к СИ).
3.5.5. В случае если идентификация может быть осуществлена несколькими способами, проверяется независимость идентификационных данных (признаков) от способа идентификации.
3.5.6. На основе анализа документации и проведения функциональных проверок определяют реализованные в ПО СИ методы идентификации ПО. Идентификация ПО СИ может быть реализована следующими методами:
с помощью ПО СИ или аппаратно-программных средств, разработанных организацией-разработчиком СИ (ПО СИ);
с использованием специальных протестированных (аттестованных, сертифицированных) аппаратно-программных средств и/или протестированного (аттестованного, сертифицированного) ПО.
При функциональной проверке методов идентификации ПО СИ убеждаются в том, что они соответствуют тем способам идентификации, которые описаны в документации.
3.5.7. Проверяются наличие и достаточность идентификационных данных (признаков) ПО СИ для его однозначной идентификации.
3.5.8. Проверяется, что расчет контрольной суммы производится для метрологически значимой части ПО СИ. При этом реализованный в ПО СИ алгоритм расчета контрольной суммы также относится к метрологически значимой части ПО СИ.
3.5.9. Организация-разработчик СИ (ПО СИ) вправе использовать для идентификации ПО большее количество идентификационных данных (признаков), чем это указано в п. 3.2 настоящего документа. В этом случае проверяется, что структура идентификационных данных (признаков) ПО позволяет однозначно выделить идентификационные данные (признаки), относящиеся к метрологически значимой части ПО.
3.5.10. Устанавливают идентификационные данные (признаки) ПО СИ, подлежащие внесению в описание типа СИ.
3.5.11. В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, при необходимости дополнительно проводят проверку методов и способов идентификации ПО СИ при помощи анализа его исходного кода.
3.5.12. Сведения об идентификационных данных (признаках) ПО СИ и методах его идентификации вносят в протокол испытаний в виде, представленном в таблице 2:
Наименование программного обеспечения |
Идентификационное наименование программного обеспечения |
Номер версии (идентификационный номер) программного обеспечения |
Цифровой идентификатор программного обеспечения (контрольная сумма исполняемого кода) |
Алгоритм вычисления цифрового идентификатора программного обеспечения |
|
|
|
|
|
3.5.13. ПО СИ, прошедшее проверку, и его идентификационные данные вносят в единый банк данных ПО СИ.
3.6.1. Под проверкой структуры ПО понимают:
проверку отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейс пользователя;
проверку отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейсы связи;
проверку правильности взаимодействия между метрологически значимой и незначимой частями ПО.
3.6.2. Проверка отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейс пользователя.
3.6.2.1. Анализом документации на ПО убеждаются в том, что она включает в себя:
полный перечень всех команд интерфейса пользователя вместе с изложением способа их организации (меню, пункты меню и т.д.);
описание их назначения и воздействия на функции СИ и/или данные.
3.6.2.2. Проведением функциональных проверок всех команд интерфейса пользователя ПО СИ убеждаются в их соответствии описанным в документации. Проверяется однозначное назначение каждой команды для инициирования функции или изменения данных в соответствии с представленной документацией.
3.6.2.3. С помощью функциональных проверок убеждаются, что команды и данные, введенные через интерфейс пользователя ПО СИ, не оказывают влияние на достоверность результатов измерений. При этом проверяют:
возможность обнаружения программным обеспечением СИ неправильно введенных через интерфейс пользователя данных (например, данных, превышающих установленные ограничения) и выдачу соответствующего предупреждения;
невозможность изменения значений параметров ПО СИ, участвующих в вычислениях и влияющих на результат измерений, с помощью команд и данных, вводимых через интерфейс пользователя во время проведения измерений;
невозможность искажения значений измеренных данных, хранящихся в памяти СИ, с помощью команд и данных, вводимых через интерфейс пользователя.
3.6.2.4. С учетом способа организации интерфейса пользователя проверяют, что команды или их комбинации, не описанные в документации, не оказывают влияния на функции метрологически значимой части ПО СИ и данные.
3.6.2.5. С помощью визуального осмотра и анализа элементов, находящихся внутри корпуса СИ, убеждаются в отсутствии элементов, неописанных в документации на СИ, способных быть частью интерфейса пользователя и оказывать влияние на функции метрологически значимой части ПО СИ, данные или команды интерфейса пользователя (переключатели, свободные контакты на печатной плате и т.д.).
3.6.2.6. В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, проверку отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейс пользователя ПО СИ, дополнительно проводят при помощи анализа его исходного кода.
3.6.3. Проверка отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейсы связи.
3.6.3.1. Анализом документации на ПО убеждаются в том, что она включает в себя:
полный перечень всех интерфейсов связи, используемых ПО СИ (RS-232, USB и т.п.);
полный перечень команд каждого интерфейса связи вместе с изложением способа их организации;
описание их назначения и воздействия на функции СИ и/или данные.
3.6.3.2. Проведением функциональных проверок всех команд интерфейсов связи, используемых ПО СИ, убеждаются в их соответствии описанным в документации. Проверяется однозначное назначение каждой команды для инициирования функции или изменения данных в соответствии с представленной документацией.
3.6.3.3. С помощью функциональных проверок убеждаются, что команды и данные, переданные через интерфейсы связи, не оказывают влияние на достоверность результатов измерений СИ. При этом проверяют:
возможность обнаружения программным обеспечением СИ неправильно переданных через интерфейсы связи данных (например, данных, превышающих установленные ограничения);
невозможность изменения значений параметров ПО СИ, участвующих в вычислениях и влияющих на результат измерений, с помощью команд и данных, переданных через интерфейсы связи во время проведения измерений;
невозможность искажения значений измеренных данных, хранящихся в памяти СИ, с помощью команд и данных, переданных через интерфейсы связи.
3.6.3.4. С помощью специальных аттестованных аппаратно-программных средств и/или сертифицированного ПО проверяют, что недокументированные как команды сигналы или коды, переданные через интерфейсы связи, не оказывают влияние на функции метрологически значимой части ПО СИ и данные.
3.6.3.5. Проверяют, что команды, передаваемые (получаемые) через интерфейсы связи метрологически незначимой частью ПО СИ, не искажают команды и данные, передаваемые (получаемые) через интерфейсы связи метрологически значимой частью ПО СИ.
3.6.3.6. В случае, когда в ПО СИ используется часть интерфейсов связи СИ (например, в случае СИ на основе универсального компьютера), с помощью специальных аттестованных аппаратно-программных средств и/или сертифицированного ПО проверяют, что сигналы или коды, переданные через неиспользуемые интерфейсы связи, не оказывают влияние на функции метрологически значимой части ПО СИ и данные.
3.6.3.7. Проверяют, что ПО, использующее интерфейс связи СИ для передачи (получения) команд и данных метрологически значимой части ПО СИ (например, ПО, разработанное организацией-производителем СИ (ПО СИ) и используемое для обновления ПО СИ), аттестовано (проверено) в установленном порядке.
3.6.3.8. С помощью визуального осмотра и анализа элементов, находящихся внутри корпуса СИ, убеждаются в отсутствии элементов, не описанных в документации на СИ, способных быть частью интерфейсов связи и оказывать влияние на функции метрологически значимой части ПО СИ, данные или команды интерфейсов связи.
3.6.3.9. В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, проверку отсутствия недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейсы связи, дополнительно проводят при помощи анализа его исходного кода.
3.6.4. Проверка правильности взаимодействия между метрологически значимой и незначимой частями ПО.
3.6.4.1. Функциональными проверками убеждаются, что обмен данными между метрологически значимой и незначимой частями ПО СИ проходит через защищенный интерфейс. Проверяется однозначное назначение каждого набора команд, переданного через защищенный интерфейс, для инициирования функции или изменения данных в метрологически значимой части ПО СИ в соответствии с представленной документацией.
3.6.4.2. Проверяют, что все взаимодействия между метрологически значимой и незначимой частями ПО СИ и прохождение данных не оказывают искажающее воздействие на метрологически значимую часть ПО и данные.
3.6.4.3. Убеждаются, что взаимодействия между метрологически значимой и незначимой частями ПО СИ, не описанные в документации, не оказывают влияния на метрологически значимую часть ПО СИ и данные.
3.6.4.4. В случаях, когда проводятся испытания сложных измерительных систем, систем, используемых при коммерческих расчетах, или когда к этим системам предъявляются исключительные требования по безопасности и надежности их функционирования, проверку правильности взаимодействия между метрологически значимой и незначимой частями ПО, дополнительно проводят при помощи анализа его исходного кода.
3.6.5. Сведения об отсутствии недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейс пользователя, об отсутствии недопустимого влияния на метрологически значимую часть ПО и данные, осуществляемого через интерфейсы связи, о правильности взаимодействия между метрологически значимой и незначимой частями ПО вносят в протокол испытаний.
4.1. Если уровень влияния ПО на MX СИ не соответствует критериям, согласованным между Заказчиком и Исполнителем испытаний СИ, то такое ПО рассматривается как искажающее результаты измерений и не должно допускаться к использованию. Уровень (степень) влияния ПО на MX СИ должен оцениваться при испытаниях СИ в целях утверждения типа.
4.2. Методика оценки влияния ПО на MX СИ описывается соответствующим разделом программы испытаний и может включать в себя:
анализ ПО и его алгоритмов (например, адекватность измерительной задаче, в том числе выбор схемы численного расчета, их сложность и возможность использования при разработке опорного ПО и т.д.);
определение критерия оценки влияния ПО на MX СИ (например, значение вклада ПО в суммарную погрешность (неопределенность) СИ по отношению к соответствующему вкладу в опорном ПО); выбор или разработка опорного ПО;
выбор (определение) исходных данных и/или их получение методом генерации или какими-либо другими методами;
получение результатов обработки исходных данных в тестируемом ПО (получение тестовых результатов); получение опорных результатов;
получение оценки влияния ПО на метрологические характеристики СИ посредством обработки результатов тестирования (сравнения тестовых результатов с опорными);
дополнительные исследования свойств, параметров и характеристик используемых алгоритмов (область устойчивости, время, затрачиваемое на обработку результатов измерений и т.п.).
4.3. Основными методами, применяемыми при оценке влияния ПО на MX СИ, являются:
сравнительные испытания с применением опорного ПО;
в отсутствие опорного ПО;
сравнительные испытания с использованием моделей исходных данных по методике МИ 2174-91 [6, 8];
сравнительные испытания с применением метода генерации «эталонных» данных [9, 10];
при наличии нескольких ПО сопоставимого уровня вычислительных возможностей и в отсутствие опорного ПО;
сличения, подобные сличению эталонных СИ;
испытания на основе анализа исходного кода ПО, а также комбинации указанных методов.
4.4. Метод оценки влияния ПО на MX СИ выбирают с учетом наличия или возможности разработки того или иного вида опорного ПО, а также возможности применения указанных методов в каждом конкретном случае.
4.5.1. Данный метод тестирования применяется при наличии опорного ПО, с помощью которого могут быть идентично воспроизведены функции аттестуемого ПО.
4.5.2. В качестве опорного ПО может быть применено:
испытанное (аттестованное, сертифицированное) ПО СИ, функциональное назначение которого аналогично тестируемому ПО;
специально разработанное ПО с функциями, идентичными тестируемому;
ПО для решения задач технических вычислений (например, электронные таблицы, ПО для математических и статистических вычислений и т.д.).
4.5.3. К разработке опорного ПО прибегают в тех случаях, когда испытываемое ПО является не очень сложным, а его алгоритмы достаточно просты. Это означает, что затраты на разработку опорного ПО должны быть сопоставимыми со стоимостью работ по проверке ПО. Данный метод позволяет максимально учитывать особенности оцениваемого ПО, MX соответствующего СИ и может быть рекомендован как основной метод при испытании встроенного ПО.
4.5.4. Разрабатываемое опорное ПО может содержать только метрологически значимые функции и параметры. В некоторых случаях могут не учитываться особенности графического интерфейса пользователя, а также функции, не участвующие в обработке результатов измерений (например, функции отображения, хранения данных и т.д.).
4.6.1. Метод тестирования с использованием моделей исходных данных рекомендуется методикой МИ 2174 для аттестации алгоритмов обработки результатов измерений. Метод позволяет оценивать возможности алгоритмов сравнением результатов обработки тестируемыми алгоритмами моделей исходных данных с заданными параметрами этих моделей.
4.6.2. Метод моделей исходных данных является разновидностью метода генерации «эталонных» данных, когда эти данные не генерируются специально разработанной программой, а программно задаются на входе тестируемого ПО. Модели исходных данных выбираются таким образом, чтобы они максимально соответствовали частной измерительной задаче, решаемой тестируемыми алгоритмами. При этом модели исходных данных должны охватывать как можно больший диапазон возможных значений, поступающих на обработку.
4.6.3. В модели исходных данных могут быть включены:
данные, указанные в разделе 4 методики МИ 2174;
данные, полностью перекрывающие диапазон возможных значений;
данные, близкие к наибольшим и наименьшим значениям, а также ряд промежуточных значений;
особые значения входных переменных - точки резкого возрастания или разрыва производных, нулевые, единичные и предельно малые численные значения переменных и т.п.
4.6.4. Если значения некоторой переменной зависят от значения другой переменной, то тестирование проводят при особых сочетаниях этих переменных, таких, как равенство обеих переменных, малое и предельно большое их различие, нулевые и единичные значения и т.п.
4.7.1. Метод генерации «эталонных» данных, как и метод моделей исходных данных, применяется как альтернатива использованию опорного ПО в случае его отсутствия или невозможности использования при оценке отдельных функций, реализуемых испытываемым ПО. Одним из необходимых условий применения метода генерации «эталонных» данных является наличие априорной информации о модельном решении соответствующей измерительной задачи. С этим модельным решением проводится сравнение тестовых результатов.
4.7.2. «Эталонные» данные получают путем генерации таких данных с помощью специально разработанной программы - генератора «эталонных» данных, который представляет собой алгоритм, предназначенный для моделирования «эталонных» данных на основе выбранных (заданных) исходных данных.
Генератор «эталонных» данных реализуют на одном из языков программирования или при помощи стандартного математического или статистического программного пакета. Разработка генератора «эталонных» данных может потребовать серьезных усилий со стороны программистов центра испытаний СИ.
4.7.3. Исходные данные для тестирования, в том числе и для генерации «эталонных» данных, формируются с учетом свойств программно реализованных алгоритмов.
4.8.1. При наличии нескольких программ сопоставимого уровня вычислительных возможностей и в отсутствие опорного ПО рекомендуется проводить сличение таких программ, по одной из схем, принятых при сличении СИ (например, по схеме межлабораторного сличения, когда на входы программных продуктов подаются согласованные одинаковые наборы «эталонных» данных и производится сравнение соответствующих тестовых результатов). При этом результаты сличения признаются удовлетворительными, если различия в тестовых результатах не выходят за пределы согласованного допуска.
Примечание - Примером программ, указанных в п. 4.8.1, являются программы расчета параметров расходомеров на основе стандартных сужающих устройств в соответствии с ГОСТ 8.586.1 - 8.586.5-2005. ГСП. Измерение расхода и количества жидкостей и газов с помощью стандартных сужающих устройств и ГОСТ 30319.0 - 30319.3-96 (с изменениями). Газ природный [11, 12]. Это сложные программы, основанные в ряде случаев на громоздких математических соотношениях и использующие эмпирические данные о свойствах проходящих через расходомеры сред, которые в разных программах выбираются с разной точностью, либо вычисляются с помощью различных интерполяционных процедур и т.п. В этих условиях выбрать среди этих программ или разработать опорную программу не представляется возможным. В виду сложности таких программ не удается также применить методы моделей исходных данных или генерации «эталонных» данных.
4.9.1. При тестировании на основе анализа исходного кода ПО проверяется:
соответствие структуры алгоритмов представленной документации;
правильность записи алгоритмов на выбранном языке программирования;
адекватность выбранных алгоритмов измерительной задаче (в частности, выявление неустойчивых алгоритмов).
4.9.2. При проверке соответствия структуры алгоритмов представленной документации, по тексту программы могут быть составлены блок-схемы реализуемых алгоритмов, которые сравниваются с алгоритмами, изложенными в документации. В случае нахождения различий в структуре алгоритмов проводится дополнительный анализ элементов блок-схем, в которых обнаружены различия.
4.9.3. Проверяется правильность записи алгоритмов на выбранном языке программирования. При этом устанавливается соответствие кода правилам программирования, наличие неопределенных переменных и операторов, правильность организации циклов и т.д.
4.9.4. Соответствие выбранных алгоритмов измерительной задаче может быть осуществлено путем математического анализа программно реализованных алгоритмов. При этом могут исследоваться логические и точностные характеристики реализованных алгоритмов, в частности, анализироваться пригодность и оптимальность примененных численных методов решения измерительной задачи.
4.10.1. На основе методов оценки влияния ПО на MX СИ, перечисленных в предыдущих пунктах настоящего документа, рассчитывают характеристики точности тестируемых алгоритмов, например его исполнительную характеристику, относительное отличие тестовых результатов вычислений от опорных.
Могут быть оценены и другие характеристики алгоритмов такие, как их сложность, скорость исполнения, адекватность измерительной задаче, выбор численной схемы расчета, коэффициент обусловленности (устойчивости), область устойчивости и т.п.
4.10.2. Исполнительная характеристика алгоритма.
Исполнительная характеристика алгоритма вычисляется по формуле
где коэффициент обусловленности (устойчивости) (для устойчивых k( - алгоритмов k( ≈ 1)
η - предельная относительная вычислительная точность (η ≈ 10-16),
( - набор исполнительных параметров (параметры исходных данных в методе моделей исходных данных, объем выборки, математическое ожидание и СКО в методе генерации «эталонных» данных),
- норма (длина) вектора отличия тестовых результатов от опорных.
Например, если в процессе вычислений получено m тестовых результатов y1(тест), y2(тест),…, ym(тест) и опорных y1(эт), y2(эт),…, ym(эт), то норма вычисляется по формуле
- норма вектора опорных результатов, т.е.
Исполнительная характеристика показывает число потерянных цифр точности в тестируемом ПО по сравнению с опорным.
4.10.3. Исполнительная характеристика, определенная формулой (1), зависит, в частности, от величины
которая характеризует относительное отличие тестовых результатов вычислений от опорных. Эта величина может рассматриваться как одна из количественных характеристик алгоритмов. Иногда ее удобно выражать в процентах.
Примечание - Исполнительная характеристика (1) может применяться также для нахождения числа потерянных цифр точности в тестовых результатах по сравнению с любыми другими результатами, используемыми для сравнения с ними (модельными, сгенерированными и т.п.). Это примечание относится также и к величине, определяемой формулой (2)
4.10.4. Формулы (1) и (2) упрощаются, если результаты вычислений представляют не вектор, а скаляр (например, результаты однократных вычислений). В этом случае они принимают вид:
4.10.5. Критерии, которым должны удовлетворять определенные и оцененные характеристики алгоритмов ПО, а также допускаемые значения характеристик могут быть установлены на основе требований к точности решения измерительной задачи (если они имеются), точности выполняемых расчетов (степени округления) и т.п. Критерии и допуски на значения характеристик фиксируются в методике испытаний и согласовываются с ее Заказчиком.
4.10.6. Все определенные и оцененные характеристики и свойства алгоритмов вносят в протокол испытаний.
4.10.7. Перечень характеристик ПО может корректироваться соглашением между Исполнителем и Заказчиком испытаний ПО.
1. ГОСТ Р 8.654-2009 ГСИ. Требования к программному обеспечению средств измерений. Основные положения.
2. ГОСТ Р 8.596-2002 ГСИ. Метрологическое обеспечение измерительных систем. Основные положения.
3. ГОСТы Единой системы программной документации (ЕСПД).
4. OIML D 31 Edition 2008 (Е) General requirements for software controlled measuring instruments. (Общие требования к программно контролируемым средствам измерений).
5. WELMEC 7.2. Issue 4. Software Guide (Measuring Instruments Directive 2004/22/EC) May 2009 (русский перевод: ВЕЛМЕК 7.2. Руководство по программному обеспечению (Директива 2004/22/ на средства измерений)) - М.; АНО «РСК-Консалтинг», 2009).
6. МИ 2955-2010 ГСИ. Типовая методика аттестации программного обеспечения средств измерений.
7. МИ 2174-91 ГСИ. Аттестация алгоритмов и программ обработки данных при измерениях. Основные положения.
8. Приказ Минпромторга № 1081 от 30 ноября 2009 г. «Об утверждении Порядка проведения испытаний стандартных образцов или средств измерений в целях утверждения типа, Порядка выдачи свидетельств об утверждении типа стандартных образцов или типа средств измерений, установления и изменения срока действия указанных свидетельств и интервала между поверками средств измерений, требований к знакам утверждения типа стандартных образцов или типа средств измерений и порядка их нанесения».
9. В.А. Слаев, А.Г. Чуновкина. Аттестация программного обеспечения, используемого в метрологии: Справочная книга /Под ред. В.А. Слаева. - СПб.: «Профессионал», 2009 - 320 с.
10. H.R. Cook, M.G. Сох, М.Р. Dainton, P.M. Harris. Testing Spreadsheets and Other Packages Used in Mertrology. A Case Study. Report to National Measurements System Policy Unit. September 1999.
11. Ю.А. Кудеяров, А.А. Сатановский. Генерация эталонных данных методом нуль - пространства для тестирования электронных таблиц, прикладных математических пакетов и алгоритмов. Законодательная и прикладная метрология, № 2, 2005, с.с. 39 - 46.
12. ГОСТ 8.586.1 - 8.586.5-2005. Измерение расхода и количества жидкостей и газов с помощью стандартных сужающих устройств.
13. ГОСТ 30319.0 - 30319.3-96 (с изменениями) Газ природный. Методы расчета физических свойств.