Segurança de um Microcontrolador PIC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Segurança de um Microcontrolador PIC

Mensagempor thiagomg95 » 10 Jan 2017 18:44

Boa noite pessoal, sou novo no fórum, estou desenvolvendo um projeto com uma empresa para criar um produto a ser exportado pelo Brasil todo, no caso do projeto estou optando, por enquanto, a utilização do PIC 18f4620. Porém a partir de pesquisas minhas feitas pela internet e conversas com meus colegas, parece haver formas de burlar a segurança para o PIC 18 e adquirir o código do programa, o que seria um grande problema, já que o programa em si é a chave para o produto. Dessa forma meu colega me recomendou a utilização do PIC 24 e PIC32 para maior segurança. Porém o problema da utilização destes seria a necessidade da importação dos produtos, que todos sabem, é complicado no Brasil, não encontrei ainda uma loja para adquirir estes tipos de PIC no Brasil, fácil exportação e com PICs populares dessas famílias.
A minha pergunta seria, o que vocês recomendam que seria  a melhor atitude a ser tomada? Uma migração para outra família do PIC, para ter a maior segurança no projeto e enfrentar a problematização das importações de produtos exteriores (caso ninguém conheça um local pelo menos online para compra destes produtos), ou vocês acham que a segurança disposta pelos PIC 18 é o suficiente para ser feita a venda do produto por todo o país? Gostaria de avaliar esses prós e contras para tomada de decisão
Obrigado à quem puder ajudar
thiagomg95
 
Mensagens: 3
Registrado em: 10 Jan 2017 18:42

Re: Segurança de um Microcontrolador PIC

Mensagempor Vonnilmam » 10 Jan 2017 22:23

Seja bem vindo tiagomg95

É o seguinte, copiar um firmware?...já ouvi dizerem muito a esse respeito, mas copiar de FATO, eu ainda não ví quem o faça de verdade. Uma certa vez, tomei conhecimento de uma persona non grata que dizia fazer isso, fiquei indignado e fui atrás, me passando por um suposto cliente...bom o cara que copiava, simplesmente sumiu, se é que copiava.

Olha, já debatemos a respeito disso aqui no forum, eu creio que pode-se até copiar de fato, não só o pic, mas qualquer outro microcontrolador é vulnerável, uns mais e outros menos.

Eu particularmente lhe daria a seguinte dica:

- Faça uma patente no INPI (www.inpi.org.br), não gastará mais que 200 reais para fazer isso.

- Lá no seu firmware, crie algumas artimanhas "armadilhas", como por exemplo: Escreva o seu nome ou cpf em algum local do seu programa e crie uma rotina para dar um boot de validação, todas as vezes que o seu programa entrar em funcionamento, no meu caso eu utilizo além disso, uma pequena gravação de audio dentro do firmware que contém essa informação, esse wav é fraguimentado.

- Se você tiver acesso a uma memória eeprom ou flash externa, faça algo parecido também nela...Caso o ladrão apague seus dados, o seu firmware não vai funcionar.

- Outra dica, seria você fazer um arranjo com diodos 1n4148 no seu hardware e também no seu boot, ler esses diodos que formam uma palavra de bits, ai você veja quantos vai utilizar, essa técnica era muito utilizada antigamente na época do z80 e daqueles DSPs abertos.

Essas armadilhas, lhe favorecerão em Juízo, facilitando para o perito identificar com facilidade a autenticidade do seu trabalho e autoria.
E só um cara muito bom em programação conseguiria desmontar sua rotina.

Espero ter colaborado.
Obrigado
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Segurança de um Microcontrolador PIC

Mensagempor andre_luis » 10 Jan 2017 22:37

Bom, se a segurança é algo que realmente seja um fator critico, aí poderia colocar na placa um outro PIC de menor tamanho ( 10f, 12f ) funcionando como um "Token". Digo, o primeiro (18f) sempre que enviar um comando para o segundo, receberá uma resposta de acordo com uma matematica que voce bolar ( embaralhamento, criptografia, etc... ). Desse modo, voce estaria adicionando mais um grau de difuculdade na reengenharia. Acredito que o Chinês que alega poder copiar o firmware (segundo a mitologia, raspando o encapsulamento para chegar no silicio, etc...), esse camarada seguramente não deve ter perfil de hacker para sniffar a comunicação entre os chips, de modo que seu concorrente teria de ter a sorte dele ser bem sucedido em ambas as cópias, que se é possivel de fato, nao deve ser uma ciencia exata, propensa a falhas...a proposito, também já ouvi historias de pessoas que fizeram essa engenharia reversa, mas não sei se tiveram sucesso.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Segurança de um Microcontrolador PIC

