Seguridad en
Windows Mobile
Conferencias FIST Madrid, Marzo 2009




Alberto Moreno Tablado
Indice
• Introducción
• Bluetooth y sus mecanismos de seguridad
  – Salto de frecuencias vs. Sniffing Bluetooth
  – Emparejamiento vs. PIN Cracking
  – Autenticación y Autorización vs. BD_ADDR Spoofing
• Vectores de ataque Bluetooth
  – HTC / Windows Mobile OBEX FTP Directory Traversal
• Demo, concatenando formas de ataque
Estadísticas Smartphones




              Fuente: Forward Concepts (Feb 5, 2009)
Equipos Windows Mobile
• Windows Mobile Professional (PDAs táctiles)




• Windows Mobile Standard (Smartphones)
Factores de riesgo
• Consumo del $aldo
  – Llamadas de voz
  – Envío de SMS, MMS, …
  – Conexión a Internet
• Acceso a información confidencial



• Inutilización temporal del teléfono
  – Bloqueo, reinicio, desvíos de llamadas
Vías de ataque
Bluetooth
• ¿Qué es                        ?
  Es la especificación que define un estándar global de comunicaciones
    inalámbricas para redes de área personal que permite la
    transmisión de voz y datos entre diferentes equipos mediante un
    enlace de radiofrecuencia en entorno móviles y estáticos.

• Frecuencia de radio
  – 2.4 GHz, disponible en todo el mundo

• Topología de red
  –   Tecnología de redes PAN (Personal Area Network)
  –   Comunicación stand-alone a nivel mundial entre dos dispositivos
  –   Hasta 8 dispositivos se pueden conectar formando una Piconet
  –   La unión de varias Piconets se denomina Scatternet
Mecanismos de seguridad
•   Salto de frecuencias
•   Emparejamiento de dispositivos
•   Autenticación
•   Autorización
•   Cifrado

¿Es Bluetooth un estándar seguro?
Mecanismos de seguridad
• Salto de frecuencias
  – Se evitan interferencias con otras tecnologías inalámbricas
  – Los esclavos de una piconet se sincronizan con el maestro
  – Emplea la técnica FHSS (Frequency Hoping Spread Spectrum):
     • Divide la banda en 79 canales de longitud 1 MHz
     • Realiza 1600 saltos por segundo entre canales


       2.48

 Frecuencia
   (GHz)

       2.40
                                  Time Slot
En realidad…
Es posible conseguir la tabla de saltos
  – Durante el establecimiento de conexión a una piconet, el maestro
    genera una tabla pseudo-aleatoria con el patrón de saltos de
    frecuencia que utilizan los dispositivos que pertenecen a la piconet.
  – El intercambio de esta tabla de saltos desde el maestro al esclavo
    se realiza en un canal conocido del espectro de frecuencias.

Piconet

 Maestro                                                      Esclavo



                                              Atacante, obtiene la tabla
                                              de saltos y se sincroniza
Sniffing Bluetooth
       Cronología del sniffing en Bluetooth
2005     FTE desarrolla el primer sniffer comercial FTS4BT, precio 10,000$

 06



 07
         Max Moser publica un procedimiento para construir un sniffer a partir de un
           adaptador Bluetooth convencional utilizando el firmware de FTS4BT
         Andrea Bittau y Dominic Spill publican el paper Bluesniff
         Andrea Bittau desarrolla frontline para enviar comandos a un sniffer hardware
 08
         Drgr33n publica Blue|Smash, una suite para sniffing Bluetooth
Sniffing Bluetooth
Construir un sniffer Bluetooth
  – Hardware:
     • Chipset Cambridge Silicon Radio (CSR)
     • BC4 External or Flash. Si tiene Memoria ROM no vale.
  – Software:
     • bccmd: modificar la configuración del firmware
     • dfutool: flashear el adaptador y actualizar el firmware
     • Firmware airsnifferdev4*bc4.dfu extraído de FTS4BT*
Sniffing Bluetooth
1. Construir sniffer



2. Esperar al intercambio de tabla de saltos
3. Sniffar con frontline de Blue|Smash
Mecanismos de seguridad
• Emparejamiento de dispositivos
  – Emparejamiento ≈ Relación de confianza
  – Dos dispositivos sólo se pueden comunicar si están emparejados
  – Algoritmo ¿seguro?
     • Entrada: PIN + BD_ADDR de dispositivo + Núm aleatorio IN_RAND
     • Salida: Clave de enlace, utilizada para autenticación
