OPAL ํ•˜๋“œ์›จ์–ด ๋””์Šคํฌ ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋Š” Cryptsetup 2.7 ๋ฆด๋ฆฌ์Šค

dm-crypt ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ Linux์—์„œ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜์˜ ์•”ํ˜ธํ™”๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ Cryptsetup 2.7 ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. dm-crypt, LUKS, LUKS2, BITLK, loop-AES ๋ฐ TrueCrypt/VeraCrypt ํŒŒํ‹ฐ์…˜ ์ž‘์—…์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ dm-verity ๋ฐ dm-integrity ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” veritysetup ๋ฐ integritysetup ์œ ํ‹ธ๋ฆฌํ‹ฐ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ:

  • ํ•˜๋“œ์›จ์–ด ์•”ํ˜ธํ™” ์žฅ์น˜๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ์— ์ง์ ‘ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” OPAL2 TCG ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” SED(์ž์ฒด ์•”ํ˜ธํ™” ๋“œ๋ผ์ด๋ธŒ) SATA ๋ฐ NVMe ๋“œ๋ผ์ด๋ธŒ์—์„œ ์ง€์›๋˜๋Š” OPAL ํ•˜๋“œ์›จ์–ด ๋””์Šคํฌ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ OPAL ์•”ํ˜ธํ™”๋Š” ๋…์  ํ•˜๋“œ์›จ์–ด์— ์—ฐ๊ฒฐ๋˜์–ด ๊ณต๊ฐœ ๊ฐ์‚ฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ณดํ˜ธ ์ˆ˜์ค€์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU์— ๋ถ€ํ•˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    LUKS2์—์„œ OPAL์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด CONFIG_BLK_SED_OPAL ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Linux ์ปค๋„์„ ๋นŒ๋“œํ•˜๊ณ  Cryptsetup์—์„œ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(OPAL ์ง€์›์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค). LUKS2 OPAL ์„ค์ •์€ ์†Œํ”„ํŠธ์›จ์–ด ์•”ํ˜ธํ™”์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” LUKS2 ํ—ค๋”์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•”ํ˜ธํ™”(dm-crypt)์šฉ ํŒŒํ‹ฐ์…˜ ํ‚ค์™€ OPAL์šฉ ์ž ๊ธˆ ํ•ด์ œ ํ‚ค๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค. OPAL์€ ์†Œํ”„ํŠธ์›จ์–ด ์•”ํ˜ธํ™”(cryptsetup luksFormat --hw-opal)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ) ๋ฐ ๋ณ„๋„๋กœ(cryptsetup luksFormat โ€”hw-opal-only ). OPAL์€ LUKS2 ์žฅ์น˜์™€ ๋™์ผํ•œ ๋ฐฉ์‹(์—ด๊ธฐ, ๋‹ซ๊ธฐ, luksSuspend, luksResume)์œผ๋กœ ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

  • ๋งˆ์Šคํ„ฐํ‚ค์™€ ํ—ค๋”๊ฐ€ ๋””์Šคํฌ์— ์ €์žฅ๋˜์ง€ ์•Š๋Š” ์ผ๋ฐ˜ ๋ชจ๋“œ์—์„œ๋Š” ๊ธฐ๋ณธ ์•”ํ˜ธ๋Š” aes-xts-plain64์ด๊ณ  ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ sha256(์„ฑ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” CBC ๋ชจ๋“œ ๋Œ€์‹  XTS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , sha160์„ ์‚ฌ์šฉ) ์˜ค๋ž˜๋œripmd256 ํ•ด์‹œ ๋Œ€์‹ ).
  • open ๋ฐ luksResume ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ปค๋„ ํ‚ค๋ง(ํ‚ค๋ง)์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ง์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด "--volume-key-keyring" ์˜ต์…˜์ด ๋งŽ์€ cryptsetup ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: 'cryptsetup open --link-vk-to-keyring "@s::%user:testkey" tst').
  • ์Šค์™‘ ํŒŒํ‹ฐ์…˜์ด ์—†๋Š” ์‹œ์Šคํ…œ์—์„œ PBKDF Argon2์— ๋Œ€ํ•œ ํฌ๋งท์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ํ‚ค ์Šฌ๋กฏ์„ ์ƒ์„ฑํ•˜๋ฉด ์ด์ œ ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ˆ๋ฐ˜๋งŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ RAM ์šฉ๋Ÿ‰์ด ์ ์€ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ LUKS2 ํ† ํฐ ์ฒ˜๋ฆฌ๊ธฐ(ํ”Œ๋Ÿฌ๊ทธ์ธ)์— ๋Œ€ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•˜๋Š” "--external-tokens-path" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • tcrypt๋Š” VeraCrypt์— ๋Œ€ํ•œ Blake2 ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Aria ๋ธ”๋ก ์•”ํ˜ธ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • OpenSSL 2 ๋ฐ libgcrypt ๊ตฌํ˜„์— Argon3.2์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด libargon์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€