Pergunta

Existem algumas perguntas ( C # , Java ) que a cobertura como se pode implementar atualizações automáticas. Parece inicialmente fácil de fornecer atualizações automáticas, e há aparentemente nenhuma boas razões para não fornecer atualizações automáticas para a maioria dos softwares.

No entanto, nenhum parecem cobrir os aspectos de atualizações automáticas de segurança.

  • Como o cofre são atualizações automáticas agora?
  • Como o cofre deveriam ser?
  • Como lata segura eles?

A minha questão principal é que a internet é, para todos os efeitos, a oeste selvagem, onde não se pode assumir nada sobre quaisquer dados que recebem. atualizações automáticas através da Internet parece inerentemente arriscada.

A empresa de computadores é infectado, satiriza o DNS (apenas uma pequena percentagem dos que ganhar), e faz com que os outros computadores da empresa acreditam que o servidor de atualização para uma aplicação comum é em outros lugares, eles baixar o aplicativo 'novo' e tornar-se infectado .

Como um desenvolvedor, o que possíveis ataques estão lá, e quais os passos que deve tomar para proteger meus clientes de abuso?

-Adam

Foi útil?

Solução

Com o uso adequado de criptografia suas atualizações podem ser muito seguro. Proteger o site que você distribuir suas atualizações de com SSL. Assinar todas as suas atualizações com GPG / PGP ou outra coisa, fazer seus clientes verificar a assinatura antes de aplicar a atualização. Toma medidas para garantir que seu servidor e chaves são mantidos extremamente seguro.

adequada , é muito subjetiva. O que é adequado para um jogo de internet, talvez completamente inadequado para o sistema de segurança para os nossos mísseis nucleares. Você tem que decidir o quanto de dano potencial poderia ocorrer se alguém conseguiu quebrar sua segurança.

Outras dicas

O ataque mais óbvio seria um atacante fornecendo binários alterados através de seu servidor de atualização "mal". Portanto, você deve garantir que os dados baixados pode ser verificado se originar de você, usando uma assinatura digital.

Para garantir a segurança, obviamente, você deve evitar distribuir a chave para a assinatura. Portanto, você poderia implementar alguma variação RSA mensagem assinatura

Como conectar ao servidor de atualização via SSL pode ser suficiente, desde que o seu cliente irá se recusar a ligar se obter um certificado inválido e seu servidor requer a negociação de um nível razoável de segurança de conexão (e o cliente também suporta isso).

No entanto, realisticamente quase qualquer coisa que você faz vai ser pelo menos tão seguro quanto o caminho através do qual os usuários obter a primeira instalação do seu software de qualquer maneira. Se os usuários inicialmente fazer o download do instalador via http simples, é tarde demais para começar a fixar coisas sobre as atualizações.

Isto também é verdade até certo ponto, mesmo que obter o seu software intial via https ou assinado digitalmente -. Como a maioria dos usuários podem facilmente ser persuadidos a clicar OK em quase qualquer aviso de segurança que ver em que

existem aparentemente sem boas razões para não fornecer atualizações automáticas para a maioria dos softwares.

Há boas razões para não forçar uma atualização.

  1. correções de bugs pode quebrar o código
  2. usuários podem não querer arriscar quebrar sistemas de produção que dependem de recursos mais antigos
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top