Side-channeling, o ataque de canal lateral, es una técnica de ataque no invasiva que infiere información sensible (como claves criptográficas) observando propiedades físicas o efectos secundarios de la ejecución de un sistema. Estos canales pueden incluir el tiempo de ejecución, el consumo de energía, las emisiones electromagnéticas, el sonido, o incluso los patrones de acceso a la caché. A diferencia de los ataques directos que buscan fallos lógicos en el software o protocolo, los ataques de canal lateral explotan las fugas de información inherentes a la implementación física del algoritmo, revelando datos que el sistema no pretendía exponer.
En el mundo real, los ataques de side-channeling se han demostrado y utilizado contra una amplia gama de sistemas. Ejemplos notables incluyen ataques de temporización (timing attacks) contra implementaciones de OpenSSL y SSH, donde las diferencias en el tiempo de respuesta revelan información sobre claves criptográficas. Los ataques de análisis de consumo de energía (Power Analysis Attacks), como el Differential Power Analysis (DPA), son comunes contra Smart Cards y dispositivos IoT para extraer claves. Otros ejemplos incluyen ataques de caché (Cache Attacks) como Prime+Probe o Flush+Reload, que explotan la arquitectura de la caché de la CPU para inferir datos de otros procesos, incluso en entornos virtualizados o de multi-tenancy. También existen ataques acústicos que analizan el sonido emitido por los componentes electrónicos para deducir información.
Para un arquitecto de sistemas, comprender el side-channeling es crucial para diseñar sistemas robustos y seguros, especialmente en entornos donde la seguridad es primordial (ej. criptografía, sistemas financieros, infraestructuras críticas). Implica reconocer que la seguridad no solo reside en la corrección lógica de los algoritmos, sino también en su implementación física. Las decisiones de diseño deben considerar cómo las operaciones pueden filtrar información a través de canales laterales. Esto puede llevar a la adopción de contramedidas como el enmascaramiento (masking) o la aleatorización (blinding) en operaciones criptográficas, el uso de código de tiempo constante (constant-time code) para evitar dependencias de datos en el tiempo de ejecución, o el diseño de hardware resistente a la fuga de energía. Ignorar el side-channeling puede resultar en vulnerabilidades graves, incluso si los algoritmos subyacentes son teóricamente seguros, lo que requiere un equilibrio entre rendimiento, costo y seguridad en el diseño de la arquitectura.