HeadlinesBriefing HeadlinesBriefing 12 languages

Fetching AMD SEV Reports (With Zig)

Hacker News ·

🇬🇧 English

AMD SEV (Secure Encrypted Virtualization) encrypts VM memory with per-VM keys, shielding it from the hypervisor. SEV-ES extends this to CPU register state, while SEV-SNP adds memory ownership checks to prevent malicious hypervisors from remapping private pages. SNP enables guests to request signed reports from AMD's secure processor, verifying launch state and configuration. On Google Cloud, the host loads firmware and boot software—including Coconut SVSM for protected services like virtual TPM—before SNP launch.

The process uses SNP_LAUNCH_START, SNP_LAUNCH_UPDATE, and SNP_LAUNCH_FINISH commands, maintaining a SHA-384 hash of the initial image. During remote attestation, a verifier compares this fingerprint against expected values. The Linux kernel exposes SNP via /dev/sev-guest, allowing applications to retrieve reports using the SNP_GET_REPORT ioctl with specified VM privilege levels (VMPL 0-3).

View original article →


🇸🇦 العربية

كيف يحمي AMD SEV-SNP ذاكرة VM في بيئات السحاب

AMD SEV (الirtualization Encrypted Secure) تشفير ذاكرة VM using per-VM keys, shielding it from the hypervisor. SEV-ES extends this to CPU register state, while SEV-SNP adds memory ownership checks to prevent malicious hypervisors from remapping private pages. SNP enables guests to request signed reports from AMD's secure processor, verifying launch state and configuration. On Google Cloud, the host loads firmware and boot software—including Coconut SVSM for protected services like virtual TPM—before SNP launch.

The process uses SNP_LAUNCH_START, SNP_LAUNCH_UPDATE, and SNP_LAUNCH_FINISH commands, maintaining a SHA-384 hash of the initial image. During remote attestation, a verifier compares this fingerprint against expected values. The Linux kernel exposes SNP via /dev/sev-guest, allowing applications to retrieve reports using the SNP_GET_REPORT ioctl with specified VM privilege levels (VMPL 0-3).

كيف يمكن للمطورين استرجاع تقارير AMD SEV-SNP على Linux؟

التطبيقات ترسل SNP_GET_REPORT ioctl إلى جهاز /dev/sev-guest، مقدمة 64 بايت من البيانات المستخدم ومستوى VMPL. يدير السائق التبادل الآمن مع firmware AMD، عائدًا دليلاً موقعاً على estado الإlaunch للـ VM لل attestación عن بعد.

العربية version →


🇧🇩 বাংলা

AMD SEV-SNP ক্লাউড পরিবেশে VM মেমোরিকে কিভাবে রক্ষা করে

AMD SEV (সুরক্ষিত এনক্রিপ্টেড ভার্চুয়ালাইজেশন) প্রতিটি VM-এর জন্য কুঁজি ব্যবহার করে VM মেমোরিকে এনক্রিপ্ট করে, একে হাইপারভাইজার থেকে রক্ষা করে। SEV-ES এটিকে CPU রেজিস্টার অবস্থা পর্যন্ত প্রসারিত করে, যেখানে SEV-SNP মেমোরি মালিকানা যাচাই যোগ করে যাতে অনুচিত হাইপারভাইজার ব্যক্তিগত পৃষ্ঠাগুলো রিম্যাপ করতে না পারে। SNP গেস্টগুলোকে AMD-এর সুরক্ষিত প্রসেসর থেকে স্বাক্ষরিত রিপোর্ট অনুরোধ করার অনুমতি দেয়, লঞ্চ অবস্থা এবং কনফিগারেশন যাচাই করে। Google Cloud-এ, হোস্ট SNP লঞ্চের আগে ফার্মওয়ার এবং বুট সফ্টওয়ার লোড করে—Coconut SVSM সহ যেমন ভার্চুয়াল TPM-র মতো সুরক্ষিত সার্ভিসের জন্য—। প্রক্রিয়াটি SNP_LAUNCH_START, SNP_LAUNCH_UPDATE এবং SNP_LAUNCH_FINISH কমান্ডগুলো ব্যবহার করে এবং প্রাথমিক ছবির SHA-384 হ্যাশ রাখে। রিমোট প্রমাণীকরণের সময়, একটি যাচাইকারী এই ছাপের সাথে প্রত্যাশিত মানগুলোর সাথে তুলনা করে। লিনাক্স কার্নেল /dev/sev-guest এর মাধ্যমে SNP প্রকাশ করে, যাতে অ্যাপ্লিকেশনগুলো VMPL 0-3 সম্পন্ন বিশিষ্ট VM অধিকার স্তরগুলোর সাথে SNP_GET_REPORT ioctl ব্যবহার করে রিপোর্ট আনতে পারে।

