Lar Securitywatch Apple expõe detalhes de segurança do iOS

Apple expõe detalhes de segurança do iOS

Vídeo: Com IMPEDIR QUE seu iPHONE SEJA DESLIGADO caso seja Roubado? (Outubro 2024)

Vídeo: Com IMPEDIR QUE seu iPHONE SEJA DESLIGADO caso seja Roubado? (Outubro 2024)
Anonim

Você já ouviu falar que a Apple anunciou um novo programa de recompensas de bugs na recente conferência Black Hat. Em uma aparência incomum, Ivan Krstic, chefe de engenharia e arquitetura de segurança da Apple, fez o anúncio pessoalmente. Mas esses foram apenas os últimos 10 minutos de uma apresentação de 50 minutos. Nos primeiros 40 minutos, o Krstic mergulhou profundamente em três componentes da segurança do iOS. E por profundo, quero dizer batisférico.

Minha opinião geral foi de admiração com a profundidade com que esses sistemas protegem os dados do usuário, mesmo da própria Apple. Vou tentar transmitir o que foi dito, sem ser muito técnico.

Mapeamento JIT do WebKit reforçado

Desculpe, é assim que se chama. JIT significa Just In Time e se refere à maneira como o código Javascript é compilado bem a tempo de sua execução. "Isso é necessário para JavaScript de alto desempenho", explicou Krstic. "Mas a política de assinatura de código precisa ser relaxada. O compilador JIT emite um código novo e não assinado. Um invasor que gerencia um ataque de gravação em qualquer lugar pode permitir a execução de código arbitrário".

Para um pouco de fundo, as áreas da memória podem ser marcadas com permissões de leitura, gravação e execução. Essa distinção, introduzida há muito tempo, eliminou ataques que executavam código em áreas dedicadas a dados. Resumidamente, a solução da Apple envolve uma técnica que coloca o JavaScript compilado em uma área de memória que permite apenas execução. Os processos não conseguem ler o que está lá ou gravar novos dados. Há um pouco mais do que isso, mas essa alteração, específica para o iOS 10, elimina toda uma gama de possíveis ataques.

Processador seguro de enclave

Os aplicativos em um dispositivo Apple são executados em uma CPU chamada Application Processor, ou AP. Os dispositivos modernos da Apple têm uma CPU totalmente separada, chamada Secure Enclave Processor, ou SEP. "O SEP é protegido por uma forte chave mestra criptográfica da senha do usuário", disse Krstic. "O ataque offline não é possível. Ele evita a superfície de ataque do ponto de acesso, mesmo quando o ponto de acesso foi comprometido. Arbitra todo o acesso do usuário e gerencia sua própria memória criptografada. Na primeira inicialização, ele usa um verdadeiro gerador de números aleatórios para criar um único chave do dispositivo no processador. Não é exportável e é armazenado na ROM segura imutável ".

Krstic continuou explicando como o dispositivo usa quatro tipos de chaves de segurança internas com características diferentes. O tipo A existe apenas quando o dispositivo está desbloqueado. O tipo B é uma chave pública sempre presente, além de uma chave privada que existe quando o dispositivo é desbloqueado. O tipo C surge na primeira vez que o dispositivo é desbloqueado após a inicialização. E o tipo D está sempre disponível.

A apresentação passou para vários diagramas seriamente intrincados. Um deles percorreu o processo de inicialização e desbloqueio do dispositivo, mostrando como cada tipo de chave foi criado e armazenado. Cada arquivo no seu dispositivo possui sua própria chave de criptografia; outro diagrama mostrou a dança complexa que permite ao SEP autenticar e descriptografar esse arquivo enquanto mantém as chaves de segurança essenciais dentro de si. Outro explicou o processo complexo que permite escolher "Atualizar mais tarde". E ainda outro passou pelo processo que permite o desbloqueio via touch ID sem manter a chave mestra visível de forma alguma.

