lunes, 13 de mayo de 2013

[Lab CU] Actividad 11: Sugerencias sobre privacidad


Habiendo escuchado la clase de los compañeros sobre las consideraciones sobre privacidad, redactaremos la retroalimentación de los proyectos junto con algunas sugerencias sobre cómo mejorar los mismos.

...

Casa segura (Rene, Raúl, Iván)


Pienso que también debería de tomar en cuenta algunos aspectos sobre la seguridad del usuario, es decir, cómo se puede proteger la integridad del usuario y de su patrimonio si se llegasen a perder los accesos o el control sobre el sistema.
Otro detalle, pienso que no es muy necesario almacenar información delicada del usuario como su ubicación, pueden utilizar alguna API de mapas que les permita calcular el tiempo aproximado en el que el usuario llegará a la casa para asi encender las luces o los climas, o que el celular se conecte automáticamente a la red de la casa mientras el usuario va llegando para ir encendiendo todo en la casa.
Y pues lo demás solo cuidar la conexión a internet de la casa, por ejemplo, que las cámaras no sean accesibles desde el exterior, solo desde el interior.
De ahi en adelante cifrar la información y un pequeño servidor de sincronización donde el equipo móvil y la casa intercambien mensajes cada cierto momento.

...

Garage Inteligente (Emmanuel, Max, Carmen, Victor)



La mayoría de los proyectos no tomaron en cuenta un aspecto muy importante que ustedes si, al ser una empresa que presta un servicio entonces es necesario conocer al cliente, es por ello que al facturar la venta de un servicio deben estar conscientes que almacenarán el domicilio del cliente y posiblemente algunos datos de su tarjeta bancaria y ese tipo de cosas. Y obvio es necesario si quieren llevar un seguimiento interno de su cartera de clientes.
Otro aspecto que incluyeron fue el qué hacer en caso de fallo, por ejemplo, fallo en el suministro eléctrico de la casa.
Solo hay un hueco en sus responsabilidades, en lo personal no creo que los accidentes con la puerta sean responsabilidad del usuario ya que ustedes son los proveedores de todo el sistema y su integración para que funcione bonito, porque supongamos que un motor para abrir la puerta falla, el fabricante del motor también se quita de toda responsabilidad si se altera o modifica el motor, entonces el usuario queda vulnerable en ese aspecto.
Todo lo demás esta muy bien.


...

Bloqueo mágico de computadora (Obed, Ave, Pedro, Jona)


Las consideraciones de privacidad son suficientes considerando el alcance de su proyecto.

Pero como recomendación del sistema, además de implementar el reconocimiento del rostro también pueden implementar un medio secundario para iniciar sesión, por ejemplo, un PIN, el cual se activa si el sistema no te reconoce en 10 segundos por ejemplo; entonces ahí ya es conveniente pensar en como almacenar esa contraseña y relacionarla con un usuario.

De igual forma, el correo o las imágenes almacenadas saber si se guardaran en algún formato cifrado o algo por el estilo.

...

Galeria Inteligente (Blanca, Vanessa, Adriana, Rodolfo)


Pienso que realmente sus consideraciones de privacidad cumplen con el alcance del proyecto.

Una consideración importante y que ustedes visualizaron bien en esta entrega fue identificar correctamente a sus usuarios, dicho de otra forma, el visitante por un lado es el usuario que hará uso de la interfaz ubicua porque en realidad el solo sabe que al acercarse a la obra el sistema reaccionara, por el otro lado, el museo es el usuario que hace uso de la interfaz visible. Visto desde esta perspectiva, los resultados o información que en realidad cuenta es la información sobre el uso del sistema, la cual es puramente estadística, cantidad de visitas al museo y la cantidad de reproducciones sobre una obra.
Ya la empresa sabrá el nivel de seguridad que quiere darle a los datos, si quiere cifrarlos o no, pero eso ya no entra en el alcance de su proyecto.

Aprovechando las capacidades del sistema también sería bueno utilizar el sistema como un sistema de seguridad interno que grabe a los usuarios y en caso de robo que se puedan visualizar los videos. Ahí solo faltaría especificar en su Aviso de Privacidad que en caso de algún robo al museo se tendrá acceso a las grabaciones las cuales pueden contener los rasgos físicos y otra información sobre los visitantes.

