Segurança do Handoff
A Apple gerencia handoffs com segurança, seja de um dispositivo para outro, entre um app nativo e um site, e até handoffs de grandes quantidades de dados.
Como o Handoff funciona em segurança
Com o Handoff, quando os dispositivos iOS, iPadOS e macOS de um usuário estão próximos, o usuário pode passar aquilo em que estiver trabalhando de um dispositivo para outro. O Handoff permite que o usuário alterne entre dispositivos e continue trabalhando imediatamente.
Quando um usuário inicia a sessão no iCloud em um segundo dispositivo compatível com Handoff, os dois dispositivos estabelecem um emparelhamento Bluetooth Low Energy (BLE) 4.2 fora de banda usando APNs. As mensagens individuais são criptografadas de maneira bem semelhante às mensagens do iMessage. Depois de emparelhados, cada dispositivo gera uma chave AES simétrica de 256 bits que é armazenada nas chaves do dispositivo. A chave pode criptografar e autenticar os anúncios de BLE que comunicam a atividade atual do dispositivo para outros dispositivos emparelhados com o iCloud ao usar AES256 no modo GCM, com medidas de proteção contra reprodução.
Na primeira vez que um dispositivo recebe um anúncio de uma nova chave, ele estabelece uma conexão BLE ao dispositivo originário e realiza uma troca de chaves de criptografia de anúncios. O uso de criptografia padrão BLE 4.2 mantém essa conexão em segurança, assim como a criptografia de mensagens individuais, que assemelha-se à criptografia do iMessage. Em algumas situações, essas mensagens são enviadas usando APNs em vez de BLE. O payload da atividade é protegido e transferido da mesma maneira que uma iMessage.
Handoff entre apps nativos e sites
O Handoff permite que um app nativo do iOS, iPadOS e macOS retome a atividade do usuário em uma página web em domínios controlados legitimamente pelo desenvolvedor do app. Ele também permite que a atividade do usuário do app nativo seja retomada em um navegador.
Para ajudar a impedir que apps nativos reivindiquem a retomada de sites que não sejam controlados pelo desenvolvedor, o app precisa demonstrar controle legítimo sobre os domínios web que deseja retomar. O controle sobre um domínio de site é estabelecido através do mecanismo de credenciais web compartilhadas. Para obter detalhes, consulte Acesso de apps a senhas salvas. O sistema deve validar o controle do nome de domínio de um app antes que o app tenha permissão para aceitar o Handoff da atividade do usuário.
A fonte do Handoff de uma página web pode ser qualquer navegador que tenha adotado as APIs do Handoff. Quando o usuário visualiza uma página web, o sistema anuncia o nome do domínio da página web em bytes de anúncio de Handoff criptografados. Somente os outros dispositivos do usuário são capazes de descriptografar os bytes de anúncio.
No dispositivo de destino, o sistema detecta que um app nativo instalado aceita o Handoff do nome de domínio anunciado e exibe o ícone do app nativo como opção de Handoff. Quando aberto, o app nativo recebe o URL completo e o título da página web. Nenhuma outra informação é passada do navegador para o app nativo.
Em contrapartida, um app nativo pode especificar um URL alternativo quando o dispositivo que estiver recebendo o Handoff não tiver o mesmo app nativo instalado. Nesse caso, o sistema exibe o navegador padrão do usuário como opção de app Handoff (caso o navegador tenha adotado as APIs do Handoff). Quando o Handoff é solicitado, o navegador é aberto e recebe o URL alternativo fornecido pelo app de origem. Não há requisitos para que a URL alternativa seja limitada a nomes de domínios controlados pelo desenvolvedor do app nativo.
Handoff de dados maiores
Além do uso de recursos básicos do Handoff, alguns apps podem optar por usar APIs que oferecem suporte ao envio de uma quantidade maior de dados através da tecnologia Wi-Fi peer-to-peer criada pela Apple (semelhante ao AirDrop). O app Mail, por exemplo, usa essas APIs para que o rascunho de um e-mail (que talvez tenha anexos grandes) possa usar o Handoff.
Quando um app usa essas APIs, a troca entre dois dispositivos é iniciada da mesma forma que no Handoff. Porém, depois de receber o payload inicial usando Bluetooth Low Energy (BLE), o dispositivo receptor inicia uma nova conexão via Wi-Fi. Essa conexão é criptografada (com TLS) e deriva confiança por meio de uma identidade compartilhada pelas Chaves do iCloud. A identidade nos certificados é comparada com a identidade do usuário para verificá-la. Dados adicionais de payload são enviados por essa conexão criptografada até que a transferência seja concluída.
Área de Transferência Universal
A Área de Transferência Universal baseia-se no Handoff para passar o conteúdo da área de transferência de um usuário entre dispositivos com segurança, o que possibilita que o usuário copie em um dispositivo e cole em outro. O conteúdo é protegido da mesma maneira que outros dados de Handoff e compartilhado por padrão com a Área de Transferência Universal, a não ser que o desenvolvedor do app opte por não permitir o compartilhamento.
Os apps têm acesso aos dados da área de transferência independentemente de o usuário ter colado a área de transferência no app. Com a Área de Transferência Universal, esse acesso aos dados é ampliado a apps nos outros dispositivos do usuário (conforme estabelecido pelo início de sessão no iCloud).