← Todos os Posts

Audite seus servidores MDM no macOS 26.4, não no 27

A orientação da Apple para auditar as mudanças de TLS do OS 27 traz uma frase que a maioria dos administradores vai ler por cima: se os seus dispositivos de teste rodam a versão 27 ou posterior e você encontra erros de conexão, teste de novo em um dispositivo com 26.4 ou posterior, mas anterior ao 27, porque “conexões não conformes são bloqueadas e essas conexões com falha podem impedir o teste de conexões subsequentes no fluxo de trabalho”.2

Testar no sistema novo encontra um servidor quebrado e esconde todos os outros. No 27, uma conexão não conforme falha, e o fluxo de trabalho que dependia dela é interrompido. Tudo o que vinha depois nunca chega a rodar e, portanto, nunca é testado. Do 26.4 ao 26.x os mesmos problemas aparecem como avisos, o que significa que uma única passada revela todos os servidores não conformes que você tem.

Duas coisas que a Apple afirma diretamente: na versão 27 ou posterior, “conexões não conformes são bloqueadas e as mensagens de log aparecem como erros em vez de avisos”, e você deve testar no 26.4 ou posterior, mas anterior ao 27, “para identificar todos os servidores afetados”.2 Que as conexões de fato se completem nessas versões anteriores é uma interpretação, não uma afirmação literal, mas a recomendação só faz sentido se for assim. Uma conexão bloqueada no 26.4 truncaria o fluxo de trabalho exatamente como acontece no 27.

O instinto é testar na versão que introduz a mudança. Aqui esse instinto produz uma lista incompleta, e você descobre o resto um por um, em produção.

Resumo

A partir da versão 27.0 do iOS, iPadOS, macOS, watchOS, tvOS e visionOS, determinados processos do sistema passam a impor requisitos de TLS mais rígidos em conexões envolvidas em MDM, Declarative Device Management, Automated Device Enrollment, instalação de perfis de configuração, instalação de apps (incluindo distribuição corporativa) e atualizações de software.1 Os servidores precisam oferecer suporte a TLS 1.2 ou posterior, com ciphersuites e certificados compatíveis com ATS.1 Servidores SCEP e de cache de conteúdo estão isentos.2 O tráfego de rede do seu próprio app não é afetado. Faça a auditoria do 26.4 ao 26.x, onde as violações são registradas como avisos em vez de bloquearem a conexão, usando o Network Diagnostics Logging Profile e um sysdiagnose.2

O que está realmente no escopo

A mudança se aplica a uma lista específica de atividades do sistema, não ao tráfego de rede em geral.1

  • Gerenciamento de dispositivos móveis (MDM)
  • Declarative Device Management (DDM)
  • Automated Device Enrollment
  • Instalação de perfis de configuração
  • Instalação de apps, incluindo distribuição corporativa
  • Atualizações de software

Duas isenções importam, porque as duas envolvem o tipo de servidor que, de outro modo, faria um administrador perder um dia investigando: conexões com um servidor SCEP durante a instalação de um perfil de configuração ou a resolução de um recurso DDM, e conexões com servidores de cache de conteúdo, mesmo ao solicitar recursos para instalação de apps ou atualizações de software.2

Vale dizer sem rodeios, para quem chega aqui vindo de uma manchete: o tráfego URLSession do seu app não é o assunto. Aqui se trata de infraestrutura de gerenciamento de dispositivos. O App Transport Security governa a rede dos apps desde que eles passaram a ser compilados com os SDKs do iOS 9.0 e do macOS 10.11.3 O que mudou no 27 é que um conjunto de processos do sistema começou a aplicar requisitos equivalentes ao tráfego de gerenciamento.

A lista de plataformas é mais ampla do que “frota Mac corporativa” sugere. A Apple cita iOS, iPadOS, macOS, watchOS, tvOS e visionOS.2 A Apple TV de uma sala de reunião e o Vision Pro de um estúdio de design se inscrevem pela mesma infraestrutura.

Os requisitos, direto da fonte canônica

O artigo de suporte da Apple afirma que os servidores precisam oferecer suporte a TLS 1.2 ou posterior, usar ciphersuites compatíveis com ATS e apresentar certificados válidos que atendam aos padrões do ATS.2 Os detalhes estão na documentação do ATS, que é a página em que você deve se basear.3

