Wasm-module์๋ ๋ณด์ ์๋ช ๋ฐ Wasm-module-bytecode์ ๊ฒ์ฆ์ ๋ํ ๊ฐ๋ ์ด ์์ต๋๋ค.
์ด๋ฌํ ์๋ช ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ WebAssembly ๋ชจ๋ ํ์ผ์ ์ ๋ขฐ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ์ ํ์ฉํฉ๋๋ค.
๋ฐ์ด๋๋ฆฌ ์ธ์ฝ๋ฉ(Wasm-module-files)์๋ ์๋ช
์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
Wasm-bytecode๋ฅผ ํ์ฑํ์ง ์๊ณ ์๋ช
์ ์์ฑํ๊ณ ๊ฒ์ฆํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ฐ๋ ์ฆ๋ช ์ด ๊ตฌํ๋์์ผ๋ฉฐ https://github.com/frehberg/wasm-sign ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ Wasm-Module-Signature๋ ์น์ ์ด๋ฆ "signature"๋ฅผ ์ฌ์ฉํ๊ณ Wasm-module-bytecode์ ๋์ ์ฒจ๋ถ๋๋ CustomSection(0)์ ๋๋ค. ์ด ํฌ๊ธฐ/์ค๋ฒํค๋๋ 118๋ฐ์ดํธ์ ๋๋ค. ECDSA๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์๋ช ์ ๋๋ค. ์ง์๋๋ ๊ณก์ ์ secp256k1/SHA256์ ๋๋ค. ์์ผ๋ก ๋ค์ ๊ณก์ ์ด Ed25519 ๋ฐ secp384r1์์ ์ง์๋ฉ๋๋ค.
์ํธ ์ด์ฉ์ฑ์ ์ํด ์๋ช ํ์์ ํ์คํํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ (signature ...)
์ ๊ฐ์ ํ
์คํธ ํ์์์๋ ์ด์ ์์ํ๋ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
CSP์ ๊ฒฝ์ฐ ์๋ช ํ์ธ์ด https๋ฅผ ํตํด ์ผ์ ธ ์์ ์ ์์ต๋๊น? ์๋๋ฉด ๊ธฐ๋ณธ ๋์์ผ๋ก ์ผ์ ธ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
ํ , "CSP ๋ฐ ํ์ธ": ํ๋ก์ธ์ค์ ๋งค์ฐ ์ด๊ธฐ ๋จ๊ณ์ ๋๋ค. ๊ฒ์ฆ์ ์ํด ์๋ฒ ๋๋ ๋ค๋ฅธ ์ธ์คํด์ค์ (๋๋ ์ฌ๋ฌ) ๊ณต๊ฐ ํค๊ฐ ํ์ํ๋ฉฐ EC(ํ์ ๊ณก์ )๋ฅผ ์ฌ์ฉํ๋ ๊ณต๊ฐ ํค์ฌ์ผ ํฉ๋๋ค.
HTTP(S) ๊ธฐ๋ฐ ์๋น์ค์ ๊ด๋ จ์ด ์๋ ๊ฒฝ์ฐ ํด๋น ๊ณต๊ฐ ํค(ํ์ ๊ณก์ ํค)์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ํ์ํฉ๋๋ค. ํด๋น ๊ณต๊ฐ ํค๋ WASM ๋ชจ๋์ ๋ก๋ํ๋ ์น ํ์ด์ง์ HTTP ํค๋ ์์ฑ์ผ๋ก ํฌํจ๋ ์ ์์ต๋๋ค.
WASM ๋ชจ๋์ ์๋ช ํ๋ฉด ๋ชจ๋ ์์น์์ ๊ฐ์ ธ์์ ํ์ธํ ์ ์์ต๋๋ค.
WASM ํ์ผ์ ์๋ช ํ๋ ๋จ์ผ ์กฐ์ง(ํธ์คํฐ)์ด ์์ต๋๊น? ์๋๋ฉด ์น ํ์ด์ง๊ฐ ์ฌ๋ฌ ์กฐ์ง/๊ณต๊ธ์๋ก๋ถํฐ ์๋ช ๋ ๋ชจ๋์ ๊ฐ์ ธ์ค๊ฒ ์ต๋๊น?
์ฌ๋ฌ ์กฐ์ง์ ๊ฒฝ์ฐ ์๋ช ์์ฒด์ "organization-id"๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ผ์ข ์ SignerOrg๋ฅผ ์ถ๊ฐ ์น์ (๊ณ ์ ํฌ๊ธฐ๋ ํฌํจ)์ผ๋ก ์ ์ํฉ๋๋ค. ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค. ๋จผ์ SignerOrg ์น์ ์ ์ฒจ๋ถํ ๋ค์ ๋ ๋ค์ ์๋ช ํฉ๋๋ค(์๋ณธ ๋ชจ๋-๋ฐ์ดํธ์ฝ๋ ๋ฐ signerorg-์น์ ).
์ ์ค ์ผ์ด์ค์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ ์ํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค ;)
์๋ช ๋ฐ ํ์ธ์ ์ํ ์น์ ํ์ฌ ๋ฉ์ปค๋์ฆ์ด ์ด๋ป๊ฒ ์คํจํ๊ณ ์ผ๋ฅ WebAssembly ์ง์์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ๋ ์ ์ดํดํ๊ณ ์ถ์ต๋๋ค. ํนํ ์น์๋ HTTPS ๋ฐ ํ์ ๋ฆฌ์์ค ๋ฌด๊ฒฐ์ฑ์ด ์์ผ๋ฉฐ ์๋ฒฝํ์ง๋ ์์ง๋ง ์ด๋ฏธ ์ฐ๋ฆฌ์๊ฒ ์๋นํ ๋์์ด ๋ฉ๋๋ค.
์์ ํ์ผ๋ฉด ํ๋ ์ ๊ณผ ์ ์์์ ๋์ผํ ํจ์ ์ด ์๋ ์ด์ ๋ฅผ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
๊ธ์, ๋๋ ์๋ ํ ์์๋ค
ํฌํจ๋ ์๋ช
์ ์ด๋ฏธ PDF, Win-binaries, ๋๋ผ์ด๋ฒ, XML ๋ฌธ์ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ช
๋ WebAssembly ๋ชจ๋์ ์ด๋ค ์ฉ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๊น?
์์ ํด๋ด
ํ์์ ๊ฒฝ์ฐ IoT ์ฅ์น์ ํ์จ์ด ๋ฒ์ ์ ํน์ ๋ฒ์ ์ ์ฌ์ฉํ๋ WebAssembly ๋ชจ๋ ๋ชฉ๋ก์ ๋๋ค. IoT ์ฅ์น๋ WebAssembly ๋ชจ๋ ๋ฒ์ ์ ์ด์์ ๋ค๋ฅธ ์ฅ์น๋ก ํผ๋จ๋ฆด ์ ์์ต๋๋ค(http://www.korhal.io/whitepaper.pdf). ์ค์ ์ ๋ฐ์ดํธ ์๋ฒ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒฝ์ฐ์ TSL ์ ์ก์ ์ ๋ขฐ๋ฅผ ์ค์ ํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ง๋ง ์์ ์๊ฐ ๊ฐ๋ฐ์/๊ณต๊ธ์์์ ์น ๋ธ๋ผ์ฐ์ ๋๋ ์คํ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ณต๊ธ๋ง์ ๋ฐ๋ผ ์ง์, ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ ์ ์๋๋ก ์ฝ๋์ ์๋ช
ํด์ผ ํฉ๋๋ค. ์์ง.
์๋ช
์ ๋ฏธ์ฌ์ฉ ๋ฐ์ดํฐ์ ๋ณ์กฐ๋ฅผ ๋ฐฉ์งํ๊ณ ๋ฒ์ ์ธก๋ฉด์์ ์ด์์ ์ค์ํ ์ฝ๋์ ๋ํ ๋ถ์ธ ๋ฐฉ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ถ๋ฆฌ๋ ์๋ช ์ ์ฌ์ฉํ๋ฉด(WASM ๋ชจ๋์ ํฌํจ๋ ์๋ช ๊ณผ ๋น๊ตํ์ฌ) ์ฒ๋ฆฌํ๊ธฐ๊ฐ ๋ ๋ณต์กํฉ๋๋ค. ํฌํจ๋ ์๋ช ์ ๋ฐ์ดํธ์ฝ๋ ๊ณต๊ธ๋ง์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋ฅผ ๋จ์ํํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด WASM ์์ฒด์ ์์ค์์ ๊ฐ์ฅ ์ ํด๊ฒฐ๋ ๋ฌธ์ ๋ผ๊ณ ํ์ ํ์ง ์์ต๋๋ค. ์๋ช ์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ ์ธ์ด ์์ฒด์ ์ผ๋ถ๊ฐ ๋์ด์ผ ํฉ๋๊น?
๋ํ HTTP Origin-Signed Responses Standard ์ ๊ด์ฌ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌํ๋ค. ์๋ช ๋ wasm์ด ์ ํจํ wasm ํ์ผ์ ์ ์งํ๊ธฐ ๋๋ฌธ์ ์ธ์ด์ ์ผ๋ถ์ ๋๋ค. ๋ฐ๋ผ์ ๊ตฌ๋ฌธ ๋ถ์ ์ ์ ์ ๊ฑฐ๋๋ ์ผ์ข ์ ๋ํผ๊ฐ ์๋๋๋ค. ์, CustomSection์ ์กด์ฌ ๋๋ถ์ ๊ทธ๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฅ, "๋ง์ถค ๊ธฐ๋ฅ"์์ "ํ์ค ๊ธฐ๋ฅ"์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ์ข์์ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ช ๋ฐ ํ์ธ์ ์ํ ์น์ ํ์ฌ ๋ฉ์ปค๋์ฆ์ด ์ด๋ป๊ฒ ์คํจํ๊ณ ์ผ๋ฅ WebAssembly ์ง์์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ๋ ์ ์ดํดํ๊ณ ์ถ์ต๋๋ค. ํนํ ์น์๋ HTTPS ๋ฐ ํ์ ๋ฆฌ์์ค ๋ฌด๊ฒฐ์ฑ์ด ์์ผ๋ฉฐ ์๋ฒฝํ์ง๋ ์์ง๋ง ์ด๋ฏธ ์ฐ๋ฆฌ์๊ฒ ์๋นํ ๋์์ด ๋ฉ๋๋ค.
์์ ํ์ผ๋ฉด ํ๋ ์ ๊ณผ ์ ์์์ ๋์ผํ ํจ์ ์ด ์๋ ์ด์ ๋ฅผ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?