Настраивает совместимую с FIPS безопасную удаленную разработку для Linux
Поддержка Linux реализована в Visual Studio версии 2017 и выше. Возможность совместимой с FIPS безопасной удаленной разработки для Linux доступна в Visual Studio 2019 версии 16.5 и более поздних версиях.
Federal Information Processing Standard (FIPS) Publication 140-2 (Федеральный стандарт по обработке информации) — это стандарт безопасности правительства США для криптографических модулей. Реализации стандарта утверждаются институтом NIST. В Windows представлена проверенная поддержка FIPS-совместимых криптографических модулей. В Visual Studio 2019 версии 16.5 и более поздних можно использовать безопасное FIPS-совместимое криптографическое подключение к системе Linux для удаленной разработки.
В этой статье приводятся инструкции по настройке безопасного FIPS-совместимого подключения между Visual Studio и удаленной системой Linux. Они применимы при создании проектов Linux CMake или MSBuild в Visual Studio. Эта статья представляет собой версию инструкций по настройке FIPS-совместимого подключения, которые приведены в документе о подключении к удаленному компьютеру Linux.
Подготовка FIPS-совместимого подключения
Для использования FIPS-совместимого криптографически безопасного SSH-подключения между Visual Studio и удаленной системой Linux требуется выполнить ряд подготовительных процедур. Для обеспечения совместимости с FIPS-140-2 Visual Studio поддерживает только ключи RSA.
В примерах в этой статье используется Ubuntu 18.04 LTS с сервером OpenSSH версии 7.6. Для всех дистрибутивов с относительно недавней версией OpenSSH следует придерживаться одинаковых инструкций.
Настройка сервера SSH в удаленной системе
- В системе Linux установите и запустите сервер OpenSSH.
sudo apt install openssh-server sudo service ssh start
sudo systemctl enable ssh
Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc HostKeyAlgorithms ssh-rsa KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 MACs hmac-sha2-256,hmac-sha1
Примечание ssh-rsa — это единственный FIPS-совместимый алгоритм ключа узла, поддерживаемый Visual Studio. Алгоритмы aes*-ctr также совместимы с FIPS, но их реализация в Visual Studio не утверждена. Алгоритмы обмена ключами ecdh-* совместимы с FIPS, но не поддерживаются в Visual Studio.
sudo service ssh restart
Далее вы создадите пару ключей RSA на компьютере Windows. Затем вы скопируете открытый ключ в удаленную систему Linux для его использования ssh .
Создание и использование файла ключа RSA
- На компьютере Windows создайте пару открытого и закрытого ключей RSA с помощью следующей команды:
ssh-keygen -t rsa -b 4096 -m PEM
scp %USERPROFILE%\.ssh\id_rsa.pub user@hostname:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
ssh -i %USERPROFILE%\.ssh\id_rsa user@hostname
Вы успешно настроили ssh , создали и развернули ключи шифрования и проверили подключение. Теперь вы можете настроить подключение в Visual Studio.
Подключение к удаленной системе в Visual Studio
- Чтобы открыть диалоговое окно Параметры в Visual Studio, в строке меню перейдите на вкладку Сервис > Параметры. Затем выберите Кроссплатформенный > Диспетчер подключений, чтобы открыть диалоговое окно диспетчера подключений. Если подключение в Visual Studio не было настроено ранее, это диалоговое окно откроется при первом создании проекта.
- В диалоговом окне диспетчера подключений нажмите кнопку Добавить, чтобы добавить новое подключение.
Откроется окно Подключение к удаленной системе. 
- В диалоговом окне Подключение к удаленной системе введите сведения о подключении удаленного компьютера.
| Ввод | Описание |
|---|---|
| Имя узла | Имя или IP-адрес целевого устройства |
| Порт | Порт, в котором работает служба SSH, обычно 22 |
| Имя пользователя | Пользователь для проверки подлинности |
| Тип проверки подлинности | Для FIPS-совместимого подключения выберите элемент Закрытый ключ. |
| Файл закрытого ключа | Закрытый ключ, созданный для подключения по SSH |
| Парольная фраза | Парольная фраза, используемая с закрытым ключом, выбранным выше |