A avaliação padrão de confiança do servidor precisa passar: assinatura íntegra, certificado não expirado, nome correspondente ao nome DNS do servidor e uma cadeia que chegue a um certificado âncora emitido por uma CA que faça parte do sistema cliente ou tenha sido instalada por um usuário ou administrador.3

Além disso, o ATS acrescenta:3

  • Certificado assinado com uma chave RSA de no mínimo 2048 bits ou uma chave ECC de no mínimo 256 bits
  • Certificado usando SHA-2 com digest de no mínimo 256 bits
  • TLS 1.2 ou posterior
  • Dados trocados usando AES-128 ou AES-256
  • Perfect forward secrecy via troca de chaves ECDHE

Os dois últimos raramente aparecem nos resumos dessa mudança, inclusive na tabela de violações que a Apple publica para a auditoria. Um administrador que corrigir apenas o que os logs apontam ainda pode estar não conforme na escolha de cifras.

Auditar antes que doa

O procedimento documentado pela Apple é específico, e cada etapa existe por um motivo.2

Use dispositivos de teste no 26.4 ou posterior, anterior ao 27. É aqui que está todo o truque. As violações são registradas como avisos, as conexões funcionam e o fluxo de trabalho segue para o próximo servidor.

Instale o Network Diagnostics Logging Profile e reinicie. Ele precisa ser instalado antes de qualquer teste, ou os eventos de log não vão trazer os detalhes necessários para identificar conexões não conformes.

Para Automated Device Enrollment em iPhone ou iPad, use o Apple Configurator para Mac para instalar o perfil antes de o dispositivo chegar ao painel Gerenciamento de Dispositivos no Assistente de Configuração. O tráfego de inscrição acontece cedo, e um perfil instalado depois disso não captura esse trecho.

Rode seus fluxos de trabalho normais. Inscreva o dispositivo, instale apps e perfis e exercite tudo que conversa com os seus servidores. O objetivo é gerar tráfego para todo servidor que possa estar afetado.

Colete um sysdiagnose, mova-o para um Mac, descompacte o arquivo e, a partir do diretório de nível superior, filtre o log:

log show --archive system_logs.logarchive --info \
  -P "p=appstoreagent|appstored|managedappdistributionagent|managedappdistributiond|ManagedClient|ManagedClientAgent|mdmclient|mdmd|mdmuserd|MuseBuddyApp|NanoSettings|Preferences|profiled|profiles|RemoteManagementAgent|remotemanagementd|Setup|'Setup Assistant'|'System Settings'|teslad|TVSettings|TVSetup|XPCAcmeService AND s=com.apple.network AND m:'ATS Violation'|'ATS FCPv2.1 violation'"

Cada evento traz um Domain, o Process que abriu a conexão e um Warning nomeando a restrição violada. Uma mesma conexão pode emitir vários avisos se o servidor falhar em vários requisitos.2

Cubra suas configurações, não apenas seus dispositivos. Vale copiar as dimensões da Apple diretamente: ambiente (produção, staging, teste), tipo de dispositivo, papel (grupo de usuários, quiosque, dispositivo compartilhado) e tipo de inscrição (Automated Device Enrollment, orientada por conta, orientada por perfil, iPad compartilhado).2 Configurações diferentes alcançam servidores diferentes, e uma auditoria limpa de uma não diz nada sobre a outra.

O watchOS não pode ser auditado dessa forma. A maior parte da comunicação de rede dele acontece fora do processo e o comando log não funciona. A orientação da Apple é que testar no iOS provavelmente oferece cobertura suficiente para as conexões do Apple Watch.2

Lendo as violações

A Apple separa as falhas em duas classes, e é na segunda que servidores aparentemente conformes falham.

Violações gerais da política de ATS, registradas como Warning [ATS violation]:2

