Usando a assinatura do iCloud+ ao máximo
O recurso que eu mais amo no iCloud+ é o "HideMyEmail", que cria um alias para você durante cadastros em sites para evitar compartilhar o seu e-mail real.

O recurso que eu mais amo no iCloud+ é o "HideMyEmail", que cria um alias para você durante cadastros em sites para evitar compartilhar o seu e-mail real.

Isso é legal, mas sabe o que seria ainda melhor? A possibilidade de usar rapidamente esse recurso para gerar uma lista de aliases apontando para o meu e-mail do iCloud, para evitar comprar listas de e-mail ou catchalls durante rifas, criações de contas em massa, ou simplesmente ter endereços descartáveis novos sempre que eu precisar.
Então vamos fazer isso!
Outras soluções open source
Essa ideia nasceu quando eu precisei criar alguns aliases de forma rápida e fácil. Pensei nessa abordagem do HideMyEmail, achei alguns projetos online, mas o principal problema em todos eles era o login.
Totalmente sem suporte. Tive que extrair os cookies da minha sessão do navegador para fazer qualquer script funcionar. Então basicamente existem só alguns módulos vibe-coded por aí que vão reproduzir uma requisição X vezes com os cookies que você fornece.
E tendo em mente que o iCloud deixa você gerar por volta de 5 e-mails a cada 30/40 minutos… no fim, fazer manualmente seria até mais fácil do que brigar com sessões expiradas.
Dá pra fazer muito melhor. (spoiler: confira o repo do github deste projeto)
Entendendo o processo
Para construir algo que realmente funcione, eu precisava entender o que acontece quando você faz login no iCloud. Então liguei meu navegador, abri um proxy HTTP e gravei a sessão inteira, do login à geração de e-mail.
obv a Apple não facilita isso. A autenticação deles usa uma implementação customizada do protocolo Secure Remote Password (SRP) com algumas modificações específicas da Apple que levaram tempo demais para eu decifrar.
Deixa eu te guiar por ela.
O Fluxo de Autenticação
**Passo 1: Inicialização do SRP
**Primeiro, enviamos uma requisição para /appleauth/auth/signin/init com o nome da conta:
{
"a": "<base64_encoded_A_value>",
"accountName": "[email protected]",
"protocols": ["s2k", "s2k_fo"]
}
O valor a é o nosso valor efêmero público do SRP. A Apple responde com os valores próprios dela, incluindo:
- b O efêmero público do servidor
- saltPara a derivação da senha
- iterationContagem de iterações do PBKDF2
- protocolQual variante usar (geralmente s2k)
**Passo 2: O Protocolo s2k
**Aqui é onde a Apple decidiu ser Apple. O SRP padrão computa x = H(s || H(I:p)) onde I é o username e p é a senha.
Mas não, o protocolo s2k da Apple faz algo diferente:
x = H(s || p)
Onde p não é a senha bruta, mas:
password_hash = SHA256(password)
derived_key = PBKDF2(password_hash, salt, iterations, 32, SHA256)
Passei horas debugando erros de "Invalid credentials" antes de descobrir isso. Um agradecimento enorme ao projeto icloudpy por me ajudar a validar a lógica; a implementação deles economizou meu tempo.
Passo 3: Concluir a Autenticação
Com a prova SRP correta calculada, enviamos ela para /appleauth/auth/signin/complete:
{
"accountName": "[email protected]",
"m1": "<base64_srp_proof>",
"m2": "<base64_server_proof>",
"rememberMe": true
}
Passo 4: Autenticação de Dois Fatores
Se o 2FA estiver ativado (e, sinceramente, deveria estar em toda conta), a Apple retorna um status 409 pedindo verificação. Você vai receber um código nos seus dispositivos confiáveis — iPhone, iPad, Mac, o que você tiver.
Enviamos esse código para /appleauth/auth/verify/trusteddevice/securitycode:
{
"securityCode": {
"code": "123456"
}
}
Então marcamos a sessão como confiável via /appleauth/auth/2sv/trust para não termos que passar pelo 2FA toda santa vez.
Passo 5: Login na Conta
Por fim, chamamos /setup/ws/1/accountLogin para obter a sessão completa com todas as URLs de webservice que precisamos, incluindo o endpoint do HideMyEmail que estamos buscando.
Nesse ponto, temos uma sessão totalmente autenticada. A parte difícil está feita!
A API do HideMyEmail
Agora a parte divertida. Uma vez autenticado, interagir com o HideMyEmail é surpreendentemente simples comparado ao pesadelo de autenticação pelo qual acabamos de passar. (por essa razão, provavelmente, todos os projetos open source só tinham essa parte)
Gerando um E-mail
POST /v1/hme/reserve
{
"hme": "[email protected]",
"label": "My Shopping Account",
"note": "Used for online shopping"
}
Uma vez reservado, o e-mail fica permanentemente vinculado à sua conta e vai encaminhar mensagens para a sua caixa de entrada para sempre (ou até você deletá-lo).
Listando Todos os E-mails
GET /v2/hme/list
Retorna todos os seus endereços do HideMyEmail com metadados como data de criação, label e se está ativo. Útil para exportar tudo o que você criou.
Limites de Taxa
Claro, a Apple não ia nos deixar exagerar. Aqui está o que descobri através de… testes extensivos:
- A cada 30 minutos: ~5 e-mails × membros da família
- Total por conta: ~700 e-mails
O multiplicador de "membros da família" é interessante — se você tem o Apple Family Sharing com 5 pessoas, teoricamente você consegue por volta de 25 e-mails a cada 30 minutos. Nada mal para um recurso que a Apple provavelmente não pretendia que fosse usado dessa forma.
Quando você atinge o limite, a Apple retorna:
{
"success": false,
"error": {
"errorMessage": "You have reached the limit...",
...
}
}
Construindo a CLI
Com todo esse conhecimento, construí o icloud-hme — uma ferramenta de CLI de verdade que cuida de tudo:
- Autenticação SRP Real — Chega dos pesadelos de copiar cookies
- Suporte a 2FA — Funciona com os seus dispositivos confiáveis
- Multi-Conta — Alterne entre várias contas do iCloud
- Saída Bonita — Feita com Rich, porque por que CLIs deveriam ser feias?
- Exportação — CSV ou JSON com opções de filtragem
Veja em Ação
Primeiro, autentique-se com a sua conta do iCloud:
$ icloud-hme auth
◆ iCloud HME ─────────────────────────────────────────────────────
? iCloud email: your@icloud.com
? Password: ********
● Two-factor authentication required
? Enter 6-digit code: 123456
✓ Authenticated as Your Name
Então gere quantos e-mails quiser:
$ icloud-hme generate -n 5
Generating 5 email(s) • PERMANENT
──────────────────────────────────────────────────────────────────
✓ punk_51_estofamos@icloud.com
✓ bicep_angora.32@icloud.com
✓ extinct.daze_7p@icloud.com
✓ minimos_orzo.06@icloud.com
✓ flak-din-1q@icloud.com
──────────────────────────────────────────────────────────────────
✓ Generated 5/5 permanent email(s)
Precisa exportar tudo? Fácil:
$ icloud-hme export --format csv
✓ Found 29 emails to export
? Save to (without extension): my_emails
✓ Exported to my_emails.csv
Você pode instalar o módulo via
pip install icloud-hme
ou pelo código-fonte, não deixe de conferir o repo do github
Conecte-se comigo
Se você gostou deste artigo, me siga no GitHub e no Medium para receber notificações sempre que eu postar ou abrir o código de algo.
Pule a engenharia reversa.
O Takion retorna cookies, headers e tokens novos para cada grande muro antibot. Um POST, sem navegador, primeira chamada em menos de uma hora.