ডেভেলপার্স কিভাবে Linux-এ AMD SEV-SNP রিপোর্ট আনতে পারে?

অ্যাপ্লিকেশনগুলো /dev/sev-guest ডিভাইসকে SNP_GET_REPORT ioctl পাঠায়, 64 বাইটের ইউজার ডেটা এবং একটি VMPL স্তর সরবরাহ করে। ড্রাইভার AMD-এর ফার্মওয়ারের সাথে সুরক্ষিত বিনিময় পরিচালনা করে এবং রিমোট প্রমাণীকরণের জন্য VM-এর লঞ্চ অবস্থার স্বাক্ষরিত প্রমাণ ফেরত দেয়।

বাংলা version →


🇩🇪 Deutsch

Wie AMD SEV-SNP VM-Speicher in Cloud-Umgebungen schützt

AMD SEV (Secure Encrypted Virtualization) verschlüsselt VM-Speicher mit pro-VM-Schlüsseln und schützt so vor dem Hypervisor. SEV-ES erweitert dies auf den CPU-Registerzustand, während SEV-SNP Eigentumsüberprüfungen für den Speicher hinzufügt, um bösartige Hypervisoren daran zu hindern, private Seiten neu zuzuordnen. SNP ermöglicht Gästen, signed Reports vom sicheren Prozessor von AMD anzufordern, um Startzustand und Konfiguration zu verifizieren. Auf Google Cloud lädt der Host Firmware und Boot-Software—including Coconut SVSM für geschützte Dienste wie virtuelle TPM—bevor SNP gestartet wird.

Der Prozess verwendet die Befehle SNP_LAUNCH_START, SNP_LAUNCH_UPDATE und SNP_LAUNCH_FINISH und pflegt einen SHA-384-Hash des initialen Images. Bei der Remote-Attestation vergleicht ein Verifier diesen Fingerabdruck mit erwarteten Werten. Der Linux-Kernel expose SNP über /dev/sev-guest, sodass Anwendungen Reports mit dem SNP_GET_REPORT ioctl und spezifizierten VMPL-Ebenen (0-3) abrufen können.

Wie können Entwickler AMD SEV-SNP-Reports auf Linux abrufen?

Anwendungen senden das SNP_GET_REPORT ioctl an das /dev/sev-Gerät, wobei 64 Bytes Benutzerdaten und eine VMPL-Ebene angegeben werden. Der Treiber führt den sicheren Austausch mit AMDs Firmware durch und liefert signed Beweise für den Startzustand der VM für die Remote-Attestation.

Deutsch version →


🇪🇸 Español

Cómo protege AMD SEV-SNP la memoria de las VM en entornos en la nube

AMD SEV (Virtualización Segura Encriptada) encripta la memoria de la VM con claves por VM, protegiéndola del hipervisor. SEV-ES extiende esto al estado de los registros CPU, mientras que SEV-SNP añade controles de propiedad de memoria para prevenir que hipervisores maliciosos remapeen páginas privadas. SNP permite a los invitados solicitar informes firmados del procesador seguro de AMD, verificando el estado de arranque y configuración. En Google Cloud, el host carga firmware y software de arranque—including Coconut SVSM para servicios protegidos como el virtual TPM—antes del lanzamiento SNP.

El proceso utiliza los comandos SNP_LAUNCH_START, SNP_LAUNCH_UPDATE y SNP_LAUNCH_FINISH, manteniendo un hash SHA-384 de la imagen inicial. Durante la atestación remota, un verificador compara esta huella digital con valores esperados. El kernel de Linux expone SNP a través de /dev/sev-guest, permitiendo a las aplicaciones recuperar informes usando el ioctl SNP_GET_REPORT con niveles de privilegio VMPL (0-3).

