hacer un programa bluetooth

Iniciado por caballeroantonio, 6 Diciembre 2005, 03:47 AM

0 Miembros y 2 Visitantes están viendo este tema.

verito123

Sir Graham, en caso que decidamos NO utilizar el access server de bluegiga...que nos recomendarias??

Gracias

SirGraham

Hola,

Yo creo, por nuestra experiencia, que hacer un simple dispacher de mensajes de Bluetooth no es ya atractivo.

Yo creo que hacer algo interactivo seria mas interesante. Una aplicacion a instalar en el dispositivo (PDA o telefono) que realize algun tipo de interactividad con el punto de acceso.

Podeis hacer esto desde una plataforma de PC y la parte de movilidad en Java. Si luego quereis hacer que sea mas comercial, podriamos ver como integrarlo con el software de punto de acceso del XBlue (XBluePoint) (que tambien puede funcionar en Windows y en Linux).

Es una idea.

Saludos,
Sir Graham.



   

Proxy Lainux

hola

Estoy tratando de crear un programa en linux para que se conecte mediante bluetooth mi computadora con mi celular, pero aluien sabe que tengo que hacer para aceptar la contraseña

lo que pasa es que en programas que he usado tengo que colocar la contraseña en el programa de la computadora primero y despues me pide la contraseña el celular y al colocar la misma contraseña que coloke en en programa el celular lo acepta y puedo ver los archivos...

les dejo una imagen de lo que quiero decir



pero no se como programar en C esa parte de la contraseña, alguien sabe que hace y que se necesite saber para que acepte la contraseña y pueda tener acceso a los archivos de mi celular?

salu2  ;D

SirGraham

Hola,

Depende del perfil que estes usando en Bluetooth para realizar la conexion.

Algunos estan autentificados: Pide PIN (como el OBEX FTP) y otros solo necesitan confirmacion (ejem. OBEX PUSH).

¿Cual usas tu?

Saludos,
Sir Graham.
   

Proxy Lainux

#24
hola sirGraham

pues mi celular creo que pide PIN, porke como mencione anteriormente tengo que colocar una contraseña en la compu y despues lo tengo que poner en mi celular, despues el celular me dice, "verificando PIN", lo acepta y lo guarda y se monta el celular en el escritorio...

antes usaba ubuntu ultimate y ya estaba todo instalado, y ahorita puse la version live del mismo ubuntu y al verificar no estaba instalado ni obexftp ni obexpush, así que no se cual usaba... pero creo que es como Obexftp que pide pin

pero como lo podria programar?, ahorita lo que llevo es que el bluetooth de la compu me encuentre el bluetooth de mi celular y mediante socket se intente vincular, pero lo del pin no tengo idea de que hacer, y al buscar en google solo me aparece "hackeo por bluetooth", y no encuentro algo relacionado con lo que estoy buscando, espero me puedas ayudar

otra pregunta, yo por lo general utilizo codeblocks y lei que es mejor hacer un programa de bluetooth con VC++.net y SDK, pero casi no me gusta visual studio y no encuentro el que tenia, así que me gustaria saber si se puede hacer un programa de bluetooth con codeblocks

salu2  ;D

SirGraham

#25
Hola,

Haber por partes:

Citarpues mi celular creo que pide PIN, porke como mencione anteriormente tengo que colocar una contraseña en la compu y despues lo tengo que poner en mi celular, despues el celular me dice, "verificando PIN", lo acepta y lo guarda y se monta el celular en el escritorio...

Si estas realizando una vinculacion eso es lo normal. Si haces una conexion por programa depende de a que perfil de Bluetooth te conectes. Normalmente los perfiles de OBEX FTP estan autentificados (pide PIN) y los de OBEX PUSH solo necesitan confirmacion.

Citarpero como lo podria programar?, ahorita lo que llevo es que el bluetooth de la compu me encuentre el bluetooth de mi celular y mediante socket se intente vincular, pero lo del pin no tengo idea de que hacer, y al buscar en google solo me aparece "hackeo por bluetooth", y no encuentro algo relacionado con lo que estoy buscando, espero me puedas ayudar

La peticion de PIN proviene de que el perfil de bluetooth "remoto" (supongo que el del movil en este caso) al que te conectas tiene asignada autentificacion (cosa normal).

digamos que es el movil el que pide el PIN. Eso DEBE ser así por la seguridad bluetooth: Tienes informacion en este foro de como funciona el sistema de autentificacion de Bluetooth. Te invito a que la leeas y la estudies para que entiendas mejor lo que quiero decir.

Si no fuera así, cualquiera podria, simplemente con hacer una aplicacion para PC extraer o introducir ficheros por bluetooth en tu movil. DEBE existir un sistema de seguridad para evitar eso. En Bluetooth se realiza con una gestion de intercambio de PINs. Tu no puedes decirle al movil que PIN es "por programa" y de forma remota, por que la aplicacion "remota" del stack de bluetooth de tu motorola, en este caso, no te va dejar "obiamente". Es que si no no abria seguridad.

Ya se lo que me vas a decir:
"yo le pongo un pin que solo conozco yo y se lo envio al celular. Asi solo mi aplicacion se conecta".

Ya pero es que el esquema de autentificacion de cualquier sistema de radio: Wi-Fi (wep/wap), GSM (A3A8), o Bluetooth (E22) requiere que ninguna clave se mande por radio. Si no no habria seguridad. Por lo que la gestions de PINs es mas complicada (se hacen mas cosas) que las que crees tu ver ...

Si tu quieres eliminar este proceso, tendrias que instalar una aplicacion (Java J2ME, Symbian, Windows Mobile, etc...) en el movil, que creara un nuevo perfil no autentificado y conectarte a ese perfil desde el PC. Con ello la seguridad no se ve vulnerada, por que usuario a instalado una nueva aplicacion y el perfil dependera de la misma... el usario sabra por que la instalado.

Citarotra pregunta, yo por lo general utilizo codeblocks y lei que es mejor hacer un programa de bluetooth con VC++.net y SDK, pero casi no me gusta visual studio y no encuentro el que tenia, así que me gustaria saber si se puede hacer un programa de bluetooth con codeblocks

El problema no esta el IDE (el entorno) de programacion que uses. El tema es si desde code::blocks y el compilador de C++ que tenga tu puedes cargar las librerias staticas del SDK de Microsoft. Si no es así,  no podras hacer nada con el stack de bluetooth de microsoft y por consiguiente con bluetooth.

Saludos,
Sir Graham.

   

Proxy Lainux

hola de nuevo

mira estaba leyendo este articulo que kreo es de gospel... dejo el link

http://www.seguridadmobile.com/bluetooth/seguridad-bluetooth/elementos-de-seguridad.html#Autenticacion

y logro vincular mi pc con el bluetooth de mi movil mediante socket pero no logro emparejarlo por el PIN, y en este link encontre que...cada par de dispositivos emplea una clave de enlace secreta común de 128 bits

pero que debo aprender para programar eso, en el mismo link dice que usan algoritmos E21 y E22... voy a buscar algo de eso, haber que encuentro

y haber si me pueden decir que necesitaria estudiar para hacerlo, ya que el programa lo estoy haciendo en linux, en C y basandome en Bluez

SirGraham

#27
Hola,

Conozco la web de Gospel, que es ademas moderador de este foro.  El otro dia estuvimos hablando de otros temas con el...

Vamos haber... por que creo que no me explicado bien.

El sistema de seguridad de Bluetooth "es una cosa seria". Esta muy bien echo. Puede haber problemas de seguridad en algunos terminales, pero siempre por culpa de la implementacion de los fabricantes de terminales del stack de bluetooth, no del propio protocolo de bluetooth en si.

Citary logro vincular mi pc con el bluetooth de mi movil mediante socket pero no logro emparejarlo por el PIN, y en este link encontre que...cada par de dispositivos emplea una clave de enlace secreta común de 128 bits

pero que debo aprender para programar eso, en el mismo link dice que usan algoritmos E21 y E22... voy a buscar algo de eso, haber que encuentro

No es un tema secreto. Esta perfectamente publicado y documentado. Lo tienes en la propia web de desarrollo de Bluetooth y en mensajes de este mismo foro.

Otra cosa es que encuentres un mecanismo para saltarselo:
No valen cosas como estar snifando los paquetes de bluetooth en el momento de emparejamiento de terceros y obtener asi el PIN (eso no es valido en una situacion real o en caso que propones). Ademas esa tecnica ya esta mas que estudiada y  probada en este foro con todas sus posibilidades.

Para hacer lo que quieres, en sintesis tendrias que:
"Simplemente" obtener, previa a la comunicacion por socket  y en caso de que exista (por que no necesariamente se tiene que haberse producido previamente), TODA la configuracion guardada de una vinculacion previa realizada en ese  terminal remoto. Esto es: toda la informacion de una viculacion que tenga, claro esta todos los permisos. Todo eso (repito) de forma REMOTA.

Esta configuracion se compone (basicamente) de la clave de 128 bits que comentabas antes (creada pseudo aletoriamente y en base a los PINs) + MAC del dispositivo que ha generado esa vinculado previa. Una vez obtenida esa informacion se puede añadir a la lista de vinculacion del stack que estes usando (sera diferente si es BlueZ o Microsoft) y ademas cambiar tu propia MAC por la obtenida de esa configuracion.

Así al realizar la conexion no te pediria PIN, dado que te harias pasar por otro terminal que ha sido vinculado previamente con todos los permisos.

Claro, que esto es mucho mas facil decirlo que hacerlo...  :silbar:

Si tu crees que puedes encontrar una via para conseguir todo eso, adelante... aqui nos encontraras por si necesitas una ayuda en algo.

Yo llevo bastantes años en el tema de bluetooth (como otra mucha gente) y no se me ocurre como hacerlo .. pero oye mira... igual a ti se te ocurre una idea milagrosa para ello....
;D

Saludos,
Sir Graham.

   

Proxy Lainux

ok.. gracias ya encontre mas cosas... y creo que voy a leer un poco mas sobre esto

lo que pasa es que hace tiempo compre un usb de bluetooth para mi compu porke rompi el cable de usb para conectar mi movil con la computadora, pero el usb de bluetooth venia con un programa de prueba para poder revisar los archivos que tengo en mi celular, como fotos y videos

y cuando lo instale se enlazo el usb con mi telefono y en la compu coloque una contraseña como "2233" y despues la escribi en el celular y la acepto y en el programa me aparecio una ventana con las carpetas de fotos,videos y musica, y ahorita kise programar el mio pero solo logro ubicar el bluetooth de mi celular y conectarme, pero la verdad no tengo idea de como emparejar los dos dispositivos para depues poder ver mis archivos...

yo al principio pensaba que el movil enviaba una contraseña cifrada a la compu, el programa de la compu lo desencriptaba y lo comparaba con el que ya habia alli y si era igual mandaba una señal de aceptacion a movil, el movil tambien lo aceptaba y listo podia ver lo que kisiera, y no se si eso hace, pero no sabia nada de E22 y kinit, etc... hasta que mencionaste Bluetooth(E22).

pero bueno, voy a seguir buscando haber si encuentro como puedo emparejar los dispositivos con programacion C

mientras encuentro algo mas, nos vemos y gracias por la ayuda   ;D

SirGraham

Hola,

Tienes las funciones en el Propio API de BlueZ para realizar un emparejamiento, controlar cuando y cual es el PIN que pide en la parte del PC. Tambien puedes configurar en el BlueZ un PIN constante (siempre el mismo) para que SOLO pregunte en el PIN en la parte del terminal REMOTO (ejm 1234).

Pero "evitar" que el terminal (el motorola en este caso) te pida PIN con solo realizar o programar una aplicacion en la parte del PC, me temo que eso no podras hacerlo... por lo que hemos comentado anteriormente.

Saludos,
Sir Graham.