Mensagem O que significa
Ciphersuite(...) not offered in ATS Ciphersuite sem PFS. Precisa de qualquer ciphersuite de TLS 1.3, ou TLS 1.2 com ECDHE.
TLS version <1.2 negotiated TLS 1.0 ou 1.1, já obsoletos e não oferecidos por padrão.
ATS certificate trust requirement not satisfied Falhou na avaliação padrão de confiança do servidor.
RSA key size [n] bits is less than minimum 2048 Reemita o certificado.
ECDSA key size [n] bits is less than minimum 256 Reemita o certificado.
Leaf certificate hash algorithm (n) is not at least SHA-256 Abaixo de SHA-2 com 256 bits.
Did not use TLS when opening connection HTTP em texto puro.

Há uma isenção útil nessa tabela: se o certificado que falha na avaliação de confiança estiver entre os certificados âncora do perfil de inscrição automática, nenhuma correção é necessária.2

Violações de FCP v2.1, registradas como Warning [ATS FCPv2.1 violation]:2

Mensagem O que significa
Signature algorithm rsa_pkcs15_sha1 negotiated O servidor escolheu um algoritmo de assinatura baseado em SHA-1.
Server certificate signed using signature algorithm ... not advertised in ClientHello Certificado assinado com um algoritmo sem codepoint TLS, ou com rsa_pkcs15_sha1.
TLS 1.2 negotiated without extended master secret (EMS) TLS 1.2 sem a extensão EMS.

É essa última linha que vai surpreender as pessoas. Um servidor pode cumprir o requisito da manchete — negociar TLS 1.2 com uma ciphersuite moderna e um certificado válido — e ainda assim falhar, porque o Functional Package for TLS exige adicionalmente a extensão extended master secret. A correção indicada pela Apple é migrar para TLS 1.3 ou, no mínimo, configurar o TLS 1.2 para negociar EMS.2

Há uma sutileza aqui que vale manter clara. O modo de conformidade FCP v2.1 do ATS é opcional para apps, via NSRequiresNIAPTLSPackageVersion, e existe para ambientes regulados.3 Essa adesão governa o comportamento do seu próprio app como cliente. Ela não tem relação alguma com os processos de sistema do OS 27, que aplicam as verificações de FCP v2.1 aos seus servidores independentemente de algum app seu ter aderido a qualquer coisa.

O que muda no 27

Na versão 27 e posteriores, conexões não conformes são bloqueadas e as mensagens de log aparecem como erros em vez de avisos.2

A Apple observa que vários avisos não têm um erro equivalente direto e que, para problemas de ciphersuite, versão de TLS e algoritmo de assinatura, o erro exato do lado do cliente “pode depender de como o servidor lida com esse estado”.2 Não espere um mapeamento limpo de aviso para erro.

O único erro concreto documentado pela Apple cobre HTTP em texto puro bloqueado, incluindo um redirecionamento que cai em uma URL http://:2

Task . finished with error [-1022] Error Domain=NSURLErrorDomain Code=-1022
"The resource could not be loaded because the App Transport Security policy
requires the use of a secure connection."

Para validar um único servidor depois da correção, o nscurl conecta usando diferentes combinações de exceções do ATS e vai estreitando as possibilidades até identificar qual requisito está falhando, sem um ciclo completo de sysdiagnose.3

Como é a correção na prática

A auditoria produz uma lista de domínios e violações. Transformar isso em mudanças de servidor se divide em três casos.

Migre para TLS 1.3 onde for possível. Isso resolve várias classes de violação de uma vez, em vez de uma por uma. Toda ciphersuite de TLS 1.3 oferece perfect forward secrecy, então o aviso de ciphersuite sem PFS não pode ocorrer. O requisito de extended master secret é específico do TLS 1.2, então deixa de se aplicar. A negociação de algoritmo de assinatura é mais rígida por design. A própria coluna de correção da Apple diz para atualizar os servidores para negociar TLS 1.3 sempre que possível, com TLS 1.2 como mínimo.2

Se você estiver preso ao TLS 1.2, três ajustes resolvem a maior parte. Habilite a extensão extended master secret, que é a violação com maior chance de surpreender uma configuração que, no resto, é moderna. Restrinja a lista de ciphersuites a troca de chaves ECDHE com AES-128 ou AES-256, o que atende ao requisito de PFS e ao de cifra simétrica de uma vez só.3 Remova qualquer algoritmo de assinatura rsa_pkcs15_sha1 da ordem de preferência do servidor.

