Pessoal , estou lançando esse novo projeto open source, isto é, quem quiser ajudar será bem vindo.

Todos terão acesso á todo projeto, portanto cada um poderá montar o seu.

Depois de desvendar o funcionamento de controle remoto sem fio no Lab de Garagem, agora já é possível começar o projeto.

http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf

Esse diagrama em blocos que eu fiz é uma idéia inicial. Quando sugerir alguma coisa, especifique de qual bloco esta tratando, para facilitar a compreensão de todos.

Módulo de recepção RF :

A frequência que usarei é a de 433,92 MHz - a mais comum. Mas nada impede de usar outra frequência, desde que o receptor, os sensores e o controle remoto sejam da mesma frequência.

O sistema de codificação que usarei é o do chip Encoder HT6P20B. 

Data sheet :http://www.holtek.com.tw/pdf/consumer/6p20v170.pdf

Selecionei esse, pois existem inúmeros sensores e controles remotos que usam esse chip.

Vejam no tutorial mencionado acima, para entender como ele funciona.

Módulo RTC :

Usando o chip DS1307 - muito comum. Será usado para registro de log, isto é, todas a operações realizadas pelo Arduino serão registradas com horário. Exemplo: Alarme ativado, alarme disparado, sensor ativado, etc. Esses arquivos de log serão gravados no Módulo SD CARD.

Painel - Botões :

Painel de controle do Alarme, podendo ter botões, como aprender sensor, aprender controle remoto, etc. Se necessário, poderá ter um teclado numérico para digitação de senha e ou  de configurações.

Módulo Sirene:

Seria interessante inovar na sirene, como usar sons personalizados. 

No início poderá ser usada uma sirene comum.

Módulo Display LCD:

Para mostrar status do alarme, horário, configuração e disparos, etc

Interface WEB / GSM:

O objetivo é enviar email ou então mensagem SMS, avisando o proprietário que o alarme foi disparado. Informando qual sensor e qual horário foi acionado.

Seria muito bom também se o proprietário pudesse remotamente ativar ou desativar o alarme  e verificar o status do mesmo. 

Fonte / Bateria:

Fonte de alimentação do Alarme e da Sirene. Uma bateria de backup é essencial.

O projeto esta lançado. Aos poucos acrescentarei mais informações.

Agradeço antecipadamente a todos que desejarem fazer contribuições para o projeto.

Sempre quis gerenciar um projeto OPEN SOURCE, e esta vai ser uma nova oportunidade.

Open Source (Código Aberto):

http://pt.wikipedia.org/wiki/C%C3%B3digo_aberto

Gustavo Murta (BH) .

Exibições: 59383

Responder esta

Respostas a este tópico

Achou a central de alarme deles completa?
Não encontrei nenhum alarme deles com bateria. O módulo central custa R$500,00 e pra ter outras coisas como GSM, Wifi, etc. tem que pagar muito, muito mais.

Imagina ter as funcionalidades abaixo a um preço baixíssimo:
- 99 sensores sem fio - cada um configurado de forma independente como se fossem 99 zonas
- Wifi nativo
- Bateria de backup para funcionar sem energia
- GSM (SMS e chamada telefônica) para alertar remotamente mesmo o meliante cortando sua internet.
- Notificação por EMAIL
- Utilização de sirene sem fio - mais seguro, você põe a central no meio da casa escondido e coloca uma ou mais sirenes sem fio nos cantos da casa onde se pode ouvir melhor e o meliante não vai conseguir desligar o alarme (a central continuará a fazer a discagem, tocando outra sirene, enviando email, etc).
- controle através de controle remoto
- controle através de interface HTML
- controle através de smartphone Android ----- com função I´m home (estou em casa), o alarme fica desativado enquanto o seu celular está conectado na rede wifi, quando você sai de casa o celular perde a conexão wifi e o alarme é armado automaticamente.
- controle e monitoração através da Internet (serviço pago uma vez que exige infraestrutura na nuvem para não abrir brecha de segurança). -- a notificação via SMS e chamada telefônica não usa internet e portanto não é pago.
- 2 zonas de sensores com fio (estamos trabalhando para criar uma expansão que permitirá incluir 99 zonas com fio)

Funcionalidade exclusiva:
- Se você estiver usando os Switches sem fio (WifiSwitch) --- que são automatizadores sem fio, controlado por web, android ou internet ou por programação, que controlam lâmpadas, e outros equipamentos via RELE, o Alarme sem fio irá acionar eles quando detectar intruso, isto é, você pode acender todas as lâmpadas de casa quando o alarme tocar.

