Qubes ์ด์ ์ฒด์ ์ ๋ํ Habrรฉ ๊ด๋ จ ๊ธฐ์ฌ๋ ๋ง์ง ์์ผ๋ฉฐ, ๋ด๊ฐ ๋ณธ ๊ธฐ์ฌ์์๋ ์ฌ์ฉ ๊ฒฝํ์ ๋ง์ด ์ค๋ช ํ์ง ์์ต๋๋ค. ์ปท ์๋์์๋ Windows ํ๊ฒฝ์ ๋ํ ๋ณดํธ ์๋จ์ผ๋ก Qubes๋ฅผ ์ฌ์ฉํ๋ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์์ ํ๋ ๋์์ ๋ฌ์์์ด๋ฅผ ์ฌ์ฉํ๋ ์์คํ ์ฌ์ฉ์ ์๋ฅผ ์ถ์ ํ๊ณ ์ถ์ต๋๋ค.
์ ํ๋ธ์ค์ธ๊ฐ?
Windows 7์ ๋ํ ๊ธฐ์ ์ง์ ์ข ๋ฃ์ ์ฌ์ฉ์์ ๋ถ์ ์ฆ๊ฐ๋ก ์ธํด ๋ค์ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ์ด OS์ ์์ ์ ๊ตฌ์ฑํด์ผ ํ์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ฐ์ดํธ ๋ฐ ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ(์ธํฐ๋ท ํฌํจ)์ ์ค์นํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์์ ํ ํ์ฑํ๋ Windows 7์ ์ฌ์ฉํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์กฐ๊ฑด(์์จ ์ด์ ๋ฐ ํธ๋ํฝ ํํฐ๋ง ๋ชจ๋)์ ๋ฐ๋ผ ๋คํธ์ํฌ ์ํธ ์์ฉ์ ์์ ํ ๋๋ ์ ํ์ ์ผ๋ก ์ ์ธํ๋๋ก ๊ตฌํํฉ๋๋ค.
- ์ด๋์ ๋ฏธ๋์ด์ ์ฅ์น๋ฅผ ์ ํ์ ์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด ์ ํ ์ธํธ๋ ๋ ๋ฆฝ์ ์ธ ๊ด๋ฆฌ๊ฐ ํ์ฉ๋๊ณ ์ ํ์ด ์ ์ฌ์ ์ธ ํ๋์ ์ฐจ๋จํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๋ฅํ ์ค๋ฅ๋ ํ๊ดด์ ์ธ ์ํํธ์จ์ด ํจ๊ณผ๋ฅผ ๋ฐฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋ช ํํ๊ฒ ์ค๋น๋ ์ฌ์ฉ์๋ฅผ ์ ์ ๋ก ํฉ๋๋ค. ์ ๊ฒ๋ค. ๋ชจ๋ธ์๋ ๋ด๋ถ ๋ฒ์ฃ์๊ฐ ์์ต๋๋ค.
์๋ฃจ์ ์ ์ฐพ์ ๋ ๊ธฐ๋ณธ ์ ๊ณต ๋๋ ์ถ๊ฐ Windows ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ๊ตฌํํ๋ค๋ ์์ด๋์ด๋ฅผ ๋นจ๋ฆฌ ํฌ๊ธฐํ์ต๋๋ค. ๊ด๋ฆฌ์ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ํํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค์นํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ ์๋ฃจ์ ์ ๊ฐ์ํ๋ฅผ ์ฌ์ฉํ ๊ฒฉ๋ฆฌ์์ต๋๋ค. ๋ฐ์คํฌํฑ ๊ฐ์ํ๋ฅผ ์ํ ์ ์๋ ค์ง ๋๊ตฌ(์: virtualbox)๋ ๋ณด์ ๋ฌธ์ ํด๊ฒฐ์ ์ ํฉํ์ง ์์ผ๋ฉฐ ๋์ด๋ ์ ํ ์ฌํญ์ ์ฌ์ฉ์๊ฐ ๊ฒ์คํธ ๊ฐ์ ๋จธ์ ์ ์์ฑ์ ์ง์์ ์ผ๋ก ์ ํํ๊ฑฐ๋ ์กฐ์ ํ์ฌ ์ํํด์ผ ํฉ๋๋ค(์ดํ ์ฐธ์กฐ). VM์ผ๋ก) ์ค๋ฅ ์ํ์ด ์ฆ๊ฐํฉ๋๋ค.
๋์์ ์ฐ๋ฆฌ๋ Qubes๋ฅผ ์ฌ์ฉ์์ ๋ฐ์คํฌํฑ ์์คํ ์ผ๋ก ์ฌ์ฉํ ๊ฒฝํ์ด ์์์ง๋ง ๊ฒ์คํธ Windows์์ ์์ ํ๋ ์์ ์ฑ์ ๋ํด ์๊ตฌ์ฌ์ ๋๊ผ์ต๋๋ค. ๋ช ์๋ ์ ํ ์ฌํญ์ด ์ด ์์คํ ์ ํจ๋ฌ๋ค์, ํนํ ๊ฐ์ ๋จธ์ ํ ํ๋ฆฟ ๊ตฌํ ๋ฐ ์๊ฐ์ ํตํฉ์ ๋งค์ฐ ์ ๋ค์ด๋ง๊ธฐ ๋๋ฌธ์ Qubes์ ํ์ฌ ๋ฒ์ ์ ํ์ธํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ค์์๋ ๋ฌธ์ ํด๊ฒฐ ์ฌ๋ก๋ฅผ ํตํด Qubes์ ์์ด๋์ด์ ๋๊ตฌ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
Xen ๊ฐ์ํ ์ ํ
Qubes๋ ํ๋ก์ธ์ ๋ฆฌ์์ค, ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ฐ์ ๋จธ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ต์ํํ๋ Xen ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ฅ์น์ ๋ํ ๋ค๋ฅธ ๋ชจ๋ ์์ ์ Linux ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ dom0์ ์ง์ค๋์ด ์์ต๋๋ค(dom0์ฉ Qubes๋ Fedora ๋ฐฐํฌํ์ ์ฌ์ฉํฉ๋๋ค).
Xen์ ์ฌ๋ฌ ์ ํ์ ๊ฐ์ํ๋ฅผ ์ง์ํฉ๋๋ค(Xen์ ๋ค๋ฅธ ์ํคํ ์ฒ๋ ์ง์ํ์ง๋ง Intel ์ํคํ ์ฒ์ ๋ํ ์๋ฅผ ์ ์ํ๊ฒ ์ต๋๋ค).
- ๋ฐ๊ฐ์ํ(PV) - ์ปจํ ์ด๋ ๊ฐ์ํ๋ฅผ ์ฐ์์ํค๋ ํ๋์จ์ด ์ง์์ ์ฌ์ฉํ์ง ์๋ ๊ฐ์ํ ๋ชจ๋๋ ์กฐ์ ๋ ์ปค๋์ด ์๋ ์์คํ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค(dom0์ ์ด ๋ชจ๋์์ ์๋ํจ).
- ์ ์ฒด ๊ฐ์ํ(HVM) - ์ด ๋ชจ๋์์๋ ํ๋์จ์ด ์ง์์ด ํ๋ก์ธ์ ๋ฆฌ์์ค์ ์ฌ์ฉ๋๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ์ฅ๋น๋ QEMU๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฎฌ๋ ์ดํธ๋ฉ๋๋ค. ์ด๋ ๋ค์ํ ์ด์ ์ฒด์ ๋ฅผ ์คํํ๋ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
- ํ๋์จ์ด ๋ฐ๊ฐ์ํ(PVH - ParaVirtualized Hardware) - ํ๋์จ์ด ์์ ์ ์ํด ๊ฒ์คํธ ์์คํ ์ปค๋์ด ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฅ(์: ๊ณต์ ๋ฉ๋ชจ๋ฆฌ)์ ์ ํฉํ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ QEMU ์๋ฎฌ๋ ์ด์ ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ํ๋์จ์ด ์ง์์ ์ฌ์ฉํ๋ ๊ฐ์ํ ๋ชจ๋์ ๋๋ค. I/O ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค. 4.11๋ถํฐ ์์ํ๋ Linux ์ปค๋์ ์ด ๋ชจ๋์์ ์๋ํ ์ ์์ต๋๋ค.
Qubes 4.0๋ถํฐ๋ ๋ณด์์์ ์ด์ ๋ก ๋ฐ๊ฐ์ํ ๋ชจ๋ ์ฌ์ฉ์ด ์ค๋จ๋๊ณ (์ ์ฒด ๊ฐ์ํ ์ฌ์ฉ์ผ๋ก ๋ถ๋ถ์ ์ผ๋ก ์ํ๋๋ Intel ์ํคํ ์ฒ์ ์๋ ค์ง ์ทจ์ฝ์ ํฌํจ) PVH ๋ชจ๋๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฎฌ๋ ์ด์
(HVM ๋ชจ๋)์ ์ฌ์ฉํ ๋ QEMU๋ stubdomain์ด๋ผ๋ ๊ฒฉ๋ฆฌ๋ VM์์ ์์๋๋ฏ๋ก ๊ตฌํ ์ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์
์ฉํ ์ํ์ด ์ค์ด๋ญ๋๋ค(QEMU ํ๋ก์ ํธ์๋ ํธํ์ฑ์ ํฌํจํ์ฌ ๋ง์ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค).
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ Windows์์ ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์๋น์ค ๊ฐ์ ๋จธ์
Qubes ๋ณด์ ์ํคํ ์ฒ์์ ํ์ดํผ๋ฐ์ด์ ์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋๋ PCI ์ฅ์น๋ฅผ ๊ฒ์คํธ ํ๊ฒฝ์ผ๋ก ์ ์กํ๋ ๊ฒ์ ๋๋ค. ํ๋์จ์ด ์ ์ธ๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ ์ ํธ์คํธ ๋ถ๋ถ์ ์ธ๋ถ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๊ฒฉ๋ฆฌํ ์ ์์ต๋๋ค. Xen์ PV ๋ฐ HVM ๋ชจ๋์ ๋ํด ์ด๋ฅผ ์ง์ํ๋ฉฐ, ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๊ฐ์ํ๋ ์ฅ์น์ ๋ํ ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ธ IOMMU(Intel VT-d)์ ๋ํ ์ง์์ด ํ์ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ฌ๋ฌ ์์คํ ๊ฐ์ ๋จธ์ ์ด ์์ฑ๋ฉ๋๋ค.
- ๋คํธ์ํฌ ์ฅ์น๊ฐ ์ ์ก๋๊ณ ๋ค๋ฅธ VM(์: ๋ฐฉํ๋ฒฝ ๋๋ VPN ํด๋ผ์ด์ธํธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ VM)์ ๋ํ ๋ธ๋ฆฌ์ง๋ก ์ฌ์ฉ๋๋ sys-net
- USB ๋ฐ ๊ธฐํ ์ฃผ๋ณ ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์ ์ก๋๋ sys-usb;
- ์ฅ์น๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง ์ฐ๊ฒฐ๋ VM์ ๋ํ ๋ฐฉํ๋ฒฝ ์ญํ ์ ํ๋ sys-firewall์ ๋๋ค.
USB ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์ ๊ณตํ๋ ํ๋ก์ ์๋น์ค๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- HID(ํด๋จผ ์ธํฐํ์ด์ค ์ฅ์น) ์ฅ์น ํด๋์ค์ ๊ฒฝ์ฐ dom0์ ๋ช ๋ น์ ๋ณด๋ ๋๋ค.
- ์ด๋์ ๋ฏธ๋์ด์ ๊ฒฝ์ฐ ์ฅ์น ๋ณผ๋ฅจ์ ๋ค๋ฅธ VM์ผ๋ก ๋ฆฌ๋๋ ์ (dom0 ์ ์ธ)
- USB ์ฅ์น๋ก ์ง์ ๋ฆฌ๋๋ ์ (USBIP ๋ฐ ํตํฉ ๋๊ตฌ ์ฌ์ฉ)
์ด๋ฌํ ๊ตฌ์ฑ์์ ๋คํธ์ํฌ ์คํ์ด๋ ์ฐ๊ฒฐ๋ ์ฅ์น๋ฅผ ํตํ ์ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ์ ์ ์ฒด ์์คํ ์ด ์๋ ์คํ ์ค์ธ ์๋น์ค VM๋ง ์์์ํฌ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋น์ค VM์ ๋ค์ ์์ํ๋ฉด ์๋ ์ํ๋ก ๋ก๋๋ฉ๋๋ค.
VM ํตํฉ ๋๊ตฌ
๊ฒ์คํธ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๊ฑฐ๋ ๊ฐ์ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฑ ๊ฐ์ ๋จธ์ ์ ๋ฐ์คํฌํ๊ณผ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฒ์คํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๋ฒ์ฉ ์๊ฒฉ ์ก์ธ์ค ๋๊ตฌ(RDP, VNC, Spice ๋ฑ)์ด๊ฑฐ๋ ํน์ ํ์ดํผ๋ฐ์ด์ ์ ๋ง๊ฒ ์กฐ์ ๋ ์ ์์ต๋๋ค(์ด๋ฌํ ๋๊ตฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์คํธ ์ ํธ๋ฆฌํฐ๋ผ๊ณ ํจ). ํ์ดํผ๋ฐ์ด์ ๊ฐ ๊ฒ์คํธ ์์คํ ์ ๋ํ I/O๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์ธ๋ถ์ ์ผ๋ก Spice์ ๊ฐ์ด I/O๋ฅผ ๊ฒฐํฉํ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ํผํฉ ์ต์ ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋์์ ์๊ฒฉ ์ก์ธ์ค ๋๊ตฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง ํ์ง์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋คํธ์ํฌ๋ฅผ ํตํ ์์ ์ ํฌํจํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํฉ๋๋ค.
Qubes๋ VM ํตํฉ์ ์ํ ์์ฒด ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฐ์ , ์ด๊ฒ์ ๊ทธ๋ํฝ ํ์ ์์คํ ์ ๋๋ค. ์๋ก ๋ค๋ฅธ VM์ ์ฐฝ์ด ๊ณ ์ ํ ์์ ํ๋ ์์ ์ฌ์ฉํ์ฌ ๋จ์ผ ๋ฐ์คํฌํ์ ํ์๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํตํฉ ๋๊ตฌ๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(Xen ๋ถ์ฌ ํ ์ด๋ธ), ์๋ฆผ ๋๊ตฌ(Xen ์ด๋ฒคํธ ์ฑ๋), ๊ณต์ ์ ์ฅ์ xenstore ๋ฐ vchan ํต์ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ ํ์ดํผ๋ฐ์ด์ ์ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋์์ ๋ฐ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ qrexec ๋ฐ qubes-rpc์ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค(์ค๋์ค ๋๋ USB ๋ฆฌ๋๋ ์ , ํ์ผ ๋๋ ํด๋ฆฝ๋ณด๋ ์ฝํ ์ธ ์ ์ก, ๋ช ๋ น ์คํ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์คํ)๊ฐ ๊ตฌํ๋ฉ๋๋ค. VM์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋น์ค๋ฅผ ์ ํํ ์ ์๋ ์ ์ฑ ์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ VM์ ์ํธ ์์ฉ์ ์ด๊ธฐํํ๋ ์ ์ฐจ์ ์์ ๋๋ค.
๋ฐ๋ผ์ VM์์์ ์์ ์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ํ๋๋ฏ๋ก ์ ๋ณด ์ ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์์จ VM์ ์ต๋ํ ํ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ธ ํค๊ฐ ๊ฒฉ๋ฆฌ๋ VM์์ ์ฌ์ฉ๋๊ณ ์ด๋ฅผ ์ด๊ณผํ์ง ์๋ ๊ฒฝ์ฐ ์ํธํ ์์ ๋ถ๋ฆฌ(PGP/SSH)๊ฐ ๊ตฌํ๋๋ ๋ฐฉ์์ ๋๋ค.
ํ ํ๋ฆฟ, ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ผํ์ฑ VM
Qubes์ ๋ชจ๋ ์ฌ์ฉ์ ์์ ์ ๊ฐ์ ๋จธ์ ์์ ์ํ๋ฉ๋๋ค. ๋ฉ์ธ ํธ์คํธ ์์คํ ์ ์ด๋ฅผ ์ ์ดํ๊ณ ์๊ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. OS๋ ๊ธฐ๋ณธ ํ ํ๋ฆฟ ๊ธฐ๋ฐ ๊ฐ์ ๋จธ์ ์ธํธ(TemplateVM)์ ํจ๊ป ์ค์น๋ฉ๋๋ค. ์ด ํ ํ๋ฆฟ์ ํตํฉ ๋๊ตฌ๊ฐ ์ค์น ๋ฐ ๊ตฌ์ฑ๋๊ณ ์ ์ฉ ์์คํ ๋ฐ ์ฌ์ฉ์ ํํฐ์ ์ด ํฌํจ๋ Fedora ๋๋ Debian ๋ฐฐํฌ ๊ธฐ๋ฐ์ Linux VM์ ๋๋ค. ์ํํธ์จ์ด ์ค์น ๋ฐ ์ ๋ฐ์ดํธ๋ ํ์ ๋์งํธ ์๋ช ํ์ธ(GnuPG)์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํ์ค ํจํค์ง ๊ด๋ฆฌ์(dnf ๋๋ apt)์ ์ํด ์ํ๋ฉ๋๋ค. ์ด๋ฌํ VM์ ๋ชฉ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ VM์ ๋ํ ์ ๋ขฐ๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค.
์์ ์ AppVM(์ ํ๋ฆฌ์ผ์ด์ VM)์ ํด๋น VM ํ ํ๋ฆฟ์ ์์คํ ํํฐ์ ์ค๋ ์ท์ ์ฌ์ฉํ๊ณ , ์๋ฃ๋๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ์ง ์๊ณ ์ด ์ค๋ ์ท์ ์ญ์ ํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ํ์ํ ๋ฐ์ดํฐ๋ ํ ๋๋ ํ ๋ฆฌ์ ๋ง์ดํธ๋ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ VM์ ๊ณ ์ ํ ์ฌ์ฉ์ ํํฐ์ ์ ์ ์ฅ๋ฉ๋๋ค.
์ผํ์ฉ VM(disposableVM)์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์ ๊ด์ ์์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฌํ VM์ ์์ ์ ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ฉฐ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ซ์ ํ ์์ ์ ์๋ฃํ๋ ํ ๊ฐ์ง ๋ชฉ์ ์ผ๋ก ์์๋ฉ๋๋ค. ์ผํ์ฉ VM์ ์ฌ์ฉํ๋ฉด ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ทจ์ฝ์ ์ ์ ์ฉํ ์ ์๋ ์ฝํ ์ธ ๊ฐ ํฌํจ๋ ์์ฌ์ค๋ฌ์ด ํ์ผ์ ์ด ์ ์์ต๋๋ค. ์ผํ์ฑ VM์ ์คํํ๋ ๊ธฐ๋ฅ์ ํ์ผ ๊ด๋ฆฌ์(Nautilus) ๋ฐ ์ด๋ฉ์ผ ํด๋ผ์ด์ธํธ(Thunderbird)์ ํตํฉ๋์์ต๋๋ค.
Windows VM์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ ํ๋กํ์ ๋ณ๋์ ์น์ ์ผ๋ก ์ด๋ํ์ฌ ํ ํ๋ฆฟ๊ณผ ์ผํ์ฑ VM์ ๋ง๋ค ์๋ ์์ต๋๋ค. ์ฐ๋ฆฌ ๋ฒ์ ์์๋ ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌ ์์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ค์น๋ฅผ ์ํด ์ด๋ฌํ ํ ํ๋ฆฟ์ ์ฌ์ฉํฉ๋๋ค. ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ๋คํธ์ํฌ์ ๋ํ ์ก์ธ์ค๊ฐ ์ ํ๋๊ณ (ํ์ค sys-๋ฐฉํ๋ฒฝ ๊ธฐ๋ฅ) ๋คํธ์ํฌ์ ์ ํ ์ก์ธ์คํ ์ ์๋(๊ฐ์ ๋คํธ์ํฌ ์ฅ์น๊ฐ ์์ฑ๋์ง ์์) ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ VM์ด ์์ฑ๋ฉ๋๋ค. ํ ํ๋ฆฟ์ ์ค์น๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฌํ VM์์ ์๋ํ ์ ์์ผ๋ฉฐ, ๋ถ๋งํฌ ํ๋ก๊ทธ๋จ์ด ๋์ ๋๋๋ผ๋ ์์๋ ์ ์๋ ๋คํธ์ํฌ ์ก์ธ์ค ๊ถํ์ด ์์ต๋๋ค.
์๋์ฐ๋ฅผ ์ํ ์ธ์
์์์ ์ค๋ช ํ ๊ธฐ๋ฅ์ Qubes์ ๊ธฐ๋ณธ์ด๋ฉฐ ๋งค์ฐ ์์ ์ ์ผ๋ก ์๋ํ์ง๋ง Windows๋ถํฐ ์ด๋ ค์์ด ์์๋ฉ๋๋ค. Windows๋ฅผ ํตํฉํ๋ ค๋ฉด Xen ์์ ์ฉ ๋๋ผ์ด๋ฒ, qvideo ๋๋ผ์ด๋ฒ ๋ฐ ์ ๋ณด ๊ตํ์ฉ ์ ํธ๋ฆฌํฐ ์ธํธ(ํ์ผ ์ ์ก, ํด๋ฆฝ๋ณด๋)๊ฐ ํฌํจ๋ ๊ฒ์คํธ ๋๊ตฌ Qubes Windows ๋๊ตฌ(QWT) ์ธํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ค์น ๋ฐ ๊ตฌ์ฑ ํ๋ก์ธ์ค๋ ํ๋ก์ ํธ ์น ์ฌ์ดํธ์ ์์ธํ ๋ฌธ์ํ๋์ด ์์ผ๋ฏ๋ก ์์ฉ ํ๋ก๊ทธ๋จ ๊ฒฝํ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ํฐ ์ด๋ ค์์ ๋ณธ์ง์ ์ผ๋ก ๊ฐ๋ฐ๋ ๋๊ตฌ์ ๋ํ ์ง์์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค. ์ฃผ์ ๊ฐ๋ฐ์(QWT)๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ Windows ํตํฉ ํ๋ก์ ํธ๊ฐ ์์ ๊ฐ๋ฐ์๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ์ ๊ทธ ์ฑ๊ณผ๋ฅผ ํ๊ฐํ๊ณ , ํ์ํ๋ค๋ฉด ๋
๋ฆฝ์ ์ผ๋ก ์ง์ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๋ํ ์ดํด๋ฅผ ํ์ฑํ๋ ๊ฒ์ด ํ์ํ์ต๋๋ค. ๊ฐ๋ฐํ๊ณ ๋๋ฒ๊ทธํ๊ธฐ ๊ฐ์ฅ ์ด๋ ค์ด ๊ฒ์ ๋น๋์ค ์ด๋ํฐ์ ๋์คํ๋ ์ด๋ฅผ ์๋ฎฌ๋ ์ดํธํ์ฌ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ์
๋๋ค. ์ด๋ฅผ ํตํด ํธ์คํธ ์์คํ
์ฐฝ์ ์ง์ ์ ์ฒด ๋ฐ์คํฌํฑ์ด๋ ์์ฉ ํ๋ก๊ทธ๋จ ์ฐฝ์ ํ์ํ ์ ์์ต๋๋ค. ๋๋ผ์ด๋ฒ ์๋์ ๋ถ์ํ๋ ๋์ ์ฐ๋ฆฌ๋ Linux ํ๊ฒฝ์์ ์ด์
๋ธ๋ฆฌ์ฉ ์ฝ๋๋ฅผ ์กฐ์ ํ๊ณ ๋ Windows ๊ฒ์คํธ ์์คํ
๊ฐ์ ๋๋ฒ๊น
๋ฐฉ์์ ์ฐ๊ตฌํ์ต๋๋ค. ํฌ๋ก์ค๋น๋ ๋จ๊ณ์์ ์ฐ๋ฆฌ๋ ์ฃผ๋ก ์ ํธ๋ฆฌํฐ์ "์๋" ์ค์น ์ธก๋ฉด์์ ์์
์ ๋จ์ํํ๊ณ VM์์ ์ค๋ซ๋์ ์์
ํ ๋ ์ฑ๊ฐ์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๊ฑฐํ๋ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์
๊ฒฐ๊ณผ๋ฅผ ๋ณ๋๋ก ๋ฐํํ์ต๋๋ค.
๊ฒ์คํธ ์์คํ ์์ ์ฑ ์ธก๋ฉด์์ ๊ฐ์ฅ ์ค์ํ ๋จ๊ณ๋ Windows ์์์ ๋๋ค. ์ฌ๊ธฐ์๋ ์น์ํ ๋ธ๋ฃจ ์คํฌ๋ฆฐ์ด ํ์๋๊ฑฐ๋ ํ์๋์ง ์์ ์๋ ์์ต๋๋ค. ํ์ธ๋ ๋๋ถ๋ถ์ ์ค๋ฅ์๋ Xen ๋ธ๋ก ์ฅ์น ๋๋ผ์ด๋ฒ ์ ๊ฑฐ, VM ๋ฉ๋ชจ๋ฆฌ ๋ฐธ๋ฐ์ฑ ๋นํ์ฑํ, ๋คํธ์ํฌ ์ค์ ์์ , ์ฝ์ด ์ ์ต์ํ ๋ฑ ๋ค์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์์ต๋๋ค. ์ฐ๋ฆฌ ๊ฒ์คํธ ๋๊ตฌ๋ ์์ ํ ์ ๋ฐ์ดํธ๋ Windows 7 ๋ฐ Windows 10(qvideo ์ ์ธ)์์ ์ค์น ๋ฐ ์คํ๋ฉ๋๋ค.
์ค์ ํ๊ฒฝ์์ ๊ฐ์ ํ๊ฒฝ์ผ๋ก ์ด๋ํ ๋ ์ฌ์ ์ค์น๋ OEM ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Windows ์ ํ ์ธ์ฆ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์์คํ ์ ์ฅ์น์ UEFI์ ์ง์ ๋ ๋ผ์ด์ ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฑํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ์ฑํ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ค๋ฉด ํธ์คํธ ์์คํ (SLIC ํ ์ด๋ธ)์ ์ ์ฒด ACPI ์น์ ์ค ํ๋๋ฅผ ๊ฒ์คํธ ์์คํ ์ผ๋ก ๋ณํํ๊ณ ๋๋จธ์ง ๋ถ๋ถ์ ์ฝ๊ฐ ํธ์งํ์ฌ ์ ์กฐ์ ์ฒด๋ฅผ ๋ฑ๋กํด์ผ ํฉ๋๋ค. Xen์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ํ ์ด๋ธ์ ์์ ํ์ง ์๊ณ ๋ ์ถ๊ฐ ํ ์ด๋ธ์ ACPI ์ฝํ ์ธ ๋ฅผ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. Qubes์ ๋ง๊ฒ ์กฐ์ ๋ ์ ์ฌํ OpenXT ํ๋ก์ ํธ์ ํจ์น๊ฐ ์๋ฃจ์ ์ ๋์์ด ๋์์ต๋๋ค. ์์ ์ฌํญ์ ์ฐ๋ฆฌ์๊ฒ๋ง ์ ์ฉํ ๊ฒ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์๊ณ ๊ธฐ๋ณธ Qubes ์ ์ฅ์์ Libvirt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฒ์ญ๋์์ต๋๋ค.
Windows ํตํฉ ๋๊ตฌ์ ๋ช ๋ฐฑํ ๋จ์ ์ GPU์ ๋ํ ํ๋์จ์ด ์ง์์ด ์๊ธฐ ๋๋ฌธ์ ์ค๋์ค, USB ์ฅ์น์ ๋ํ ์ง์์ด ๋ถ์กฑํ๊ณ ๋ฏธ๋์ด ์์ ์ด ๋ณต์กํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ ๋ด์ฉ์ Office ๋ฌธ์ ์์ ์ VM์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ง ์์ผ๋ฉฐ ํน์ ๊ธฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ง์ง๋ ์์ต๋๋ค.
Windows VM ํ ํ๋ฆฟ์ ์์ฑํ ํ ๋คํธ์ํฌ๊ฐ ์๊ฑฐ๋ ์ ํ๋ ๋คํธ์ํฌ๊ฐ ์๋ ์๋ ๋ชจ๋๋ก ์ ํํด์ผ ํ๋ ์๊ตฌ ์ฌํญ์ ์ ์ ํ ์ ํ๋ฆฌ์ผ์ด์ VM ๊ตฌ์ฑ์ ์์ฑํ์ฌ ์ถฉ์กฑ๋์์ผ๋ฉฐ, ์ด๋์ ๋ฏธ๋์ด๋ฅผ ์ ํ์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์๋ ๊ฐ๋ฅ์ฑ๋ ํ์ค OS ๋๊ตฌ๋ฅผ ํตํด ํด๊ฒฐ๋์์ต๋๋ค. , ํ์ํ VM์ผ๋ก "์ ๋ฌ"๋ ์ ์๋ ์์คํ VM sys-usb์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ ๋ฐ์คํฌํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์คํ ์ ์ต์ข ๋ฒ์ ์ ์ฌ์ฉ์๊ฐ ๊ธ์ ์ ์ผ๋ก ๋ฐ์๋ค์์ผ๋ฉฐ(ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ด ํ์ฉํ๋ ํ) ์์คํ ์ ํ์ค ๋๊ตฌ๋ฅผ ํตํด VPN์ ํตํด ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์์ ๋ชจ๋ฐ์ผ ์ํฌ์คํ ์ด์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅํ ์ ์์์ต๋๋ค.
๋์ ๊ฒฐ๋ก
์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ง์ ์์ด Windows ์์คํ ์ ์ฌ์ฉํ ๋ ๋ฐ์ํ ์ ์๋ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค. ์ฆ, ์๋ก์ด ํ๋์จ์ด์์ ํธํ์ฑ์ ๊ฐ์ํ์ง ์๊ณ ๋คํธ์ํฌ๋ ์ฐ๊ฒฐ๋ ์ฅ์น๋ฅผ ํตํด ์์คํ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ธํ๊ฑฐ๋ ์ ์ดํ ์ ์์ผ๋ฉฐ ๋ค์์ ์ํํ ์ ์์ต๋๋ค. ์ผํ์ฑ ์คํ ํ๊ฒฝ์ ๊ตฌํํฉ๋๋ค.
Qubes OS๋ ๊ฐ์ํ๋ฅผ ํตํ ๊ฒฉ๋ฆฌ ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ณด์์ ์ํด ์ด๋ฌํ ๋ฉ์ปค๋์ฆ๊ณผ ๊ธฐํ ๋ฉ์ปค๋์ฆ์ ํ์ฉํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ธ๋ถ์์ ๋ณด๋ฉด ๋ง์ ์ฌ๋๋ค์ด Qubes๋ฅผ ์ฃผ๋ก ์ต๋ช ์ฑ์ ๋ํ ์๊ตฌ๋ก ์๊ฐํ์ง๋ง, ์ด๋ ์ข ์ข ํ๋ก์ ํธ, ์ธํ๋ผ ๋ฐ ๋น๋ฐ์ ์ ๊ทผํ๊ธฐ ์ํด ์ ๊ธ๋งํ๋ ์์ง๋์ด์ ๋ณด์ ์ฐ๊ตฌ์ ๋ชจ๋์๊ฒ ์ ์ฉํ ์์คํ ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ , ๋ฐ์ดํฐ์ ๋ถ๋ฆฌ ๋ฐ ์ํธ ์์ฉ์ ํ์ํ๋ ์ํ ๋ถ์ ๋ฐ ๋ณด์ ์์คํ ์ค๊ณ์ ์ด๊ธฐ ๋จ๊ณ์ ๋๋ค. ์ด๋ฌํ ๋ถ๋ฆฌ๋ ์ ๋ณด๋ฅผ ๊ตฌ์กฐํํ๊ณ ์ธ์ ์์ธ(์๋๋ฆ, ํผ๋ก ๋ฑ)์ผ๋ก ์ธํ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ์ฌ ๊ฐ๋ฐ์์ ๊ฐ์ฅ ์ค์ ์ ๋๊ณ ์๋ ๋ถ๋ถ์ Linux ํ๊ฒฝ์ ๊ธฐ๋ฅ ํ์ฅ์ ๋๋ค. ๋ฒ์ 4.1์ ์ถ์ ์ค๋น ์ค์ ๋๋ค. ์ด ๋ฒ์ ์ Fedora 31์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ Xen ๋ฐ Libvirt์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ์ต์ ๋ฒ์ ์ ํฌํจํฉ๋๋ค. Qubes๋ ์๋ก์ด ์ํ์ด๋ ์ค๋ฅ๊ฐ ์๋ณ๋๋ฉด ํญ์ ์ฆ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฆด๋ฆฌ์คํ๋ ์ ๋ณด ๋ณด์ ์ ๋ฌธ๊ฐ์ ์ํด ๋ง๋ค์ด์ก๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ฌํ
์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐ ์ค์ธ ์คํ์ ๊ธฐ๋ฅ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด Intel GVT-g ๊ธฐ์ ๊ธฐ๋ฐ GPU์ ๋ํ ๊ฒ์คํธ ์ก์ธ์ค๋ฅผ ์ง์ํ๋ VM์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ทธ๋ํฝ ์ด๋ํฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์คํ
๋ฒ์๋ฅผ ํฌ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ์์ฑ ๋น์ ์ด ๊ธฐ๋ฅ์ Qubes 4.1์ ํ
์คํธ ๋น๋์์ ์๋ํ๋ฉฐ ๋ค์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com