Поддержка федеральных стандартов в MobileFirst Foundation

improve this page | report issue

Обзор

IBM Mobile Foundation поддерживает Federal Desktop Core Configuration (FDCC) и United States Government Configuration Baseline (USGCB). Кроме того, Mobile Foundation поддерживает Правительственные стандарты обработки информации (FIPS) 140-2, описывающие требования к модулям шифрования.

Перейти к

Поддержка FDCC и USGCB

Согласно требованиям федерального правительства США рабочие станции федеральных агентств, работающие под управлением операционной системы Microsoft Windows, должны поддерживать параметры безопасности Federal Desktop Core Configuration (FDCC) или United States Government Configuration Baseline (USGCB).

IBM Worklight V5.0.6 тестировался с помощью параметров безопасности USGCB и FDCC в рамках процесса самостоятельной сертификации. Тестирование предусматривало разумный уровень проверки работы функций установки и базовых функций в такой конфигурации.

Справочники

Дополнительная информация приведена на веб-сайте USGCB.

Поддержка FIPS 140-2 support

Федеральные стандарты по обработке информации (FIPS) - стандарты и рекомендации, выпущенные Национальным институтом стандартов и технологий Соединенных Штатов (NIST) для компьютерных систем федерального правительства. FIPS 140-2 - это стандарт в сфере компьютерной защиты, служащий для аккредитации криптографических модулей. Mobile Foundation предлагает поддержку FIPS 140-2 для приложений Android и iOS Cordova.

FIPS 140-2 в MobileFirst Server и соединения SSL с MobileFirst Server

MobileFirst Server работает на сервере приложений, таком как WebSphere Application Server. WebSphere Application Server можно настроить для применения криптографических модулей FIPS 140-2 для входящих и исходящих соединений Secure Socket Layer (SSL). Кроме того, криптографические модули применяются для операций шифрования, выполняемых приложениями с помощью Java Cryptography Extension (JCE). Поскольку MobileFirst Server работает на сервере приложений, он использует криптографические модули FIPS 140-2 для входящих и исходящих соединений SSL.

Когда клиент MobileFirst устанавливает соединение Secure Socket Layer (SSL) с сервером MobileFirst Server, который работает на сервере приложений в режиме FIPS 140-2, применяется комплект шифров FIPS 140-2. Если клиентская платформа не поддерживает один из комплектов шифров FIPS 140-2, то возникает ошибка транзакции SSL и клиент не сможет установить соединение SSL с сервером. В случае успешного выполнения клиент использует комплект шифров FIPS 140-2.

Примечание: экземпляры криптографических модулей, применяемые клиентом, необязательно должны соответствовать требованиям FIPS 140-2. Варианты использования библиотек FIPS 140-2 на клиентских устройствах рассмотрены ниже.

В частности, клиент и сервер используют один и тот же комплект шифров (например, SSL_RSA_WITH_AES_128_CBC_SHA), но клиентский криптографический модуль не прошел проверку FIPS 140-2, а на сервере применяются сертифицированные модули FIPS 140-2.

FIPS 140-2 на клиентском устройстве MobileFirst

для защиты хранимых данных в JSONStore и данных, передаваемых по соединениям HTTPS

Защита хранимых данных на клиентском устройстве обеспечивается функцией JSONStore Mobile Foundation. Защита передаваемых данных обеспечивается за счет применения соединений HTTPS между клиентом MobileFirst и MobileFirst Server.

На устройствах iOS поддержка FIPS 140-2 включена по умолчанию для хранимых и передаваемых данных.

