Como posso proteger meu código de robô?

0

Eu quero construir um robô usando alguns minicomputadores como o Raspberry-Pi e usando o sistema operacional Linux. Eu acho que essas placas (RPi, NanoPi, etc) têm cartão SD externo para inicializar o sistema operacional, e meu código irá para lá (no cartão SD). Então, como posso proteger meu código de alguém que queira copiá-lo?

De meu código, quero dizer meus programas que são escritos usando CMUsphinx, Opencv, etc.

Existe alguma maneira de especificar cada cartão SD para uma placa especificada? Quero dizer que o nome do cartão SD só é executado a bordo do nom.1.

Ou talvez colocar um código oculto em placas e cartões SD que usam um algoritmo e devem ser compatíveis para serem executados?

    
por user3486308 24.09.2016 / 12:10

2 respostas

1

Para proteger seus dados, você precisa ter chave, de qualquer tipo, que você possa proteger e controlar fisicamente e ser separada de seus dados secretos. A senha em seu cérebro é um exemplo dessa solução - ela é guardada fisicamente pelo proprietário, memorizando-a.

Como senha, pode haver algum sinal visual para seu super robô, como um pedaço de papel com código de barras que descriptografa seu software e permite que ele seja executado dessa forma. Pode valer a pena considerar, como o mesmo pedaço de papel pode ser usado para desligar sua criação, com a ajuda de openvc e scripts, é claro.

Menos prático mas mais fácil de implementar, é ter 2 cartões sd, um contém chave e é usado para inicializar o sistema e espera até você alterar o sdcard e continuará a inicializar depois disso.

você deve verificar como o initramfs é usado para inicializar o sistema inteiro. Você deve procurar como criar initramfs personalizados e poder modificar o script de inicialização para aguardar e descriptografar o segundo cartão com o principal sistema.

O sistema não é perfeito, mas sujo e barato.

Ele também não precisa ser uma solução initramfs, você pode usar soluções como copiar seus códigos executáveis para ramdisk de algum usbdrive, que você insere apenas para propósitos de iniciar sua criação, e removê-lo quando ele começar a ficar vivo. / p>

Quando você tem segredo e chave em uma mídia (é um truque inteligente, algo oculto, etc.), ele pode ser revertido.

Quanto a mim, a solução initramfs precisa de menos esforço para fazer, muitas informações sobre como criar initramfs personalizados.

    
por 24.09.2016 / 22:23
2

Você não pode proteger alguém que tenha acesso físico ao dispositivo para copiar seu código. Se a placa puder ler seu código, então qualquer outra pessoa poderá.

Para proteger o código contra cópia, você precisará usar um dispositivo que tenha algum armazenamento resistente a violações. Esse hardware existe, mas está em uma faixa de preço mais alta.

Você pode colocar um teste em seu código para verificar algum identificador de hardware e se recusar a iniciar se estiver executando em um dispositivo de hardware diferente. Isso torna impossível executar uma cópia exata diretamente, mas ainda é fácil alterar o código para ignorar a verificação ou executá-la em um ambiente virtualizado que fornece ao seu código a identificação de hardware esperada. Basicamente, é uma maneira de manter as pessoas honestas honestas, mas não dissuade quem quer copiar o código.

    
por 24.09.2016 / 21:40