Enviar mensagens via iMessage é uma forma popular de comunicação entre dispositivos iOS e computadores Mac. Dezenas de milhões de mensagens são processadas diariamente pelos servidores da Apple e, à medida que as vendas de dispositivos mordidos pela Apple crescem, também aumenta a popularidade do iMessage. Mas você já pensou em como suas mensagens são protegidas de possíveis invasores?
A Apple lançou recentemente documentos descrevendo a segurança do iOS. Ele descreve bem os mecanismos de segurança usados no iOS - sistema, criptografia e proteção de dados, segurança de aplicativos, comunicação de rede, serviços de Internet e segurança de dispositivos. Se você entende um pouco de segurança e não tem problemas com o inglês, pode encontrar o iMessage na página 20. Caso contrário, tentarei descrever o princípio da segurança do iMessage da forma mais clara possível.
A base do envio de mensagens é a sua criptografia. Para leigos, isso geralmente está associado a um procedimento em que você criptografa a mensagem com uma chave e o destinatário a descriptografa com essa chave. Essa chave é chamada de simétrica. O ponto crítico neste processo é entregar a chave ao destinatário. Se um invasor o obtivesse, ele poderia simplesmente descriptografar suas mensagens e se passar pelo destinatário. Para simplificar, imagine uma caixa com fechadura, na qual cabe apenas uma chave, e com essa chave você pode inserir e retirar o conteúdo da caixa.
Felizmente, existe criptografia assimétrica que usa duas chaves – pública e privada. O princípio é que todos podem conhecer sua chave pública, claro que só você conhece sua chave privada. Se alguém quiser enviar uma mensagem para você, ele a criptografará com sua chave pública. A mensagem criptografada só poderá ser descriptografada com sua chave privada. Se você imaginar uma caixa de correio novamente de forma simplificada, desta vez ela terá duas fechaduras. Com a chave pública, qualquer pessoa pode desbloqueá-la para inserir conteúdo, mas somente você com sua chave privada pode selecioná-la. Para ter certeza, acrescentarei que uma mensagem criptografada com uma chave pública não pode ser descriptografada com esta chave pública.
Como funciona a segurança no iMessage:
- Quando o iMessage é ativado, dois pares de chaves são gerados no dispositivo – 1280b RSA para criptografar os dados e 256b ECDSA para verificar se os dados não foram adulterados ao longo do caminho.
- As duas chaves públicas são enviadas ao Directory Service (IDS) da Apple. Claro, as duas chaves privadas permanecem armazenadas apenas no dispositivo.
- No IDS, as chaves públicas são associadas ao seu número de telefone, e-mail e endereço do dispositivo no serviço Apple Push Notification (APN).
- Se alguém quiser enviar uma mensagem para você, o dispositivo dele descobrirá sua chave pública (ou várias chaves públicas, se estiver usando o iMessage em vários dispositivos) e os endereços APN dos seus dispositivos no IDS.
- Ele criptografa a mensagem usando 128b AES e a assina com sua chave privada. Se a mensagem chegar até você em vários dispositivos, a mensagem será armazenada e criptografada nos servidores da Apple separadamente para cada um deles.
- Alguns dados, como carimbos de data/hora, não são criptografados.
- Toda a comunicação é feita por TLS.
- Mensagens e anexos mais longos são criptografados com uma chave aleatória no iCloud. Cada objeto tem seu próprio URI (endereço de algo no servidor).
- Assim que a mensagem for entregue a todos os seus dispositivos, ela será excluída. Se não for entregue em pelo menos um dos seus dispositivos, ele será deixado nos servidores por 7 dias e depois excluído.
Esta descrição pode parecer complicada para você, mas se você olhar a imagem acima, certamente entenderá o princípio. A vantagem de tal sistema de segurança é que ele só pode ser atacado externamente pela força bruta. Bem, por enquanto, porque os invasores estão ficando mais espertos.
A ameaça potencial reside na própria Apple. Isso porque ele gerencia toda a infraestrutura de chaves, então em tese ele poderia atribuir outro dispositivo (outro par de chaves pública e privada) à sua conta, por exemplo devido a uma ordem judicial, na qual as mensagens recebidas poderiam ser descriptografadas. No entanto, aqui a Apple disse que não faz e não fará tal coisa.
E diante de quem é criptografado? O SSL normal não seria suficiente, a mensagem seria enviada para a apple e a apple despacharia a mensagem novamente via SSL? De qualquer maneira, a Apple tem o poder de espionar mensagens, então por que todo esse barulho em torno dela? Em qualquer caso, é apenas uma questão de evitar que terceiros escutem a mensagem, e o SSL é suficiente para isso.
Se acreditarmos que a Apple não envia chaves privadas, ele também não as lerá. De qualquer forma, SSL é apenas uma implementação de criptografia assimétrica na conexão cliente-servidor.
Então enviamos a mensagem 2x criptografada em SSL e a Apple pode lê-la, ou 2x não criptografada com o fato de solicitarmos as chaves públicas com antecedência e usarmos a mesma cifra do SSL e nem mesmo a Apple irá lê-las em teoria.
E por que os dados são criptografados até na Apple? Porque algum funcionário com certeza terá acesso a eles. Ele foi traído pela namorada, então começa a baixar as mensagens dela - elas vazam e a Apple está em apuros.
Grito engraçado..