Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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. 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
  2. Descárgate el libro “Manos a la obra con: IoT con

    Azure” y apúntate a la comunidad. https://jmfloreszazo.com/azure-iot-esp/
  3. Í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é…
  4. ¿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
  5. ¿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.
  6. 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
  7. 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
  8. ¿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
  9. ¿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.
  10. ¿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.
  11. 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.
  12. 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
  13. 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
  14. 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/
  15. 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
  16. 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
  17. 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
  18. 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:
  19. 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
  20. 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
  21. 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?
  22. 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
  23. 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.
  24. 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
  25. 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
  26. 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
  27. 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.
  28. 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:
  29. 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:
  30. 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.
  31. 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.
  32. 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?.
  33. 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
  34. 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:
  35. 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
  36. 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
  37. 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.
  38. 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!