BroadNet
SMPPSegurança

Proteger o SMPP: TLS, autenticação e lista de IPs permitidos

Atualizado em 3 min de leituraBaseado em padrões
Resposta direta

O próprio SMPP não é cifrado — o system_id e a password do bind atravessam a rede em claro sobre TCP simples. Em produção protege-se correndo o SMPP sobre TLS (envolvendo a sessão TCP), autenticando com credenciais mais uma lista de IPs permitidos, impondo TLS 1.2+ e rodando as credenciais a partir de um gestor de segredos em vez de as codificar no código.

DiagramaUma sessão SMPP entre a sua plataforma e BroadNet
A sua plataforma (ESME)
BroadNet SMSC
Uma conexão TCP/TLS persistente
  1. bind_transceiverAbrir e autenticar a sessão
  2. bind_transceiver_respSessão aceita
  3. submit_smEnviar uma mensagem
  4. submit_sm_respAceito, ID da mensagem devolvida
  5. deliver_smRelatório de entrega ou mensagem recebida
  6. deliver_sm_respConfirmado
  7. enquire_linkKeepalive em modo ocioso
§01

Porque é que o SMPP em texto simples é um risco

A especificação SMPP não define qualquer segurança de transporte. Num bind TCP simples (porta 2775), o system_id e a password em bind_transmitter/receiver/transceiver, e cada corpo de mensagem, viajam sem cifra. Em qualquer caminho não confiável isso expõe as credenciais à interceção e o tráfego à escuta. A segurança é, por isso, acrescentada na camada de transporte, não pelo protocolo.

§02

SMPP sobre TLS

O controlo padrão é correr a sessão SMPP dentro de um túnel TLS: a ligação TCP completa um handshake TLS antes de o PDU de bind ser enviado, pelo que as credenciais e os conteúdos são cifrados de ponta a ponta. Não há uma única porta TLS da IANA para o SMPP, por isso os fornecedores expõem uma porta dedicada com TLS. Imponha TLS 1.2 ou superior, valide a cadeia de certificado do servidor, rejeite certificados expirados ou autoassinados e nunca desative a verificação para 'fazer funcionar'.

SMPP em texto simples vs TLS
AspetoSMPP simplesSMPP over TLS
TransporteTCP (porta padrão 2775)TCP + TLS (porta fornecida pelo fornecedor)
Credenciais trafegando na redeTexto simplesEncriptado
Corpos de mensagensTexto simplesEncriptado
Identidade do servidorNão verificadoValidado por certificado
§03

Autenticação e lista de IPs permitidos

O SMPP autentica-se com o par system_id/password no bind. Isso é fraco por si só, pelo que os operadores acrescentam por cima uma lista de IPs permitidos: só endereços IP de origem pré-registados podem abrir um bind, em ambos os lados. A lista de permissões é um controlo padrão de operador e uma forma rápida de conter uma credencial fugida — uma password roubada é inútil a partir de um IP não listado. Combine-a com TLS, não como substituto dele.

§04

Higiene de credenciais

Trate as credenciais SMPP como qualquer outro segredo. Guarde-as num gestor de segredos, nunca no código-fonte ou em configuração submetida a um repositório. Rode-as num calendário e imediatamente perante qualquer suspeita de exposição. Use credenciais distintas por ambiente e por integração para que uma fuga tenha um raio de impacto limitado, e monitorize binds de IPs inesperados ou em horas inesperadas.

Perguntas frequentes

Perguntas frequentes

O SMPP é cifrado por omissão?

Não. O SMPP não tem cifra incorporada — sobre TCP simples as credenciais e os corpos de mensagem são enviados em claro. A cifra é acrescentada correndo a sessão SMPP sobre TLS, o que o protocolo não especifica mas todos os fornecedores sérios suportam.

Que porta é o SMPP sobre TLS?

Não há uma única porta TLS normalizada. O SMPP em texto simples usa a porta 2775 da IANA; para TLS, os fornecedores expõem uma porta aprovisionada separada (por vezes usa-se a 3550). Use a porta TLS que o seu fornecedor atribuir.

A lista de IPs permitidos basta por si só?

Não. A lista de IPs permitidos limita quem se pode ligar e contém credenciais fugidas, mas não cifra o tráfego. Combine a lista de permissões com SMPP sobre TLS para que tanto a origem da ligação como a confidencialidade dos dados fiquem protegidas.

Como devo guardar as credenciais SMPP?

Num gestor de segredos, nunca em código ou configuração submetida. Use credenciais separadas por ambiente e integração, rode-as num calendário e perante qualquer suspeita de fuga, e monitorize binds de IPs inesperados.

Referências

Especificações de origem

Os padrões publicados nos quais esta página se baseia. Abre num novo separador.

BNMantido pela equipa de engenharia BroadNet·Mensagens de nível de operadora desde 2003
Coloque-o no fio.

Construa com uma vinculação SMPP real e uma API REST.

Solicite acesso de teste com chaves de teste reais: envie primeiro para o seu próprio número verificado e, em seguida, passe para o ambiente de produção em mais de 200 países assim que a sua identidade de remetente e rotas forem aprovadas.