Proteger código Java no Linux

0

Desenvolvemos uma aplicação que está sendo executada em um micro computador com uma distribuição Debian do Linux. O aplicativo é escrito em Java, portanto, não é compilado como um arquivo executável. (significa que arquivos java podem ser facilmente abertos para ver o código)

O micro computador é sempre construído em um gabinete externo, mas se alguém quebrar esse caso, ele poderá roubar o armazenamento externo e terá nosso aplicativo (e o código-fonte). Queremos proteger nossa aplicação dessa situação.

Eu fiz algumas pesquisas, mas só consegui descobrir que podemos ofuscar nosso código. Isso não é suficiente na verdade, então estou procurando outras formas (mais seguras) de proteger nosso código de pessoas que são capazes de obter o meio de armazenamento.

Já pensamos em uma pasta criptografada na qual o código está, mas não tenho certeza se isso é possível e se essa é uma boa abordagem. Existe alguém que possa me ajudar em uma solução ou explicar-me a melhor prática para proteger o código java no Linux?

    
por RoDo 27.02.2017 / 09:49

1 resposta

3

Se as pessoas tiverem acesso físico ao computador que está executando seu código, elas terão acesso ao seu código. Se você não quer que as pessoas tenham acesso ao seu código, não lhes conceda acesso.

Criptografar o código não é útil no cenário que você descreve. O computador tem que descriptografar o código para executá-lo. Se o computador puder descriptografar o código, ele deverá ter a chave de descriptografia em algum lugar, e qualquer pessoa com acesso físico também poderá descriptografar o código.

A exceção a isso é se o computador oferece um ambiente de execução seguro que é fisicamente protegido. Os Smartcards oferecem esse ambiente e são relativamente baratos, mas têm um poder computacional muito limitado. (Observe que um cartão inteligente apenas para armazenar a chave do código criptografado que está em um computador maior não o ajudará, já que o computador maior será o alvo do ataque, não o cartão inteligente.) Os módulos de segurança de hardware também oferecem esse ambiente e são mais ou menos tão poderosos quanto um PC de baixo custo, mas são muito caros. Alguns computadores com um ambiente protegido com base em Intel SGX ou ARM TrustZone oferece um nível intermediário de proteção contra ataques físicos" casuais "apenas (abra o caso, mas não tente quebrar os chips).

Mas, realisticamente, o custo da engenharia reversa de um binário não é tão trivial e o custo de manutenção do código-fonte é muito alto. Se o seu aplicativo for útil, é extremamente raro que medidas de segurança adicionais venham a valer comercialmente: o que você realmente está vendendo é o suporte.

    
por 28.02.2017 / 01:09