¿Cómo pueden los desarrolladores recuperar informes AMD SEV-SNP en Linux?

Las aplicaciones envían el ioctl SNP_GET_REPORT al dispositivo /dev/sev-guest, proporcionando 64 bytes de datos de usuario y un nivel VMPL. El controlador maneja el intercambio seguro con el firmware de AMD, devolviendo evidencia firmada del estado de arranque de la VM para atestación remota.

Español version →


🇫🇷 Français

Comment AMD SEV-SNP protège la mémoire des VM dans les environnements cloud

AMD SEV (Virtualisation Sécurisée Chiffre) chiffre la mémoire des VM avec des clés par VM, la protégeant de l'hyperviseur. SEV-ES étend cela à l'état des registres CPU, tandis que SEV-SNP ajoute des contrôles de propriété de mémoire pour empêcher les hyperviseurs malveillants de remapper des pages privées. SNP permet aux invités de demander des rapports signés du procesisseur sécurisé de AMD, vérifiant l'état de lancement et la configuration. Sur Google Cloud, l'hôte charge le logiciel de firmware et de lancement—including Coconut SVSM pour des services protégés comme le TPM virtuel—avant le lancement SNP.

Le processus utilise les commandes SNP_LAUNCH_START, SNP_LAUNCH_UPDATE et SNP_LAUNCH_FINISH, maintenant un hash SHA-384 de l'image initiale. Lors de l'attestation à distance, un vérificateur compare cette empreinte avec les valeurs attendues. Le noyau Linux expose SNP via /dev/sev-guest, permettant aux applications de récupérer des rapports en utilisant l'ioctl SNP_GET_REPORT avec des niveaux de privilège VMPL spécifiés (0-3).

Comment les développeurs peuvent-ils récupérer les rapports AMD SEV-SNP sur Linux ?

Les applications envoient l'ioctl SNP_GET_REPORT au périphérique /dev/sev-guest, fournissant 64 octets de données utilisateur et un niveau VMPL. Le pilote gère l'échange sécurisé avec le firmware AMD, renvoyant une preuve signée de l'état de lancement de la VM pour l'attestation à distance.

Français version →


🇮🇳 हिन्दी

AMD SEV-SNP बादल वातावरण में VM मेमोरी की कैसे सुरक्षा करता है

AMD SEV (सुरक्षित एन्क्रिप्टेड वर्चुअलाइजेशन) प्रत्येक VM के लिए कुंजियों के माध्यम से VM मेमोरी को एन्क्रिप्ट करता है, इसे हाइपरवायजर से बचाता है। SEV-ES इसे CPU रजिस्टर अवस्था तक बढ़ाता है, जबकि SEV-SNP मेमोरी मालिकी जांच जोड़ता है ताकि बुरे हाइपरवायजर निजी पेजों को रीमैप न कर सकें। SNP अनुमति देता है कि गेस्ट AMD के सुरक्षित प्रोसेसर से हस्ताक्षरित रिपोर्टें अनुरोध करें, लॉन्च अवस्था और कॉन्फिगरेशन की सत्यापन करते हुए। Google Cloud पर, होस्ट SNP लॉन्च से पहले फर्मवेयर और बूट सॉफ्टवेयर लोड करता है—Coconut SVSM सहित सुरक्षित सेवाओं के लिए जैसे कि वर्चुअल TPM—। प्रक्रिया SNP_LAUNCH_START, SNP_LAUNCH_UPDATE और SNP_LAUNCH_FINISH कमांडों का उपयोग करती है और प्रारंभिक छवि का SHA-384 हैश रखती है। दूरस्थ प्रमाणीकरण के दौरान, एक सत्यापक इस फिंगरप्रिंट की तुलना अपेक्षित मानों से करता है। Linux कर्नल /dev/sev-guest के माध्यम से SNP प्रदर्शित करता है, जिससे अनुप्रयोग VMPL 0-3 वाले विशिष्ट VM अधिकार स्तरों के साथ SNP_GET_REPORT ioctl का उपयोग करके रिपोर्टें प्राप्त कर सकते हैं।

डेवलपर्स Linux पर AMD SEV-SNP रिपोर्टें कैसे प्राप्त कर सकते हैं?

