Habré ã«é¢ãã Qubes ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«ç¹åããèšäºã¯ããŸãå€ããããŸããããŸããç§ãèŠãèšäºã§ã Qubes ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®äœ¿çšäœéšã«ã€ããŠã¯ããŸã説æãããŠããŸããããã®ã«ããã®äžã§ã¯ãWindows ç°å¢ã«å¯Ÿããä¿è·æ段ãšã㊠Qubes ã䜿çšããäŸã䜿çšããŠãããä¿®æ£ããåæã«ã·ã¹ãã ã®ãã·ã¢èªã話ããŠãŒã¶ãŒã®æ°ãæšå®ããããšèããŠããŸãã
ãªããã¥ãã¹ãªã®ãïŒ
Windows 7 ã®ãã¯ãã«ã« ãµããŒãçµäºã®è©±ãšãŠãŒã¶ãŒã®äžå®ã®å¢å€§ã«ããã次ã®èŠä»¶ãèæ ®ããŠãã® OS ã®äœæ¥ãæŽçããå¿ èŠãçããŸããã
- ãŠãŒã¶ãŒãæŽæ°ããã°ã©ã ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ (ã€ã³ã¿ãŒãããçµç±ãå«ã) ãã€ã³ã¹ããŒã«ã§ããæ©èœãåãããå®å šã«ã¢ã¯ãã£ããŒãããã Windows 7 ã®äœ¿çšãä¿èšŒããŸãã
- æ¡ä»¶ïŒèªåŸåäœããã³ãã©ãã£ã㯠ãã£ã«ã¿ãªã³ã° ã¢ãŒãïŒã«åºã¥ããŠãããã¯ãŒã¯ ã€ã³ã¿ã©ã¯ã·ã§ã³ãå®å šãŸãã¯éžæçã«é€å€ããŸãã
- ãªã ãŒããã« ã¡ãã£ã¢ãšããã€ã¹ãéžæçã«æ¥ç¶ããæ©èœãæäŸããŸãã
ãã®äžé£ã®å¶éã¯ãç¬ç«ãã管çãèš±å¯ãããŠããããããŠãŒã¶ãŒãæ確ã«æºåãããŠããããšãåæãšããå¶éã¯ãŠãŒã¶ãŒã®æœåšçãªã¢ã¯ã·ã§ã³ã®ãããã¯ã§ã¯ãªããèµ·ããåŸããšã©ãŒããœãããŠã§ã¢ã®ç Žå£çãªåœ±é¿ã®æé€ã«é¢é£ããŠããŸãããããã®ããã®ã¢ãã«ã«ã¯å éšç¯çœªè ã¯ååšããŸããã
解決çã暡玢ããäžã§ã管çè æš©éãæã€ãŠãŒã¶ãŒãå¹æçã«å¶éããã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ã§ããããã«ããããšã¯éåžžã«é£ãããããçµã¿èŸŒã¿ãŸãã¯è¿œå ã® Windows ããŒã«ã䜿çšããŠå¶éãå®è£ ãããšããèãã¯ããã«æŸæ£ãããŸããã
次ã®è§£æ±ºçã¯ãä»®æ³åã䜿çšããåé¢ã§ããããã¹ã¯ãããä»®æ³åçšã®ããç¥ãããããŒã« (ããšãã°ãvirtualbox ãªã©) ã¯ã»ãã¥ãªãã£åé¡ã®è§£æ±ºã«ã¯ããŸãé©ããŠãããããªã¹ããããŠããå¶éäºé ã¯ããŠãŒã¶ãŒãã²ã¹ãä»®æ³ãã·ã³ (以äžã VM ãšããŠ)ããšã©ãŒã®ãªã¹ã¯ãå¢å ããŸãã
åæã«ãç§ãã¡ã¯ãŠãŒã¶ãŒã®ãã¹ã¯ããã ã·ã¹ãã ãšã㊠Qubes ã䜿çšããçµéšããããŸããããã²ã¹ã Windows ã§ã®åäœã®å®å®æ§ã«çåããããŸãããèšèŒãããŠããå¶éäºé ããã®ã·ã¹ãã ã®ãã©ãã€ã ãç¹ã«ä»®æ³ãã·ã³ ãã³ãã¬ãŒããšèŠèŠççµ±åã®å®è£ ã«éåžžã«ããé©åããŠãããããQubes ã®çŸåšã®ããŒãžã§ã³ããã§ãã¯ããããšã«ããŸããã次ã«ãåé¡ã解決ããäŸã䜿çšããŠãQubes ã®ã¢ã€ãã¢ãšããŒã«ã«ã€ããŠç°¡åã«èª¬æããŠã¿ãŸãã
Xenä»®æ³åã®çš®é¡
Qubes 㯠Xen ãã€ããŒãã€ã¶ãŒãããŒã¹ã«ããŠãããããã»ããµ ãªãœãŒã¹ãã¡ã¢ãªãä»®æ³ãã·ã³ã®ç®¡çæ©èœãæå°éã«æããŠããŸããããã€ã¹ã«é¢ãããã®ä»ãã¹ãŠã®äœæ¥ã¯ãLinux ã«ãŒãã«ã«åºã¥ã㊠dom0 ã«éäžãããŸã (dom0 ã® Qubes 㯠Fedora ãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšããŸã)ã
Xen ã¯ããã€ãã®çš®é¡ã®ä»®æ³åããµããŒãããŠããŸã (ããã§ã¯ Intel ã¢ãŒããã¯ãã£ã®äŸã瀺ããŸãããXen ã¯ä»ã®çš®é¡ã®ä»®æ³åããµããŒãããŠããŸã)ã
- æºä»®æ³å (PV) - ããŒããŠã§ã¢ ãµããŒãã䜿çšããªãä»®æ³åã¢ãŒãã§ãã³ã³ããä»®æ³åã圷圿ãšãããŸããé©å¿ãããã«ãŒãã«ãåããã·ã¹ãã ã«äœ¿çšã§ããŸã (dom0 ã¯ãã®ã¢ãŒãã§åäœããŸã)ã
- å®å šä»®æ³å (HVM) - ãã®ã¢ãŒãã§ã¯ãããŒããŠã§ã¢ ãµããŒããããã»ããµ ãªãœãŒã¹ã«äœ¿çšãããä»ã®ãã¹ãŠã®æ©åšã¯ QEMU ã䜿çšããŠãšãã¥ã¬ãŒããããŸããããã¯ãããŸããŸãªãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãå®è¡ããããã®æãæ®éçãªæ¹æ³ã§ãã
- ããŒããŠã§ã¢ã®æºä»®æ³å (PVH - ParaVirtualized Hardware) - ããŒããŠã§ã¢ãæäœããããã«ãã²ã¹ã ã·ã¹ãã ã«ãŒãã«ããã€ããŒãã€ã¶ãŒã®æ©èœ (å ±æã¡ã¢ãªãªã©) ã«é©åãããã©ã€ããŒã䜿çšããå Žåã«ãããŒããŠã§ã¢ ãµããŒãã䜿çšããä»®æ³åã¢ãŒãã§ãQEMU ãšãã¥ã¬ãŒã·ã§ã³ã®å¿ èŠããªããªããŸãã I/O ããã©ãŒãã³ã¹ã®åäžã 4.11 以éã® Linux ã«ãŒãã«ã¯ããã®ã¢ãŒãã§åäœã§ããŸãã
Qubes 4.0 以éãã»ãã¥ãªãã£äžã®çç±ãããæºä»®æ³åã¢ãŒãã®äœ¿çšã¯å»æ¢ãã (å®å šä»®æ³åã䜿çšããããšã§éšåçã«è»œæžããã Intel ã¢ãŒããã¯ãã£ã®æ¢ç¥ã®è匱æ§ãå«ã)ãããã©ã«ã㧠PVH ã¢ãŒãã䜿çšãããŸãã
ãšãã¥ã¬ãŒã·ã§ã³ (HVM ã¢ãŒã) ã䜿çšããå ŽåãQEMU ã¯ã¹ã¿ããã¡ã€ã³ãšåŒã°ããåé¢ããã VM ã§èµ·åããããããå®è£
ã«ãããæœåšçãªãšã©ãŒãæªçšããããªã¹ã¯ã軜æžãããŸã (QEMU ãããžã§ã¯ãã«ã¯ãäºææ§ãå«ãå€ãã®ã³ãŒããå«ãŸããŠããŸã)ã
ãã®äŸã§ã¯ãWindows ã§ã¯ãã®ã¢ãŒãã䜿çšããå¿
èŠããããŸãã
ãµãŒãã¹ä»®æ³ãã·ã³
Qubes ã»ãã¥ãªã㣠ã¢ãŒããã¯ãã£ã§ã¯ããã€ããŒãã€ã¶ãŒã®éèŠãªæ©èœã® XNUMX ã€ã¯ãPCI ããã€ã¹ãã²ã¹ãç°å¢ã«è»¢éããããšã§ããããŒããŠã§ã¢ã®é€å€ã«ãããã·ã¹ãã ã®ãã¹ãéšåãå€éšæ»æããéé¢ã§ããŸãã Xen 㯠PV ããã³ HVM ã¢ãŒãã§ããããµããŒãããŸããXNUMX çªç®ã®ã±ãŒã¹ã§ã¯ãä»®æ³åããã€ã¹ã®ããŒããŠã§ã¢ ã¡ã¢ãªç®¡çã§ãã IOMMU (Intel VT-d) ã®ãµããŒããå¿ èŠã§ãã
ããã«ãããããã€ãã®ã·ã¹ãã ä»®æ³ãã·ã³ãäœæãããŸãã
- sys-net: ãããã¯ãŒã¯ ããã€ã¹ã転éãããä»ã® VM (ãã¡ã€ã¢ãŠã©ãŒã«ã VPN ã¯ã©ã€ã¢ã³ãã®æ©èœãå®è£ ãã VM ãªã©) ãžã®ããªããžãšããŠäœ¿çšãããŸãã
- sys-usbãUSB ããã³ãã®ä»ã®åšèŸºããã€ã¹ ã³ã³ãããŒã©ãŒã転éãããŸãã
- sys-firewall ã¯ããã€ã¹ã䜿çšããŸããããæ¥ç¶ããã VM ã®ãã¡ã€ã¢ãŠã©ãŒã«ãšããŠæ©èœããŸãã
USB ããã€ã¹ãæäœããã«ã¯ãç¹ã«æ¬¡ã®æ©èœãæäŸãããããã· ãµãŒãã¹ã䜿çšãããŸãã
- HID (ãã¥ãŒãã³ ã€ã³ã¿ãŒãã§ã€ã¹ ããã€ã¹) ããã€ã¹ ã¯ã©ã¹ã®å Žåã¯ãdom0 ã«ã³ãã³ããéä¿¡ããŸãã
- ãªã ãŒããã« ã¡ãã£ã¢ã®å Žåãããã€ã¹ ããªã¥ãŒã ãä»ã® VM (dom0 ãé€ã) ã«ãªãã€ã¬ã¯ãããŸãã
- USB ããã€ã¹ã«çŽæ¥ãªãã€ã¬ã¯ãããŸã (USBIP ããã³çµ±åããŒã«ã䜿çš)ã
ãã®ãããªæ§æã§ã¯ããããã¯ãŒã¯ ã¹ã¿ãã¯ãŸãã¯æ¥ç¶ãããããã€ã¹ãä»ããæ»æãæåãããšãã·ã¹ãã å šäœã§ã¯ãªããå®è¡äžã®ãµãŒãã¹ VM ã®ã¿ã䟵害ãããå¯èœæ§ããããŸãããµãŒãã¹ VM ãåèµ·åãããšãå ã®ç¶æ ã§ããŒããããŸãã
VMçµ±åããŒã«
ä»®æ³ãã·ã³ã®ãã¹ã¯ããããæäœããã«ã¯ãã²ã¹ã ã·ã¹ãã ã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããæ¹æ³ããä»®æ³åããŒã«ã䜿çšããŠãããªããšãã¥ã¬ãŒãããæ¹æ³ãªã©ãããã€ãã®æ¹æ³ããããŸããã²ã¹ã ã¢ããªã±ãŒã·ã§ã³ã¯ãããŸããŸãªãŠãããŒãµã« ãªã¢ãŒã ã¢ã¯ã»ã¹ ããŒã« (RDPãVNCãSpice ãªã©) ã«ããããšããç¹å®ã®ãã€ããŒãã€ã¶ãŒã«é©åãããããšãã§ããŸã (ãã®ãããªããŒã«ã¯éåžžãã²ã¹ã ãŠãŒãã£ãªãã£ãšåŒã°ããŸã)ããã€ããŒãã€ã¶ãŒãã²ã¹ã ã·ã¹ãã ã® I/O ããšãã¥ã¬ãŒãããSpice ãªã©ã® I/O ãçµã¿åããããããã³ã«ã䜿çšããæ©èœãå€éšããæäŸããå Žåãæ··åãªãã·ã§ã³ã䜿çšããããšãã§ããŸããåæã«ããªã¢ãŒã ã¢ã¯ã»ã¹ ããŒã«ã¯ãããã¯ãŒã¯çµç±ã§äœæ¥ãããããéåžžã¯ç»åãæé©åããŸãããããã¯ç»åã®å質ã«è¯ã圱é¿ãäžããŸããã
Qubes ã¯ãVM çµ±åçšã®ç¬èªã®ããŒã«ãæäŸããŸãããŸã第äžã«ãããã¯ã°ã©ãã£ã㯠ãµãã·ã¹ãã ã§ããããŸããŸãª VM ã®ãŠã£ã³ããŠããç¬èªã®ã«ã©ãŒ ãã¬ãŒã ã䜿çšã㊠XNUMX ã€ã®ãã¹ã¯ãããã«è¡šç€ºãããŸããäžè¬ã«ãçµ±åããŒã«ã¯ãã€ããŒãã€ã¶ãŒã®æ©èœãã€ãŸãå ±æã¡ã¢ãª (Xen èš±å¯ããŒãã«)ãéç¥ããŒã« (Xen ã€ãã³ã ãã£ãã«)ãå ±æã¹ãã¬ãŒãž xenstoreãããã³ vchan éä¿¡ãããã³ã«ã«åºã¥ããŠããŸãããããã®å©ããåããŠãåºæ¬ã³ã³ããŒãã³ã qrexec ãš qubes-rpcãããã³ã¢ããªã±ãŒã·ã§ã³ ãµãŒãã¹ (ãªãŒãã£ãªãŸã㯠USB ã®ãªãã€ã¬ã¯ãããã¡ã€ã«ãŸãã¯ã¯ãªããããŒãã®å 容ã®è»¢éãã³ãã³ãã®å®è¡ãã¢ããªã±ãŒã·ã§ã³ã®èµ·å) ãå®è£ ãããŸãã VM ã§å©çšå¯èœãªãµãŒãã¹ãå¶éã§ããããªã·ãŒãèšå®ã§ããŸãã以äžã®å³ã¯ãXNUMX ã€ã® VM ã®çžäºäœçšãåæåããæé ã®äŸã§ãã
ããã«ãããVMäžã§ã®äœæ¥ã¯ãããã¯ãŒã¯ãä»ããã«å®è¡ããããããèªåŸçãªVMãæ倧éã«æŽ»çšããŠæ å ±æŒæŽ©ãé²ãããšãã§ããŸããããšãã°ãç§å¯ããŒãåé¢ããã VM ã§äœ¿çšããããããè¶ ããªãå Žåãããã¯æå·åæäœã®åé¢ (PGP/SSH) ãå®è£ ãããæ¹æ³ã§ãã
ãã³ãã¬ãŒããã¢ããªã±ãŒã·ã§ã³ãã¯ã³ã¿ã€ã VM
Qubes ã§ã®ãŠãŒã¶ãŒã®äœæ¥ã¯ãã¹ãŠä»®æ³ãã·ã³ã§è¡ãããŸããã¡ã€ã³ã®ãã¹ã ã·ã¹ãã ã¯ããããã®å¶åŸ¡ãšèŠèŠåã«äœ¿çšãããŸãã OS ã¯ããã³ãã¬ãŒãããŒã¹ã®ä»®æ³ãã·ã³ (TemplateVM) ã®åºæ¬ã»ãããšãšãã«ã€ã³ã¹ããŒã«ãããŸãããã®ãã³ãã¬ãŒãã¯ãFedora ãŸã㯠Debian ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«åºã¥ã Linux VM ã§ãããçµ±åããŒã«ãã€ã³ã¹ããŒã«ããã³æ§æãããå°çšã®ã·ã¹ãã ããŒãã£ã·ã§ã³ãšãŠãŒã¶ãŒ ããŒãã£ã·ã§ã³ãåããããŠããŸãããœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãšæŽæ°ã¯ãå¿ é ã®ããžã¿ã«çœ²åæ€èšŒ (GnuPG) ã䜿çšããŠãèšå®ããããªããžããªããæšæºã®ããã±ãŒãž ãããŒãžã£ãŒ (dnf ãŸã㯠apt) ã«ãã£ãŠå®è¡ãããŸãããã®ãã㪠VM ã®ç®çã¯ããã® VM ã«åºã¥ããŠèµ·åãããã¢ããªã±ãŒã·ã§ã³ VM ã®ä¿¡é Œæ§ã確ä¿ããããšã§ãã
ã¢ããªã±ãŒã·ã§ã³ VM (AppVM) ã¯èµ·åæã«ã察å¿ãã VM ãã³ãã¬ãŒãã®ã·ã¹ãã ããŒãã£ã·ã§ã³ã®ã¹ãããã·ã§ããã䜿çšããå®äºæã«å€æŽãä¿åããã«ãã®ã¹ãããã·ã§ãããåé€ããŸãããŠãŒã¶ãŒãå¿ èŠãšããããŒã¿ã¯ãããŒã ãã£ã¬ã¯ããªã«ããŠã³ããããã¢ããªã±ãŒã·ã§ã³VMããšã«åºæã®ãŠãŒã¶ãŒããŒãã£ã·ã§ã³ã«ä¿åãããŸãã
䜿ãæšãŠ VM (disposableVM) ã®äœ¿çšã¯ãã»ãã¥ãªãã£ã®èŠ³ç¹ãã圹ç«ã€å ŽåããããŸãããã®ãã㪠VM ã¯èµ·åæã«ãã³ãã¬ãŒãã«åºã¥ããŠäœæãããXNUMX ã€ã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããšãã XNUMX ã€ã®ç®çã§èµ·åãããã¢ããªã±ãŒã·ã§ã³ãéããããåŸã«äœæ¥ãå®äºããŸãã䜿ãæšãŠ VM ã䜿çšãããšããã®å 容ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã®è匱æ§ã®æªçšã«ã€ãªããå¯èœæ§ã®ããäžå¯©ãªãã¡ã€ã«ãéãããšãã§ããŸããã¯ã³ã¿ã€ã VM ãå®è¡ããæ©èœã¯ããã¡ã€ã« ãããŒãžã£ãŒ (Nautilus) ãšé»åã¡ãŒã« ã¯ã©ã€ã¢ã³ã (Thunderbird) ã«çµ±åãããŠããŸãã
Windows VM ã䜿çšããŠããŠãŒã¶ãŒ ãããã¡ã€ã«ãå¥ã®ã»ã¯ã·ã§ã³ã«ç§»åããããšã§ããã³ãã¬ãŒããšã¯ã³ã¿ã€ã VM ãäœæããããšãã§ããŸããç§ãã¡ã®ããŒãžã§ã³ã§ã¯ããã®ãããªãã³ãã¬ãŒãã¯ããŠãŒã¶ãŒã管çã¿ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«ã«äœ¿çšããŸãããã³ãã¬ãŒãã«åºã¥ããŠããããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ãå¶éãããŠãã (æšæºã® sys-firewall æ©èœ) ãããããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ããŸã£ãããªã (ä»®æ³ãããã¯ãŒã¯ ããã€ã¹ã¯äœæãããªã) ããã€ãã®ã¢ããªã±ãŒã·ã§ã³ VM ãäœæãããŸãããã³ãã¬ãŒãã«ã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®å€æŽãšã¢ããªã±ãŒã·ã§ã³ã¯ããããã® VM ã§äœ¿çšã§ããããã«ãªããããã¯ããŒã¯ ããã°ã©ã ãå°å ¥ãããå Žåã§ãããããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ããŠäŸµå®³ãããããšã¯ãããŸããã
Windows ã®ããã«æŠã
äžèšã®æ©èœã¯ Qubes ã®åºç€ã§ãããéåžžã«å®å®ããŠåäœããŸãããåé¡ã¯ Windows ããå§ãŸããŸãã Windows ãçµ±åããã«ã¯ãäžé£ã®ã²ã¹ã ããŒã« Qubes Windows Tools (QWT) ã䜿çšããå¿ èŠããããŸããããã«ã¯ãXen ãšé£æºããããã®ãã©ã€ããŒãqvideo ãã©ã€ããŒãããã³æ å ±äº€æ (ãã¡ã€ã«è»¢éãã¯ãªããããŒã) ã®ããã®ãŠãŒãã£ãªãã£ã®ã»ãããå«ãŸããŠããŸããã€ã³ã¹ããŒã«ãšæ§æã®ããã»ã¹ã¯ãããžã§ã¯ã Web ãµã€ãã«è©³çŽ°ã«ææžåãããŠãããããã¢ããªã±ãŒã·ã§ã³ã®ãšã¯ã¹ããªãšã³ã¹ãå ±æããŸãã
äž»ãªåé¡ã¯ãåºæ¬çã«ãéçºãããããŒã«ã®ãµããŒããæ¬ åŠããŠããããšã§ããäž»èŠéçºè
(QWT) ãäžåšã®ããã§ãWindows çµ±åãããžã§ã¯ãã¯äž»ä»»éçºè
ãåŸ
ã£ãŠããŸãããããã£ãŠããŸã第äžã«ããã®ããã©ãŒãã³ã¹ãè©äŸ¡ããå¿
èŠã«å¿ããŠç¬èªã«ãµããŒãããå¯èœæ§ã«ã€ããŠç解ã圢æããå¿
èŠããããŸãããéçºãšãããã°ãæãé£ããã®ã¯ã°ã©ãã£ãã¯ã¹ ãã©ã€ããŒã§ããã°ã©ãã£ãã¯ã¹ ãã©ã€ããŒã¯ããã㪠ã¢ããã¿ãŒãšãã£ã¹ãã¬ã€ããšãã¥ã¬ãŒãããŠå
±æã¡ã¢ãªã«ã€ã¡ãŒãžãçæãããã¹ã¯ãããå
šäœãŸãã¯ã¢ããªã±ãŒã·ã§ã³ ãŠã£ã³ããŠããã¹ã ã·ã¹ãã ãŠã£ã³ããŠã«çŽæ¥è¡šç€ºã§ããããã«ããŸãããã©ã€ããŒã®åäœãåæããéãLinux ç°å¢ã§ã®ã¢ã»ã³ããªçšã«ã³ãŒãã調æŽããXNUMX ã€ã® Windows ã²ã¹ã ã·ã¹ãã éã®ãããã° ã¹ããŒã ãèæ¡ããŸãããã¯ãã¹ãã«ãã®æ®µéã§ãäž»ã«ãŠãŒãã£ãªãã£ã®ããµã€ã¬ã³ããã€ã³ã¹ããŒã«ãšããç¹ã§äœæ¥ãç°¡çŽ åããããã€ãã®å€æŽãå ããŸããããŸããVM ã§é·æéäœæ¥ããéã®ç
©ãããããã©ãŒãã³ã¹ã®äœäžãæé€ããŸãããäœæ¥çµæã¯å¥èšäºã§çŽ¹ä»ããŸãã
ã²ã¹ã ã·ã¹ãã ã®å®å®æ§ã®ç¹ã§æãéèŠãªæ®µé㯠Windows ã®èµ·åã§ããããã§ã¯èŠæ £ãããã«ãŒ ã¹ã¯ãªãŒã³ã衚瀺ãããŸã (ãŸãã¯è¡šç€ºãããããŸãã)ãç¹å®ããããšã©ãŒã®ã»ãšãã©ã«ã€ããŠã¯ãXen ããã㯠ããã€ã¹ ãã©ã€ããŒã®åé€ãVM ã¡ã¢ãª ãã©ã³ã·ã³ã°ã®ç¡å¹åããããã¯ãŒã¯èšå®ã®ä¿®æ£ãã³ã¢æ°ã®æå°åãªã©ãããŸããŸãªåé¿çããããŸãããåœç€Ÿã®ã²ã¹ã ããŒã« ãã«ãã¯ãå®å šã«æŽæ°ããã Windows 7 ããã³ Windows 10 (qvideo ãé€ã) ã«ã€ã³ã¹ããŒã«ãããå®è¡ãããŸãã
å®ç°å¢ããä»®æ³ç°å¢ã«ç§»è¡ããå Žåããã¬ã€ã³ã¹ããŒã«ããã OEM ããŒãžã§ã³ã䜿çšãããšãWindows ã®ã©ã€ã»ã³ã¹èªèšŒã§åé¡ãçºçããŸãããã®ãããªã·ã¹ãã ã§ã¯ãããã€ã¹ã® UEFI ã§æå®ãããã©ã€ã»ã³ã¹ã«åºã¥ããŠã¢ã¯ãã£ããŒã·ã§ã³ã䜿çšãããŸããã¢ã¯ãã£ããŒã·ã§ã³ãæ£ããåŠçããã«ã¯ããã¹ã ã·ã¹ãã ã® ACPI ã»ã¯ã·ã§ã³å šäœ (SLIC ããŒãã«) ã® XNUMX ã€ãã²ã¹ã ã·ã¹ãã ã«å€æããæ®ãããããã«ç·šéããŠè£œé å ãç»é²ããå¿ èŠããããŸãã Xen ã§ã¯ãäž»èŠãªããŒãã«ãå€æŽããã«ãè¿œå ã®ããŒãã«ã® ACPI ã³ã³ãã³ããã«ã¹ã¿ãã€ãºã§ããŸãã Qubes çšã«èª¿æŽãããåæ§ã® OpenXT ãããžã§ã¯ãã®ãããã解決ã«åœ¹ç«ã¡ãŸããããã®ä¿®æ£ã¯ç§ãã¡ã ãã§ãªã圹ç«ã€ãšæãããã¡ã€ã³ã® Qubes ãªããžããªãš Libvirt ã©ã€ãã©ãªã«ç¿»èš³ãããŸããã
Windows çµ±åããŒã«ã®æãããªæ¬ ç¹ã«ã¯ãGPU ã®ããŒããŠã§ã¢ ãµããŒãããªãããããªãŒãã£ãªãUSB ããã€ã¹ããµããŒããããŠããªãããšãã¡ãã£ã¢ã®æäœãè€éã§ããããšãå«ãŸããŸãããã ããäžèšã¯ãªãã£ã¹ææžãæäœããããã® VM ã®äœ¿çšã劚ãããã®ã§ã¯ãªããç¹å®ã®äŒæ¥ã¢ããªã±ãŒã·ã§ã³ã®èµ·åã劚ãããã®ã§ããããŸããã
Windows VM ãã³ãã¬ãŒãã®äœæåŸã«ããããã¯ãŒã¯ãªããŸãã¯ãããã¯ãŒã¯ãå¶éãããåäœã¢ãŒãã«åãæ¿ããèŠä»¶ã¯ãã¢ããªã±ãŒã·ã§ã³ VM ã®é©åãªæ§æãäœæããããšã§æºãããããªã ãŒããã« ã¡ãã£ã¢ãéžæçã«æ¥ç¶ããå¯èœæ§ããæ¥ç¶æã«æšæºã® OS ããŒã«ã«ãã£ãŠè§£æ±ºãããŸããã ããããã¯ã·ã¹ãã VM sys-usb ã§å©çšå¯èœã§ãããããããå¿ èŠãª VM ã«ã転éãã§ããŸãããŠãŒã¶ãŒã®ãã¹ã¯ãããã¯æ¬¡ã®ããã«ãªããŸãã
ã·ã¹ãã ã®æçµããŒãžã§ã³ã¯ (ãã®ãããªå æ¬çãªãœãªã¥ãŒã·ã§ã³ãèš±ãéã) ãŠãŒã¶ãŒã«ç©æ¥µçã«åãå ¥ããããã·ã¹ãã ã®æšæºããŒã«ã«ãããVPN çµç±ã§ã¢ã¯ã»ã¹ã§ãããŠãŒã¶ãŒã®ã¢ãã€ã« ã¯ãŒã¯ã¹ããŒã·ã§ã³ã«ã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµããããšãå¯èœã«ãªããŸããã
代ããã«ãçµè«ã®
äžè¬ã«ãä»®æ³åã«ããããµããŒããåããã«æŸçœ®ããã Windows ã·ã¹ãã ã䜿çšãããªã¹ã¯ã軜æžã§ããŸããä»®æ³åã«ãããæ°ããããŒããŠã§ã¢ãšã®äºææ§ã匷å¶ãããããããã¯ãŒã¯ãŸãã¯æ¥ç¶ãããããã€ã¹ãä»ããã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãé€å€ãŸãã¯å¶åŸ¡ã§ãã次ã®ããšãå¯èœã«ãªããŸããã¯ã³ã¿ã€ã èµ·åç°å¢ãå®è£ ããŸãã
Qubes OS ã¯ãä»®æ³åã«ããåé¢ã®èãã«åºã¥ããŠãã»ãã¥ãªãã£ã®ããã®ãããã®ã¡ã«ããºã ããã®ä»ã®ã¡ã«ããºã ã掻çšããã®ã«åœ¹ç«ã¡ãŸããå€éšããèŠããšãå€ãã®äººã¯ Qubes ãäž»ã«å¿åæ§ãžã®æ¬²æ±ãšããŠèŠãŠããŸããããããžã§ã¯ããã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³ãããã«ã¢ã¯ã»ã¹ããããã®ç§å¯ãé »ç¹ã«ãããããããšã³ãžãã¢ã«ãšã£ãŠããã»ãã¥ãªãã£ç 究è ã«ãšã£ãŠã䟿å©ãªã·ã¹ãã ã§ããã¢ããªã±ãŒã·ã§ã³ãããŒã¿ã®åé¢ãããã³ãããã®çžäºäœçšã®åœ¢åŒåã¯ãè åšåæãšã»ãã¥ãªã㣠ã·ã¹ãã èšèšã®æåã®ã¹ãããã§ãããã®åé¢ã«ãããæ å ±ãæ§é åãããæ¥ããç²åŽãªã©ã®äººçèŠå ã«ãããšã©ãŒã®å¯èœæ§ã軜æžãããŸãã
çŸåšãéçºã«ãããŠäž»ã«éç¹ã眮ããŠããã®ã¯ãLinux ç°å¢ã®æ©èœãæ¡åŒµããããšã§ããããŒãžã§ã³ 4.1 ã¯ãªãªãŒã¹ã«åããŠæºåäžã§ãããã㯠Fedora 31 ãããŒã¹ã«ããŠãããäž»èŠã³ã³ããŒãã³ãã§ãã Xen ãš Libvirt ã®ææ°ããŒãžã§ã³ãå«ãŸããŠããŸãã Qubes ãæ å ±ã»ãã¥ãªãã£ã®å°é家ã«ãã£ãŠäœæãããŠãããæ°ããè åšããšã©ãŒãç¹å®ãããå Žåã«ã¯ãåžžã«è¿ éã«ã¢ããããŒãããªãªãŒã¹ããŠããããšã¯æ³šç®ã«å€ããŸãã
åŸæžã
ç§ãã¡ãéçºäžã®å®éšæ©èœã® 4.1 ã€ã§ã¯ãIntel GVT-g ãã¯ãããžãŒã«åºã¥ã㊠GPU ãžã®ã²ã¹ã ã¢ã¯ã»ã¹ããµããŒããã VM ãäœæã§ããŸããããã«ãããã°ã©ãã£ãã¯ã¹ ã¢ããã¿ãŒã®æ©èœã䜿çšããŠãã·ã¹ãã ã®ç¯å²ã倧å¹
ã«æ¡åŒµã§ããŸããå·çæç¹ã§ã¯ããã®æ©èœã¯ Qubes XNUMX ã®ãã¹ã ãã«ãã§åäœãã次ã®å Žæã§å©çšã§ããŸãã
åºæïŒ habr.com