Estar preso é mais comum do que parece. Um load balancer terminando TLS, um appliance de hardware sob contrato de suporte ou uma controladora de gerenciamento embarcada — qualquer um deles pode ser a razão pela qual um ambiente de aparência moderna negocia algo antigo.

Problemas de certificado exigem antecedência própria. RSA abaixo de 2048 bits, ECDSA abaixo de 256 e certificados folha com hash mais fraco que SHA-256 exigem reemissão, não reconfiguração. Isso significa uma solicitação à CA, uma janela de mudança e coordenação com quem for dono da cadeia. Verifique também os certificados intermediários, já que a avaliação padrão de confiança percorre a cadeia inteira até a âncora.3

Uma isenção poupa trabalho: se o certificado que falha na avaliação de confiança estiver entre os certificados âncora do perfil de inscrição automática, a Apple afirma que nenhuma correção é necessária.2 Confira isso antes de abrir um chamado.

Verifique cada correção individualmente, em vez de rodar a auditoria inteira de novo. O nscurl conecta a um único servidor usando diferentes combinações de exceções do ATS, o que identifica com precisão qual requisito ainda falha.3 Um ciclo completo de sysdiagnose por iteração é um loop lento quando você está esperando um fornecedor refazer o deploy.

Por que a antecedência importa

A Apple diz diretamente que atualizar configurações de servidor “pode exigir um tempo significativo, especialmente para servidores mantidos por fornecedores externos”.2

Essa frase é a razão para fazer a auditoria agora, e não quando o 27 chegar em larga escala. Os servidores no escopo frequentemente não são seus. Os endpoints de um fornecedor de MDM, um parceiro de distribuição de software, um provedor de identidade que fica na frente da inscrição. Descobrir em outubro que um fornecedor precisa de um trimestre para habilitar EMS nos endpoints TLS 1.2 dele é um problema diferente de descobrir isso em agosto.

A auditoria produz uma lista de domínios e dos processos que os alcançaram. Essa lista é o que você manda para os fornecedores, e é a especificidade dela que faz o assunto ser priorizado. “Seu servidor não atende aos novos requisitos da Apple” é fácil de despriorizar. “Seu endpoint neste domínio negociou TLS 1.2 sem extended master secret, o que o OS 27 bloqueia para tráfego de inscrição” não é.

Isso tem o mesmo formato de outras mudanças desta versão. O macOS 27 deixou de perguntar antes de negar acesso a contêineres de outro time, e as imagens de itens de menu agora dependem de qual SDK você usou para compilar. Em cada caso a plataforma removeu um sinal ou apertou um padrão, e a falha chega com cara de outra coisa. Aqui a outra coisa é uma inscrição que trava.

Pontos principais

Para administradores de TI: - Faça a auditoria do 26.4 ao 26.x. Testar no 27 bloqueia a primeira falha e esconde tudo o que vem depois no mesmo fluxo de trabalho. - Instale o Network Diagnostics Logging Profile antes de testar e reinicie o dispositivo, ou os logs não vão identificar os servidores. - Cubra configurações, não dispositivos: ambiente, tipo de dispositivo, papel e tipo de inscrição alcançam servidores diferentes. - Envie aos fornecedores o domínio, o processo e a violação específica. A antecedência necessária nos servidores externos é a restrição determinante.

Para desenvolvedores de MDM e gerenciamento de dispositivos: - Servidores SCEP e de cache de conteúdo estão isentos. Não gaste a auditoria com eles. - As violações ATS FCPv2.1 são separadas das violações gerais da política de ATS, e TLS 1.2 sem EMS é a que tem mais chance de passar despercebida. - No watchOS o comando log não funciona. Cubra as conexões do Watch pelos testes no iOS.

Para quem chegou aqui por uma manchete: - O tráfego URLSession do seu próprio app não é o que mudou. Isso vale para processos do sistema que lidam com tráfego de gerenciamento, inscrição, instalação e atualização.

Perguntas frequentes

Isso afeta as requisições de rede do meu app?