En realidad…
Es posible crackear por fuerza bruta
  – Shaked y Wool publicaron un procedimiento criptológico teórico
    para crackear el algoritmo del emparejamiento Bluetooth
  – Básicamente, se pueden ir probando entradas por fuerza bruta
    hasta que los hashes generados coincidan con aquellos que se
    han capturado durante la sesión de sniffing.
  – Se necesita…
     • PIN (Se genera por fuerza bruta, aunque por lo general son 4 dígitos)
     • Direcciones BD_ADDR de los dispositivos emparejados (Se conoce)
     • Núm aleatorio IN_RAND que en realidad resulta no ser tan aleatorio,
       ¿depende en cierta manera del timestamp? (Se conoce el clock-offset)
  – Tiempos de respuesta en implementaciones prácticas P4 3.6GHz:
     • 0.24 secs en crackear un PIN de 4 dígitos (0.001 secs en FPGA)
     • 42 mins en crackear un PIN de 8 dígitos (10 secs en FPGA)
Bluetooth PIN Cracking
       Cronología del PIN Cracking
2003     Olly Whitehouse anuncia debilidades en la implementación del
            intercambio de claves para el emparejamiento Bluetooth
 04



 05      Shaked y Wool, teoría criptográfica para crackear el emparejamiento

 06      (Joshua Wright demuestra que es posible con su técnica Bluepinning)
         Thierry Zoller desarrolla BTCrack para Windows, permite crackear el
 07         PIN y la clave de enlace a partir de la captura del emparejamiento
         David Hulton publica btpincrack para proyecto OpenCiphers en Linux
 08

         Implementación FPGA de btpincrack / BTCrack
Bluetooth PIN Cracking
1. Sniffar durante el emparejamiento de dos dispositivos




2. Crackear la captura y obtener el PIN y la clave de enlace
Mecanismos de seguridad
• Autenticación
  – Es el proceso por el cual un dispositivo Bluetooth verifica su
    identidad en otro dispositivo para acceder a los servicios que ofrece
  – Esquema desafío / respuesta basado en la BD_ADDR y en la clave
    de enlace generada durante el emparejamiento de dispositivos




  En Windows Mobile,
    activarlo depende de
    1 ó 0 en el registro!
Mecanismos de seguridad
• Autorización
  – Es el proceso que determina los derechos que tiene un dispositivo
    Bluetooth para acceder a los servicios que ofrece un sistema
  – Se gestiona mediante una lista de dispositivos de confianza que
    determina la capacidad de acceso a los servicios
     • Dispositivos de confianza: acceso sin restricciones
     • Dispositivos no confiables: requiere autorización
Mecanismos de seguridad
• Autorización
  Por norma general, autenticado ≠ autorizado (Ejemplo, en Symbian)




  En Windows Mobile, dispositivo autenticado → dispositivo autorizado!
Mecanismos de seguridad
• Cifrado
  – Garantiza la confidencialidad de la información transmitida sobre
    un enlace Bluetooth
  – Implementación opcional, pero siempre tras una autenticación
  – Clave de cifrado basada en clave de enlace
En realidad…
Credenciales de seguridad en Bluetooth:
  – Autorización
     • Se basa en la BD_ADDR de dispositivo
     • Si existe en lista de dispositivos de confianza, queda autorizado
  – Autenticación
     • Se basa en la BD_ADDR de dispositivo + clave de enlace
     • Si la clave en enlace generada durante el emparejamiento con
       ese dispositivo coincide, queda autenticado

  ¿Qué pasa si un atacante suplanta la BD_ADDR de un
   dispositivo de confianza?
  ¿Y si tiene acceso a la clave de enlace de uno de los
   dispositivos emparejados?
BD_ADDR Spoofing
Permite suplantar la identidad de un dispositivo de confianza para
  atacar un teléfono y utilizar sus credenciales para acceder a perfiles
  que requieren autenticación y/o autorización


Se desarrolla en dos niveles:
• Suplantación de la dirección BD_ADDR
  de un dispositivo de confianza para
  acceder a perfiles que requieren
  autorización