Utiliza Sensores e controles remotos tipo ECP/genno/PPA (HT6P20).
Sirene sem fio pode ser HT6P20, SC1527 ou PT2262

Para isso basta (todos os itens com free shipping para o Brasil):
1 - Wemos D1 Mini (esp8266) ---- US$2,60 no EBAY
1 - SIM800L - US$5,00 no EBAY
1x - RX8B (recepter 433MHz o melhor que encontrei) - US$1,20 no EBAY
1x - FS1000A (transmissor 433MHz) US$0,30 no EBAY
1x - Buzzer (vende 5 peças por US$2,09 no EBAY , uma peça está por US$0,98)
1x - Sirene sem fio US$15,00
1x- Bateria 18650 (vende 2 peças por R$10,00 no ebay, 4 peças por R$18,00) --- estou usando a 1 ano funcionam bem
1x - TP4056 tem que ser a versão que tem 6 furos (in+,in-,out+,out-,bat+,bat-) pois possui proteção overchage e overdischarge - R$4,46 por 5 peças)
2x - mini breadboard de 170 furos US$2,27 o pacote com 5.
1x - 18650 battery holder sai US $2.18 o pacote com 5
1x - resistor de 100K para medir a tensão na bateria
2x - resistor de 220k ou mais para conectar sensores com fio magnéticos.

Com exceção do Wemos d1 mini Todos os outros componentes são opcionais (você vai perder alguma funcionalidade).
O total comprando nos pacotes citados acima US$37,55 (sobrariam várias das peças que vem em grupo de 4 ou 5 mas que não compensa comprar só 1)
Mas se comprar de unidade sai por US$30,00

Lembrando que o acesso remoto (via internet) é pago. ----- a notificação via SMS ou chamada telefônica não usa internet e portanto não é pago.

Veja no site "http://thinkingthing.space".

Ops, faltou a fonte micro USB que não sei o preço agora, mas as vezes a pessoa até já tem em casa

Bom dia Clovis, o site é seu ?

Desejo-lhe sucesso !

Boa noite,

Eu sou engenheiro da computação (metade elétrico) mas nunca exerci. Trabalho na área de TI.

E nunca fui hobbista.

E, em casa a dona onça não deixa nem usar direito a furadeira pra instalar coisas na parede, quem dirá montar uma bancada para experimentos.

Recentemente tive o apto assaltado e este fato está motivando a criação de um projeto de alarme.

Mas tenho as seguintes dúvidas:

1 - qual a operadora de GSM que possui o plano mais econômico para eu simplesmente usar para fazer discagem (sem completar a ligação) e mandar SMSs eventuais? e, Talvez usar um pouco de plano de dados quando a energia tiver interrompida e a internet fixa falhar?

2 - qual a codificação usada nos sensores magnéticos sem fio 433MHz da ECP vendidos no Mercado Livre por 12 a 15 reais?

3 - e os sensores infravermelho sem fio da ECP? qual a codificação usada por eles, algum sabe? já usou?

Obrigado

Clóvis, sobre a operadora recomendo que faça uma pesquisa de preço. Creio que os preços possam variar dependendo da região. Talvez usando um cartão pré-pago fique mais barato.

Sobre os sensores eu já respondi em outro tópico, mas posso te adiantar que os sensores mais modernos usam rolling code.

queria saber os sensores.

então tenho que usar os mais antigos pois quero usar programas já prontos para decodificação. A intenção é usar o máximo possível o trabalho já feito.

USe um plano controle da operadora VIVO que tem uma boa cobertura e um bom pacote de dados.

Ah, vi que teve uma discussão sobre criptografia ou não-criptografia no encoder HCS201. Pelo que entendi ele usa códigos variáveis que aparentam ser criptografados mas são de uso único (burlar usando a técnica de REPLAY não funciona).

Nunca estudei nem superficialmente esse assunto de controles, sensores e automação de portões e coisas relaciondas. Nem nunca ouvi falar antes desse tal de HCS201. Então o que vou escrever é só um palpite.

Como trabalho com segurança e criptografia, vou dar meu palpite de como esse cara deve funcionar.

Existem sistemas de segurança que usam uma técnica chamada de one time password.

Isto é, uma senha que só pode ser usada uma única vez.

Uma das formas de se fazer isso com equipamentos eletrônicos é o uso de funções de HASH (ou message digest).

Vocês já devem ter visto ou ouvido falar de checksum, CRC, MD5, SHA1, SHA256, etc. certo? definição no wikipedia.

A principal característica que nos interessa é o fato de serem sobrejetoras e portanto não existe função inversa. Isto é, do resultado do HASH não é possível calcular o argumento que gerou esse HASH.

No caso das one time passwords, sorteamos uma semente (um número primo qualquer e grande). Esse número é guardado dentro do dispositivo. De alguma forma o outro dispositivo (por exemplo, a central), tem que ficar sabendo qual é essa semente (existem algumas técnicas usadas para isso, todas elas possuem algum nível de vulnerabilidade).

As senhas são geradas calculando o HASH seguidamente sobre o resultado do HASH anterior.

Então:

senha1 = semente

senha2 = Hash(senha1)

senha3 = Hash(senha2)

senha4 = Hash(senha3)

e assim sucessivamente.

Só que na hora de usar essas senhas, usamos na ordem inversa.

Isto é, usamos a senha 1.000.000 antes de 999.999, assim se alguém interceptar a senha 10, só conseguirá reproduzir a própria senha 10 e as senhas 11, 12, 13, etc. que já foram usadas e não servem mais.

O uso sequencial de senhas não é recomendado pois assim o receptor tem que suportar muitas senhas pra frente admitindo por exemplo que o usuário ficou longe e sem querer ficou apertando o botão e "perdeu" várias senhas.

Suportar uma quantidade indefinida de pulo de senhas representa uma vulnerabilidade. É por isso que a maioria dos sistemas de alta segurança calculam a senha a ser usada com base no tempo.

Só que para um simples chip sem cristal não da pra usar o tempo e por isso deve ser sequêncial.

Não sei se deu pra entender.

Nem sei se é realmente isso que eles usam ou se é um processo mais simples.

Exemplo de processo mais simples: podem usar as senhas na sequência crescente, escondem do mundo qual é a função usada e esperam que ninguém descubra a função.

Clovis veja alguma coisa sobre rolling code :

http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...

http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...

Existe uma chave (semente) que é criptografada. As senhas não se reptem. Cada vez que uma senha é transmitida e aceita ela é descartada. 

O algoritmo não deve ser tão complexo assim pois o receptor é limitado em temos de processamento e ele descodifica rapidamente. Mas o algoritmo é segredo. Somente liberado para  fabricantes de alarmes 

ok, acabei de dar uma olhada na wikipedia sobre esse chip e o algorítimo keeloq que ele usa.

ele usa o que ele chama de block cipher, que seria uma criptografia. mas que na verdade é um algoritimo de via única (não tem volta) e portando não é estritamente criptografia mas um hash com chave,

ele usa o esquema sequencial e crescente e portanto tem muitas vulnerabilidades.

Pra não haver incompatibilidade entre os equipamentos de um mesmo fabricante, ele acaba usando a mesma chave em todos os seus dispositivos.

Ao programar o receptor, este grava o número serial do transmissor e o número sequencial atual desse transmissor. De posse do serial, da chave compartilhada e do número sequencial, o receptor consegue calcular a senhas seguintes que serão usadas.

A principal vulnerabilidade está no fato do uso da mesma chave em todos os dispositivos do fabricante.

Foi provado que com um computador você consegue descobrir a chave usando força bruta (vou acionando o transmissor sequencialmente e vou testando o resultado no receptor). Basta para isso eu comprar legalmente um transmissor e um receptor.

Assim, após isso eu consigo abrir qualquer sistema desse fabricante bastando para isso capturar uma transmissão de um transmissor cadastrado no receptor. Isto é, tendo a chave, burlar esse sistema tem praticamente a mesma dificuldade dos sistemas de código fixo (learning code).

Um roube menos provável é o usado com jamming.

Você bloqueia o uso do transmissor e ao mesmo tempo captura o sinal enviado.

O usuário tentará novamente e você bloqueia novamente e captura novamente o sinal envia.

Depois disso você envia para o receptor a primeira senha capturada.

Quando for assaltar você da um replay na segunda senha.

Como o sistema usa o número sequêncial então o receptor aceita.

O ideal seria o uso de variação por tempo (segundos) e não número sequencial.

Caro Clovis, se conseguir desenvolver um novo algoritmo menos vulnerável, vá em frente.

Se for bom, poderá ficar rico !

Os algortimos tem que ser compatíveis com o microcontrolador do transmissor e do receptor.

E o que é mais dificil, o código tem que ser descodificado em milisegundos...

Sobre o Rolling code ainda não vi alguém que conseguisse burla-lo. 

o que citei não é segredo ou algo novo.

existem vários algoritmos por ai, o problema é que esse ai está diretamente na fabricação do ci de uso específico, o que faz ficar muito mais barato. Acredito q os fabricantes acham o algoritmo utilizado como "bom o suficiente" para o custo de fabricação.

é a mesma idéia das CPUs, os fabricantes sabem fazer modelos bem melhores que os atuais mas preferem deixar como está pois a linha de fabricação já está montada e montar outra custaria muito caro e não compensa (o projeto e a construção da linha de montagem representa mais de 99,9% do preço de uma CPU - o chip em si é quase nada).

o fabricande desse HCS201 sabe das vulnerabilidades:

- teria que criar uma nova linha de produção - e teria que jogar a atual fora.

- os equipamentos custariam mais caro pois teriam que ter RTC ebutido (real time clock).

Para não permitir quebrar a chave rapidamente teria que criar um novo ci que precisaria ter a função de sincronização com a central, mudando a forma de programar controles e centrais. financeiramente parece que não compensa.

é a mesma coisa que tentar usar arduino pra resolver um problema que já tem solução usando um equipamento específico. No começo parece que o que você faz é mais barato. No final, considerando custo, trabalho exigido e acabamento, o equipamento específico acaba sendo mais vantajoso com a única desvantagem de ser menos flexível (e nesses casos flexibilidade não é tão importante).

Quanto a não conseguir burlar, é só procurar na internet que verá artigos de gente que demonstrou a quebra. Os fabricantes não divulgam e quem sabe quebrar a chave não divulga. Os caras que demonstraram que a chave do keeloq é quebrável facilmente em poucas horas não disseram de que fabricante quebraram.

Ainda, pode ser que alguém tenha quebrado a chave da ECP por exemplo, esteja roubando e ninguém saiba. Quando alguém rouba um carro por exemplo usando um controle clonado, você pode botar a culpa no alarme que deu defeito, na ineficiência do sistema (as seguradoras não consideram alarme como um dispositivo de segurança e só dão desconto se você tiver rastreador), que o alarme funcionou mas as pessoas na rua ignoraram a sirene, etc.

Além disso, como a maioria dos sistemas ainda são learning code, por que alguém iria atacar o sistema mais complexo quando pode atacar os mais fáceis (e ainda existem os que possuem aqueles códigos fixos de poucos bits - o prédio do meu escritório ainda é assim).

É a mesma coisa que a segurança em casa, o ladrão que quer roubar vai acabar roubando alguém, o nosso trabalho é dificultar e aí ele vai escolher outra casa pra assaltar. Nossos sistemas de segurança irão espantar os ladrões de ocasião (aqueles que simplesmente viram a oportunidade e usaram por que você facilitou demais) e irá mandar os ladrões profissionais para outra casa.

se for baseado no tempo, a técnica do jamming+replay só funcionaria em poucos segundos o que não é razoável para um furto.

mas no caso de rolling code, você quebra a chave em casa usando seu próprio controle e central em uma semana. Lembre-se que a chave tem que ser a mesma para todos os equipamentos do fabricante, caso contrário não haveria compatibilidade entre seus aparelhos.

É lógico que antes disso, você tem que pegar a especificação do keeloq, aprender o algorítmo, fazer um programa para quebrar chaves e depois sim, em poucos dias quebrar a chave do fabricante alvo.

depois, de posse de um chupacabra com a chave do fabricante você pega uma única transmissão de um controle autorizado (pareado com a central) pegando o serial e o sequencial e usa quando quiser, não precisa ser imediatamente já que você tem a chave e o serial do controle.

Especificamente sobre o KEELOQ. Este é um artigo mostrando como quebrar a chave de um fabricante:

https://www.emsec.rub.de/media/crypto/attachments/files/2011/03/afr...

Não tenho nenhum interesse em quebrar a chave de um Rolling code. 

Para mim isso é perda de tempo. Um controle remoto desses é usado para as nossas casas. 

Se eu fosse dono de um Banco, não usaria um sistemas desses para abrir o portão.

Obrigado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço