Autor
|
Tema: [Solucionado] -seguridad en chat simple (Leído 7,017 veces)
|
elezekiel
Desconectado
Mensajes: 246
|
hola gente tengo una duda porq estoy haciendo un chat sencillo nomas para que se conecten 3 o 4 a una maquina servidor, tengo todo hecho funciona las pc se conectan bien bla bla. el tema es que quisiera saber a que podria enfrentarme si un usuario malintencionado atacara el servidor ?¿ uso winsock y basicamente es una conexion directa a un puerto e ip que solo el cliente que se repartio conoce, ningun usuario esta conociendo dicha ip ni puerto.
alguna sugerencia antes de liberar este trabajito la semana entrante? graciass
saluddd
|
|
« Última modificación: 1 Noviembre 2014, 04:01 am por elezekiel »
|
En línea
|
|
|
|
engel lex
|
tu conoces tu código... fuera de tu código el winsock básicamente se limita a una comunicación de paquetes de bajo nivel en protocolos standards contra el winsock hay muy poco que hacer...
tu código es la parte vulnerable normalmente... los programas fallan es por la forma en que el código está hecho... entonces tu eres quien ve las vulnerabilidades...
si el chat no está cifrado, cualquier usuario en las redes va a poder sniffear todo el contenido que salga y llegue a un cliente (a demás de meterse y hacerse pasar por el)
|
|
|
En línea
|
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.
|
|
|
elezekiel
Desconectado
Mensajes: 246
|
a que te referis con cifrado? o sea, cuando envio una peticion o por ejemplo, cuando se conecta un uusuario a la sala, les avisa alos demas que esten, pero ese codigo, o sea, el aviso esta basado en algo que invente yo, o sea, a ver, no descubri america, pero me refiero, toma una especie de prefijo, por ejemplo, cuando el cliente se conecta envia como datos msgeEntrante parametro+ parametro, por decirte algo, entonces a eso el servidor lo parsea y emite el mensaje correspondiente en sala dependiendo lo que recibem cuando alguien sale vendria a ser msgeSaliente parametro+parametro.
Tal vez es algo absurdo pero no encontre otra forma de realizarlo al menos de momento.
graciasss saluddd
|
|
|
En línea
|
|
|
|
engel lex
|
está bien hecho en general así se hace, con prefijos... pero ahora preguntate... que pasa si se envian prefijos a control del usuario? si un fastidiosos solo los quiere enviar por molestar pasa algo malo? por otro lado lo del cifrado si el chat no está cifrado, cualquier usuario en las redes va a poder sniffear todo el contenido que salga y llegue a un cliente (a demás de meterse y hacerse pasar por el) cifrado es proteger los paquetes con una contraseña (por resumir) si no estan cifrado un ataque de man in the middle va a tener acceso todo lo que usuario en la misma red ve
|
|
|
En línea
|
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.
|
|
|
elezekiel
Desconectado
Mensajes: 246
|
está bien hecho en general así se hace, con prefijos... pero ahora preguntate... que pasa si se envian prefijos a control del usuario? si un fastidiosos solo los quiere enviar por molestar pasa algo malo? por otro lado lo del cifrado cifrado es proteger los paquetes con una contraseña (por resumir) si no estan cifrado un ataque de man in the middle va a tener acceso todo lo que usuario en la misma red ve no entiendo esa parte, a que te referis?
|
|
|
En línea
|
|
|
|
engel lex
|
cuando el cliente se conecta envia como datos msgeEntrante parametro+ parametro, por decirte algo, entonces a eso el servidor lo parsea y emite el mensaje correspondiente en sala dependiendo lo que recibem cuando alguien sale vendria a ser msgeSaliente parametro+parametro.
si preguntas sobre la seguridad ese parrafo es lo importante... mi pregunta era... que pasa si un usuario manda si el usuario empieza a mandar esos datos a lo loco?
|
|
|
En línea
|
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.
|
|
|
elezekiel
Desconectado
Mensajes: 246
|
bueno eso es algo que no tome en cuenta. si el cliente envia muchas peticiones no lo estoy seteando ni limitando, es un buen detalle.
como sugeris manipular las pticiones? estoy abierto a opiniones.
|
|
|
En línea
|
|
|
|
engel lex
|
has una tabla de mensajes en el servidor, si el usuario se conecta, y se mantiene conectado, si se recibe un mensaje de conexión, revisar si el usuario de ese nombre está vivo (responde a un mensaje de "estás ahí?") si vive, ignora el mensaje, si no, desconectalo y conecta al nuevo usuario... ve así... puedes por seguridad apartar los primeros x bytes para prefijar todo ej, apartas 4 bytes "cmmd" significa que lo que viene es un comando "msag" significa que lo que viene es un mensaje "conn" significa que lo que viene es una conexion "ping" el cliente responde con un "pong" para saber que está viva la conexion "ackn" es un "ok" una confirmacion a lo ultimo recibido entonces seria algo como (viendo desde el servidor "<" recive, ">"manda) <connPepito //pide conexion >cmmdConectado //se indica que fue conectado <ackn //confirma la conexion >ping //ping para medir la latencia <pong //repsuesta a ping <cmmdEntrarChat //pide entrar al chat >ackn //confirma <msagHola a todos //servidor recibe el mensaje "Hola a todos" >msagPablo: Hola //sertvidor envia mensaje "Pablo: Hola" de otro usuario y así vas... es util tener las confirmaciones de operacion para saber que todo funciona bien y un ping para saber que el cliente vive... para todo mensaje solo sacas los primeros 4 bytes y decides que hacer (si es comando, mensaje, o que) siempre verificar los comandos para evitar un ataque
|
|
|
En línea
|
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.
|
|
|
elezekiel
Desconectado
Mensajes: 246
|
excelente ejemplo, en base a lo que decis, podria crear una funcion, que compare la conexion entrante(pendiente de aprobacion), con la lista de conexiones que tengo en una variable de coleccion(activas), con todos los datos de cada uno, si coincide, ignorar solamente, sino agregarla, crees que con eso basta o al menos creo que seria bueno en un inicio, no ?
Despues tendria que ver, como comprobar si las conexiones siguen vivas, a lo que son pocas podria realizar un seteo como decis de ping/pong a los usuarios conectados.
saludd y gracias.
|
|
|
En línea
|
|
|
|
engel lex
|
lo del cifrado para que las conversaciones no sean "espiables" podrías buscarte en internet algún codigo para cifrar todo el AES, al programa le das una contraseña de conexion inicial (para que la primera peticion sea cifrada) y luego la cambias por ejemplo... en el codigo de conexion dejas la clave "arena" (cifrado con "arena") <connPepito //pide conexion >cmmdConectado //se indica que fue conectado >cmmdPass:aslkd92384 //le indica que cambie la contraseña a "aslkd92384" que es aleatoria y generada unicamente para el (cifrado con "aslkd92384") <ackn //confirma la conexion
y de resto es igual... claro si analizan bien y son real conocedores de criptografía (o en su defecto le hicieron ingenieria inversa al programa) pueden sacar la clave... pero contra un ataque MItM normal por gente común es una conexión segura
|
|
|
En línea
|
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[PHP] Simple Chat By Doddy H
PHP
|
BigBear
|
0
|
2,385
|
7 Octubre 2011, 01:26 am
por BigBear
|
|
|
Chat por LAN bien simple.
Dudas Generales
|
elmonotremendo
|
2
|
5,807
|
28 Enero 2013, 15:03 pm
por CloudswX
|
|
|
Ayuda calculadora simple en PHP(solucionado)
PHP
|
Senior++
|
2
|
3,778
|
16 Noviembre 2013, 18:20 pm
por Senior++
|
|
|
[Solucionado] Problema con simple código en C++
Programación C/C++
|
Mario Olivera
|
1
|
2,076
|
14 Agosto 2014, 21:57 pm
por Eternal Idol
|
|
|
Chat cifrado seguridad movil
Criptografía
|
ambrayas
|
0
|
3,327
|
9 Septiembre 2017, 14:07 pm
por ambrayas
|
|