Устройства Android по умолчанию используют библиотеки, не соответствующие требованиям FIPS 140-2. С помощью отдельного параметра можно включить библиотеки FIPS 140-2 для защиты (шифрования и расшифровки) локальных данных, которые сохраняются с помощью JSONStore и передаются на сервер MobileFirst Server по соединениям HTTPS. Такая поддержка обеспечивается за счет применения библиотеки OpenSSL, прошедшей проверку FIPS 140-2 (сертификат #1747). Для того чтобы включить этот параметр в клиентском проекте MobileFirst, добавьте дополнительный модуль Android FIPS 140-2.

Примечания: обратите внимание на следующие ограничения:

  • Режим FIPS 140-2 относится только к защите (шифрованию) локальных данных, которые сохраняются с помощью функции JSONStore и передаются между клиентом MobileFirst и MobileFirst Server по соединениям HTTPS.
  • Эта функция поддерживается только на платформах iOS и Android.
    • Для поддержки этой функции устройства и симуляторы Android должны использовать архитектуру x86 или armeabi. Архитектуры armv5 и armv6 не поддерживаются. Это связано с тем, что применяемая библиотека OpenSSL не получила проверку FIPS 140-2 для armv5 и armv6 в Android. FIPS 140-2 не поддерживается в 64-разрядной архитектуре, хотя библиотека MobileFirst поддерживает 64-разрядную архитектуру. FIPS 140-2 можно запустить на 64-разрядных устройствах, если проект содержит только 32-разрядные нативные библиотеки NDK.
    • В iOS она поддерживается в архитектурах i386, x86_64, armv7, armv7s и arm64.
  • Эта функция работает только с гибридными приложениями (не с нативными приложениями).
  • Для нативных приложений iOS поддержка FIPS включена по умолчанию на основе библиотек FIPS iOS. Для включения FIPS 140-2 никаких действий выполнять не требуется.
  • Для соединений HTTPS:
    • На устройствах Android клиент использует библиотеки FIPS 140-2 только в случае передачи данных между клиентом MobileFirst и MobileFirst Server. Прямые соединения с другими серверами и службами не используют библиотеки FIPS 140-2.
    • Клиент MobileFirst может взаимодействовать только с MobileFirst Server в одной из поддерживаемых сред, перечисленных в разделе Системные требования. Если MobileFirst Server работает в неподдерживаемой среде, то может возникнуть ошибка подключения HTTPS, связанная с недостаточным размером ключа. Эта ошибка не возникает для соединений HTTP.
  • Клиент IBM MobileFirst Foundation Application Center не поддерживает функцию FIPS 140-2.

Если вы ранее внесли изменения, описанные в учебнике, то сначала необходимо сохранить любые другие изменения, относящиеся к среде, а затем удалить и заново создать среды Android или iOS.

Диаграмма FIPS

Дополнительная информация о функции JSONStore приведена в разделе Обзор JSONStore.

Справочники

Дополнительная информация о включении режима FIPS 140-2 на сервере WebSphere Application Server приведена в разделе Поддержка правительственных стандартов обработки информации.

Для профайла WebSphere Application Server Liberty в административной консоли не предусмотрен параметр включения режима FIPS 140-2. FIPS 140-2 можно включить путем настройки среды выполнения Java™ для применения модулей FIPS 140-2. Дополнительная информация приведена в разделе Справочном руководстве по провайдеру IBMJSSE2 Java Secure Socket Extension (JSSE).

Включение FIPS 140-2

На устройствах iOS поддержка FIPS 140-2 включена по умолчанию для хранимых и передаваемых данных.
Для устройств Android добавьте модуль Corodva cordova-plugin-mfp-fips.

После добавления функция применяется к шифрованию данных HTTPS и JSONStore.

Примечания:

  • FIPS 140-2 поддерживается только на устройствах Android и iOS. Архитектуры iOS с поддержкой FIPS 140-2: i386, armv7, armv7s, x86_64 и arm64. Архитектуры Android с поддержкой FIPS 140-2: x86 и armeambi.
  • В Android FIPS 140-2 не поддерживается в 64-разрядной архитектуре, хотя библиотека MobileFirst поддерживает 64-разрядную архитектуру. В случае применения FIPS 140-2 на 64-разрядном устройстве может быть выдано следующее сообщение об ошибке:
java.lang.UnsatisfiedLinkError: сбой dlopen: "..." работает в 32-разрядном режиме вместо 64-разрядного

Эта ошибка указывает, что проект Android содержит 64-разрядные нативные библиотеки и поддержка FIPS 140-2 отсутствует. Перейдите в каталог src/main/libs или src/main/jniLibs в проекте Android и проверьте наличие папки x86_64 или arm64-v8a. Если эти папки существуют, то после их удаления FIPS 140-2 снова заработает.

Настройка режима FIPS 140-2 для шифрования HTTPS и JSONStore

Для приложений iOS поддержка FIPS 140-2 обеспечивается с помощью библиотек FIPS iOS. Она включена по умолчанию и никакие дополнительные действия по активации или настройке не требуются.

В операционной системе Android для настройки FIPS 140-2 добавьте следующий фрагмент кода в объект initOptions из файла index.js нового приложения MobileFirst:

var wlInitOptions = {
  ...
  // # Включить FIPS 140-2 для передаваемых и хранимых данных (JSONStore) в Android.
  //   Кроме того, необходимо включить дополнительную функцию FIPS 140-2.
  // enableFIPS : false
  ...
};

В операционной системе Android параметр enableFIPS по умолчанию содержит значение false. Для того чтобы включить FIPS 140-2 для шифрования данных HTTPS и JSONStore, удалите символы комментария и укажите для этого параметра значение true. После указания параметра enableFIPS со значением true необходимо создать получателя событий JavaScript с поддержкой FIPS, аналогично следующему примеру:

document.addEventListener('WL/FIPS/READY', 
    this.onFipsReady, false);

onFipsReady: function() {
  // SDK FIPS загружен и готов
}

После изменения значения свойства enableFIPS требуется повторная компоновка платформы Android.

Примечание: перед указанием значения true для свойства enableFIPS необходимо установить модуль Cordova FIPS. В противном случае в протокол добавляется предупреждение о том, что указано значение initOption, но дополнительный компонент не найден. Функции FIPS 140-2 и JSONStore являются необязательными в операционной системе Android. FIPS 140-2 влияет на шифрование данных JSONStore только в том случае, если включена дополнительная функция JSONStore. Если функция JSONStore не включена, то FIPS 140-2 не влияет на JSONStore. В iOS дополнительная функция FIPS 140-2 не требуется для FIPS 140-2 JSONStore (хранимые данные) и шифрования HTTPS (передаваемые данные), поскольку они обрабатываются операционной системой. В Android необходимо включить дополнительную функцию FIPS 140-2 для применения FIPS 140-2 JSONStore или шифрования HTTPS.

[WARN] Функция FIPSHttp не найдена, однако initOptions включает ее при запуске

Настройка FIPS 140-2 для существующих приложений

Дополнительная функция FIPS 140-2 не включена по умолчанию в приложениях, созданных для любых версий операционной системы Android, и в приложениях iOS для IBM Mobile Foundation версии ниже 8.0. Инструкции по включению FIPS 140-2 для операционной системы Android приведены в разделе Включение FIPS 140-2. После включения дополнительной функции можно приступить к настройке FIPS 140-2.

После выполнения инструкций из раздела Включение FIPS 140-2 необходимо настроить FIPS 140-2: добавьте свойство конфигурации FIPS в объект initOptions из файла index.js.

Примечание: функция FIPS 140-2 в сочетании с функцией JSONStore обеспечивает поддержку FIPS 140-2 для JSONStore. Эта комбинация заменяет функции, указанные в учебнике JSONStore - Шифрование конфиденциальных данных с помощью FIPS 140-2, который предлагался для IBM Worklight V6.0 и ниже. Если вы ранее вносили изменения в приложение в соответствии с инструкциями из этого учебника, удалите и заново создайте среды iPhone, iPad и Android. Поскольку в результате удаления среды все внесенные в нее изменения будут потеряны, создайте резервную копию таких изменений. После повторного создания среды вы сможете заново применить эти изменения в новой среде.

Добавьте следующее свойство в объект initOptions в файле index.js.

enableFIPS : true

Выполните повторную компоновку платформы Android.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on August 17, 2020