अनुप्रयोग /dev/sev-guest डिवाइस को SNP_GET_REPORT ioctl भेजते हैं, 64 बाइट्स के यूजर डेटा और एक VMPL स्तर प्रदान करते हैं। ड्राइवर AMD फर्मवेयर के साथ सुरक्षित विनिमय संभालता है और रिमोट प्रमाणीकरण के लिए VM के लॉन्च अवस्था का हस्ताक्षरित सबूत वापस लौटाता है।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Bagaimana AMD SEV-SNP Melindungi Memori VM di Lingkungan Cloud

AMD SEV (Virtualisasi Terenkripis Aman) mengenkripis memori VM dengan kunci per-VM, melindunginya dari hypervisor. SEV-ES memperluas ini ke state register CPU, sementara SEV-SNP menambahkan pemeriksaan kepemilikan memori untuk mencegah hypervisor jahat dari remapping halaman privat. SNP memungkinkan tamu untuk meminta laporan bertanda tangan dari prosesor aman AMD, memverifikasi state peluncuran dan konfigurasi. Di Google Cloud, host memuat firmware dan software boot—including Coconut SVSM untuk layanan terlindungi seperti virtual TPM—sebelum peluncuran SNP.

Proses ini menggunakan perintah SNP_LAUNCH_START, SNP_LAUNCH_UPDATE, dan SNP_LAUNCH_FINISH, memelihara hash SHA-384 dari gambar awal. Saat attestation remote, verifier membandingkan cap jari ini dengan nilai yang diharapkan. Kernel Linux expose SNP melalui /dev/sev-guest, memungkinkan aplikasi mengambil laporan menggunakan SNP_GET_REPORT ioctl dengan level istimewa VMPL (0-3).

Bagaimana pengembang dapat mengambil laporan AMD SEV-SNP di Linux?

Aplikasi mengirim SNP_GET_REPORT ioctl ke perangkat /dev/sev-guest, memberikan 64 byte data pengguna dan level VMPL. Driver menangani pertukaran aman dengan firmware AMD, mengembalikan bukti bertanda tangan state peluncuran VM untuk attestation remote.

Bahasa Indonesia version →


🇯🇵 日本語

AMD SEV-SNPがクラウド環境でVMメモリを保護する方法

AMD SEV(セキュア暗号化仮想化)は、各VMごとのキーでVMメモリを暗号化し、ハイパーバイザから保護します。SEV-ESはこれをCPUレジスタ状態に拡張し、SEV-SNPはメモリ所有権チェックを追加して、悪意のあるハイパーバイザがプライベートページを再マッピングするのを防ぎます。SNPは、AMDのセキュアプロセサから署名付きレポートを要求し、起動状態と設定を検証します。Google Cloudでは、SNP起動前にホストがファームウェアとブートソフトウェアをロードします—仮想TPMなどの保護サービス用のCoconut SVSMを含みます。このプロセスはSNP_LAUNCH_START、SNP_LAUNCH_UPDATE、SNP_LAUNCH_FINISHコマンドを使用し、初期画像のSHA-384ハッシュを維持します。リモートアテestationでは、検証기가このフィンガープリントを期待値と比較します。Linuxカーネルは/dev/sev-guest経由でSNPを公開し、VMPL 0-3の指定されたVM特権レベルを使用してSNP_GET_REPORT ioctlでレポートを取得できるようにします。

開発者はLinuxでAMD SEV-SNPレポートを取得するには?

アプリケーションは/dev/sev-guestデバイスにSNP_GET_REPORT ioctlを送信し、64バイトのユーザーデータとVMPLレベルを指定します。ドライバはAMDのファームウェアと安全に通信し、VMの起動状態の署名付き証明をリモートアテestation用に返します。

日本語 version →


🇧🇷 Português

Como AMD SEV-SNP protege a memória de VM em ambientes de nuvem

AMD SEV (Virtualização Segura Criptografada) criptografa a memória VM com chaves por VM, protegendo-a do hipervisor. SEV-ES estende isso ao estado dos registradores CPU, enquanto SEV-SNP adiciona controles de propriedade de memória para impedir que hipervisores maliciosos remapeiem páginas privadas. SNP permite que os convidados solicitem relatórios assinados do processador seguro da AMD, verificando o estado de inicialização e a configuração. No Google Cloud, o host carrega firmware e software de boot—including Coconut SVSM para serviços protegidos como TPM virtual—antes do lançamento SNP.

