Ideias para segurança de abertura de portão (PHP, Javascript, Jquery,etc)

Kingoot

Power Member
Boa noite pessoal.
Estou a precisar de ideias para o seguinte: tenho em minha casa umas conexões feitas de um raspberry para um comando de um portão, onde quando eu faço uns comandos, o portão abre / fecha. Ora a minha ideia é, via web, ter uma pagina, que através dela, conseguia abrir o portão diretamente. Até aqui tudo tranquilo, já tenho isso a funcionar, agora o meu problema tem a haver com a segurança, pois não quero que meio mundo abra o meu portão.
Para tal idealizei duas formas de segurança, que no meu ponto de vista chegavam perfeitamente e era o ideal, que era a restrição por MAC Adress e um Pin, sendo que, depois de alguma pesquisa, me apercebi que não tinha forma de obter do lado do cliente o seu mac adress.
Além do PIN, não estou a ter mais nenhuma ideia para melhorar a segurança, a não ser criar contas e ter um login, mas não queria algo que desse tanto trabalho do lado do cliente para abrir / fechar o portão, queria uma coisa mais direta.

Alguém tem alguma ideia / sugestão para o caso?

Desde já um obrigado...
 
Bloqueio por mac address sem duvida, vais agradecer a quantidade de vezes que ias inserir o PIN durante um mês, adicionas os dispositivos que tem permissão e está pronto.

Quanto a adquirir o Mac address, não sei que tipo de dispositivo falas , mas em iOS mostram o mesmo nas definições..possivelmente em android também
 
Mandas um PIN e do lado do server geras um token (JWT) que envias ao cliente e guardas em localStorage.
Podes por um tempo de 1 semana para renovar o token, e assim se te roubarem o telemóvel passado uma semana o token já está expirado.
 
Que tal cookies? A ideia é a seguinte:
1 - Crias uma conta com uma psw aleatoria do tipo "kmaso012malsn1298n";
2 - Fazes login e metes um cookie;
3 - Configuras o Cookie para 48 horas e cada vez que entras no site, este da refresh ao teu Cookie;
4 - Caso necessario adicionas filtro por IP + HTTP_USER_AGENT, mas so no caso de haver cookie. Ou seja fazes bind do cookie com IP + HTTP_USER_AGENT.
Porque o ponto 4. O teu cookie podem te roubar, duvido que alguem vai gastar tempo com isso, mas quem sabe... Se te roubam o cookie e tentam abrir o portão com o cookie então o servidor vai fazer check e so no caso de tudo tar certo ele abre o portão. Caso contrario destroi o cookie e obriga a autentificar-se de novo.
Mais uma vantagem de fazeres bind so depois de login em vez de bloqueares o acesso de todos os outros dispositivos é que assim tu podes abrir portão de qualquer dispositivo, mesmo se perderes o teu, ou se o deixaste em casa... seria mau se so o teu telemovel pode abrir o portão e tu esqueceste-te dele em casa...

Se queres JS ou jQuery, então for fun podes fazer tipo o desbloqueio do telemovel, aquele puzzle que a pessoa tem de fazer com os 9 pontos, desenhando uma figura secreta. É mais rapido que inserir o codigo e tem na mesma bastantes possibilidades.

Se formos muiiiiiito a frente, não sei se é possivel, mas acredito que seja, é abrir o portão com impressão digital. Os telemoveis têm leitor, o problema sera em mandar os dados que o leitor leu para o servidor, para este fazer check... mas ja que tiveste a mania de fazeres um site para abrir o portão, então talvez tenhas paciencia para tal tmb xD

Foto tmb pode-se aceitar, mas precisas de um software de reconhecimento bastante bom, se não, um dia que venhas bebado a casa, podes ficar do lado de fora xD

Sem ir muito a frente, escreve uma aplicação e faz bind pela aplicação. Depois é so entrar na app e clicar em abrir. Se não meteres a app na app store então ninguem sera capaz de abrir o portão para alem de ti. Mas eu pessoalmente apoio a ideia das cookies
 
Vejo 2 opções:
1. Instalar um servidor VPN no raspberry.
2. Servidor WEB com página de login. HTTPS (lets encrypt, por exemplo) e um simples form chegam. Não me parece que haja necessidade para mais.
 
Uma maneira rapida em base de seguranca, para estares "safo"(assim dizendo), e teres uma especie de two factor login(SMS ou email... isso agora fica ao teu encargo)
Sem o codigo enviado via sms/mail, nao conseguem fazer o login.

Apos disso, bloqueias a tua conta so a uma sessao activa de cada vez...(Cookies a expirar apos 5 min de inactividade?)

-------
Se nao quiseres andar a brincar com isso, nao existe nada melhor que teres uma password de 32 ou 64 letras(alfa numerico) e todos os dias... ou 2 vezes por semana, trocares a password.

Seja qql uma das opcoes que coloques, mete um "nocaptcha" da google, para evitar a maior parte dos bruteforces feitos aos formularios de login.
 
Primeiro tens de te mentalizar que nada é inquebrável.

Por exemplo, os comandos das garagens e dos carros são hoje em dia, com o material certo e alguma sabedoria, facilmente manipuláveis.

Eu iria por uma abordagem Public/Private key encriptada, como faz por exemplo a amazon ou o twitter para acederes à API.
Adicionava verificação por MAC (que tb pode ser spoofed, mas.. enfim nada a fazer). Se fores paranóico, podes adicionar também um token de validade para as chaves, que quando expirado, renova e caso a chave antiga tenha sido apanhada por algum hacker, não irá fazer nada com ele porque a mesma já não é válida.
 
Bloqueio por mac address sem duvida, vais agradecer a quantidade de vezes que ias inserir o PIN durante um mês, adicionas os dispositivos que tem permissão e está pronto.