Mensagempor Vonnilmam » 11 Jan 2017 11:01

A ideia do André, é muito BOA.

Antigamente na época em que os DSPs utilizavam uma memória externa para o firmware e não tinha como ter uma "trava", como acontece hoje em dia.

Os caras faziam isso que o andré mencionou, ou seja a comunicação do MCU mestre passa todinha por outro MCU, e quase impossível interceptar as mensagens.

Muito boa dica, e eu acrescentaria essa ideia no seu firmware.

Obrigado,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Segurança de um Microcontrolador PIC

Mensagempor andre_luis » 11 Jan 2017 11:31

Um amigo meu já foi "sócio-intelectual" numa empresa onde o maior risco de de violação dos direitos autorais era dos demais sócios, que ele sabia que além de pagarem com muita má-vontade os devidos royalties proporcionais á produção, também se pudessem forçariam o pessoal da Engenharia á passar o projeto pra eles, e esse foi um modo que ele conseguiu controlar a fatia que lhe cabia sem ter de se preocupar tanto assim em esconder os códigos-fontes. Eu não entendi direito, mas ele disse que além da função Token serial, esse outro uC servia também como um Dongle, de modo que mesmo que tudo fosse plagiado, só funcionaria para uma determinada configuração ou aplicação, onde jamais certa rotina seria chamada. Enfim, a coisa toda pode ficar bem amarrada se pensar bastante.

A propósito, uma idéia interessante que já ouvi falar, se não me engano por aqui mesmo no forum, seria utilizar um RTC, tipo aqueles DS1307 que possuem memória RAM de uso geral, mas tudo impregnado com resina, de modo á que na tentativa de acessar os CIs da placa, arrancando a resina, iria quebrar a conexão da Bateria, ligada por fio fino, apagando uma chave que alí estivesse gravada. Mas nesse caso voce teria de ter acesso á faze de fabricação, o que pode ser um problema no seu caso.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Segurança de um Microcontrolador PIC

Mensagempor thiagomg95 » 11 Jan 2017 20:19

Muito obrigado pelas dicas, olharei a respeito

Um dia um professor meu comentou que existe uma maneira de apagar todo o conteúdo do Chip do PIC caso ele fosse retirado do suporte ou placa, vocês sabem alguma coisa sobre isso?
thiagomg95
 
Mensagens: 3
Registrado em: 10 Jan 2017 18:42

Re: Segurança de um Microcontrolador PIC

Mensagempor andre_luis » 13 Jan 2017 07:28

thiagomg95 escreveu:Um dia um professor meu comentou que existe uma maneira de apagar todo o conteúdo do Chip do PIC caso ele fosse retirado do suporte ou placa, vocês sabem alguma coisa sobre isso?


Acredito que o seu professor tenha se referido á algo semelhante ao que mencionei acima, do tipo, durante a gravação do programa, o bootloader deve ter armazenado alguma chave na RAM, que seria mantido por uma bateria interna (da placa), mas nesse caso, devido ao consumo do PIC e demais circuitos não ser baixo, teria de ter uma bateria de tamanho respeitável, um supercap, lipo, ou algo do gênero, e ainda assim teria de poder trabalhar com modo sleep. Enfim, possivel é, mas depende dos requisitos/restrições do projeto.

O documento abaixo traz algumas dicas interessantes na tabela da pagina 3 :

"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Segurança de um Microcontrolador PIC

Mensagempor xultz » 14 Jan 2017 11:18

Esse processo de apagar a memória caso seja aberto o produto se chama "tamper". Existem alguns métodos, como colocar um switch que se abre caso a tampa seja aberta, colocar um sensor de luz, etc. Uma informação importante é guardada numa RAM, alimentada por bateria, que ao ocorrer um tamper, a energia é desligada e a memória é apagada.

Essa questão da cópia é um detalhe que deve ser analisado com muito critério. Uma vez desenvolvi um aparelho para um cliente, era um alarme de carro que tinha um celular e discava para o dono caso disparasse, e o dono podia ligar para o alarme e desligar o carro na hora, ativar o alarme, etc. Depois de algum tempo no mercado, o cliente vem falar comigo que o produto tinha sido clonado e que eu deveria verificar se alguém da minha empresa tinha vazado o projeto, ou então descobrir como o produto pôde ser clonado.
Tempo depois, estudando o funcionamento do aparelho concorrente, ele tinha pequenas diferenças no comportamento. A conclusão foi a mais óbvia: alguém pegou o produto, viu como funcionava e fez outro que funcionava igualzinho. Eu conheci um chinês que me mostrou algumas empresas lá que só fazem isso, e em tempo recorde. Eles pegam um produto qualquer e clonam tudo, desde o circuito da placa, fazem moldes de injeção de plástico, e desenvolvem o firmware. A maioria em menos de um mês.