Não. A mudança se aplica a processos do sistema envolvidos em MDM, DDM, Automated Device Enrollment, instalação de perfis de configuração, instalação de apps e atualizações de software.1 O App Transport Security governa a rede dos apps separadamente desde os SDKs do iOS 9.0 e do macOS 10.11.3

Por que auditar em uma versão mais antiga do sistema?

Porque no 27 as falhas bloqueiam. A Apple afirma que conexões não conformes são bloqueadas e que “essas conexões com falha podem impedir o teste de conexões subsequentes no fluxo de trabalho”, e recomenda testar no 26.4 ou posterior, mas anterior ao 27, para identificar todos os servidores afetados.2 Nessas versões as violações são registradas como avisos e as conexões ainda funcionam.

Quais servidores estão isentos?

Servidores SCEP, durante a instalação de um perfil de configuração ou a resolução de um recurso DDM, e servidores de cache de conteúdo, mesmo ao solicitar recursos relacionados a instalação de apps ou atualizações de software.2

Meu servidor faz TLS 1.2 com um certificado válido. Ainda assim pode falhar?

Pode. As verificações de FCP v2.1 incluem TLS 1.2 negociado sem a extensão extended master secret, certificado assinado com um algoritmo não anunciado no ClientHello e algoritmos de assinatura rsa_pkcs15_sha1.2 O ATS também exige AES-128 ou AES-256 e perfect forward secrecy via ECDHE.3

Aderir à conformidade NIAP no meu app muda isso?

Não, e é fácil confundir as duas coisas. O NSRequiresNIAPTLSPackageVersion faz o comportamento do seu próprio app como cliente aderir ao modo FCP mais rígido, voltado a ambientes regulados.3 Os processos de sistema do OS 27 aplicam os próprios requisitos ao tráfego de gerenciamento de forma independente.

Fontes


  1. Apple, “macOS 27 Golden Gate Beta 4 Release Notes” e “iOS & iPadOS 27 Beta 4 Release Notes.” Radar 176055825, texto idêntico em ambos: “Starting in 27.0 operating systems, select system processes now enforce stricter network security (TLS) requirements… The affected processes are those involved in MDM, DDM, Automated Device Enrollment, configuration profile installation, app installation, and software updates. Servers must support TLS 1.2 at minimum, using cipher suites and certificates that meet App Transport Security (ATS) requirements.” Verificado em 1º de agosto de 2026. 

  2. Apple Support, “Prepare your network environment for stricter security requirements.” Fonte da lista de plataformas incluindo watchOS, tvOS e visionOS; das isenções de SCEP e cache de conteúdo; da recomendação de testar no 26.4 ou posterior, mas anterior ao 27; do Network Diagnostics Logging Profile e da exigência do Apple Configurator para Automated Device Enrollment; do procedimento com sysdiagnose e log show; das dimensões de cobertura de teste; da limitação de execução fora do processo no watchOS; das duas tabelas de violações; da isenção de certificado âncora de inscrição automática; do comportamento erro-versus-aviso no 27; e do exemplo NSURLErrorDomain -1022. Consultado em 1º de agosto de 2026. 

  3. Apple, “Preventing Insecure Network Connections.” Fonte da lista canônica de requisitos do ATS (RSA 2048 / ECC 256, SHA-2 com 256 bits, TLS 1.2 ou posterior, AES-128 ou AES-256, PFS via ECDHE), da avaliação padrão de confiança do servidor, da afirmação de que o modo de conformidade FCP “is opt-in only and provides additional options for regulated environments” e do nscurl para testar servidores individuais contra combinações de exceções do ATS. 

Artigos relacionados

macOS 27 nega acesso a containers de outro time sem perguntar

O macOS 27 removeu o prompt para ler o container de app group de outro time. A API continua devolvendo uma URL aparentem…

13 min de leitura

Imagens de itens de menu somem no macOS 27 e no iPadOS 27

O macOS 27 e o iPadOS 27 escondem as imagens dos itens de menu por padrão, e o que some depende do SDK usado na linkagem…

12 min de leitura

Sign in with Apple Sends Four Notifications, Not Three

Apple's announcement names three server-to-server notification types. The API defines four. Here is the full contract, a…

13 min de leitura