Como funciona exatamente o DRM do aplicativo para iOS?

10

Quando compro um aplicativo no iTunes no meu computador com Windows, recebo um arquivo * .ipa que é um pacote de aplicativos iOS independente. Posso navegar pelo conteúdo desses arquivos IPA com o 7-Zip e até extrair recursos e outros detalhes, o que sugere que esses arquivos IPA não são criptografados.

Portanto, se eles não são criptografados, como o DRM funciona? O que me impede de copiar um arquivo IPA para o computador de outra pessoa, importar o IPA para o iTunes e instalá-lo no dispositivo de outra pessoa?

Além disso, alguém pode confirmar que, enquanto eu mantiver o arquivo IPA, poderei instalá-lo nos meus iDevices (com o mesmo ID da Apple, é claro)? Só estou preocupado que, no futuro, um aplicativo possa ser atualizado para remover recursos ou até mesmo ser retirado da loja de aplicativos completamente.

Dai
fonte
1
Não sei o que impede você de fazer isso, mas sei pelo menos uma maneira de fazer isso: ou seja, pelo iOS se recusar a executar um aplicativo, a menos que tenha sido pago, um registro desse pagamento está presente no formulário de alguma assinatura digital em um dado, incluindo uma soma de verificação do aplicativo.
Harald Hanche-Olsen

Respostas:

14

Na verdade, funciona mais como SSL. Ao se inscrever em uma conta da Apple, a Apple gera um par de chave pública / privada para o seu nome de usuário. Em seguida, ele fornece sua chave privada e mantém seu público. (É por isso que quando você compra ou restaura seu iDevice pela primeira vez, é necessário ativá-lo com sua conta do iTunes). Após a ativação, ele transfere sua chave privada para o seu iDevice. Basicamente, o que acontece é que quando você compra um aplicativo (gratuito ou pago), a Apple gera um cabeçalho de 4096 bytes que é criptografado com sua chave pública.

Se você tiver alguma compreensão de chaves públicas / privadas, a chave pública pode criptografar para seu par privado ... Por exemplo, eu usaria uma chave pública de servidor para criptografar dados para enviar ao servidor. O servidor usaria sua chave privada para descriptografá-lo. Quando ele deseja enviar dados de volta, ele usa minha chave pública para criptografar os dados e eu uso minha chave privada para descriptografá-los! As chaves públicas só podem criptografar dados e não podem descriptografar e vice-versa para chaves privadas.

Quando você baixa o aplicativo, ele tem um cabeçalho criptografado com sua chave pública. Somente sua chave privada pode descriptografar o cabeçalho incorporado no aplicativo. Por exemplo, se eu copiasse um IPA gerado para você e o colocasse no meu iDevice (supondo que você possa obtê-lo lá, o iTunes se recusaria a sincronizá-lo de qualquer maneira) e tentei executá-lo, ele simplesmente trava porque minha chave privada não seria capaz de descriptografar o cabeçalho! Também é importante notar que o arquivo IPA (um IPA é essencialmente um arquivo zip que foi renomeado) não possui o cabeçalho. Se você der uma olhada no conteúdo de um IPA, perceberá que ele contém um arquivo sem extensão, como o aplicativo do Facebook, por exemplo, ele teria um arquivo chamado 'Facebook'. Este é o binário do aplicativo e este é o arquivo que contém o cabeçalho criptografado.

Sim, conforme declarado acima, seus aplicativos continuarão sendo executados enquanto você se lembrar do seu ID Apple, pois o iDevice (e o iTunes) NÃO assinam nenhuma verificação com o iTunes, seja como for! Isso significa que você pode instalar aplicativos removidos e também sincronizar IPAs mais antigos no seu dispositivo, desde que sejam seus e você ainda tenha o IPA indefinidamente!

jduncanator
fonte
0

Basta alterar a extensão de .ipapara .zip. Se você estiver usando uma versão antiga do iTunes, o arquivo IPA estará em:

C:\user\ ...\music\itunes\mobile applications 

Você estava vendo ... Vá para o usuário que você estava usando quando baixou o aplicativo.

Somente
fonte
Esta resposta não explica como o iOS impõe restrições de licença.
Dai