Pergunta

Estou construindo um aplicativo de desktop centralizado usando o Python/Wxpython. Um dos requisitos é a autenticação do usuário, que estou tentando implementar usando o LDAP (embora isso não seja obrigatório).

Os usuários do sistema serão engenheiros mecânicos e elétricos que fabricam orçamentos, e o maior problema seria a espionagem industrial. É um problema comum que os vazamentos ocorrem comumente do fundo de maneiras informais, e isso pode apresentar problemas. O sistema é configurado de tal maneira que todo usuário tem acesso a todos e apenas a informação necessária, para que nenhuma pessoa, a não ser as pessoas no topo tenha informações monetárias em todo o projeto.

O problema é que, para todas as maneiras que eu possa pensar em implementar o sistema de autenticação, a abertura de Python me faz pensar em pelo menos uma maneira de ignorar/obter informações sensatas do sistema, porque "compilando" com py2exe é o mais próximo que posso chegar à ofuscação do código no Windows.

Eu realmente não estou tentando ocultar O código, mas sim a rotina de autenticação segura por si só, faça com que o acesso ao código não significa capacidade de acessar o aplicativo. Uma coisa que eu queria acrescentar foi algum tipo de assinatura de código na rotina de acesso, para que o usuário possa ter certeza de que não está executando um aplicativo cliente modificado.

Uma das maneiras pelas quais pensei em evitar isso é fazer um C Módulo para a autenticação, mas eu prefiro não precisar fazer isso.

É claro que essa pergunta está mudando agora e não é apenas "alguém poderia me apontar na direção certa sobre como construir um sistema de autenticação seguro em python? Algo assim já existe?", Mas "Como você endurece um script de um script (Python) contra modificação ilícita? "

Foi útil?

Solução

Quão maliciosos são seus usuários? Sério.

Exatamente quão malicioso?

Se seus usuários são sociopatas do mal e não podem se confiar em uma solução de desktop, então Não construa uma solução de desktop. Crie um site.

Se seus usuários forem usuários comuns, eles estragarão o ambiente instalando vírus, malware e keyloggers em sites pornôs antes de tentarem (a) aprender python (b) Aprenda como sua segurança funciona e (c) faça um esforço sincero no quebrando.

Se você realmente tem problemas de segurança para desktop (ou seja, segurança pública, militar, etc.), repense o uso da área de trabalho.

Caso contrário, relaxe, faça a coisa certa e não se preocupe com "scripts".

Os programas C ++ são mais fáceis de invadir, porque as pessoas são preguiçosas e permitem a injeção de SQL.

Outras dicas

Possivelmente:

  1. O usuário insere suas credenciais no cliente de desktop.
  2. O cliente diz ao servidor: "Olá, meu nome de nome de usuário e minha senha é senha".
  3. O servidor verifica isso.
  4. O servidor diz ao cliente: "Oi, nome de usuário. Aqui está o seu token secreto: ..."
  5. Posteriormente, o cliente usa o token secreto junto com o nome de usuário para "assinar" comunicações com o servidor.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top