caption: Prefer specific key exchange algorithms for TLS for device login screen
desc: |-
  This policy configures <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> to order its preferred key agreement algorithms (supported groups) in TLS 1.3 to reflect a preference for algorithms that have been approved by a specific compliance regime, when making network requests from the login screen.

  Setting this policy does not guarantee that any specific algorithms will be negotiated.

  This policy exists to allow server operators who wish to support clients with and without compliance requirements to differentiate between those clients, and only use certain non-default algorithms with increased cryptographic strength for those explicitly configured to prefer them.

  Setting the policy to '<ph name="CNSA2_NAME">cnsa2</ph>' configures <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> to prefer key exchange methods required for compliance with the Commercial National Security Algorithm Suite 2.0 (CNSA 2.0).

  Not setting the policy, or setting it to '<ph name="DEFAULT_NAME">default</ph>', configures <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> to use its default key exchange methods.

  Setting this policy is not required for security. The default cryptography used by <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> is strong enough to withstand a brute force attack using the entire power of the Sun.

  Setting this policy will cause <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> to be slower when making network requests from the login screen.

  This policy only affects TLS 1.3 and QUIC; it does not affect earlier versions of TLS.

  This device policy is equivalent to the user policy <ph name="PREFER_SLOW_KEX_ALGORITHMS_POLICY_NAME">PreferSlowKexAlgorithms</ph>, but applies to the sign-in profile on the login screen instead.

example_value: cnsa2
device_only: true
features:
  dynamic_refresh: true
  per_profile: false
items:
- caption: Prefer key exchange methods satisfying the requirements of CNSA 2.0
  name: CNSA2.0
  value: cnsa2
- caption: Use <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph>'s default supported groups
  name: Default
  value: default
owners:
- file://crypto/OWNERS
- trusty-transport@chromium.org
supported_on:
- chrome_os:146-
schema:
  enum:
  - cnsa2
  - default
  type: string
tags:
- system-security
type: string-enum