O processo usa os comandos SNP_LAUNCH_START, SNP_LAUNCH_UPDATE e SNP_LAUNCH_FINISH, mantendo um hash SHA-384 da imagem inicial. Durante a atestação remota, um verificador compara essa impressão digital com valores esperados. O kernel Linux expõe SNP via /dev/sev-guest, permitindo que as aplicações recuperem relatórios usando o ioctl SNP_GET_REPORT com níveis de privilégio VMPL especificados (0-3).

Como os desenvolvedores podem recuperar relatórios AMD SEV-SNP no Linux?

As aplicações enviam o ioctl SNP_GET_REPORT para o dispositivo /dev/sev-guest, fornecendo 64 bytes de dados do usuário e um nível VMPL. O driver lida com o intercâmbio seguro com o firmware da AMD, retornando evidência assinada do estado de inicialização da VM para atestação remota.

Português version →


🇷🇺 Русский

Как AMD SEV-SNP защищает память VM в облачных средах

AMD SEV (Безопасная Зашифрованная Виртуализация) шифрует память VM с помощью ключей для каждой VM, защищая её от гипервизора. SEV-ES расширяет это до состояния регистров CPU, в то время как SEV-SNP добавляет проверки владения памятью, чтобы предотвратить злобные гипервизоры от переназначения частных страниц. SNP позволяет гостям запрашивать подписанные отчеты от безопасного процессора AMD, проверяя состояние запуска и конфигурацию. В Google Cloud, хост загружает прошивку и программное обеспечение для загрузки—including Coconut SVSM для защищённых служб, таких как виртуальный TPM—перед запуском SNP. Процесс использует команды SNP_LAUNCH_START, SNP_LAUNCH_UPDATE и SNP_LAUNCH_FINISH, сохраняя SHA-384 хеш изображения. При удалённой атестации проверяющая сторона сравнивает этот отпечаток с ожидаемыми значениями. Ядро Linux exposes SNP через /dev/sev-guest, позволяя приложениям получать отчеты, используя ioctl SNP_GET_REPORT с указанными уровнями привилегий VMPL (0-3).

Как разработчики могут получать отчеты AMD SEV-SNP в Linux?

Приложения отправляют SNP_GET_REPORT ioctl в устройство /dev/sev-guest, предоставление 64 байта пользовательских данных и уровня VMPL. Драйвер обрабатывает безопасный обмен с прошивкой AMD, возвращая подписанные доказательства состояния запуска VM для удалённой атестации.

Русский version →


🇨🇳 简体中文

AMD SEV-SNP 如何保护云环境中的虚拟机内存

AMD SEV(安全加密虚拟化)使用每个虚拟机的密钥对虚拟机内存进行加密,从而保护其免受虚拟机管理程序的侵害。SEV-ES 将这一功能扩展到 CPU 寄存器状态,而 SEV-SNP 则增加了内存所有权检查,以防止恶意虚拟机管理程序重新映射私有页面。SNP 允许 guest 从 AMD 的安全处理器请求签名报告,验证启动状态和配置。在 Google Cloud 上,主机在 SNP 启动之前加载固件和启动软件——包括用于保护虚拟 TPM 等服务的 Coconut SVSM。该过程使用 SNP_LAUNCH_START、SNP_LAUNCH_UPDATE 和 SNP_LAUNCH_FINISH 命令,维护初始映像的 SHA-384 哈希值。在远程证明过程中,验证器将此指纹与预期值进行比较。Linux 内核通过 /dev/sev-guest 公开 SNP,允许应用程序使用指定的虚拟机特权级别(VMPL 0-3)通过 SNP_GET_REPORT ioctl 检索报告。

开发者如何在 Linux 上检索 AMD SEV-SNP 报告?

应用程序向 /dev/sev-guest 设备发送 SNP_GET_REPORT ioctl,提供 64 字节的用户数据和一个 VMPL 级别。驱动程序处理与 AMD 固件的安全交换,返回虚拟机启动状态的签名证据以供远程证明。

简体中文 version →