$30 off During Our Annual Pro Sale. View Details »

Azure Confidential Computing

Azure Confidential Computing

Quires saber que es esto? Pues lee el documento y práctica con el ejemplo: https://github.com/jmfloreszazo/azureconfidentialcomputingsample

Jose María Flores Zazo

November 28, 2022
Tweet

More Decks by Jose María Flores Zazo

Other Decks in Technology

Transcript

  1. ¿Qué es?:
    Azure Confidential Computing
    Ver. 1.0.0

    View Slide

  2. Bienvenidos
    Acerca de…
    ¡Hola! Gracias por leer
    “¿Qué es? Azure Confidential Computing”.
    Espero poder aportarte los conocimientos mínimos y necesarios
    para que puedas iniciarte en este apasionante mundo.
    Jose María Flores Zazo, autor

    View Slide

  3. Licencia bajo…
    Creative Commons
    Atribución 4.0 Internacional
    ¡Esta es una Licencia de Cultura Libre!

    View Slide

  4. Descárgate el libro
    “Manos a la obra con: IoT con Azure”
    y
    apúntate a la comunidad.
    https://jmfloreszazo.com/azure-iot-esp/

    View Slide

  5. Índice
    Resumen
    Sección 1
    Introducción
    A grandes rasgos…
    Sección 2
    Manos a la obra
    Veamos como funciona…
    Sección 3
    Conclusiones
    Mi opinión y futuro. A dónde va
    y que se prevé…

    View Slide

  6. Índice
    Resumen

    View Slide

  7. Sección 1
    Introducción

    View Slide

  8. ¿Qué es?
    Resumen(1/2)
    Término que se usa en la industria por el Consorcio de Computación Confidencial (CCC), una fundación que se dedica a
    definir y acelerar el proceso de adopción de la computación confidencial.
    La CCC lo define como: la protección de datos en uso mediante la realización de cálculos en un entorno de ejecución
    fiable (Trusted Execution Environment, TEE).
    Un TEE es un entorno que impone la ejecución de solo código autorizado. Cualquier dato en el TEE no puede ser leído ni
    manipulado por ningún código fuera del entorno.
    El modelo de amenazas en informática confidencial tiene como objetivo eliminar o reducir la capacidad de un operador
    del proveedor de nube y otros actores en el dominio del inquilino para acceder al código y los datos mientras se ejecuta.
    Confidential Computing (CC) – Computación confidencial
    Datos en descanso
    Datos en storages, blobs, etc.
    se en encriptan
    cuando estan
    inactivos
    Datos en transito
    Encriptar datos en cuando
    viajan en redes privadas o
    publicas
    Datos en uso
    Proteger/encriptar datos en
    uso, tanto en RAM como en
    computación
    Encriptado estándar y existente Confidential Computing

    View Slide

  9. ¿Qué es?
    Resumen(2/2)
    Cuando se utiliza con cifrado de datos en reposo y tránsito, la computación confidencial elimina la barrera más grande
    del cifrado, el cifrado mientras está en uso, al proteger los conjuntos de datos confidenciales o altamente regulados y
    las cargas de trabajo de las aplicaciones en la nueve publica segura. Los TEE tambien se utilizan para proteger lógicas
    comerciales patentadas, las funciones de análisis, algoritmos de ML o aplicaciones completas.
    Disminuir la necesidad de confianza
    Ejecutar cargas de trabajo en la nube requiere confianza y estamos dando una confianza a varios proveedores que
    habilitan diferentes componentes de la aplicación. Dependiendo del proveedor tenemos tres áreas de confianza o
    varias de ellas mezcladas:
    • Software.
    • Hardware.
    • Infraestructura.
    Reducir el área de ataque
    La base de la computación basada en la confianza (TCB, Trusted Computing Base) hace referencia a los componentes
    de hardware, firmware y software que proporcionan un sistema seguro. Los componentes de la TCB se consideran
    críticos. Si un componente de TCB se ve comprometido, todo estará comprometido. Un TCB bajo significa mayor riesgo
    y mayor significa menor exposición.

    View Slide

  10. Trusted Execution Environment
    TEE
    Sistema Operativo
    Hipervisor
    Host OS
    Hardware
    App App TEE
    Datos
    Código
    Enclave
    Entrono aislado de código y datos de un Workload confidencial de otro sistema con una memoria encriptada

    View Slide

  11. Pilares de una nube confidencial
    Cloud Computing
    Los datos estan bajo
    el control del cliente
    en las fase de
    descanso, transito y
    uso
    El proveedor de la
    plataforma en la nube
    esta fuera de la base
    informática de
    confianza
    El código que se
    ejecuta en la nube
    esta protegido y
    verificado por el
    cliente
    El historial de
    actividades es
    inmutable y auditable

    View Slide

  12. ¿Qué tenemos?
    Azure(1/3)
    Como ya decía Azure ofrece ya muchas herramientas para salvaguardar los datos en reposo a través de modelos de
    cifrados en el cliente y servidor. Además tambien existen mecanismos de seguridad como TLS y HTTPS para los datos
    en transito.
    Y aquí es donde se muestra la tercera fase: el cifrado de lo datos en uso.
    Azure nos ofrece como proveedor de la nube varios mecanismos para depender menos de la confianza en la
    infraestructura de la computación confidencial: minimiza la confianza en el kernel del sistema operativo, del host, del
    hipervisor, del administrador de la máquina virtual o del host.
    Azure Confidential Computing, nos puede ayudar con:
    • Evitar acceso no autorizados.
    • Cumplimiento de normativas.
    • Garantiza colaboración segura y no confiable.
    • Procesamiento aislado.
    Oferta – Azure nos ofrece herramientas

    View Slide

  13. ¿Qué tenemos?
    Azure(2/3)
    Azure nos ofrece la siguiente oferta de productos:
    • Microsoft Azure Attestation, servicio de atestación remota para validad la confiabilidad de múltiples entornos de
    ejecución confiables (TEE) y verificar la integridad de los archivos binarios que se ejecutan en el TEE.
    • Azure Key Vault Managed HSM, es un servicio totalmente administrado, de alta disponibilidad, de un solo inquilino y
    que cumple con los estándares que permiten proteger con claves criptográficas gracias a su módulo de seguridad
    gestionado por hardware.
    • Trusted Launch, disponible en máquinas G2 y que ofrece seguridad reforzada (arranque seguro, módulo de
    plataforma virtual confiable y monitoreo de integridad en el arranque) que protege conta rootkits y malware a nivel
    de kernel.
    • Azure Confidential Ledger (ACL), es un registro a prueba de manipulaciones para almacenar datos confidenciales
    para el mantenimiento de registros y auditorías o para la transparencia de datos en escenarios multi-party. Ofrece
    garantías Write-Once-Read-Many, que hacen los datos no se puedan borrar ni modificar. Se basa en el Confidential
    Consortium Framework (CCF) de Microsoft Research.
    • Azure IoT Edge, permite ejecuciones seguras a través de enclaves seguros de IoT. Los dispositivos de IoT suelen
    estar expuestos a manipulaciones y falsificaciones por que se puede trabajar físicamente con ellos. Confidential
    Edge agrega confianza e integridad a los datos capturados y enviados.

    View Slide

  14. ¿Qué tenemos?
    Azure(3/3)
    • Siempre cifrado con enclaves seguros en Azure SQL. La confidencialidad de los datos para que malware y usuarios
    con privilegios no autorizados puedan ejecutar consultas SQL directamente dentro de un TEE.
    • Confidential Containers on ACI. Contenedores Serverless que cumplen con el requisito de computación confidencial.
    A fecha de Septiembre de 2022 este recurso se encuentra en Private Preview.
    • Azure DCsv3 VMs with Intel SGX (DCsv2 y DCdsv3), Intel Software Guard Extensions nos permite mayor potencia de
    trabajo con Enclave. En AMD tenemos SEV-SNP (Secure Encrypted Virtualization). En resumen son mejoras en la
    CPU que admiten la implementación de CC gracias a extensiones en las VM (cifrado en memoria e integridad de la
    CPU) está presente en:
    − Las VM DCsv2, DCsv3 y DCdsv3.
    − En contenedores compatibles con enclave que se ejecuten en AKS. Los nodos usan Intel SGX.
    − VMs basadas en AMD SEV-SNP.
    − Confidential Interference ONNX Runtime, un servidor de ML que restringe el acceso a la parte que aloja el ML
    tanto en la solicitud como en la respuesta.

    View Slide

  15. Escenarios
    Casos de Uso(1/2)
    Los candidatos idóneos son aquellos que estan sujetos a regulaciones: gobiernos e industrial, pero los servicios
    financiero y médicos son otro de los focos de la CC.
    Entornos regulados – Es el candidato ideal
    Gobierno: identidad digital, anticorrupción, prevención del cibercrimen,
    procesos judiciales, seguridad ciudadana, etc.
    Industria: propiedad intelectual, patentes, procesos, cumplimientos
    regulatorios, auditorias, etc.
    Financiero y Seguros: prevención de fraudes, pagos seguros,
    blanqueo de capitales, algoritmos de ML propietarios, etc.
    Salud: diagnósticos, prevención de fraudes a seguros, desarrollo de
    fármacos, seguimientos, historiales, confidencialidad, etc.

    View Slide

  16. Escenarios
    Casos de Uso(2/2)
    Un escenario sencillo puede ser la industria que no colabora con nadie más o colabora con una entidad de certificación,
    en España tenemos AENOR en el que podemos compartir datos de nuestra industria con la entidad certificadora en un
    entorno seguro.
    Escenario – Un pequeño ejemplo…
    Entidad certificadora
    Industria
    TEE
    Datos
    Código

    View Slide

  17. Sección 2
    Manos a la obra

    View Slide

  18. Contenedores en TEE
    AKS Confidential Compute(1/13)
    La premisa es proteger los datos mientras están en uso. Los enclaves basados en Intel SGX permiten ejecutar
    aplicaciones empaquetadas en contenedores dentro de AKS. Estos contenedores se ejecutan en un entorno TEE
    aislado de otros contenedores.
    AKS permite nodos de VM con Intel SGX como agent pools en un cluster. Estos nodos permiten ejecutar cargas de
    trabajo confidenciales dentro de un TEE basado en hardware. Los TEE permiten que el codigo de nivel de usuario de los
    contenedores asigne regiones privadas de memoria para ejecutar el código directamente en la CPU.
    Las regiones de memoria privada que se ejecutan directamente en la CPU se denominan enclaves. Los enclaves ayudan
    a proteger la confidencialidad e integridad de los datos, así como de cualquier otro proceso que se ejecute en los
    nodos.
    Intel SGX elimina las capas intermedias del sistema operativo, el sistema host y el hipervisor, por tanto se reduce el
    área de ataque.
    El modelo de ejecución aislado basado en hardware por contenedor en un nodo permite que las aplicaciones se
    ejecuten directamente en la CPU mientras se mantiene un bloque de memoria encriptado por contenedor.
    Los nodos de computación confidencial de los contenedores son una decisión de defensa.
    Resumen – Ejemplo guiado

    View Slide

  19. Contenedores en TEE
    AKS Confidential Compute(2/13)
    A continuación a grandes rasgos y para que se vea que proporciona una Nodo de Intel SGX:
    • Aislamiento a nivel de proceso basado en hardware vía TEE.
    • Cluster de grupos de nodos heterogéneos (mezcla nodos confidenciales y no confidenciales).
    • Programación de pods basada en Encrypted Page Cache (EPC) a través del complemento de AKS ConfCon.
    • Controlador de Intel SGX preinstalado en el kernel.
    • Soporte con Linux Ubuntu.
    En AMD no he visto que esta realizando realmente pero deben ser cosas similares en las que no entro en detalle ya que
    la idea es centrar el foco en las aplicaciones.
    Si tienes más interés en estos temas podemos ir a:
    • https://www.intel.es/content/www/es/es/architecture-and-technology/software-guard-extensions.html
    • https://developer.amd.com/sev/

    View Slide

  20. Contenedores en TEE
    AKS Confidential Compute(3/13)
    TEE
    Datos
    Código
    Enclave
    Sistema Operativo
    Hipervisor
    CPU
    Host
    Contenedor
    Confidencial 1
    Contenedor
    Confidencial 2
    Enclave
    TEE
    Datos
    Código
    AKS Nodo de Computación Confidencial

    View Slide

  21. Gracias a la confidencialidad podemos preparar un escenario completamente aislado para Kubernetes. Muchos
    escenarios comunes requieren esta premisa que hoy solo podemos darla con la computación confidencial.
    ¿Qué está ocurriendo? – Antes era un dibujo más gráfico, pero a vista de pájaro es…
    Sin computación confidencial: El proveedor de la nube y la infraestructura puede
    acceder a tus datos.
    Cloud
    Contenedores en TEE
    AKS Confidential Compute(4/13)
    Con computación confidencial: Tus despliegues de Kubernetes estan encriptados en
    runtime y protegidos de la infraestructura.
    Cloud

    View Slide

  22. Contenedores en TEE
    AKS Confidential Compute(5/13)
    Lo primero es crear una infraestructura desde el CLI de Azure:
    • az group create --name myTestWithCC-RG --location westeurope
    • az aks create -g myTestWithCC-RG --name myTestAKSCluster --generate-ssh-keys --enable-addons
    confcom
    • az aks nodepool add --cluster-name myTestAKSCluster --name confcompool1 --resource-group
    myTestWithCC-RG --node-vm-size Standard_DC2s_v3 --node-count 2
    • az aks get-credentials --resource-group myTestWithCC-RG --name myTestAKSCluster
    • Visualizamos los nodos que tenemos y podemos observar que tenemos los confcompool1, los que hemos desplegado con una
    DC2s_v3.
    • Los nodos, llamados nodepool1, son estándar sin ningun tipo de seguridad.
    Paso a Paso – Ejemplo guiado

    View Slide

  23. Contenedores en TEE
    AKS Confidential Compute(6/13)
    Ahora lo que vamos a hacer es irnos a nuestro CLI y ejecutar:
    • az login
    • Nos situamos en la suscripción donde habíamos creado la infra desde el CLI de Azure.
    • az aks get-credentials --resource-group myTestWithCC-RG --name myTestAKSCluster
    • Visualizamos los nodos que tenemos funcionando los sgx-device-plugin-xxxx, esto lo podías hacer desde Azure CLI, pero como
    más adelante lo necesitamos para lanzar un YAML, por eso lo he partido en 2 acciones:

    View Slide

  24. Contenedores en TEE
    AKS Confidential Compute(7/13)
    Y creamos el siguiente YAML, con el nombre hello-world-enclave.yaml:
    apiVersion: batch/v1
    kind: Job
    metadata:
    name: sgx-test
    labels:
    app: sgx-test
    spec:
    template:
    metadata:
    labels:
    app: sgx-test
    spec:
    containers:
    - name: sgxtest
    image: oeciteam/sgx-test:1.0
    resources:
    limits:
    sgx.intel.com/epc: 5Mi
    restartPolicy: Never
    backoffLimit: 0

    View Slide

  25. Contenedores en TEE
    AKS Confidential Compute(8/13)
    Lo aplicamos:
    • kubectl apply -f hello-world-enclave.yaml
    Confirmamos que esté:
    • kubectl get jobs -l app=sgx-test
    Confirmamos que esté:
    Y vemos los logs correspondientes para ver que efectivamente se ejecutó el código en el enclave:
    • kubectl logs -l app=sgx-test

    View Slide

  26. Contenedores en TEE
    AKS Confidential Compute(9/13)
    Vamos a desgranar que hace este contenedor.
    Lo primero es ir a las fuentes y clonarlas en nuestro equipo:
    https://github.com/openenclave/openenclave/tree/master/samples/helloworld
    Donde podemos ver dos proyectos. Uno llamado Host y otro Enclave, que se corresponden con la parte no segura de la
    aplicación y la parte segura de la aplicación. Ver imagen de AKS Confidential Compute 10, de esta misma sección.
    La parte más importante de host.cs es donde se crea y llama al enclave:
    Y la pregunta es – ¿Qué hace Hello-World?

    View Slide

  27. Contenedores en TEE
    AKS Confidential Compute(10/13)
    Siendo la parte más interesante de enc.cs:
    Ya que se puede observar, no tiene nada raro en el proyecto, parece un C muy puro.
    En realidad donde esta la magia de la seguridad para los enclaves es en el fichero: helloworld.edl

    View Slide

  28. Contenedores en TEE
    AKS Confidential Compute(11/13)
    Donde observamos que estamos usando una librería propia del SDK OpenEnclave:
    • https://openenclave.io/sdk/
    • https://github.com/openenclave/openenclave
    Y donde hemos definido que parte de la aplicación es segura y cual no lo es.

    View Slide

  29. Parte no segura de la aplicación
    #2 Creación del Enclave
    la aplicación crea el enclave
    #3 CallTrusted()
    llamando a la parte segura
    #6 Logica de Aplicación
    procesado de negocio
    OS, VM, BIOS, …
    #1 App
    parte segura e insegura
    Parte segura de la aplicación
    #4 Proceso secreto
    la aplicación del enclave
    #5 Return
    función de retorno segura
    Enclave
    Puente
    Contenedores en TEE
    AKS Confidential Compute(12/13)
    Como se comporta el flujo de una aplicación segura

    View Slide

  30. Contenedores en TEE
    AKS Confidential Compute(13/13)
    Y para terminar destruimos la infra:
    • az aks nodepool delete --cluster-name myTestAKSCluster --name confcompool1 --resource-group
    myTestWithCC-RG
    • az aks delete --resource-group myTestWithCC-RG --name myTestAKSCluster
    Nota:
    De momento no he visto ningún ejemplo en C#, ni ningún NuGet que nos permita hacer uso de openenclave sdk, en
    cuanto disponga de uno os lo publicaré en un artículo y en GitHub.
    Aunque existe un ejemplo en Intel sobre el que estoy trabajando para ver la posibilidad de moverlo a C# con .NET 6.
    https://www.intel.com/content/www/us/en/developer/articles/technical/using-enclaves-with-callbacks-via-ocalls.html

    View Slide

  31. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (1/9)
    Los pasos para crear una máquina son los que se indican en:
    Creación de una VM con Intel SGX
    Y si has seguido los pasos podrás entrar en tun máquina:
    Comenzamos lanzando estos comandos de Linux, que no voy a detallar ya que se trata de la configuracion para poder
    trabajar:
    • sudo apt update
    • sudo apt upgrade
    • sudo apt-get install build-essential ocaml automake autoconf libtool wget python libssl-dev dkms
    • wget https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-
    server/sgx_linux_x64_driver_2.11.054c9c4c.bin
    • echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee
    /etc/apt/sources.list.d/intel-sgx.list
    Intel SGX VM – Una máquina para desarrollar

    View Slide

  32. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (2/9)
    • wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key
    add
    • sudo apt-get update
    • sudo apt-get install libsgx-epid libsgx-quote-ex libsgx-dcap-ql
    • sudo apt-get install libsgx-dcap-default-qpl
    • sudo apt-get install build-essential python
    • wget https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-
    server/sgx_linux_x64_sdk_2.17.100.3.bin
    • chmod +x sgx_linux_x64_sdk_2.17.100.3.bin
    • sudo ./sgx_linux_x64_sdk_2.17.100.3.bin --prefix /opt/intel
    • source /opt/intel/sgxsdk/environment
    • sudo apt-get install libsgx-enclave-common-dev libsgx-dcap-ql-dev libsgx-dcap-default-qpl-dev
    A fecha de esta publicación la versión del binario es la que aquí aparece, si os da error, entrar en la URL y ver cual es la que os toca.
    Ya hemos terminado con la configuración de nuestro entorno.

    View Slide

  33. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (3/9)
    Ahora clonamos este proyecto de GitHub:
    https://github.com/jmfloreszazo/azureconfidentialcomputingsample.git
    El fichero makefile que tiene este proyecto está copiado de este ejemplo: https://github.com/intel/sgx-ra-sample,
    llevo muchos años sin programar al nivel requerido en C++ como para hacerlo yo solo.
    Concretamente de: https://github.com/intel/linux-sgx/blob/master/SampleCode/SampleEnclave/Makefile y como todo
    se tiene que contar, tambien el ejemplo que muestro a continuación viene una gran parte de lo estudiado en estos
    ejemplos: https://github.com/intel/linux-sgx/tree/master/SampleCode/
    Una vez contado el secreto, vamos a continuar con nuestro ejemplo:

    View Slide

  34. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (4/9)
    1. Lanzamos otro termina, debes tener 2 abiertos.
    2. En uno de ellos entramos en: azureuser@myvmforcc:~/azureconfidentialcomputingsample
    3. Realizamos un make:
    • source /opt/intel/sgxsdk/environment
    • make
    4. Ya podemos ver que se generan los binarios:

    View Slide

  35. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (5/9)
    5. En un terminal lanzamos: ./app para que se ejecute y espere a que pulse una tecla.
    6. Vemos los valores siguientes:
    7. Que vamos a usar para hace búsquedas en la memoria de la aplicación y reemplazarlos, a través de la siguiente
    aplicación: sudo apt-get install scanmem
    8. Lanzamos en un terminal la aplicación como en el paso 5 pero no pulses el enter. Y en el otro terminal miramos los
    procesos: ps -ax | grep app
    9. Nos quedamos con el id siguiente:
    10. Hacemos una búsqueda en memoria siguiendo los pasos de los comandos: sudo scanmem 2454, el numero lo
    cogemos del paso anterior. Y cuando nos pida el valor a buscar ponemos 12345, valor que viene en la zona no
    segura de nuestro programa.

    View Slide

  36. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (6/9)
    11. Observa que encuentra un valor alojado en memoria, ahora pongamos el valor 98765 que es el que esta protegido y
    vemos 0 concordancias.
    12. Con este ejemplo hemos visto que tenemos la memoria asegurada gracias a Intel SGX de la máquina virtual que
    hemos desplegado en Azure.

    View Slide

  37. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (7/9)
    13. Paramos la búsqueda de memoria y lanzamos de nuevo el comando del paso 10. Buscamos el valor 12345, y lo
    cambiamos con: set 56431.
    14. En el otro terminal que tenemos olvidado continuamos y podrás observar que siempre hemos trabajado con la
    memoria ya que aparece el valor nuevo establecido en la variable unthrusted_value:
    Con este ejemplo, os hemos podido ver como trabaja una VM que si lo extrapolamos a los POD de K8s del ejemplo
    anterior del Hello_World, es exactamente lo mismo.
    Quizá el mayor hándicap a todo esto es usar C++, por eso lanzo la siguiente cuestión: C# es interpretado mientras que C++ es
    compilado, ¿cómo se solucionará esto?.

    View Slide

  38. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (8/9)
    Fuera de esta demo para que quede más demostrado si cabe, que con C# podemos acceder tambien a variables de
    memoria.
    1. Para ello instalamos dotnet.
    2. Si tienes problemas, puedes optar por :
    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt install apt-transport-https
    sudo apt update
    sudo apt install dotnet-sdk-6.0
    sudo apt install apt-transport-https
    sudo apt update
    sudo apt install dotnet-runtime-6.0
    dotnet --version
    3. Clonamos este proyecto: https://github.com/jmfloreszazo/SimpleNet6HelloWorldTestOnLinux.git
    4. Entramos en: ~/SimpleNet6HelloWorldTestOnLinux/testOnLinux
    5. Compilamos: dotnet build -c Release
    6. Entramos en: ~/SimpleNet6HelloWorldTestOnLinux/testOnLinux/bin/Release/net6.0
    7. Y ejecutamos: dotnet testOnLinux.dll

    View Slide

  39. Ubuntu + Intel SGX + DCsv2
    Maquinas Virtuales Confidenciales (9/9)
    8. Mantenemos la aplicación en ese terminal, sin pulsar teclas.
    9. Entramos en otro terminal Linux y ejecutamos: ps –ax | grep testOnLinux
    10. Ejecutamos: sudo scanmem 22271
    11. Buscamos 12345, y nos dirá que encontró coincidencias.
    12. Cambiamos el valor con: set 778899
    13. Vemos el resultado:
    14. Si realizamos el proceso y buscamos con: 98765, la otra variable. Volverá a decirnos que encontró coincidencias
    debido a que no tenemos el programa en un enclave, lógicamente.
    15. Hacemos: set 12345
    16. Y:

    View Slide

  40. Confidential Big data Spark
    Caso de uso(1/2)
    https://github.com/Azure-Samples/confidential-container-samples/tree/main/confidential-big-data-spark
    Microsoft – Ejemplo (ver este link)

    View Slide

  41. Confidential AI using NVIDIA GPUs
    Caso de uso(2/2)
    https://www.microsoft.com/en-us/research/blog/powering-the-next-generation-of-trustworthy-ai-in-a-confidential-cloud-using-nvidia-gpus/
    Microsoft – Ejemplo (ver este link)

    View Slide

  42. Sección 3
    Conclusiones

    View Slide

  43. Preguntas, cuestiones, futuro…
    Q&A(1/2)
    Tras revisar este sistema y ver que efectivamente es una buena solución para aislar nuestras máquinas, K8s o
    algoritmos secretos, la mayoría de los desarrollo actuales se realizan con lenguajes distintos a C++, pongamos Python,
    Java, C# muchos de los cuales son interpretado.
    ¿Cómo se solucionará el manejo de acceso a la memoria cuando nuestras fuentes ya pueden ser descompiladas?
    Otra cuestión es el futuro, he visto que desde hace tiempo se usa este sistema, Intel SGX lleva desde 2013 y que han
    existido desde entonces ataques a Intel SGX en hardware Intel Core deprecando incluso su uso en las versiones 11th y
    12th, pero manteniendo esto en los Intel Xeon.
    ¿Cómo nos afecta esto?, ¿Por qué Microsoft esta desplegando tantas máquinas con Intel SGX y AMD SEV?, ¿Por qué se está haciendo
    tanta inversión en el consorcio por parte de Google, AMD, Intel, CISCO, NVIDIA, …?.
    Son preguntas a las que aun no he visto respuesta, pero que debido a los casos de usos planteados al principio, son las
    mayores beneficiarias o mejor dicho, las mayores beneficiarias serán las Cloud Publicas por qué podrán atraer esos
    sistemas a los enclaves.
    Y otras tantas preguntas que con el uso y revisión de los documentos del consorcio nos podrán ir surgiendo. Pero como
    desarrollador para mi lo más acuciante es el tema de los lenguajes interpretado y compilados.
    Me pregunto – Y me respondo

    View Slide

  44. Preguntas, cuestiones, futuro…
    Q&A(2/2)
    Algunas cosas comienza a ser desveladas
    Como la creación del consorcio por parte de Microsoft:
    • Noticia.
    Imagen propiedad de Microsoft que acompaña a la anterior noticia

    View Slide

  45. Anexo
    Enlaces, videos, …

    View Slide

  46. Enlaces, videos y demás…
    A partir de aquí
    Y a continuación algunos enlaces:
    • Confidential Computing: The Next Frontier in Data Security.
    • A Technical Analysis of Confidential Computing v1.2.
    • Confidential Computing: Hardware-Based Trusted Execution for Applications and Data.
    • Azure Confidential Computing.
    • nVidia Confidential Computing.
    • Intel Confidential Computing.
    • Google Confidential Computing.
    • What You Need to Know About This New Cybersecurity Trend.
    • Why now is the time for confidential computing.

    View Slide

  47. Experto en: Asincronía con .NET
    Próximo libro en preparación…
    ¿Quieres convertirte en
    “Experto/a en: asincronía con
    .NET”?
    En mi próximo libro podrás tener por
    primera vez toda la información que
    necesitas en español sobre este
    apasionante mundo.
    El libro que está en preparación y tengo
    previsto liberar en Febrero de 2023, lleva:
    • + 200 páginas y me faltan…
    • Explicaciones gráficas.
    • Ejemplos de código.
    • Todo ello usando .NET6.
    ¡Hasta mi próxima publicación!

    View Slide

  48. ¡Gracias!
    Puedes encontrarme buscando por jmfloreszazo en
    https://jmfloreszazo.com

    View Slide