A principal conclusão desta parte da conversa é que a Apple realmente pensou realmente no que é necessário para gerenciar a criptografia completamente dentro do Secure Enclave Processor, sem forçar o usuário a ter muitos problemas. Se você quiser ver esses diagramas, confira a apresentação completa do Krstic.

Sincronizando segredos

É extremamente conveniente que você possa sincronizar seus dados entre vários dispositivos Apple. O HomeKit permite gerenciar dispositivos de IoT, o Desbloqueio Automático faz com que o Mac seja desbloqueado quando o Apple Watch está próximo, as fotos são sincronizadas através do iCloud e assim por diante. Mas, em termos de segurança, a sincronização é um problema.

"As abordagens tradicionais não são boas", disse Krstic. "Uma maneira é fazer com que o usuário insira uma forte 'chave de gaveta' em todos os dispositivos; perca-a e o acesso aos segredos é perdido. A outra maneira é envolver os dados em uma chave derivada que deixa os dados expostos ao fornecedor da conta ".

"Tivemos vários gols aqui", continuou Krstic. "Os segredos devem estar disponíveis para todos os dispositivos, protegidos por criptografia forte. Os usuários podem recuperar segredos mesmo que percam todos os dispositivos conectados. Os dados não são expostos à Apple e não há possibilidade de um ataque de força bruta".

A autenticação no sistema básico do iCloud Keychain é simples. Cada dispositivo possui seu próprio par de chaves e, para adicionar um novo dispositivo ao círculo de sincronização, você deve aprová-lo em um dos dispositivos existentes. O back-end da Apple não está envolvido; não tem privilégio. Se um usuário perder o acesso a todos os dispositivos, o acesso poderá ser recuperado usando a Chave de segurança do iCloud e a senha do iCloud.

Krstic explicou detalhadamente como a Apple gerencia esse sistema sem deixar em aberto a menor possibilidade de que alguém, incluindo alguém da Apple, pudesse acessar dados pelo back-end. O sistema envolve o que chamamos de cartões de administrador, criados no momento em que uma nova frota de servidores de criptografia é comissionada. "Os cartões de administrador são criados em uma cerimônia segura quando a frota é comissionada e armazenada em cofres físicos separados, sob custódia de três organizações diferentes da Apple, em sacos à prova de adulteração", disse Krstic.

Essa situação dura apenas até que a frota seja efetivamente colocada em operação. Naquela época, disse Krstic, "Colocamos os cartões de administrador em uma nova função hash unidirecional". Puxando um liquidificador claramente usado de baixo do pódio, ele continuou: "Sim, uma viagem pelo liquidificador". Uma vez que a frota de servidores de criptografia esteja ativa, ela não poderá ser atualizada ou modificada de forma alguma, nem mesmo pela Apple, porque os cartões de administrador foram destruídos. Se ocorrer uma atualização realmente necessária, a Apple deve criar uma nova frota e enviar uma atualização de software que faça com que os dispositivos do usuário se conectem à nova frota.

"Por que fazemos isso", disse Krstic. "Por que damos esse último passo que é extremamente incomum? Fazemos um grande esforço para projetar os sistemas de segurança para fornecer confiança. Quando os dados saem do dispositivo, as apostas são ainda maiores. Precisamos manter essa confiança. Se mantivermos a posse de esses cartões de administrador, existe a possibilidade de que isso não seja verdade. É essa a seriedade com que levamos nossa missão sobre os dados do usuário ".

Questionado: "Você fez isso por causa dos pedidos de informações do FBI?" Krstic respondeu: "Sou engenheiro. Só posso responder perguntas sobre por que me apresentei hoje". OK, é justo. Mas acho que o interlocutor estava certo. Criar um sistema independente que você nem mesmo pode modificar é uma maneira muito boa de impedir que outras pessoas façam alterações indesejadas.

Espero ter transmitido o nível de detalhe na palestra de Krstic sem fazer seus olhos vidrarem. A julgar pela conversa enquanto o grupo se dispersava, os verdadeiros nerds de segurança no nível de bytes da sala ficaram muito impressionados.

Apple expõe detalhes de segurança do iOS