• Suplantación de la dirección BD_ADDR
  y la clave de enlace generada durante el
  emparejamiento para acceder a perfiles
  que requieren autenticación
BD_ADDR Spoofing
• Suplantar la BD_ADD de un dispositivo de confianza




• Suplantar la clave de enlace (instalar en /var/lib/bluetooth)
       • Robar del registro de Windows, de MAC OS, de Linux, …
       • Capturar mediante sniffing del emparejamiento Bluetooth
Mecanismos de seguridad
•   Salto de frecuencias
•   Emparejamiento de dispositivos
•   Autenticación
•   Autorización
•   Cifrado

¿¿¿Es Bluetooth un estándar seguro???
Vectores de ataque
Perfiles Bluetooth: Definen los protocolos y
  características de los modelos de uso de Bluetooth
      Perfil de Puerto Serie
      Perfil de Acceso Telefónico a Redes
      Perfil de Auriculares
      Perfil de Pasarela de Audio
      Perfil de Acceso a Red
      Perfil de Transferencia de Archivos (OBEX FTP)
      Perfil de Carga de Objetos (OBEX PUSH)
      Perfil de Sincronización
      Perfil de Dispositivos de Interfaz Humana
Vectores de ataque
• Ejecución de Comandos AT
   Conexión al Perfil de Acceso Telefónico a Redes
     • Requiere autenticación y autorización
                Acceso a llamadas de voz
                Configuración de desvío de llamadas
  – Alcance
                Acceso a la agenda de contacto
                Acceso a mensajes SMS
Vectores de ataque
• Acceso a través de OBEX PUSH
    Conexión al Perfil de Carga de Objetos
     • Requiere autorización
  – Envío de archivos maliciosos, virus, SPAM, …
Vectores de ataque
• Acceso a través de OBEX FTP
    Conexión al Perfil de Transferencia de Archivos
     • Requiere autenticación y autorización
  – Subida y descarga de archivos, listado de directorios
HTC Directory Traversal
• Vulnerabilidad Directory Traversal en HTC
  – Fecha de descubrimiento: 19/01/2009 (CVE-2009-0244)
• Afecta el Servicio OBEX FTP (.dll de HTC)
• Teléfonos vulnerables:
  – HTC con Windows Mobile 6.1 Professional / Standard
  – HTC con Windows Mobile 6 Professional / Standard
• Teléfonos no vulnerables:
  – Windows Mobile 5 (No incluye Servicio OBEX FTP)
  – Teléfonos Windows Mobile 6.1 y 6 de otras marcas
HTC Directory Traversal
Supuestamente, sólo se puede acceder al
 directorio compartido por defecto
En realidad…
Se traga el mítico ../ para escalar directorios
HTC Directory Traversal
• Explorar directorios situados más allá de los
  límites de la carpeta compartida por defecto
  (incluida la tarjeta de almacenamiento)
HTC Directory Traversal
• Robo de
HTC Directory Traversal
• Subir archivos maliciosos, troyanos
Demo




              Sniffing del emparejamiento Bluetooth
                                BD_ADDR Spoofing
HTC / Windows Mobile OBEX FTP Directory Traversal
Recomendaciones
• Desactivar Bluetooth mientras no se utilice
  – Si no se puede, configurar en modo oculto (non discoverable)

• No aceptar conexiones de usuarios no confiables
  – Ni intentos de emparejamiento, ni intentos de autorización

• No aceptar archivos de dispositivos desconocidos
  – Ni aunque parezca que nos lo envía un hot spot de una marca comercial
  – Un atacante puede engañar y colar al usuario software malicioso fácilmente

• Eliminar entradas de emparejamientos en desuso
  – Suplantar la BD_ADDR de un dispositivo de confianza es algo trivial
  – Se pueden robar claves de enlace por ingeniería social u otros medios


• En definitiva, seguir un comportamiento prudente
¡Gracias!




            © 2009 Alberto Moreno Tablado
Creative Commons
                                            Attribution-NoDerivs 2.0
You are free:
     •    to copy, distribute, display, and perform this work
     •    to make commercial use of this work
Under the following conditions:

                                    Attribution. You must give the original author credit.



                                    No Derivate Works. You may not alter, transform, or build upon this
                                    work

