ativação remota / desativação e protegendo contra fora do negócio

StackOverflow https://stackoverflow.com/questions/759464

  •  09-09-2019
  •  | 
  •  

Pergunta

Eu estou no comando de um aplicativo que usa a internet para transferir dados entre os sites, e alguns clientes estão sendo estranho sobre o pagamento, por isso precisamos de um mecanismo que nos permita cortar o serviço de não-contribuintes. Eu gostaria de proteger contra o povo de administração usando firewalls para bloquear nossos cheques, mas por outro lado eu gostaria de dar algum subsídio para o nosso site da empresa de desaparecer por algum motivo e não ser acessível.

O esquema que estou imaginando é:

server makes twice daily check to web page using a URL like:
http://www.ourcompany.com/check.php?myID=GUID&Code=MyCode

Este, em seguida, retorna uma resposta que contém quer nada de interesse, ou o GUID e um valor.

GUID=0

Isso zero indica que o servidor deve parar a operação. Para fazê-lo funcionar novamente, o servidor irá verificar a cada 5 minutos para a mesma informação, até que o valor coincide com o que ele pensa que o código que ele passou no deve ser transformado para.

Este esquema faz sentido para mim, mas a questão realmente é como se proteger contra o bloqueio. Dado que sabemos que deve ter acesso à Internet, quanto tempo devemos continuar a operar sem ser capaz de obter a resposta do nosso servidor web? É algo como 14 dias e então nós apenas desligá-lo de qualquer maneira a melhor maneira?

Foi útil?

Solução

A solução que eu usei no final foi praticamente como eu sugeri. Sim, é defeatable usando ferramentas descritas aqui, mas é melhor que nada.

O aplicativo verificações diárias para acessar um site que contenha um arquivo de controle criptografados usando criptografia de chave pública. Ele decifra na memória, e se encontra a sua GUID, então ele deve corresponder a um código. Para desativar a operação, o código é definido como 0 (zero), que sempre falhará. Quando desativada, ele verifica a cada dois minutos para permitir a restauração rápida. Há também um mecanismo manual para gerar um código que vai trabalhar por uma semana em caso de problemas do servidor.

O código permitirá que até 14 dias sem conectar ao servidor antes de tomar isso como uma tentativa deliberada de bloqueá-lo. Após 10 dias, ele mostra uma mensagem de erro que lhes pede para contatar o suporte.

Outras dicas

Este método é realmente fácil de contornar: basta usar um servidor DNS local para apontar www.ourcompany.com à máquina local, ou utilizar um proxy HTTP. Em seguida, o usuário pode retornar qualquer resposta que eles querem para o programa.

Assumindo que o usuário não tenha contornado a verificação, quanto tempo você está para continuar a operar sem a confirmação é uma decisão de negócios e não uma decisão de programação.

Um usuário pode usar uma ferramenta como o OWASP WebScarab para alterar valores na mosca para subverter o modelo de segurança. Você precisa incluir algo mais difícil, tais como a necessidade de um canal seguro, comparando chave pública e assim por diante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top