Измените тип проверки подлинности, выбрав значение Закрытый ключ. В поле Файл закрытого ключа введите путь к закрытому ключу. Или нажмите кнопку Обзор, чтобы перейти к файлу закрытого ключа. Затем в поле Парольная фраза введите парольную фразу, используемую для шифрования файла закрытого ключа.
Служебная программа командной строки для диспетчера подключений
Visual Studio 2019 версии 16.5 или более поздних версий: ConnectionManager.exe — это программа командной строки для управления подключениями удаленной разработки вне Visual Studio. Ее удобно использовать для выполнения таких задач, как подготовка нового компьютера разработчика. Кроме того, с ее помощью можно настроить Visual Studio для непрерывной интеграции. Примеры и полные справочные сведения по командам ConnectionManager см. в статье Справка по ConnectionManager.
Дополнительно: включение и отключение режима FIPS
Режим FIPS можно включить в Windows глобально.
- Для включения режима FIPS нажмите Windows+R, чтобы открыть диалоговое окно Выполнить, а затем запустите gpedit.msc .
- Откройте раздел Политика локального компьютера > Конфигурация компьютера > Параметры Windows > Параметры безопасности > Локальные политики и выберите Параметры безопасности.
- В разделе Политика выберите Системное шифрование: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания, а затем нажмите клавишу ВВОД, чтобы открыть соответствующее диалоговое окно.
- На вкладке Параметр локальной безопасности выберите Включен или Отключен, а затем нажмите кнопку ОК, чтобы сохранить изменения.
Включение режима FIPS может привести к нарушению работы некоторых приложений. Дополнительные сведения см. в записи блога Почему мы больше не рекомендуем использовать режим FIPS.
Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания.
В этом справочном разделе по политике безопасности для ИТ-специалистов описаны рекомендации, расположение, значения, управление политиками и рекомендации по безопасности для этого параметра политики.
Справочные материалы
Федеральный стандарт обработки информации (FIPS) 140 — это реализация безопасности, предназначенная для сертификации криптографического программного обеспечения. Windows реализует эти сертифицированные алгоритмы в соответствии с требованиями и стандартами для криптографических модулей для использования департаментами и агентствами США федерального правительства.
TLS/SSL
Этот параметр политики определяет, поддерживает ли поставщик безопасности TLS/SSL только набор надежных шифров, совместимый с FIPS, известный как TLS_RSA_WITH_3DES_EDE_CBC_SHA. Это означает, что поставщик поддерживает протокол TLS только в качестве клиентского компьютера и сервера, если применимо. Он использует только алгоритм шифрования стандарта 3DES для шифрования трафика TLS, только алгоритм открытого ключа Rivest-Shamir-Adleman (RSA) для обмена ключами TLS и проверки подлинности и только алгоритм хэширования безопасного хэш-алгоритма версии 1 (SHA-1) для требований хэширования TLS.
Файловая система шифрования (EFS)
Для службы EFS этот параметр политики поддерживает алгоритмы шифрования 3DES и AES для шифрования файловых данных, поддерживаемые файловой системой NTFS. Для шифрования файловых данных EFS по умолчанию использует алгоритм AES с 256-разрядным ключом в Windows Server 2003, Windows Vista и более поздних версиях, а также алгоритм DESX в Windows XP.
Службы удаленных рабочих столов (RDS)
Если вы используете службы удаленных рабочих столов, этот параметр политики должен быть включен только в том случае, если поддерживается алгоритм шифрования 3DES.
BitLocker
Для BitLocker этот параметр политики необходимо включить до создания ключа шифрования. Пароли восстановления, созданные в Windows Server 2012 R2 и Windows 8.1 и более поздних версий при включении этой политики, несовместимы с BitLocker в операционных системах до Windows Server 2012 R2 и Windows 8.1; BitLocker будет препятствовать созданию или использованию паролей восстановления в этих системах, поэтому вместо этого следует использовать ключи восстановления. Кроме того, если диск данных защищен паролем, к нему может получить доступ компьютер, совместимый с FIPS, после ввода пароля, но диск будет доступен только для чтения.
Возможные значения
- Enabled
- Отключено
- Не определено
Рекомендации
Мы рекомендуем клиентам, надеящимся соблюдать fips 140-2, исследовать параметры конфигурации приложений и протоколов, которые они могут использовать, чтобы убедиться, что их решения могут быть настроены для использования проверенной шифрования FIPS 140-2, предоставляемой Windows, когда она работает в утвержденном режиме FIPS 140-2.
Полный список рекомендуемых майкрософт параметров конфигурации см. в статье Базовые показатели безопасности Windows. Дополнительные сведения о Windows и FIPS 140-2 см. в статье Проверка FIPS 140.
Расположение
Конфигурация компьютера\Параметры Windows\Параметры безопасности\Локальные политики\Параметры безопасности
Значения по умолчанию
В следующей таблице перечислены фактические и действующие значения по умолчанию для этой политики. Значения по умолчанию также можно найти на странице свойств политики.
| Тип сервера или объект групповой политики | Значение по умолчанию |
|---|---|
| Default Domain Policy | Не определено |
| Политика контроллера домена по умолчанию | Не определено |
| Параметры по умолчанию для автономного сервера | Отключено |
| Действующие параметры по умолчанию контроллера домена | Отключено |
| Действующие параметры по умолчанию для рядового сервера | Отключено |
| Действующие параметры по умолчанию для клиентского компьютера | Отключено |
Различия версий операционной системы
Если этот параметр включен, служба шифруемой файловой системы (EFS) поддерживает только алгоритм шифрования Triple DES для шифрования файловых данных. По умолчанию реализация EFS в Windows Vista и Windows Server 2003 использует расширенный стандарт шифрования (AES) с 256-разрядным ключом. В реализации Windows XP используется DESX.
Если этот параметр включен, BitLocker создает пароль восстановления или ключи восстановления, применимые к следующим версиям:
| Операционные системы | Применимость |
|---|---|
| Windows 10, Windows 8.1 и Windows Server 2012 R2 | При создании в этих операционных системах пароль восстановления не может использоваться в других системах, перечисленных в этой таблице. |
| Windows Server 2012 и Windows 8 | При создании в этих операционных системах ключ восстановления можно использовать и в других системах, перечисленных в этой таблице. |
| Windows Server 2008 R2 и Windows 7 | При создании в этих операционных системах ключ восстановления можно использовать и в других системах, перечисленных в этой таблице. |
| Windows Server 2008 и Windows Vista | При создании в этих операционных системах ключ восстановления можно использовать и в других системах, перечисленных в этой таблице. |
Управление политикой
В этом разделе описываются функции и средства, которые помогут вам управлять этой политикой.
Необходимость перезапуска
Нет. Изменения этой политики вступает в силу без перезапуска устройства, когда они сохраняются локально или распространяются через групповая политика.
Групповая политика
Установка и развертывание этой политики с помощью групповая политика имеет приоритет над параметром на локальном устройстве. Если для групповая политика задано значение Не настроено, применяются локальные параметры.
Вопросы безопасности
В этом разделе описывается, каким образом злоумышленник может использовать компонент или его конфигурацию, как реализовать меры противодействия, а также рассматриваются возможные отрицательные последствия их реализации.
Уязвимость
Этот параметр политики можно включить, чтобы устройство использовало самые мощные алгоритмы, доступные для цифрового шифрования, хэширования и подписывания. Использование этих алгоритмов сводит к минимуму риск компрометации зашифрованных или подписанных данных неавторизованным пользователем.
Противодействие
Включение системного шифрования: используйте совместимые с FIPS алгоритмы для шифрования, хэширования и подписывания .
Возможное влияние
Клиентские устройства, на которых включен этот параметр политики, не могут взаимодействовать с серверами, которые не поддерживают эти алгоритмы, через протоколы с цифровым шифрованием или подписанным протоколом. Сетевые клиенты, которые не поддерживают эти алгоритмы, не могут использовать серверы, которым они требуются для сетевого взаимодействия. Например, многие веб-серверы на основе Apache не настроены для поддержки TLS. Если этот параметр включен, необходимо также настроить интернет-Обозреватель ® для использования TLS. Этот параметр политики также влияет на уровень шифрования, используемый для протокола удаленного рабочего стола (RDP). Средство подключения к удаленному рабочему столу использует протокол RDP для связи с серверами, на которых выполняются службы терминалов, и клиентскими компьютерами, настроенными для удаленного управления. Подключения RDP завершаются ошибкой, если оба устройства не настроены для использования одних и того же алгоритма шифрования.
Связанные темы
Обратная связь
Были ли сведения на этой странице полезными?
USB-накопители Kingston с поддержкой шифрования соответствуют требованиям стандартов FIPS и одобрены для использования Национальным институтом стандартов и технологий США
Федеральные стандарты обработки информации (Federal Information Processing Standards, FIPS) – это государственные стандарты США для информационных технологий и компьютерной безопасности. Программа FIPS выполняется Национальным институтом стандартов (National Institute of Standards, NIST). FIPS 140 института NIST – это программа криптографического стандарта, используемая федеральным правительством США для защиты уязвимых данных. Все продукты, использующие криптографию и используемые в гражданских и военных федеральных органах США, должны соответствовать FIPS 140. Последняя версия FIPS — 140-3.
Получение подтверждения соответствия FIPS 140 требует процесса тщательного тестирования при помощи аккредитованной испытательной лаборатории. Результаты изучаются Национальным институтом стандартов и технологий (NIST), выпускающим сертификат соответствия FIPS 140. Посетить веб-сайт.
Почему не следует включать «FIPS-совместимое» шифрование в Windows