For any reuse or distribution, you must make clear to others the license terms of this work.
Any of these conditions can be waived if you get permission from the author.
Your fair use and other rights are in no way affected by the above.


This work is licensed under the Creative Commons Attribution-NoDerivs License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nd/2.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Seguridad en Windows Mobile

  • 1.
    Seguridad en Windows Mobile ConferenciasFIST Madrid, Marzo 2009 Alberto Moreno Tablado
  • 2.
    Indice • Introducción • Bluetoothy sus mecanismos de seguridad – Salto de frecuencias vs. Sniffing Bluetooth – Emparejamiento vs. PIN Cracking – Autenticación y Autorización vs. BD_ADDR Spoofing • Vectores de ataque Bluetooth – HTC / Windows Mobile OBEX FTP Directory Traversal • Demo, concatenando formas de ataque
  • 3.
    Estadísticas Smartphones Fuente: Forward Concepts (Feb 5, 2009)
  • 4.
    Equipos Windows Mobile •Windows Mobile Professional (PDAs táctiles) • Windows Mobile Standard (Smartphones)
  • 5.
    Factores de riesgo •Consumo del $aldo – Llamadas de voz – Envío de SMS, MMS, … – Conexión a Internet • Acceso a información confidencial • Inutilización temporal del teléfono – Bloqueo, reinicio, desvíos de llamadas
  • 6.
  • 7.
    Bluetooth • ¿Qué es ? Es la especificación que define un estándar global de comunicaciones inalámbricas para redes de área personal que permite la transmisión de voz y datos entre diferentes equipos mediante un enlace de radiofrecuencia en entorno móviles y estáticos. • Frecuencia de radio – 2.4 GHz, disponible en todo el mundo • Topología de red – Tecnología de redes PAN (Personal Area Network) – Comunicación stand-alone a nivel mundial entre dos dispositivos – Hasta 8 dispositivos se pueden conectar formando una Piconet – La unión de varias Piconets se denomina Scatternet
  • 8.
    Mecanismos de seguridad • Salto de frecuencias • Emparejamiento de dispositivos • Autenticación • Autorización • Cifrado ¿Es Bluetooth un estándar seguro?
  • 9.
    Mecanismos de seguridad •Salto de frecuencias – Se evitan interferencias con otras tecnologías inalámbricas – Los esclavos de una piconet se sincronizan con el maestro – Emplea la técnica FHSS (Frequency Hoping Spread Spectrum): • Divide la banda en 79 canales de longitud 1 MHz • Realiza 1600 saltos por segundo entre canales 2.48 Frecuencia (GHz) 2.40 Time Slot
  • 10.
    En realidad… Es posibleconseguir la tabla de saltos – Durante el establecimiento de conexión a una piconet, el maestro genera una tabla pseudo-aleatoria con el patrón de saltos de frecuencia que utilizan los dispositivos que pertenecen a la piconet. – El intercambio de esta tabla de saltos desde el maestro al esclavo se realiza en un canal conocido del espectro de frecuencias. Piconet Maestro Esclavo Atacante, obtiene la tabla de saltos y se sincroniza
  • 11.
    Sniffing Bluetooth Cronología del sniffing en Bluetooth 2005 FTE desarrolla el primer sniffer comercial FTS4BT, precio 10,000$ 06 07 Max Moser publica un procedimiento para construir un sniffer a partir de un adaptador Bluetooth convencional utilizando el firmware de FTS4BT Andrea Bittau y Dominic Spill publican el paper Bluesniff Andrea Bittau desarrolla frontline para enviar comandos a un sniffer hardware 08 Drgr33n publica Blue|Smash, una suite para sniffing Bluetooth
  • 12.
    Sniffing Bluetooth Construir unsniffer Bluetooth – Hardware: • Chipset Cambridge Silicon Radio (CSR) • BC4 External or Flash. Si tiene Memoria ROM no vale. – Software: • bccmd: modificar la configuración del firmware • dfutool: flashear el adaptador y actualizar el firmware • Firmware airsnifferdev4*bc4.dfu extraído de FTS4BT*
  • 13.
    Sniffing Bluetooth 1. Construirsniffer 2. Esperar al intercambio de tabla de saltos 3. Sniffar con frontline de Blue|Smash
  • 14.
    Mecanismos de seguridad •Emparejamiento de dispositivos – Emparejamiento ≈ Relación de confianza – Dos dispositivos sólo se pueden comunicar si están emparejados – Algoritmo ¿seguro? • Entrada: PIN + BD_ADDR de dispositivo + Núm aleatorio IN_RAND • Salida: Clave de enlace, utilizada para autenticación
  • 15.
    En realidad… Es posiblecrackear por fuerza bruta – Shaked y Wool publicaron un procedimiento criptológico teórico para crackear el algoritmo del emparejamiento Bluetooth – Básicamente, se pueden ir probando entradas por fuerza bruta hasta que los hashes generados coincidan con aquellos que se han capturado durante la sesión de sniffing. – Se necesita… • PIN (Se genera por fuerza bruta, aunque por lo general son 4 dígitos) • Direcciones BD_ADDR de los dispositivos emparejados (Se conoce) • Núm aleatorio IN_RAND que en realidad resulta no ser tan aleatorio, ¿depende en cierta manera del timestamp? (Se conoce el clock-offset) – Tiempos de respuesta en implementaciones prácticas P4 3.6GHz: • 0.24 secs en crackear un PIN de 4 dígitos (0.001 secs en FPGA) • 42 mins en crackear un PIN de 8 dígitos (10 secs en FPGA)
  • 16.
    Bluetooth PIN Cracking Cronología del PIN Cracking 2003 Olly Whitehouse anuncia debilidades en la implementación del intercambio de claves para el emparejamiento Bluetooth 04 05 Shaked y Wool, teoría criptográfica para crackear el emparejamiento 06 (Joshua Wright demuestra que es posible con su técnica Bluepinning) Thierry Zoller desarrolla BTCrack para Windows, permite crackear el 07 PIN y la clave de enlace a partir de la captura del emparejamiento David Hulton publica btpincrack para proyecto OpenCiphers en Linux 08 Implementación FPGA de btpincrack / BTCrack
  • 17.
    Bluetooth PIN Cracking 1.Sniffar durante el emparejamiento de dos dispositivos 2. Crackear la captura y obtener el PIN y la clave de enlace
  • 18.
    Mecanismos de seguridad •Autenticación – Es el proceso por el cual un dispositivo Bluetooth verifica su identidad en otro dispositivo para acceder a los servicios que ofrece – Esquema desafío / respuesta basado en la BD_ADDR y en la clave de enlace generada durante el emparejamiento de dispositivos En Windows Mobile, activarlo depende de 1 ó 0 en el registro!
  • 19.
    Mecanismos de seguridad •Autorización – Es el proceso que determina los derechos que tiene un dispositivo Bluetooth para acceder a los servicios que ofrece un sistema – Se gestiona mediante una lista de dispositivos de confianza que determina la capacidad de acceso a los servicios • Dispositivos de confianza: acceso sin restricciones • Dispositivos no confiables: requiere autorización
  • 20.
    Mecanismos de seguridad •Autorización Por norma general, autenticado ≠ autorizado (Ejemplo, en Symbian) En Windows Mobile, dispositivo autenticado → dispositivo autorizado!
  • 21.
    Mecanismos de seguridad •Cifrado – Garantiza la confidencialidad de la información transmitida sobre un enlace Bluetooth – Implementación opcional, pero siempre tras una autenticación – Clave de cifrado basada en clave de enlace
  • 22.
    En realidad… Credenciales deseguridad en Bluetooth: – Autorización • Se basa en la BD_ADDR de dispositivo • Si existe en lista de dispositivos de confianza, queda autorizado – Autenticación • Se basa en la BD_ADDR de dispositivo + clave de enlace • Si la clave en enlace generada durante el emparejamiento con ese dispositivo coincide, queda autenticado ¿Qué pasa si un atacante suplanta la BD_ADDR de un dispositivo de confianza? ¿Y si tiene acceso a la clave de enlace de uno de los dispositivos emparejados?
  • 23.
    BD_ADDR Spoofing Permite suplantarla identidad de un dispositivo de confianza para atacar un teléfono y utilizar sus credenciales para acceder a perfiles que requieren autenticación y/o autorización Se desarrolla en dos niveles: • Suplantación de la dirección BD_ADDR de un dispositivo de confianza para acceder a perfiles que requieren autorización • Suplantación de la dirección BD_ADDR y la clave de enlace generada durante el emparejamiento para acceder a perfiles que requieren autenticación
  • 24.
    BD_ADDR Spoofing • Suplantarla BD_ADD de un dispositivo de confianza • Suplantar la clave de enlace (instalar en /var/lib/bluetooth) • Robar del registro de Windows, de MAC OS, de Linux, … • Capturar mediante sniffing del emparejamiento Bluetooth
  • 25.
    Mecanismos de seguridad • Salto de frecuencias • Emparejamiento de dispositivos • Autenticación • Autorización • Cifrado ¿¿¿Es Bluetooth un estándar seguro???
  • 26.
    Vectores de ataque PerfilesBluetooth: Definen los protocolos y características de los modelos de uso de Bluetooth Perfil de Puerto Serie Perfil de Acceso Telefónico a Redes Perfil de Auriculares Perfil de Pasarela de Audio Perfil de Acceso a Red Perfil de Transferencia de Archivos (OBEX FTP) Perfil de Carga de Objetos (OBEX PUSH) Perfil de Sincronización Perfil de Dispositivos de Interfaz Humana
  • 27.
    Vectores de ataque •Ejecución de Comandos AT Conexión al Perfil de Acceso Telefónico a Redes • Requiere autenticación y autorización Acceso a llamadas de voz Configuración de desvío de llamadas – Alcance Acceso a la agenda de contacto Acceso a mensajes SMS
  • 28.
    Vectores de ataque •Acceso a través de OBEX PUSH Conexión al Perfil de Carga de Objetos • Requiere autorización – Envío de archivos maliciosos, virus, SPAM, …
  • 29.
    Vectores de ataque •Acceso a través de OBEX FTP Conexión al Perfil de Transferencia de Archivos • Requiere autenticación y autorización – Subida y descarga de archivos, listado de directorios
  • 30.
    HTC Directory Traversal •Vulnerabilidad Directory Traversal en HTC – Fecha de descubrimiento: 19/01/2009 (CVE-2009-0244) • Afecta el Servicio OBEX FTP (.dll de HTC) • Teléfonos vulnerables: – HTC con Windows Mobile 6.1 Professional / Standard – HTC con Windows Mobile 6 Professional / Standard • Teléfonos no vulnerables: – Windows Mobile 5 (No incluye Servicio OBEX FTP) – Teléfonos Windows Mobile 6.1 y 6 de otras marcas
  • 31.
    HTC Directory Traversal Supuestamente,sólo se puede acceder al directorio compartido por defecto
  • 32.
    En realidad… Se tragael mítico ../ para escalar directorios
  • 33.
    HTC Directory Traversal •Explorar directorios situados más allá de los límites de la carpeta compartida por defecto (incluida la tarjeta de almacenamiento)
  • 34.
  • 35.
    HTC Directory Traversal •Subir archivos maliciosos, troyanos
  • 36.
    Demo Sniffing del emparejamiento Bluetooth BD_ADDR Spoofing HTC / Windows Mobile OBEX FTP Directory Traversal
  • 37.
    Recomendaciones • Desactivar Bluetoothmientras no se utilice – Si no se puede, configurar en modo oculto (non discoverable) • No aceptar conexiones de usuarios no confiables – Ni intentos de emparejamiento, ni intentos de autorización • No aceptar archivos de dispositivos desconocidos – Ni aunque parezca que nos lo envía un hot spot de una marca comercial – Un atacante puede engañar y colar al usuario software malicioso fácilmente • Eliminar entradas de emparejamientos en desuso – Suplantar la BD_ADDR de un dispositivo de confianza es algo trivial – Se pueden robar claves de enlace por ingeniería social u otros medios • En definitiva, seguir un comportamiento prudente
  • 38.
    ¡Gracias! © 2009 Alberto Moreno Tablado
  • 39.
    Creative Commons Attribution-NoDerivs 2.0 You are free: • to copy, distribute, display, and perform this work • to make commercial use of this work Under the following conditions: Attribution. You must give the original author credit. No Derivate Works. You may not alter, transform, or build upon this work For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the author. Your fair use and other rights are in no way affected by the above. This work is licensed under the Creative Commons Attribution-NoDerivs License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.