...

Alarma de automóvil (Alex, Ricardo, Sergio, Roberto)


Pienso que no tienen muy bien pensado el concepto de privacidad en este momento.

Se centran mucho en ver las desventajas de las tecnologías que quieren implementar pero eso no ayuda de mucho, no deben darle vueltas al concepto de seguridad para proteger los datos, no tengan miedo, son cosas que ya hemos visto antes, les propongo probar con algo simple ya sea el cifrado RSA o una firma HASH con MD5 o SHA1, eso puede quitarles muchas preocupaciones sobre seguridad al momento de iniciar sesión y esas cosas. Si piensan sacar el producto al mercado las consideraciones de seguridad y resguardo de información deben ser lo primero a considerar.

Otra cosa es la frase "la privacidad queda a consideración del usuario", en realidad no, ustedes son la empresa, ustedes recaban la información, ustedes deciden que hacer con la información almacenada y postprocesada: ¿La guardan como historial? ¿La eliminan? Depende de las necesidades de su sistema, por lo menos ustedes están aceptando que el sistema almacena cierta información y especifican cuál es.

...

Alarma inteligente (Omar, Saúl Isaías)


Viendo el alcance del proyecto, pienso que son suficientes las consideraciones de privacidad, realmente no tienen muchos datos que cuidar por lo que la encriptación de las configuraciones es un buen punto.
Otro punto también es proteger los datos para evitar que se eliminen (si es que son muy importantes), ya que android te permite ver todo el contenido de la memoria al conectarlo via MTP a la computadora, por lo que sería bueno analizar esta posibilidad y dejar solo al sistema y a la aplicación con permisos para borrar cuando el usuario decida eliminar la aplicación.
No me quedo claro cómo el sistema funciona en su totalidad, pero si los dispositivos en cierto momento de comunican pienso que también sería buena opción proteger los canales de comunicación.

...

Oficina Inteligente (Lupe, Osvaldo, Triana, Esteban)


Buenas consideraciones de privacidad.
Pienso que se complican mucho al meterse en aspectos biométricos del usuario cuando pueden simplemente combinar algunos aspectos de criptografía en su proyecto.

Además, si yo leo su Aviso de Privacidad no creo animarme a comprar su producto, no pueden comprometerse a almacenar datos del usuario y simplemente no se hacerse responsables de lo que pase con ellos después de almacenarlos, ese no es el fin de un Aviso de Privacidad. Solo especifiquen como se manipulan sus datos y no hagan cosas malas con ellos.
También en los Términos y Condiciones sería bueno delimitar las responsabilidades tanto de la empresa como de los usuarios, por ejemplo, el compromiso de un servicio 24/7 puede dar espacio a demandas, pero ¿qué pasa si el usuario no cuenta con electricidad o conexión a internet? Pequeños huecos que pueden dar problemas legales.

...

Despertador inteligente (Ramón, Cecy, Roberto)


Siendo una aplicación móvil, pienso son suficientes las medidas de privacidad y seguridad de su proyecto, solo hay que cuidar algunos aspectos.
Hablan de la creación de un llave única, pero, ¿qué tan única?, ¿cuál es el mecanismo para su generación?, ¿el mecanismo de generación de llaves es reproducible? Recordar también que los métodos de sincronización pueden ser vulnerables, solo bastaría implementar algún método de comunicación seguro entre servidor y dispositivo, ya sea un túnel SSH o cifrado temporal.
También verificar que tan vulnerable es el sistema a hackeos, supongamos que alguien es capaz de vulnerar el arduino o la conexión bluetooth; en ese caso, qué se podría hacer si un mismo miembro de la casa ha vulnerado el sistema por simple diversión por ejemplo.
Solo bastaría también especificar las medidas necesaria a implementar en el servidor de sincronización.

Las consideraciones de seguridad del usuario y cuidar su integridad física también fueron adecuadas, pienso es el único proyecto en el que aplican.
...


Esas fueron mis observaciones y recomendaciones para los demás proyectos.

jueves, 9 de mayo de 2013

[IT] Homework 5: Error detection (Hamming Block Code)

For this week we had to implement an error detection technique using a block code method. We had to simulate the transmission of data through a noisy channel and use our error detection technique to fix the errors during the transmission.
I use the Hamming Code as my block code method.