Quanto a adquirir o Mac address, não sei que tipo de dispositivo falas , mas em iOS mostram o mesmo nas definições..possivelmente em android também

Isso era aquilo que tinha idealizado, agora através de uma pesquisa verifiquei que não era possivel eu conseguir do lado do servidor chegar ao mac adresss dos clientes, ou estou errado? Se tiver mostra-me uma forma em PHP, Javascript, Jquery, comandos linux, etc para o fazer, por para mim era o ideal...
 
Que tal cookies? A ideia é a seguinte:
1 - Crias uma conta com uma psw aleatoria do tipo "kmaso012malsn1298n";
2 - Fazes login e metes um cookie;
3 - Configuras o Cookie para 48 horas e cada vez que entras no site, este da refresh ao teu Cookie;
4 - Caso necessario adicionas filtro por IP + HTTP_USER_AGENT, mas so no caso de haver cookie. Ou seja fazes bind do cookie com IP + HTTP_USER_AGENT.
Porque o ponto 4. O teu cookie podem te roubar, duvido que alguem vai gastar tempo com isso, mas quem sabe... Se te roubam o cookie e tentam abrir o portão com o cookie então o servidor vai fazer check e so no caso de tudo tar certo ele abre o portão. Caso contrario destroi o cookie e obriga a autentificar-se de novo.
Mais uma vantagem de fazeres bind so depois de login em vez de bloqueares o acesso de todos os outros dispositivos é que assim tu podes abrir portão de qualquer dispositivo, mesmo se perderes o teu, ou se o deixaste em casa... seria mau se so o teu telemovel pode abrir o portão e tu esqueceste-te dele em casa...

Se queres JS ou jQuery, então for fun podes fazer tipo o desbloqueio do telemovel, aquele puzzle que a pessoa tem de fazer com os 9 pontos, desenhando uma figura secreta. É mais rapido que inserir o codigo e tem na mesma bastantes possibilidades.

Se formos muiiiiiito a frente, não sei se é possivel, mas acredito que seja, é abrir o portão com impressão digital. Os telemoveis têm leitor, o problema sera em mandar os dados que o leitor leu para o servidor, para este fazer check... mas ja que tiveste a mania de fazeres um site para abrir o portão, então talvez tenhas paciencia para tal tmb xD

Foto tmb pode-se aceitar, mas precisas de um software de reconhecimento bastante bom, se não, um dia que venhas bebado a casa, podes ficar do lado de fora xD

Sem ir muito a frente, escreve uma aplicação e faz bind pela aplicação. Depois é so entrar na app e clicar em abrir. Se não meteres a app na app store então ninguem sera capaz de abrir o portão para alem de ti. Mas eu pessoalmente apoio a ideia das cookies

Essa ideia das cookies parece me ir em conta aquilo que pretendo. Sou sincero, apesar de ter algum conhecimento de web, nunca necessitei de usar, mas nada melhor que partir pedra e aprender.

As outras ideias, apesar de serem válidas, não é isso que pretendo, quero algo seguro e fácil de aceder, sem desenhos, fotos e afins, pois isto vai ser usado por pessoas que pouco percebem de computadores, só querem é clicar no botão abrir e siga... o minimo possivel, mas com muita segurança por trás á mistura.

Muito obrigado...
 
Vejo 2 opções:
1. Instalar um servidor VPN no raspberry.
2. Servidor WEB com página de login. HTTPS (lets encrypt, por exemplo) e um simples form chegam. Não me parece que haja necessidade para mais.

Objetivo ser simples e seguro. Para pessoas que mal sabem escrever uma mensagem, o maximo que posso ter é um login ou pin e nada mais.
 
Uma maneira rapida em base de seguranca, para estares "safo"(assim dizendo), e teres uma especie de two factor login(SMS ou email... isso agora fica ao teu encargo)
Sem o codigo enviado via sms/mail, nao conseguem fazer o login.

Apos disso, bloqueias a tua conta so a uma sessao activa de cada vez...(Cookies a expirar apos 5 min de inactividade?)

-------
Se nao quiseres andar a brincar com isso, nao existe nada melhor que teres uma password de 32 ou 64 letras(alfa numerico) e todos os dias... ou 2 vezes por semana, trocares a password.

Seja qql uma das opcoes que coloques, mete um "nocaptcha" da google, para evitar a maior parte dos bruteforces feitos aos formularios de login.

Captchas por acaso foi uma das coisas que me pareceu sensato adicionar por causa dos brute forces e assim. Sabes algum API boa para isso? Essa da google é boa?
 
Primeiro tens de te mentalizar que nada é inquebrável.

Por exemplo, os comandos das garagens e dos carros são hoje em dia, com o material certo e alguma sabedoria, facilmente manipuláveis.

Eu iria por uma abordagem Public/Private key encriptada, como faz por exemplo a amazon ou o twitter para acederes à API.
Adicionava verificação por MAC (que tb pode ser spoofed, mas.. enfim nada a fazer). Se fores paranóico, podes adicionar também um token de validade para as chaves, que quando expirado, renova e caso a chave antiga tenha sido apanhada por algum hacker, não irá fazer nada com ele porque a mesma já não é válida.

Public / Private Key estás a falar de género certificados? Quem tem o certificado é que pode aceder?
Consegues esmiuçar mais a questão? Parece me ser uma boa solução se for aquilo que estou a pensar
 
Captchas por acaso foi uma das coisas que me pareceu sensato adicionar por causa dos brute forces e assim. Sabes algum API boa para isso? Essa da google é boa?
A da google trabalha perfeitamente bem.
Coloqueia num site de um amigo meu onde um bot russo andava lá a criar contas a maluca.... desde então que acalmou.
 
Back
Topo