В Windows есть скрытый параметр, который позволяет использовать только сертифицированные государством «FIPS-совместимые». шифрование . Может показаться, что это способ повысить безопасность вашего компьютера, но это не так. Не следует включать этот параметр, если вы не работаете в правительстве или вам не нужно тестировать, как программное обеспечение будет вести себя на государственных компьютерах.
Этот твик подходит к другим бесполезные мифы о настройке Windows . Если вы наткнулись на этот параметр в Windows или видели, как он упоминается в другом месте, не включайте его. Если вы уже включили его без уважительной причины, выполните следующие действия, чтобы отключить «Режим FIPS».
Что такое шифрование по стандарту FIPS?
FIPS расшифровывается как «Федеральные стандарты обработки информации». Это набор государственных стандартов, которые определяют, как определенные вещи используются в правительстве, например, алгоритмы шифрования. FIPS определяет определенные конкретные методы шифрования, которые можно использовать, а также методы для генерации ключей шифрования. Он опубликован Национальным институтом стандартов и технологий (NIST).
Настройка в Windows соответствует стандарту правительства США FIPS 140. Когда он включен, он заставляет Windows использовать только схемы шифрования, проверенные FIPS, и также рекомендует делать это приложениям.
«Режим FIPS» не делает Windows более безопасной. Он просто блокирует доступ к новым схемам криптографии, которые не прошли проверку FIPS. Это означает, что он не сможет использовать новые схемы шифрования или более быстрые способы использования тех же схем шифрования. Другими словами, это делает ваш компьютер медленнее, менее функциональным и, возможно, Меньше безопасный.
Как Windows ведет себя по-другому, если вы включите этот параметр
Microsoft объясняет, что на самом деле делает этот параметр, в сообщении блога, озаглавленном « Почему мы больше не рекомендуем «режим FIPS» . » Microsoft рекомендует использовать режим FIPS только в случае необходимости. Например, если вы используете правительственный компьютер США, на этом компьютере должен быть включен «режим FIPS» в соответствии с собственными постановлениями правительства. Нет никакого реального случая, когда вы захотели бы включить это на своем собственном персональном компьютере — если только вы не тестировали, как ваше программное обеспечение ведет себя на компьютерах правительства США с этой включенной настройкой.
Этот параметр выполняет две функции с самой Windows. Он заставляет службы Windows и Windows использовать только шифрование, подтвержденное FIPS. Например, служба Schannel, встроенная в Windows, не будет работать со старыми протоколами SSL 2.0 и 3.0 и вместо этого потребует хотя бы TLS 1.0.
Платформа Microsoft .NET также блокирует доступ к алгоритмам, которые не прошли проверку FIPS. Платформа .NET предлагает несколько различных алгоритмов для большинства алгоритмов криптографии, и не все из них даже были отправлены на проверку. В качестве примера Microsoft отмечает, что в .NET framework есть три различных версии алгоритма хеширования SHA256. Самый быстрый из них не был отправлен на проверку, но должен быть таким же безопасным. Таким образом, включение режима FIPS либо нарушит работу приложений .NET, использующих более эффективный алгоритм, либо заставит их использовать менее эффективный алгоритм и работать медленнее.
Помимо этих двух вещей, включение режима FIPS рекомендует приложениям также использовать только шифрование с проверкой FIPS. Но больше ничего не заставляет. Традиционные настольные приложения Windows могут реализовать любой код шифрования, который они хотят, даже ужасно уязвимое шифрование, или вообще не использовать шифрование. Режим FIPS ничего не делает с другими приложениями, если они не подчиняются этому параметру.
Как отключить режим FIPS (или включить его, если необходимо)
Не следует включать этот параметр, если вы не используете правительственный компьютер и не будете вынуждены это сделать. Если вы включите этот параметр, некоторые потребительские приложения могут фактически попросить вас отключить режим FIPS, чтобы они могли работать правильно.
Если вам нужно включить или отключить режим FIPS — возможно, вы видели сообщение об ошибке после его включения, вам нужно проверить, как ваше программное обеспечение будет вести себя на компьютере с включенным режимом FIPS, или вы используете правительственный компьютер и чтобы включить его — вы можете сделать это несколькими способами. Режим FIPS можно включить только при подключении к определенной сети или с помощью общесистемной настройки, которая будет применяться всегда.
Чтобы включить режим FIPS только при подключении к определенной сети, выполните следующие действия:
- Откройте окно панели управления.
- Нажмите «Просмотр состояния сети и задач» в разделе «Сеть и Интернет».
- Нажмите «Изменить настройки адаптера».
- Щелкните правой кнопкой мыши сеть, для которой нужно включить FIPS, и выберите «Состояние».
- Нажмите кнопку «Свойства беспроводной сети» в окне состояния Wi-Fi.
- Щелкните вкладку «Безопасность» в окне свойств сети.
- Нажмите кнопку «Дополнительные настройки».
- Включите параметр «Включить соответствие федеральным стандартам обработки информации (FIPS) для этой сети» в настройках 802.11.

Этот параметр также можно изменить для всей системы в редакторе групповой политики. Этот инструмент доступен только в версиях Windows Professional, Enterprise и Education, но не в версиях Home. Вы можете использовать только редактор локальной групповой политики чтобы изменить этот инструмент, если вы работаете на компьютере, который не подключен к домену, который управляет настройками групповой политики вашего компьютера за вас. Если ваш компьютер присоединен к домену, а настройки групповой политики централизованно управляются вашей организацией, вы не сможете изменить их самостоятельно. Чтобы изменить этот параметр в групповой политике:
- Нажмите Windows Key + R, чтобы открыть диалоговое окно «Выполнить».
- Введите «gpedit.msc» в диалоговом окне «Выполнить» (без кавычек) и нажмите Enter.
- Перейдите к «Конфигурация компьютера \ Параметры Windows \ Параметры безопасности \ Локальные политики \ Параметры безопасности» в редакторе групповой политики.
- Найдите параметр «Системная криптография: использовать алгоритмы, совместимые с FIPS для шифрования, хеширования и подписи» на правой панели и дважды щелкните его.
- Установите для параметра значение «Отключено» и нажмите «ОК».
- Перезагрузите компьютер.

В домашних версиях Windows вы по-прежнему можете включать или отключать параметр FIPS через параметр реестра. Чтобы проверить, включен или отключен FIPS в реестре выполните следующие действия:
- Нажмите Windows Key + R, чтобы открыть диалоговое окно «Выполнить».
- Введите «regedit» в диалоговом окне «Выполнить» (без кавычек) и нажмите Enter.
- Перейдите к «HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Lsa \ FipsAlgorithmPolicy \».
- Посмотрите на значение «Включено» на правой панели. Если установлено значение «0», режим FIPS отключен. Если установлено значение «1», режим FIPS включен. Чтобы изменить настройку, дважды щелкните значение «Включено» и установите для него значение «0» или «1».
- Перезагрузите компьютер.

Благодаря @SwiftOnSecurity в Твиттере за создание этого поста!