NOTE: If you want to understand how works the Hamming Block Code, check the references at the footer.


Experiment

For my experiment, I prepared a Python script that generate several random words of length 4 (4 bits) and then, send them through a noisy channel, the parameters of the experiment are:
  • wordLength: Word length (4 bits)
  • frecZeros: Frequency of zeros in the word
  • probError: Probability that a word is transmitted wrong by the channel
  • errorBits: Maximum number of errors in the transmitted word
  • rep: Amount of experiment repetitions
For the experiment, the wordLength and the errorBits are fixed at 4 and 1, respectively, the parameters freqZeros and probError only affects the final behavior of the channel.

As we can see, with 1 as the number of error bits in the word, the Hamming Block code can fix all the errors without problems.



If we increase the amount of erros in each word, for instance, 2 errors per word, we begin to experience some failures in the method



There are not much difference if we increase the amount of errors to 3



The Hamming Code methos works fine while the amount of errors in a word still's one, but, when the amount of errors increases two a number bigger than one, the Hamming Code will start to experiment some failures.
Also,we can see that the amount of good transmissions and errors follows a linear relation.

The implemented Hamming Code uses a 7x4 "H" matrix, with which is able to correct a single bit error.

When you multiply the original 4-bits word and the encode "G" matrix, the result is a 7-bit codeword "xG":


When you decode the codeword using the "H" matrix, the multiplication result is a 3-bit word. That word is a binary representation of a single digit. The digit represents the bit that is wrong in the transmitted codeword through the noisy channel.


We only need to translate the binary representation to an integer, which we will be able to correct the bit error.

Code



References:

miércoles, 8 de mayo de 2013

[Lab VC] Actividad 8: Detección de esquinas


Para ésta tarea se debieron programar las rutinas para detectar esquinas en imagenes. Para ello se utilizó una combinación entre filtro mediano y filtro en escala de grises.


Teoría

