Microsoft shpalli hapjen e kodit burimor të shtresës për sigurinë e paralogaritjes OpenHCL dhe monitorit të makinave virtuale OpenVMM, i zhvilluar posaçërisht për organizimin e funksionimit të OpenHCL. Kodi OpenVMM dhe OpenHCL është shkruar në gjuhën Rust dhe shpërndahet nën licencën MIT. OpenVMM i përket hipervojzave të nivelit të dytë, që punojnë në të njëjtin nivel mbrojtjeje me bërthamën e sistemit operativ, në përputhje me produkte si VirtualBox dhe VMware Workstation. Mbështetet funksionimi mbi sistemet për host në bazë të Linux (x86_64), Windows (x86_64, Aarch64) dhe macOS (x86_64, Aarch64), duke përdorur API-të e virtualizimit KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) dhe Hypervisor.framework që sigurohen nga këto OS.
Disa nga mundësitë që mbështeten në OpenVMM:
- Boot në modet UEFI dhe BIOS, ngarkimi direkt i bërthamës Linux;
- Mbështetje për paralogaritjen në bazë të drivereve Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem);
- Mbështetje për paralogaritjen në bazë të VMBus (storvsp, netvsp, vpci, framebuffer);
- Emulimi i vTPM, NVMe, UART, chipset-it i440BX + PIIX4, IDE HDD, PCI dhe VGA;
- Backends për kalimin e grafikeve, pajisjeve të inputit, konsolës, magazinave dhe qasjes në rrjet;
- Menaxhim përmes ndërfaqes së linjës së komandës, konsolës interaktive, gRPC dhe ttrpc.
OpenHCL pozicionohet si një ambient me komponentë paralogaritjeje (paralizor), që punon mbi hipervojzën OpenVMM. Karakteristika kryesore e sistemeve të virtualizimit në bazë të OpenVMM dhe OpenHCL është se komponentët për paralogaritje ekzekutohen jo në anën e sistemit host, por në një makinë virtuale me sistemin mysafir. Izolimi i shtresës së paralogaritjes nga sistemi operativ mysafir sigurohet nga forcat e hipervojzës së nivelit të dytë OpenVMM. OpenHCL në këtë aplikim mund të konsiderohet si një firmware virtual, që ekzekutohet në një nivel më të lartë privilegjesh se ai që ekzekutohet në ambientin mysafir të sistemit operativ.
Shkëputja e sistemit mysafir dhe komponentëve të OpenHCL bëhet duke përdorur konceptin e niveleve virtuale të besimit (VTL, Virtual Trust Level), për realizimin e të cilave mund të përdoren si mekanizma softuerikë ashtu edhe teknologji harduerike, si Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) dhe ARM CCA (Confidential Compute Architecture). Për ekzekutimin e komponentëve të OpenHCL përdoret një version i shkurtuar i bërthamës Linux, që përfshin vetëm komponentët minimalë të nevojshëm për funksionimin e OpenVMM.

OpenHCL mund tĂ« punojĂ« nĂ«platformat x86-64 dhe ARM64, dhe mbĂ«shtet zgjerimet Intel TDX, AMD SEV-SNP dhe ARM CCA pĂ«r izolim tĂ« shtuar. OpenHCL pĂ«rfshin njĂ« sĂ«rĂ« shĂ«rbimesh, drejtuesish dhe emulatorĂ«sh, tĂ« pĂ«rdorura pĂ«r tĂ« organizuar qasje nĂ« pajisje, pĂ«r tĂ« siguruar funksionimin e pajisjeve virtuale nĂ« anĂ«n e sistemit mysafir dhe pĂ«r tĂ« emuluar pajisjet harduerike (pĂ«r shembull, mund tĂ« emulohet çipi pĂ«r ruajtjen e çelĂ«save kriptografikĂ« â vTPM).
Për transmetimin e qasjes në hardware nga ana e sistemit mikpritës, përdoren shoferët ekzistues me mbështetje për paravirtualizimin ose mund të realizohet lidhja direkte e pajisjeve me makinën virtuale, e cila lejon transferimin e sistemeve mikpritëse ekzistuese në një mjedis të bazuar në OpenHCL pa bërë ndryshime në to. Për më tepër, OpenHCL përfshin komponente për diagnostikimin dhe debuggimin. makinat virtuale, që realizohen duke përdorur zgjerime për të siguruar llogaritje konfidenciale.
Ndryshe nga projekti ekzistues i hapur COCONUT-SVSM (Moduli i Shërbimit të VM-ve të Sigurta), i cili ofron shërbime dhe pajisje të imituara për sistemet mikpritëse që ekzekutohen në llogaritje konfidenciale makina virtuale (CVM, Një Makinë Virtuale Konfidenciale), OpenHCL lejon përdorimin e interfaceve standarde në sistemet mikpritëse, ndërsa COCONUT-SVSM kërkon organizimin e një ndërveprimi të veçantë me SVSM, të bëhen ndryshime në sistemin mikpritës dhe të përdoren shoferë të veçantë.
Nga aplikimet e paravirtualizuesit OpenHCL, përmenden skenarë siç është migrimi i sistemeve ekzistuese për të përdorur përshpejtuesit harduerikë Azure Boost pa nevojën për të bërë ndryshime në imazhin disk të sistemit mikpritës; ekzekutimi i sistemeve mikpritëse ekzistuese në makina virtuale që ofrojnë llogaritje konfidenciale (p.sh., mbi bazën e Intel TDX dhe AMD SEV-SNP); organizimi i ngarkesës verifikuese të makinave virtuale, duke përdorur modin UEFI Secure Boot dhe vTPM.
Dallohet veçanërisht se projekti OpenVMM është fokusuar në përdorimin me OpenHCL dhe për momentin nuk është i gatshëm për përdorim të veçantë në sistemet host për implementime të pavarura nga përdoruesit finalë. Ndër problemet e OpenVMM që pengojnë përdorimin e tij në ambientet host në një kontekst tradicional, jashtë lidhjes me OpenHCL, përmenden: dokumentimi i dobët i ndërfaqes menaxhuese; mungesa e optimizimit të duhur të performancës për backend-et e ruajtjes, rrjetit dhe grafikës; mungesa e mbështetjes për disa shoferë (p.sh., disqet IDE dhe mausët PS/2); nuk ka garanci për stabilitetin e API dhe funksionalitetin. Megjithatë, lidhja midis OpenVMM dhe OpenHCL tashmë ka arritur një nivel implementimi industrial dhe përdoret nga Microsoft në platformën Azure (Azure Boost SKU) për të siguruar funksionimin e më shumë se 1.5 milion makinave virtuale.
Burimi: opennet.ru
