La tecnología de síntesis de voz ha avanzado significativamente en los últimos años, abriendo nuevas posibilidades tanto en aplicaciones legítimas como en vulnerabilidades de seguridad. Los avances recientes incluyen modelos basados en redes generativas adversariales, como SEGAN, y redes neuronales profundas como WaveNet. Estas innovaciones permiten generar discursos que suenan de manera natural, e incluso música, transformando la forma en que interactuamos con los dispositivos controlados por voz. A medida que estos modelos se hacen más sofisticados, los riesgos asociados también aumentan.
Por ejemplo, WaveNet, desarrollado por DeepMind, se distingue por su capacidad para generar ondas sonoras que imitan la voz humana de manera precisa. Este sistema es tan avanzado que incluso ha sido capaz de generar voces personalizadas tras analizar solo unos segundos de grabación de un hablante objetivo. Este enfoque, conocido como "aprendizaje sin ejemplos previos" (zero-shot learning), muestra cómo los modelos entrenados con vastas bases de datos pueden producir voz que suena completamente natural. Sin embargo, aunque estas innovaciones tienen un enorme potencial en términos de usabilidad y accesibilidad, también presentan nuevos vectores de ataque.
Uno de los riesgos más preocupantes son los ataques que manipulan la voz generada para controlar dispositivos sin que los usuarios lo detecten. Estos ataques pueden implicar el uso de comandos de voz modulados sobre portadores ultrasónicos, que son inaudibles para los humanos, pero pueden ser interpretados por los sistemas de reconocimiento de voz de los dispositivos. Ataques como DolphinAttack y Lyexa se basan precisamente en estas técnicas, permitiendo que un atacante controle dispositivos sin ser detectado. Para llevar a cabo estos ataques, no es necesario emitir sonidos que el oído humano pueda escuchar; basta con que la señal sea procesada correctamente por el dispositivo objetivo.
Otro tipo de ataque, menos conocido pero igualmente peligroso, es el uso de luz modulada para inyectar comandos maliciosos en los dispositivos controlados por voz. Investigaciones como las de Sugawara et al. han demostrado que es posible dirigir luz modulada con la amplitud correcta hacia el micrófono de un dispositivo, lo que puede generar órdenes incluso a distancias superiores a 100 metros. De manera similar, otros enfoques se sirven de transductores piezoeléctricos que envían ondas ultrasónicas a través de materiales sólidos, lo que permite inyectar comandos de voz en los sistemas sin que el ataque sea detectado por los humanos.
Además de los ataques acústicos, los ataques de "ruido adversarial" han ganado relevancia. Estos se aprovechan de las vulnerabilidades de los sistemas de reconocimiento automático de voz (ASR) y verificación automática del hablante. El estudio de Abdullah et al. analizó cómo los atacantes pueden modificar señales de voz con la ayuda de técnicas de aprendizaje automático para evadir las medidas de seguridad. De esta forma, los atacantes pueden alterar audios para que sean malinterpretados por los sistemas de reconocimiento, transformando lo que parece un comando legítimo en una orden completamente diferente.
Otro aspecto que no debe ser pasado por alto es la necesidad de un "punto de apoyo inicial" para ejecutar estos ataques. A pesar de la sofisticación de las técnicas descritas, todas requieren alguna forma de acceso inicial al dispositivo. En muchos casos, los ataques dependen de tener un altavoz cerca del dispositivo objetivo, ya sea ultrasónico o convencional, para garantizar que el comando malicioso sea recibido correctamente. También existen ataques que emplean ingeniería social, como el engaño de los usuarios para que activaren sin querer una función maliciosa del sistema.
Es esencial comprender que, aunque el acceso inicial es un requisito para los ataques, la forma en que se lleva a cabo el ataque no reduce la gravedad del riesgo. Por ejemplo, muchos ataques requieren que el dispositivo sea manipulado de manera específica, como acercando un dispositivo especializado o utilizando un altavoz ultrasónico. Sin embargo, en algunos escenarios, la intervención del usuario es clave para el éxito del ataque, como en el caso de las aplicaciones maliciosas que se hacen pasar por funciones legítimas de control por voz.
A pesar de las amenazas, los dispositivos controlados por voz continúan siendo una parte integral de muchos hogares inteligentes modernos. Estos dispositivos, al ofrecer una interfaz de usuario tan accesible, presentan una gran ventaja en términos de comodidad y accesibilidad. Sin embargo, también requieren una revisión constante de sus protocolos de seguridad para evitar posibles vulnerabilidades. A medida que los ataques y técnicas se hacen más sofisticados, se hace imprescindible desarrollar marcos de seguridad robustos y realizar investigaciones continuas para garantizar que los dispositivos controlados por voz operen de manera segura en un entorno cada vez más interconectado.
Es fundamental que los usuarios, desarrolladores y fabricantes comprendan la naturaleza de estos riesgos y trabajen juntos para mejorar las medidas de protección. Los avances en la tecnología de voz pueden traer enormes beneficios, pero estos avances deben ir acompañados de esfuerzos igualmente intensivos para proteger la privacidad y la seguridad de los usuarios.
¿Cómo se formaliza el conocimiento y las capacidades de actores en el modelo de amenaza HAVOC?
En el modelo presentado, la distinción entre conocimiento y capacidad se formaliza mediante una notación que separa posesión de conocimiento (dobles corchetes) y ejecución de acciones (corchetes simples). Alice representa al usuario legítimo y S a su conjunto de secretos; por tanto, .[[Alice]]s ∀s ∈ S expresa que Alice conoce todos sus secretos. Eve, la adversaria, inicialmente carece de ese conocimiento: .¬ [[Eve]]s ∀s ∈ S. Sin embargo, Eve puede conocer el objetivo físico o lógico de su ataque; en particular, puede preseleccionar uno o varios VPAs como blanco, formalizado como .[[Eve]]p. Esta diferencia entre conocer el dispositivo objetivo y desconocer los secretos almacenados en él es central para clasificar vectores de ataque que explotan la interfaz por voz sin disponer de credenciales previas.
Respecto al reconocimiento automático del habla (ASR) embebido en los dispositivos, el trabajo adopta una hipótesis de caja negra: ni Alice ni Eve conocen los detalles del modelo de aprendizaje automático subyacente. Siguiendo la caracterización de Biggio y Roli, el espacio de conocimiento del adversario sobre un sistema de ML se compone de D (datos de entrenamiento), X (conjunto de características), f (algoritmo de aprendizaje) y w (hiperparámetros). La formalización .¬ [[Alice, Eve]] D,X,f,w determina que ambos actores desconocen esos elementos, lo que contrasta con modelos de ataque de caja blanca (por ejemplo, Carlini y Wagner) donde la adversaria posee . en su totalidad. La suposición de caja negra es más realista para escenarios donde Eve pretende atacar múltiples dispositivos comerciales distintos.
Las capacidades de los actores se definen como acciones sobre el VPA .p. Una acción ejecutada por un actor .a se denota .[a] f(arg1,…,argn). Alice puede emitir comandos de voz .cmd al dispositivo: .∀p, cmd ∈ C. [Alice]giveCommand(p, cmd) =⇒ [[p]]cmd, lo que implica que .p adquiere conocimiento de los comandos en C. Cuando Alice comparte un secreto s con .p (por verificación o configuración), se formaliza .∀p, s. [Alice]shareSecret(p, s) =⇒ [[p]]s; la implicación admite tanto la confirmación de un secreto ya conocido por .p como la incorporación de información nueva (por ejemplo, una dirección de envío). Alice también puede invocar aplicaciones vía voz: .∀p, app. [Alice]run(p, app, method) ∧ method == voice =⇒ [[p]]app, recalcando que la vía de entrada (canal de voz) condiciona la ganancia de conocimiento por parte de .p.
La presencia física de Alice respecto al dispositivo afecta la capacidad de percibir salidas acústicas: si .[p]say(output) es la función hablada, entonces ∀p, output. [Alice]away(p) =⇒ ¬[[Alice]][p]say(output) y ∀p, output. ¬[Alice]away(p) =⇒ [[Alice]][p]say(output). Se adopta una distancia umbral de 7 m para definir el estado away, lo que tiene implicaciones prácticas sobre recordatorios, anuncios y cualquier salida que pueda ser aprovechada por un atacante para provocar acciones no observadas por el usuario.
Eve, en función de .access, puede estar en distintos niveles de interacción con .p. Si .access == none, Eve puede desconocer tanto la identidad de Alice como la ubicación de .p; con .access == temporary conoce la identidad y la localización temporal; con .access == proximal dispone de acceso cercano y con ello de mayores oportunidades de influencia directa sobre el dispositivo. Además, Eve puede desplegar malware o habilidades maliciosas (por ejemplo, una “skill” de música maliciosa) que, si es activada por usuarios o por el propio dispositivo, compromete múltiples instancias que abran esa skill. La distinción entre conocimiento del objetivo (.[[Eve]]p) y desconocimiento de los secretos de la víctima (.¬ [[Eve]]s) explica por qué muchos ataques por voz se diseñan para inducir al VPA a revelar o ejecutar funciones sin necesidad de conocer credenciales previas.
¿Cómo Mitigar los Ataques de Suplantación de Voz en Dispositivos Controlados por Voz?
El desarrollo de medidas efectivas contra los ataques de suplantación de voz constituye una parte fundamental del proceso de seguridad ofensiva. En capítulos anteriores, se exploraron diversos tipos de ataques dirigidos a dispositivos controlados por voz, que incluyen desde altavoces inteligentes hasta teléfonos Android y portátiles con Windows. Entre las defensas más conocidas y utilizadas actualmente se encuentra la detección de vitalidad, es decir, la capacidad de determinar si un comando proviene de un usuario humano genuino o de un dispositivo de reproducción. Sin embargo, este capítulo señala que las técnicas de detección de vitalidad no pueden aplicarse de manera universal a todos los dispositivos controlados por voz en todos los contextos reales. En este sentido, surge una limitación significativa para los usuarios con discapacidades severas del habla, quienes dependen de sistemas de Comunicación Aumentativa y Alternativa (CAA), y en particular de los Dispositivos de Generación de Voz (SGD), para interactuar con otros y operar dispositivos inteligentes. Estos dispositivos, especializados en generar voces sintéticas, permiten la comunicación para personas con dificultades en el habla. La implementación generalizada de la detección de vitalidad podría bloquear inadvertidamente la capacidad de estos usuarios para interactuar con sus dispositivos controlados por voz, creando así una barrera de accesibilidad. Además, las medidas destinadas a mitigar ataques específicos de suplantación de voz, como los ataques de autoactivación, no protegen adecuadamente a todas las categorías de dispositivos. Un ejemplo claro es el ataque AvA, clasificado con una severidad crítica en la escala CVSS con un puntaje de 9.8, el cual sigue sin contar con una mitigación efectiva contra su explotación a través de Bluetooth, a pesar de su gravedad.
A continuación, se analiza la forma en que diversas soluciones de mitigación se abordan en la literatura actual y cómo estas pueden no siempre ajustarse a las necesidades de todos los usuarios, debido a la complejidad y los inconvenientes que algunos de estos métodos imponen.
Medidas Comunes contra los Ataques de Suplantación de Voz
En esta sección, se presentan las medidas más comúnmente discutidas en la literatura, que pueden aplicarse a los dispositivos controlados por voz para mitigar los ataques de suplantación de voz, independientemente del vector de ataque o la carga utilizada.
Detección de Vitalidad
Las contramedidas de detección de vitalidad tienen como objetivo verificar si un comando proviene de un usuario genuino o ha sido generado artificialmente, como en el caso de un comando suplantado proveniente de un altavoz cercano. Un ejemplo de esto es ArrayID, un sistema de detección de vitalidad pasiva, ligero y eficiente, que aprovecha el diseño único de los micrófonos circulares integrados en los altavoces inteligentes para crear una "huella" de la array del micrófono, eficaz incluso bajo cambios ambientales o movimiento del usuario. Otros enfoques incluyen el análisis de las diferencias en las ondas sonoras generadas por altavoces electrónicos en comparación con las voces humanas orgánicas, como se observa en el trabajo de Blue et al.
Sin embargo, recientes descubrimientos han revelado que algunas técnicas de detección de vitalidad, como Void, pueden ser eludidas mediante herramientas simples, como hablar a través de un tubo, lo que genera preocupaciones sobre la vulnerabilidad de otros métodos de detección de vitalidad a ataques igualmente sencillos.
Verificación Automática del Habla
Los sistemas de verificación automática del habla (ASV) tienen como objetivo determinar si un comando proviene de un usuario reconocido. Por ejemplo, en las competiciones ASVspoof, se presentan soluciones para detectar audios suplantados utilizando conjuntos de datos fijos. Una de las soluciones más exitosas fue ASSERT, que emplea redes de redes residuales y redes de excitación-squeeze. En ediciones posteriores, se exploraron redes neuronales profundas y técnicas como las redes residuales combinadas con redes neuronales convolucionales, para mejorar la resiliencia ante ataques de suplantación de voz.
Supresión de Palabras de Despertar Autogeneradas
La supresión de palabras de despertar autogeneradas asegura que los comandos provenientes de los propios altavoces del dispositivo sean ignorados, similar a la sanitización de entradas en el desarrollo de código seguro. Esto puede lograrse mediante la implementación de sistemas de detección de palabras de despertar en la reproducción de audio generada por el propio dispositivo. Sin embargo, este enfoque tiene limitaciones. Para los dispositivos ya vendidos, la modificación del hardware no es viable, lo que obliga a utilizar soluciones basadas en software. Aunque las actualizaciones de software podrían introducir tales características en algunos dispositivos, las limitaciones de recursos en dispositivos inteligentes pueden dificultar su implementación efectiva.
Consideraciones Adicionales
Es fundamental comprender que las medidas de seguridad contra los ataques de suplantación de voz no pueden aplicarse de manera uniforme para todos los usuarios y dispositivos. Las personas con discapacidades del habla que dependen de dispositivos de generación de voz para interactuar con tecnologías controladas por voz podrían encontrar barreras significativas si se implementan soluciones como la detección de vitalidad sin tener en cuenta sus necesidades. Además, aunque las soluciones técnicas como la verificación del habla o la detección de vitalidad son prometedoras, no son infalibles y pueden ser vulnerables a ataques sencillos, lo que resalta la necesidad de seguir desarrollando tecnologías más robustas y accesibles. Por lo tanto, la evolución de las tecnologías de protección frente a los ataques de suplantación de voz debe considerar no solo la seguridad técnica, sino también la accesibilidad y la usabilidad para diferentes tipos de usuarios.
¿Cómo se genera y procesa un conjunto de datos de audio para clasificar comandos en sistemas inteligentes?
El proceso de creación de conjuntos de datos de audio para clasificar comandos de voz en dispositivos inteligentes requiere una planificación meticulosa y una ejecución precisa, dada la complejidad del entorno en el que interactúan los usuarios. Este desafío se ve incrementado cuando se incluyen muestras de audio con ruido adversarial, lo cual puede alterar el rendimiento del sistema de reconocimiento de voz. En este contexto, se generaron muestras de audio que incluyen ruido adversarial, con la finalidad de evaluar la efectividad de una red neuronal para identificar comandos de voz a pesar de la presencia de interferencias.
Para la creación de las muestras adversariales, se utilizó una herramienta llamada Devil’s Whisper, disponible en Dockerhub, que permite generar ruido adversarial insertado en canciones preexistentes. Aunque no se reentrenó el modelo ni se introdujeron nuevas canciones, la herramienta facilitó la creación de muestras utilizando canciones y comandos ya disponibles en la plataforma. Este tipo de ruido es imperceptible para el oído humano pero puede tener un impacto significativo en la capacidad de los dispositivos inteligentes para reconocer comandos de voz correctamente.
El proceso de generación y grabación de audio fue relativamente sencillo. Se produjeron 10 muestras para cada categoría, variando las tasas de muestreo y utilizando el formato WAV, lo que permitió obtener 70 muestras de audio, cada una con una duración promedio de 6 segundos. Aunque 70 muestras parecen una cantidad reducida en comparación con otros conjuntos de datos, como los del ASVSpoof 2019, cuyo tamaño alcanza hasta 83,700 muestras, el objetivo era comprobar la capacidad de la solución propuesta para clasificar comandos con un conjunto limitado de datos.
El procedimiento de grabación del audio involucró varias etapas. Primero, se descargaron archivos de audio de diversas fuentes como podcasts, canciones y programas, garantizando diversidad en las muestras. Posteriormente, se dividieron los archivos de audio en segmentos más cortos, ya que los comandos de voz típicamente tienen una duración breve. Tras seleccionar los archivos adecuados, se registraron los comandos de voz, ya sea reproduciendo un archivo de audio previamente malicioso o pidiendo a un usuario real que emitiese un comando de voz mientras se reproducía el audio. Cada archivo grabado fue sincronizado con su archivo de audio correspondiente, ajustando los tiempos de grabación para asegurar la precisión del proceso. Además, se estableció un control sobre el ruido de fondo, manteniéndolo constante en 20 dB para minimizar su interferencia.
Una vez que las muestras de audio fueron registradas, se implementaron técnicas de aumento de datos para mejorar el rendimiento del sistema de clasificación. Estas técnicas consisten en modificar los archivos de audio originales de manera controlada para generar muestras adicionales. En este caso, se aplicaron varias transformaciones: aumento y disminución de velocidad, cambios en la tonalidad y enmascarado de frecuencias. Por ejemplo, se aumentó la velocidad de reproducción en un 20%, se disminuyó en un 20% y se modificó la tonalidad en dos semitonos hacia arriba o hacia abajo. Además, se aplicaron máscaras de frecuencia a las espectrografías de Mel para eliminar información dentro de rangos de frecuencia seleccionados aleatoriamente, lo que permite generar muestras únicas a partir de los mismos archivos de audio originales.
El uso de estas técnicas de aumento resultó en la expansión del conjunto de datos a 420 muestras, que fueron divididas entre entrenamiento y validación. La mitad de las muestras se destinaron al entrenamiento de la red neuronal, mientras que las demás se reservaron para la validación del modelo. En este contexto, el conjunto de datos se dividió en muestras benignas y maliciosas, con el fin de permitir la evaluación precisa del sistema. Además, las muestras aumentadas solo se utilizaron para el entrenamiento y no para la validación, para evitar sesgos en los resultados.
La extracción de Mel-Spectrogramas de las muestras de audio constituye un paso crucial en el procesamiento de los datos. Aunque se pueden usar archivos de audio crudos para entrenar modelos de redes neuronales, investigaciones previas han demostrado que los Mel-Spectrogramas, que representan la distribución de frecuencias en el tiempo, son más efectivos para tareas relacionadas con series temporales. Estos espectrogramas prestan más atención a las frecuencias audibles por el oído humano y menos a sonidos fuera del rango perceptible, como los infrasonidos y ultrasonidos. Así, las muestras de audio que contienen diferentes rangos de frecuencia pueden ser comparadas más fácilmente si se enfocan en las frecuencias dentro del rango audible. Los Mel-Spectrogramas resultantes fueron redimensionados a un tamaño uniforme, lo que permitió una comparación consistente entre diferentes muestras de audio.
Es importante señalar que el proceso de creación de estos conjuntos de datos no se limita únicamente a la recopilación y modificación de muestras. La estructura del conjunto de datos debe ser cuidadosamente equilibrada, especialmente cuando se incluyen muestras adversariales, para garantizar que el modelo entrenado no se sesgue hacia un tipo específico de muestra. Por ejemplo, las muestras maliciosas deben ser distribuidas de manera que su representación no sea exagerada en el conjunto de entrenamiento, lo que podría afectar la capacidad del modelo para generalizar correctamente.
Además, la comparación con otros métodos existentes en la detección de anomalías, como las técnicas de Anomaly Detection (AD), resalta la complejidad de entrenar modelos en escenarios de datos desequilibrados. Mientras que las técnicas tradicionales de detección de anomalías suelen entrenarse solo con muestras benignas, en el caso de los modelos de clasificación de comandos de voz, es esencial incorporar tanto muestras benignas como maliciosas para evaluar correctamente la capacidad del sistema para detectar comandos adversariales sin falsear los resultados.
¿Cómo proteger tus dispositivos inteligentes de comandos auto-generados?
El auge de los dispositivos inteligentes ha transformado la manera en que interactuamos con la tecnología. Asistentes de voz como Alexa, Google Assistant y Siri se han integrado profundamente en nuestros hogares, permitiendo controlar sistemas de iluminación, música, termostatos y más, todo con la simple acción de emitir un comando. Sin embargo, este mismo avance presenta riesgos asociados, principalmente con el tema de la seguridad y la protección frente a comandos auto-generados. Los dispositivos de voz son susceptibles a ser manipulados por diversos métodos de ataques, que explotan sus vulnerabilidades inherentes para ejecutar acciones no autorizadas.
El fenómeno de los "comandos auto-generados" se refiere a la capacidad de un atacante para engañar al dispositivo inteligente para que ejecute una acción a través de comandos emitidos por la misma unidad o por fuentes externas. Esto puede ocurrir a través de la manipulación de las señales de voz, lo que permite activar dispositivos sin el consentimiento del usuario. En este sentido, la detección de comandos auto-generados es crucial para prevenir que los asistentes de voz ejecuten tareas maliciosas o no deseadas.
Una de las soluciones más prometedoras es el uso de redes neuronales que emplean características acústicas para detectar patrones de sonido anómalos. Este enfoque se ha popularizado en los últimos años debido a su capacidad para diferenciar entre voces legítimas y sonidos que pueden ser artificialmente generados o manipulados. Estas redes de detección de anomalías acústicas no solo se aplican a la detección de voz humana, sino que también tienen aplicaciones en la identificación de sonidos mecánicos o de máquinas, lo cual expande su utilidad en otros dispositivos inteligentes.
Además, el concepto de "autenticación continua" para asistentes de voz se está implementando cada vez más. Este sistema trabaja identificando las características únicas de la voz de un usuario y verificando de manera constante su autenticidad durante la interacción. Mediante este proceso, se puede garantizar que la voz que está activando el dispositivo es realmente la de la persona autorizada.
Sin embargo, el reto de proteger estos dispositivos no solo recae en la voz, sino también en el hardware que los soporta. Un análisis detallado de la estructura interna de estos dispositivos, como lo hacen los desmontajes técnicos (teardowns), puede ayudar a identificar áreas vulnerables y a sugerir mejoras en el diseño que dificulten los intentos de manipulaciones externas. Por ejemplo, en el caso de los modelos de Echo Dot de Amazon, se puede observar cómo la integración de micrófonos y sistemas de detección de voz puede ser optimizada para bloquear intentos de activación no deseados.
Por otro lado, la detección de ataques también está mejorando con el uso de técnicas de aprendizaje profundo y redes neuronales convolucionales. Estas redes no solo buscan identificar las características de la voz, sino también los patrones de comportamiento que podrían indicar la presencia de un ataque. El desarrollo de técnicas de "antispoofing" (anti-suplantación) se está intensificando con el fin de evitar que comandos maliciosos, ya sea provenientes de una grabación o de una voz sintética, sean procesados como válidos.
Es relevante también comprender cómo los avances en la detección de spoofing afectan el diseño y la implementación de los sistemas de verificación de voz en dispositivos inteligentes. A través del análisis de los métodos de entrenamiento y validación de estos sistemas, se puede obtener una visión más clara de sus fortalezas y debilidades. Un sistema robusto no solo debe detectar la voz humana, sino también reconocer cuando una grabación o una voz generada artificialmente está intentando emular un comando legítimo.
A medida que estos sistemas evolucionan, es esencial que los usuarios también comprendan los límites de las tecnologías de protección. Ningún sistema es 100% infalible, y aunque los avances en la seguridad de los asistentes de voz son impresionantes, los atacantes también están perfeccionando sus métodos. Por esta razón, además de las soluciones tecnológicas, los usuarios deben estar conscientes de las mejores prácticas de seguridad, como el uso de contraseñas seguras para las cuentas asociadas, la desactivación de comandos automáticos cuando no son necesarios y la actualización periódica del firmware del dispositivo.
En conclusión, la protección de los dispositivos inteligentes frente a comandos auto-generados es una tarea multidimensional que involucra tanto mejoras tecnológicas como buenas prácticas por parte del usuario. A medida que la inteligencia artificial y el aprendizaje automático continúan desarrollándose, es probable que surjan nuevas soluciones que hagan estos sistemas más seguros y menos susceptibles a manipulaciones.
¿Cómo la pandemia global reconfiguró las políticas de guerra, control y opresión?
¿Cómo la política de Trump y la desinformación influyeron en la respuesta a la pandemia de COVID-19?
¿Cómo redefine la inteligencia artificial y las estructuras adaptativas la eficiencia en la aviación?
¿Cómo se resuelven problemas de Sturm-Liouville en ecuaciones diferenciales parciales?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский