PHP WebService + clientes Arduino y RaspberryPI

Iniciado por pbtete, 9 Abril 2015, 14:15 PM

0 Miembros y 1 Visitante están viendo este tema.

pbtete

Hola gente. Tengo una serie de WebServices escritos en PHP en un hosting. A estos WebServices hacen llamadas clientes "Arduino" y "RaspberryPI".

El tema es que me gustaría limitar el acceso a alguno de ellos, es decir, que exista algún tipo de autenticación que solo permita hacer llamadas HTTP de forma satisfactoria a los clientes que yo elija, ya que el hecho de que se puedan hacer llamadas HTTP desde cualquier tipo de cliente compromete la seguridad general del sistema.

¡Muchas gracias!

engel lex

arma un login y listo... solo entra quien tú quieras... a demás desconocemos como está armado tu sistema y dudo que con tan poca info se pueda ayudar más

recomiendo aportar más info y tal vez leer estos 2 temas
10 pasos para plantear una duda informática
FAQ : Como hacer preguntas "inteligentes"

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Puedes limitar el acceso de varias formas... Yo creo que lo mas facil seria delimitar por IP si tienes un rango en especifico al que quieras servir. Si no, deberias poder establecer una contraseña para cada uno de tus servicios.

pbtete

Cita de: engel lex en  9 Abril 2015, 14:21 PM
arma un login y listo... solo entra quien tú quieras... a demás desconocemos como está armado tu sistema y dudo que con tan poca info se pueda ayudar más

recomiendo aportar más info y tal vez leer estos 2 temas
10 pasos para plantear una duda informática
FAQ : Como hacer preguntas "inteligentes"


No puedo montar un login debido a que no es un usuario físico (el cual puede meter un usuario y una contraseña) el que se conecta al sistema. Es un cliente Arduino o RaspberryPI, el cual accede cuando se pulsa un botón. Ahí está el problema...

Cita de: MinusFour en  9 Abril 2015, 20:03 PM
Puedes limitar el acceso de varias formas... Yo creo que lo mas facil seria delimitar por IP si tienes un rango en especifico al que quieras servir. Si no, deberias poder establecer una contraseña para cada uno de tus servicios.
Lo del rango de IP va a estar dificil... Una contraseña?? En el Arduino bueno... pues el código es compilado pero con la RaspberryPI no...

Gracias a ambos. Un saludo.

T. Collins

#4
No hace falta ser una persona física para conectarse mediante un login, ni el código tiene por qué ser compilado para poner una contraseña :-\ Arduino no sé, pero en RPI puedes utilizar tanto un programa en C, C++, etc... (compilado)  como un script para para hacer lo que quieres.

MinusFour

¿Y como distribuyes el cliente, un compilado? ¿Es codigo cerrado?

pbtete

Cita de: T. Collins en 10 Abril 2015, 14:31 PM
No hace falta ser una persona física para conectarse mediante un login, ni el código tiene por qué ser compilado para poner una contraseña :-\ Arduino no sé, pero en RPI puedes utilizar tanto un programa en C, C++, etc... (compilado)  como un script para para hacer lo que quieres.
Correcto, pero si tengo que hacer un login para un cliente que no es una persona física significa que he de poner la contraseña en el código... no sé si esto podría suponer un problema de seguridad importante. En Arduino el código se compila, pero en RPI estoy trabajando con Python (si fuese necesario cambiaría a otro lenguaje como C)... también desconozco hasta que punto ese código podría ser descompilado (creo que es verdaderamente complicado), teniendo acceso de esta forma al los datos de acceso.

Muchas gracias gente, son cosas nuevas para mi y estoy un poco perdido jeje

LaThortilla (Effort)

para poder ayudarte mejor tienes que saber como identificas los clientes a los que tu quieres dar acceso...

- podrías usar su dirección mac... para autenticarse-.. aun que esto no es muy fiable

-podrías usar su ip... pero esto requeriría que su ip fuera estática...

-si usas conexión desde un moden 3G podrías usar su imei

- Ò lo que ya te sugerían compilar algún tipo de contraseña que se incluya en el codigo

-Podrias hacer algo mas complejo y seria que el cliente pida autenticación y tu tengas que darle acceso o no a ese cliente desde un backend y ps o bien crear una variable de session o lo que tu prefieras (imaginación)

daryo

#8
bueno talves te paresca algo complicado pero recuerda que no hay que reinvertar la rueda y que las herramientas ya existen:

mmm me parece que lo que buscas es cifrado asimetrico y talves firmas digitales ...
http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales(lo podrias hacer usando por ejemplo https para evitar que sniffeen el trafico)

la parte sobre decompilar y demas hay varias herramientas(a lo mejor solo tienes que usarlas asi te evitas tener que aprender todo eso) y practicas que dificultan el proceso de ingenieria inversa(ver que hay dentro del programa) pero eso es mejor que lo preguntes en su respectiva sección.

http://foro.elhacker.net/ingenieria_inversa/como_proteger_tu_programa-t222129.0.html
http://foro.elhacker.net/ingenieria_inversa-b26.0/
buenas

LaThortilla (Effort)

Cita de: daryo en 22 Abril 2015, 22:21 PM
bueno talves te paresca algo complicado pero recuerda que no hay que reinvertar la rueda y que las herramientas ya existen:

mmm me parece que lo que buscas es cifrado asimetrico y talves firmas digitales ...
http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales(lo podrias hacer usando por ejemplo https para evitar que sniffeen el trafico)

la parte sobre decompilar y demas hay varias herramientas(a lo mejor solo tienes que usarlas asi te evitas tener que aprender todo eso) y practicas que dificultan el proceso de ingenieria inversa(ver que hay dentro del programa) pero eso es mejor que lo preguntes en su respectiva sección.

http://foro.elhacker.net/ingenieria_inversa/como_proteger_tu_programa-t222129.0.html
http://foro.elhacker.net/ingenieria_inversa-b26.0/

no creo que lo que busca es cifrar el trafico... si no mas bien limitar quien se conecta