Então a menos que teu produto tenha um algoritmo super mega genial e que seja o coração do produto, qualquer pessoa com conhecimento pode fazer um produto igual só de ver como o aparelho funciona. Se ele tiver um protocolo de comunicação super mega importante, a menos que seja muito fortemente encriptado, com vontade é possível fazer um sniff e fazer uma engenharia reversa. É importante lembrar que a Sony gastou uma nota preta fazendo protocolos internos do PS3 prá ser impirateável, e um piá do MIT usou um analizador lógico super moderno e conseguiu quebrar a criptografia. É tudo uma questão de vontade de clonar o teu produto.

A melhor defesa continua sendo o time-to-market, ou seja, enquanto você estiver sozinho no mercado, fazer o melhor marketing possível prá vender o máximo que der. Uma hora vai aparecer concorrência, e nessa hora você já precisa ter uma versão 2.0 ainda melhor que a primeira.

Capitalismo selvagem é assim mesmo, tem que correr bastante.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: Segurança de um Microcontrolador PIC

Mensagempor norad58 » 14 Jan 2017 12:43

Esse processo de apagar a memória caso seja aberto o produto se chama "tamper". Existem alguns métodos, como colocar um switch que se abre caso a tampa seja aberta, colocar um sensor de luz, etc. Uma informação importante é guardada numa RAM, alimentada por bateria, que ao ocorrer um tamper, a energia é desligada e a memória é apagada.


Já vi varios equipamentos com memoria Ram e bateria de lithium funcionando desta maneira, até pra trocar a bateria tem um tempo, pois parte da energia fica carregada em um capacitor eletrolitico que mantem a tensão por alguns segundos.
Também analisei algumas placas antigas com chip MCU 8051 da Dallas, onde a bateria entrava no MCU8051 para uso com o RTC, mas este redirecionava a alimentação 3,0V da bateria para uma ram externa como a 6264, o bootloader carregava via MCU o firmware na memoria ram 6264, se a bateria pifar ou for desligada o firmware era perdido, só o representante ou fabricante poderia reativar a placa.
Fazer uma placa com um microcontrolador faz tudo não tem muita segurança, tem que fragmentar a informação, usar um mcu principal e este controlar perifericos inteligentes, claro, lixando com uma retifica toda a informação do encapsulamento dos circuitos integrados e de preferencia colocando uma resina plastica por cima, ja vi um equipamento assim.
Tentar fazer uma placa complicada, senão acontece que o Xultz falou, questão de tempo para clonarem por engenharia reversa de funcionamento.
Já vi também placas com FPGA, memoria externa Flash(com codigo do FPGA) e um cartão de licença SdCard que era utilizado somente uma vez, carregava o aplicativo do SDcard para uma memoria RAM com bateria da placa via FPGA, depois o SdCard era zerado pelo bootloader. A desvantagem era que a vida util da placa era a vida util da bateria de lithium. Se fosse trocar a bateria teria que comprar um novo cartão SdCard com uma nova licença.
Também em alguns microcontroladores é possivel identificar o ID do chip e assim fazer o firmware casado para um range de IDs....Se tentarem clonar usando um outro chip com ID fora do range operacional o firmware não funciona.
No caso dos PICs antigos, vi alguns procedimentos quimicos, nao dificeis de fazer no die, onde restaurava um microfusivel de proteção do firmware....
norad58
Word
 
Mensagens: 693
Registrado em: 08 Abr 2013 15:56

Re: Segurança de um Microcontrolador PIC

Mensagempor thiagomg95 » 14 Jan 2017 18:56

Devido a idade do PIC18, resolvi utilizar o PIC32MM mesmo no projeto, já que é o mais recente fornecido pela Microchip de baixo custo, provavelmente os PICs mais recentes da Microchip devem ter um cuidado maior de seguranca
Mas me ficou uma dúvida
Eu acessei esse site da Microchip http://www.microchip.com/maps/microcontroller.aspx
e um dos itens se chama "Code Guard Security", e tem vários níveis dele, porém apenas para os PIC24 e dsPICs. Para o PIC32MM é considerado nenhum desse tipo de proteção

Gostaria de saber se vcs sabem a respeito desse Code Guard, verifiquei pelo datasheet e parece que é utilizado quando se quer aparelhos em que você terá de mandar ao cliente atualizações do seu produto e seu cliente tenha menos acesso ao seu produto
É isso mesmo ou esse tipo de segurança fornece mais camadas de proteção contra quem queira quebrar o código ou causar malefícios ao PIC para habilitar leitura de código????
thiagomg95
 
Mensagens: 3
Registrado em: 10 Jan 2017 18:42

Re: Segurança de um Microcontrolador PIC

Mensagempor pamv » 14 Jan 2017 21:01

Qual placa pic32 você está usando para o seu projeto, eu comprei uma SnadPic no EBay mas o cara está embromando para enviar. Qual o seu fornecedor?
pamv
Word
 
Mensagens: 842
Registrado em: 20 Jun 2016 21:47

Re: Segurança de um Microcontrolador PIC

Mensagempor hakko » 17 Jan 2017 16:25

É bem possível sim hehehe mas dá trabalho!
Você não está autorizado a ver ou baixar esse anexo.
hakko
Bit
 
Mensagens: 25
Registrado em: 05 Nov 2009 15:40

Re: Segurança de um Microcontrolador PIC

Mensagempor EDSONCAN » 18 Jan 2017 07:59

Tem empresas na China que laminam o processador ate atingir a memoria e depois lhe enviam o hexa, a linha da microchip e C51 são as mais fáceis...

Tem empresas na China que fazem a engenharia reversa, você manda o produto e eles te manda a versão deles, testei algumas e funcionavam melhor ou igual a original.

Não acredito muito em proteção, não facilito a vida de quem quer copiar, mas assim que termina um produto já estamos desenvolvendo uma evolução, dessa forma estamos sempre a frente.

Depois de muito tempo acho que isso no final ajuda, pois te obriga a sempre estar pensando na frente, fiz um alarme residencial em 1997 e a empresa ainda vende o mesmo alarme, acho que não existe projeto e produto, existe um processo que deve ser continuo e voltado ao necessidades do mercado que mudam constantemente se isso dificulta a vida de todos lembre-se que não é o mais inteligente ou que tem mais recursos que vence e sim o ultimo que fica em pé.
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Re: Segurança de um Microcontrolador PIC

Mensagempor Vonnilmam » 22 Jan 2017 14:46

Resumindo.


Quem é sem caráter é sem caráter mesmo! E não tem cura, um cabra desses.

Quem volta sua mente a "ROUBAR" o seu próximo é no mínimo um inútil sobre a face da terra, verdadeiramente um verme.

Eu volto a dizer que a melhor trava, além das convencionais que aliás devem existir no firmware para dificultar ao máximo a cópia, é o autor fazer uma patente. Já mencionei em outro post uma das melhores formas de se fazer isso.

E constado o plágio ou cópia do seu DIREITO, meta-lhe um processo caprichado. O LADRÃO que se predispõe a copiar algo alheio, só o faz porque "ACHA" que ficará impune...Depois que ele for processado e condenado, ele vai ter medo só de pensar em cometer o crime novamente.

Quem copia, é criminoso, é ladrão, é desonesto...

Infelizmente moramos no Brazil, vogo terra de corrupções, desde o descobrimento do Brazil. Mas ter caráter é uma questão de educação e vem de berço.

Cadeia aos ladrões de software...cadeia neles.



Quem compete desenvolvendo seus próprios firmware é o autor, é o criativo.
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Segurança de um Microcontrolador PIC

Mensagempor Silvio51 » 26 Jan 2017 23:05

Caros...estou acompanhando este post e desculpem-me mas tenho dado algumas gargalhadas...tudo bem...alguns risos...não ! tenho ficado feliz...e triste também...

Não que eu tenha copiado alguns firmwares porcarias de pessoas que acham que fizeram a última Coca Cola do deserto...mas...

Pessoal: o que menos importa na cópia de um produto é o firmware "pé de chinelo" que alguém tenha feito em um PIC...

Por mais inteligente que o cara que faz um programa para um PIC pense ser, sabendo para que serve o produto, "alguém" vai lá e copia...simples assim...eu não consigo enxergar o que alguém possa fazer com Eletrônica hoje que não possa ser clonado (produto).

Parte editada: Um alarme veicular que envia SMS não é nada difícil de ser copiado...pelo amor de Deus...eu mesmo fiz uma "coisa semelhante" há mais de vinte anos... e olha que nem vi seu firmware!!!
Silvio51
Byte
 
Mensagens: 383
Registrado em: 02 Nov 2006 14:04
Localização: Brasil

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x