Primeramente, los pasos necesarios para la detección son:
  • Aplicar filtro mediano a la imágen
  • Aplicar filtro escala de grises a la imágen
  • Por cada pixel, restar el valor del filtro mediano al filtro en escala de grises, dicha diferencia al final resaltará las esquinas a color blanco.
  • Identificar las coordenadas donde se encuentra cada esquina y asignarlas al objeto al que pertenecen. Se puede utilizar detección de bordes y BFS para dicho objetivo.
  • Se hace un corte pequeño en los bordes detectados (borde discontinuo), al utilizar BFS nuevamente el corte obligará al BFS a recorrer los pixeles en una sola dirección, lo que permitirá darle un orden al las esquinas detectadas.
  • Con las esquinas asignadas a cada objeto y ordenasas, conectarlas con una línea para obtener el wireframe de cada objeto o polígono detectado.
  • Dibujar las lineas, y si se requiere, etiquetar las esquinas y objetos.

    Práctica

    Las imagen utilizada para las pruebas fue la siguiente:

    Imágen original


    Se eligió la imágen porque cuenta con varias figuras para hacer diferentes pruebas, es una imágen con poco ruido en realidad y por ahora es necesario que las figuras se encuentren separadas y rellenas de un color solido para poder resaltar sus bordes correctamente.

    Objetos completamente sólidos


    Resultados

    Para los resultados primero se sacan los bordes

    Bordes detectados

    Después realizamos el corte en los bordes, no se alcanza a ver muy bien, pero haciendo zoom en la imágen se alcanza a ver muy bien

    Corte en la primer esquina detectada

    Lo demás ya es automático, recorriendo los bordes podemos fácilmente ordenar las esquinas, ya solo es de etiquetarlas y dibujar el wireframe, es éste caso es de color negro y muy delgado pero ahí esta. En la terminal se ve un paso intermedio, donde se asignan las esquinas a cada objeto, por ello hay 4 listas.


    En la imágen, el wireframe con las esquinas y objetos etiquetados.
    En la terminal, las esquinas asignadas a cada objeto.


    Código


    En el repositorio encuentran la implementación completa en código, la carpeta marcada como Tarea 9.


    Para la detección de esquinas

    Para dibujar en la GUI


    Referencias:

    martes, 7 de mayo de 2013

    [RT] Extra: Infografia Satelites


    [Lab RT] Actividad 10: Seguridad en redes móviles e inalámbricas (Infografía)

    Links:

    http://dsns.cs.nctu.edu.tw/blog/components/com_agora/img/members/7/1-Introduction.pdf
    http://pinspiring.net/category/internet/
    http://www.cse.wustl.edu/~jain/cse574-06/ftp/cellular_security.pdf
    http://www.soi.wide.ad.jp/class/20060035/materials_for_student/08/lecture_08_security.pdf
    http://www.computerworld.com/s/article/86951/Best_Practices_for_Wireless_Network_Security?taxonomyId=15&pageNumber=3
    http://www.bullguard.com/bullguard-security-center/mobile-security/mobile-threats/mobile-security-what-you-need-to-know.aspx
    http://www.wi-fi.org/knowledge-center/faq/please-explain-various-security-standards-algorithms
    http://compnetworking.about.com/b/2008/08/21/aes-vs-tkip-for-wireless-encryption.htm
    https://learningnetwork.cisco.com/thread/11207
    https://learningnetwork.cisco.com/thread/26079

    [Lab CU] Actividad 10: Privacidad en sistemas de cómputo ubicuo

    Para ésta semana continuamos con los temas de lecturas científicas, ahora el tema es referente a técnicas de usabilidad en sistemas de cómputo ubicuo, el documento seleccionado fue:

    ...
    Designing for ubiquity: the perception of privacy

    El paper aparece en: Pervasive Computing, IEEE, Volume: 2 , Issue: 2
     Tipo de producto: Journals & Magazines
    Página(s): 40 - 46
    Fecha de publicación: April-June 2003
    Autor: Richard Beckwith
    ...

    Contexto

    Los investigadores en el campo del cómputo ubicuo han sostenido durante mucho tiempo que la privacidad es un problema de diseño, el éxito en el diseño requiere de entender los deseos, preocupaciones y sensibilización de los usuarios de alguna tecnología. Sin embargo, debido a que los sistemas ubicomp son relativamente poco comúnes, es muy poca la investigación existente para informar a los diseñadores sobre el potencial de entender a los usuarios. Además, el diseño se complica con el hecho de que estos sistemas suelen estar incrustados y ser invisibles, por lo que es difícil para los usuarios saber en qué momento los dispositivos están functionando. Y no es sorprendente saber que la incapacidad de los usuarios para ver una tecnología hace que sea difícil para ellos comprender cómo puede afectar su privacidad.

    Se nos habla de 2 tipos de sistemas ubicuos:

    • Personales: Los cuales son independientesde la ubicación física.
    • Infraestructura: Que son los sistemas ubicados en cierto lugar.
    Un estudio de privacidad toma en cuenta los sistemas de infraestructura, que consisten en sensores y otro tipo de tecnologías profundamente embebidas en las casas o edificios, y que sirven para monitorear a la gente que habita en esos lugares.

    La finalidad de la investigación es conocer cómo las personas se desenvuelven en un ambiente ubicuo con enfoque en el cuidado de gente adulta y diversas incapacidades. Asi mismo, conocer cuáles tecnologías son las más útiles.


    1. Metodología de la investigación

    El método de investigación descrito tiene como principal enfoque las observaciones informales, asi mismo, se realizaron 29 entrevistas con personas que utilizan sistemas ubicuos.
    El alcance fue de:
    • 10 miembros de la familia (quienes toman las decisiones sobre el cuidado del hogar)
    • 9 residentes (con niveles variados de demencia)
    • 8 miembros (grupo al cuidado de las personas)
    • 2 managers de los grupos.
    Las preguntas abarcan cierto rango de problemas, desde el tipo de rutinas que realizan diariamente hasta cómo y porqué seleccionaron cierta tecnología para facilitar su trabajo.

    La investigación se centra en 2 tipos de tecnologías
    • Celdas de carga: Para monitorear el peso de los residentes, están colocadas en las patas de las camas
    • ID Móviles: Cuyo nombre en inglés es mobile badge y son muy parecidas a los controles de alarma de un auto, con 2 botones. Su función es identificar al portador y monitorear mediante radiofrecuencias su ubicación dentro y fuera de las instalaciones.

    2. Percepciones

    Todos los residentes y miembros del grupo de cuidados deben portar un ID móvil.
    La investigación indica que los portadores no comprenden en realidad las capacidades de monitoreo del dispositivo, los residentes observan el dispositivo como algo que les permite pedir ayuda lanzando una señal inalámbricamente.
    La realidad es que el dispositivo esta rastreando todo el tempo a los residentes, de tal forma que sean fáciles de ubicar en caso de emergencia, por ejemplo, si un residente se encuentra solo en la cocina, el dispositivo puede cerrar el paso del gas en las estufas. Asi mismo, avisa si los residentes estan saliendo del edificio.
    Dado que el dispositivo no cuenta con ninguna otra interfaz visibles mas que dos simples botones, los usuarios no se percatan de las funciones que permanecen invisibles.
    Los cuidadores se encargan de estudiar la información almacenada para establecer las estrategias y cuidados para las personas de las cuales están encargados.

    Las celdas de carga (parecidas a las de la imágen) están instaladas en las patas de las camas de los residentes para medir las pérdidas o ganancias en el peso.
    Sin embargo, los residentes no se percatan que la información recolectada esta siendo utilizada con otros fines, por ejemplo, si durante la noche se detecta peso nulo en cierta cama, los miembros del staff pueden saber quién se levanto de su cama; variaciones en las mediciones pueden indicar que una persona se esta moviendo repetidamente sobre la cama lo que se puede entender como dificultad para dormir. Todos estos indicadores le sirven al staff para conocer los patrones de sueño de los residentes y detectar posibles problemas.


    3. Razonando sobre la privacidad

    Este razonamiento se analiza desde 3 puntos de vista:
    • Receptor de la información: ¿Quién utilizará o tendrá acceso a la información?. En este caso la respuesta se responde con la pregunta ¿Quién monitorea a quienes? Los cuidadores son los que reciben la información y la utilizan, por lo que ellos también son los principales consumidores de la información y entran en segundo lugar los familiares y los prestadores de servicios clínicos. La mayoría de las personas entrevistadas no estaban conscientes de ello
    • Uso de la información: ¿Cómo la información será utilizada, y qué se ganara o perderá al utilizarla? Hay una meta con la cuál todas las personas, residentes, cuidadores y familiares están de acuerdo, el sistema instalado busca ampliar la vida de los residentes. En este caso, identificar el uso de la información resulta ambiguo ya que en realidad la información consumida es una fusión de otras variables, por ejemplo, el tiempo, a qué hora se levanto un residente, en qué momento cambio de lugar o incluso si iba acompañado o no; y como ya vimos en el caso de las celdas, analizar si los residentes están o no en sus camas.
    • Sensibilidad de la información: Se refiere a cuál información es compartida. Por ejemplo, el sistema puede determinar con cierto grado de exactitud la ubicación delos residentes y con quién están. Esto se puede considerar invasivo y sensible si llega a conocerse por personas con malas intenciones, pero los usuarios para los cuales todo el sistema es invisible aún no llegan a comprender el alcance de ello, para los residentes el propósito del sistema es indicar en cualquier momento "si alguien puede venir aquí a ayudarme".

    4. Implicaciones

    La ignorancia por parte de los usuarios sobre las tecnologías utilizadas se debe a que son un arma de dos filos, por un lado pueden resultar invasivos, pero por el otro se tratan de sistemas que simplifican la vida de residentes y cuidadores.

    Es quizá poco realista esperar que los residentes de un centro de atención puedan comprender plenamente la tecnología y tomar decisiones acerca de la privacidad y de la compartición de datos. Y por desgracia, no se ha encontrado tampoco una mayor conciencia de las tecnologías utilizadas entre los miembros de la familia. Los miembros de la familia que fueron entrevistados parecían saber sólo que las tecnologías están ahí para el bienestar de los residentes y no entendían los datos que se están recogiendo para lograrlo. Manifestaron claramente que querían balancear la privacidad de sus seres queridos con una mejor calidad de vida. Sin embargo, raramente se consideran las necesidades de privacidad de sus seres queridos. Un miembro de una familia expreso que:
    "Ese tipo de tecnologías pueden ayudar a las personas a vivir una vida un poco más independiente de lo que sería de otra manera. Yo lo veo como de riesgo muy positivo. Supongo que no estoy seguro de qué riesgo existe, salvo la vergüenza. Y cuando se llega a ser de 80 años de edad, avergonzarse ya no es tan fácil."
    Otro miembro de la familia dijo que la tecnología no tuvo ningún efecto sobre la privacidad, pero luego agregó que "no conoce el posibilidades".


    5. Diseñando la privacidad.

    En un estudio relacionado de la compañia Omnipoint (proveedor de telecomunicaciones inalámbricas) se reportó que el 20% de sus usuarios miente con regularidad sobre su verdadera ubicación, lo que significa que hay quienes desean mantener esta información en secreto.
    Dicha aseveración coincide con un punto de vista de uno de los cuidadores quien afirma que "la privacidad solo importa cuando alguien no esta haciendo lo que se supone deberia estar haciendo", y muchos usuarios relacionan el querer mantener su privacidad con mantener algo oculto. Es obvio que las personas que opinan de esta forma no estan muy bien enteradas de las formas en las que su información puede ser utilizada, y los desarrolladores deben mantener eso en mente.


    Conclusión y critica

    Me parece buena la investigación para los fines que se buscan y permite echar un vistazo a las particularidades de los sistemas ubicuos ya que siempre se intentan comprender desde un punto de vista general sin tomar en cuenta que algunas veces éstos deben centrarse en un tipo muy especifico de personas con características bien definidas.
    Resulta bastante útil la investigación porque además nos da un vistazo a la percepción real de los usuarios ante un sistema, nos permite ver cómo realmente los usuarios no están enterados de todas las capacidades del sistema y solo se centran en aceptarlo si los beneficios son mayores a los riesgos, en éste caso, ambas partes, tanto cuidadores como residentes le toman más valor a los beneficios obtenidos y a las facilidades obtenidas que a los riesgos, los cuales simplemente minimizan.
    Pienso que es un excelente ejemplo que puede


    Referencias

    Designing for ubiquity: the perception of privacy


    El paper aparece en: Pervasive Computing, IEEE, Volume: 2 , Issue: 2
     Tipo de producto: Journals & Magazines
    Página(s): 40 - 46
    Fecha de publicación: April-June 2003
    Autor: Richard Beckwith

    jueves, 2 de mayo de 2013

    [Lab VC] Actividad 7: Detección de polígonos


    Para ésta tarea se debieron programar las rutinas para detectar polígonos con base en las líneas rectas detectadas en la imagen. Para ello se utilizó la Transformada de Hough.


    Teoría

    Primeramente, los pasos necesarios para la detección son:
    • Trabajar con la imagen en escala de grises.
    • Detectar los bordes, altamente recomendable que los bordes sean continuos.
    • Separar los polígonos por su borde, es decir, agrupar los pixeles contiguos utilizando alguna técnica como BFS.
    • A cada lista de borders, aplicar la convolucion discreta, en este caso se elegieron 2 máscaras de Sobel
    • A partir de las matrices de gradientes obtenidas, calcular la pendiente local para cada pixel.
    • Agrupar los pixeles con la misma pendiente. Cada grupo representa un posible segmento, eliminar aquellos grupos que generan ruido, por ejemplo, si tienen pocos pixeles.
    • Ordenar los pixeles de cada segmento para obtener los puntos teóricos inicial y final.

    Práctica

    Las imagen utilizada para las pruebas fueron las siguientes:

    Original
    Binarizada
    Contornos

    La prueba realizada fue muy simple, detección de bordes e identificación del posible segmento, sin embargo podemos notar que se obtenía mucho ruido.
    Se cubren los requisitos de detectar bordes y agrupar los objetos por su borde, aplicar la convolución discreta para obtener las gradientes y calcular las pendientes, y de agrupar los segmentos por su pendiente.


    Resultados




    Sin embargo, aquí aplico a las pendientes la función floor al valor de la pendiente lo que parece limpiar un poco los resultados.



    Cabe mencionar que las lineas dibujadas corresponden a los segmentos detectados, se puede ver, por ejemplo, en el pentágono algunos segmentos detectados cubren en realidad 2 lados de la figura y en el caso del hexágono hasta 3 lados.

    Esta de mas decir que los resultados no fueron los esperados.


    Código


    En el repositorio encuentran la implementación completa en código, la carpeta marcada como Tarea 8.

    Referencias: