์ˆ˜๋…„์ „๋ถ€ํ„ฐย ์˜ˆ๊ณ ๋œ ์œ ๋Ÿฝ์—ฐํ•ฉ(EU)์˜ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ๋ฒ•(GDPR)์ด 2018๋…„5์›”25์ผ๋ถ€ํ„ฐ ์‹œํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.ย  GDPR์€ ์œ ๋Ÿฝ ๋‚ด์— ์„ค๋ฆฝ๋œ ๊ธฐ์—…๋“ค ๋ฟ ์•„๋‹ˆ๋ผ ์œ ๋Ÿฝ์„ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์—…ํ•˜๋Š” ๊ธฐ์—…๋“ค์—๊ฒŒ๋„ ์ ์šฉ๋˜๋ฏ€๋กœ, ๊ตญ๋‚ด์—์„œ ์œ ๋Ÿฝ์— ๋ฒ•์ธ์ด ์žˆ๊ฑฐ๋‚˜ ํ˜น์€ ์œ ๋Ÿฝ ๊ตญ๋ฏผ๋“ค์—๊ฒŒ ์„œ๋น„์Šค ๋˜๋Š” ์ œํ’ˆ์„ ํŒ๋งคํ•  ๊ฒฝ์šฐ ๋ชจ๋‘ GDPR์ด ์ ์šฉ๋œ๋‹ค.ย  ๊ตญ๋‚ด์—์„œ๋„ 1995๋…„ 1์›”๋ถ€ํ„ฐ ๊ณต๊ณต๊ธฐ๊ด€์„ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๋Š” โ€˜๊ณต๊ณต๊ธฐ๊ด€์˜ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ์— ๊ด€ํ•œ ๋ฒ•โ€™์ด ์‹œํ–‰๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  2011๋…„ 9์›”์—๋Š” ๋ฏผ๊ฐ„์œผ๋กœ ๋ฒ”์œ„๋ฅผ ํ™•๋Œ€ํ•œ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ๋ฒ•์ด ์ƒˆ๋กœ ์ œ์ •๋๋‹ค.ย ย ๋”ฐ๋ผ์„œ ๊ธฐ์—…๋“ค์ด ๋ณด์œ ํ•œ ๊ณ ๊ฐ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์€ ์„ ํƒ์ด ์•„๋‹ˆ๋ผ ํ•„์ˆ˜๊ฐ€ ๋˜์—ˆ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ†ต๊ณ„์— ์˜ํ•˜๋ฉด ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ์ „์ฒด์˜ ์•ฝ 4% ๋ฟ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋งŽ์€ ๊ณ ๊ฐ๋“ค์ด ์„ ํƒํ•˜๋Š” ์นผ๋Ÿผ ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฐ๋ฐ๋‹ค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ณ€๊ฒฝ์„ ์œ„ํ•œ ์‹œ์Šคํ…œ ์žฌ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๊ทนํžˆ ์ผ๋ถ€์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ ์šฉํ•  ์ˆ˜๋ฐ–์— ์—†๋Š”๊ฒŒ ํ˜„์‹ค์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์ผ ๋น„ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ์™ธ๋ถ€์ธ์˜ ์ ‘๊ทผ์œผ๋กœ ๋ณต์‚ฌ๋˜๊ฑฐ๋‚˜ ๋˜๋Š” ๋ณด๊ด€ํ–ˆ๋œ ๋ฐฑ์—…์ด๋ฏธ์ง€๊ฐ€ ์™ธ๋ถ€์— ์œ ์ถœ๋˜๋ฉด ํฐ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ย ๊ณผ๊ฑฐ์— ๋ฐฑ์—…ํ…Œ์ดํ”„์˜ ๋„๋‚œ์œผ๋กœ ๊ฐœ์ธ์ •๋ณด๊ฐ€ ์œ ์ถœ๋˜๋Š” ๋ฐ”๋žŒ์— ๋ง‰๋Œ€ํ•œ ํ”ผํ•ด๋ฅผ ์ž…์€ ์‚ฌ๋ก€๋„ ์žˆ๋“ฏ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š”๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•œ IT๊ณผ์ œ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ์กด์— ์šด์˜์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์†์‰ฝ๊ฒŒ ์•”ํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ์„๊นŒ?ย  ํ•ด๊ฒฐ๋ฐฉ์•ˆ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ ์•”ํ˜ธํ™”์ด๋‹ค. ์ด ๋ฐฉ์‹์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์ •์„ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์นผ๋Ÿผ ์•”ํ˜ธํ™” ๋งŒํผ ๋งŽ์€ CPU์ž์›์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š๋Š”๋‹ค. ์ฆ‰ ์•”ํ˜ธํ™”๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปฌ๋Ÿผ ์•”ํ˜ธํ™” ์†”๋ฃจ์…˜์— ๋น„ํ•ด ๋งค์šฐ ์ž‘์€ ํŽธ์ด๋‹ค.ย  IBM ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ์˜ํ•˜๋ฉด ์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ ํŽธ์ฐจ๊ฐ€ ์žˆ์ง€๋งŒ Db2์˜ Native Encryption์ ์šฉํ–ˆ์„ ๋•Œ Read : Write๋น„์œจ์ด 70:30์ธ ์—…๋ฌด์—์„œ ์•ฝ5% ์ •๋„์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•”ํ˜ธํ™”๋ฅผ ์ ์šฉํ•˜๋ฉด CPU ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ CPU ์‚ฌ์šฉ์ดย ๋†’์€ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ์•ฝ๊ฐ„์˜ CPU ์ฆ์„ค์€ ๋ฏธ๋ฆฌ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ด์ œ๋ถ€ํ„ฐ IBM Db2์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•”ํ˜ธํ™” ์ ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์‚ดํŽด๋ณธ๋‹ค.

Db2๋Š” 10.5 Fixpack5 ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” Native Encryption ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.ย ์ œํ’ˆ ๋‚ด๋ถ€์—ย ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ์ œํ’ˆ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ 11.1๋ถ€ํ„ฐ๋Š” ๋ชจ๋“  ์ œํ’ˆ ์—๋””์…˜์—์„œ ๋ฌด์ƒ์œผ๋กœย ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์šฐ์„  Native Encryption์„ ํ†ตํ•ดย ์ค€์ˆ˜ํ•˜๋Š” ๋ณด์•ˆ ํ‘œ์ค€์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • FIPS 140-2 certified cryptographic libraries ํ™œ์šฉ
  • NIST SP 800-131 compliant cryptographic algorithms ์š”๊ฑด ๋งŒ์กฑย (National Institute of Standards and Technology (๋ฏธ๊ตญ ํ‘œ์ค€๊ธฐ์ˆ ์—ฐ๊ตฌ์†Œ))
  • Default๋กœ AES-256 ์‚ฌ์šฉ (AES (Advanced Encryption Specification) – ๋ฏธ๊ตญ ์ •๋ถ€ Top Secret ๋ณด์•ˆ์— ์ ์šฉ๋œ ๊ธฐ์ˆ ๋กœ ๋†’์€ ์•ˆ์ •์„ฑ ๋ณด์žฅ)

๋˜ํ•œย ์•„๋ž˜์™€ ๊ฐ™์ดย ์•”ํ˜ธํ™” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•œ๋‹ค.

  • ์ปดํ”Œ๋ผ์ด์–ธ์Šค ์š”๊ตฌ์‚ฌํ•ญ
    • PCI DSS๋“ฑ ์‚ฐ์—… ํ‘œ์ค€
    • HIPAA๋“ฑ ๋ณด์•ˆ ๊ทœ์ •
    • ๊ธฐ์—…ํ‘œ์ค€
  • ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ
    • DBMS ์™ธ๋ถ€ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐย ๋ณดํ˜ธ
  • ์˜คํ”„๋ผ์ธ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ
    • ๋ฌผ๋ฆฌ๋ฏธ๋””์–ด์˜ ๋„๋‚œ์ด๋‚˜ ๋ถ„์‹ค๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ
  • ๋ณด์•ˆ ๋ฐ ์ปดํ”Œ๋ผ์ด์–ธ์Šค ์ ์šฉ ๋น„์šฉ ์ ˆ๊ฐ
    • ํƒ€์‚ฌ ํ˜น์€ ์ถ”๊ฐ€ ์ œํ’ˆ ๋ถˆํ•„์š”
    • Db2๋ฒˆ๋“ค๋กœ ๋ฌด์ƒย ์ œ๊ณต
    • ๋ชจ๋“  Db2 ํ”Œ๋žซํผ ์ง€์›

์•”ํ˜ธํ™” ํ•˜๋Š” ๋Œ€์ƒ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ๋ชจ๋“  ์ž์›๋“ค์ด ํฌํ•จ๋œ๋‹ค.

  • ๋ชจ๋“  ํ…Œ์ด๋ธ”๊ณต๊ฐ„
  • ํ…Œ์ด๋ธ”๊ณต๊ฐ„ ๋‚ดย ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ (LOB, XML๋“ฑ)
  • ์•„์นด์ด๋ธŒ ๋กœ๊ทธ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ
  • ๋ชจ๋“  LOAD COPY ๋ฐ์ดํ„ฐ
  • ๋ชจ๋“  LOAD ์Šคํ…Œ์ด์ง• ํŒŒ์ผ
  • ๋ชจ๋“  ๋คํ”„ .bin ํŒŒ์ผ
  • ๋ชจ๋“  ๋ฐฑ์—… ์ด๋ฏธ์ง€

์•”ํ˜ธํ™” ์ ์šฉ ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋‹ค

<๊ทธ๋ฆผ1> Db2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•”ํ˜ธํ™” ๋ฐฉ์‹

  • ๋กœ์ปฌ : ๊ฐ„๋‹จํ•˜๊ฒŒ DB์„œ๋ฒ„ ๋‚ด๋ถ€์— ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌย ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ค‘์•™ํ‚ค๊ด€๋ฆฌ์ž : ์™ธ๋ถ€์„œ๋ฒ„์— KMIP ๋ฒ„์ „ 1.1์ด์ƒ์„ ์ง€์›ํ•˜๋Š” ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค (ex. IBM Security Key Lifecycle Manager)
  • HSM : ์™ธ๋ถ€์„œ๋ฒ„์— PKCS #11์ด ์‚ฌ์šฉ๋œ ํ•˜๋“œ์›จ์–ด ๋ณด์•ˆ๋ชจ๋“ˆ๋กœ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค(ex. Gemalto Safenet HSM (formerly Luna) version 6.1 (firmware version 6.23.0) ์ด์ƒ,ย ย  Thales nShield HSM, security world software version 11.50)

์ค‘์•™ํ‚ค๊ด€๋ฆฌ์ž์™€ HSM ๋ฐฉ์‹์€ ๋ณ„๋„์˜ ์„œ๋ฒ„์—์„œ ๋ถ„์‚ฐํ™˜๊ฒฝ์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ์•”ํ˜ธํ™”๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š”ย ๊ตฌ์„ฑ์š”์†Œ๋Š” Data Encryption Key, Master Key, Keystore์ด๋‹ค.

  • Data Encryption Key : Database์— Write์‹œ ์•”ํ˜ธํ™” Key๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ๋ณด๊ด€๋˜์–ด ์žˆ๋‹ค
  • Master Key : Data Encryption Key๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” Key
  • Keystore : Master Key๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ํŒŒ์ผ

<๊ทธ๋ฆผ2> Native Encryption์˜ย ๊ตฌ์„ฑ์š”์†Œ

๋ณธ ๊ธ€์—์„œ๋Š” ๋กœ์ปฌ ํ‚ค๊ด€๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ข€๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

๋จผ์ € ์•”ํ˜ธํ™” ๊ตฌ์„ฑ์„ ์œ„ํ•ด ์ค€๋น„ํ•ด์•ผ ํ•  ์„ธ๊ฐ€์ง€ ์‚ฌํ•ญ๋“ค์ด ์žˆ๋‹ค.

  • Db2 ์ด๋ฏธ์ง€ ์„ค์น˜ ์‹œ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” IBM Global Security Kit(GSKit) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ๋กœ๋ฅผ ์ธ์Šคํ„ด์Šค ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•œ๋‹ค

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/sqllib/lib64/gskit

โ‡’ Linux, Unix : LIBPATH, SHLIB_PATH, LD_LIBRARY_PATH / Windows : PATH)

  • ย gsk8capicmd(or gsk8capicmd_64)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PKCS#12๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” Keystore๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋‹จ, DPF ํŒŒํ‹ฐ์…˜ํ™˜๊ฒฝ์ด๋‚˜ pureScale์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ KeyStoreํŒŒ์ผ์€ ๋ชจ๋“  ๋ฉค๋ฒ„์—์„œ ์ ‘๊ทผ๋˜๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์— ์œ„์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

$ su – db2inst1

$ cd /home/sqllib/gskit/bin/

$ gsk8capicmd_64 -keydb -create -db /db2sdhome/ccardskeystore.p12 -pw Str0ngPassw0rd -strong -type pkcs12 -stash;

ย ย ย ย ย ย โ‡’ -stash : Keystore์˜ Password๊ฐ€ ํ•„์š”์‹œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ Password๋ฅผ ์‚ฌ์šฉํ•˜๋Š” keystore_name.sthํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

  • ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑํŒŒ์ผ์—์„œ keystoreํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

$ db2 โ€œupdate dbm cfg using keystore_type pkcs12 keystore_location /db2sdhome/ ccardskeystore.p12ย “

์ค€๋น„์ž‘์—…์„ ๋ชจ๋‘ ๋งˆ์น˜๋ฉด, ์ด์ œ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์•”ํ˜ธํ™” ๊ตฌ์„ฑ ์ž‘์—…์„ ์‹œ์ž‘ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ˆ˜ํ–‰์ค‘์ธ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒ ํ›„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™”์‹œํ‚จ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—… ๋ฐ›๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ย Dropํ•œ๋‹ค.
    $ db2 backup db sample$ db2 drop db sample
  • Db2ย ์ธ์Šคํ„ด์Šค๋ฅผย ์žฌ๊ธฐ๋™ํ•œ ํ›„, ENCRYPT ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…๋ฐ›์€ ์ด๋ฏธ์ง€๋ฅผ Restoreํ•œ๋‹ค.
    $ restore db sample encrypt
  • Restore๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ Master Key๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์ง€์ •๋œ KeystoreํŒŒ์ผ์— ์ž๋™ ์ €์žฅ๋œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ตฌ์„ฑ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    $db2 get db cfg for sample | grep ENCREncryption Library for Backupย ย ย ย ย ย ย ย ย ย ย ย  ENCRLIB) = libdb2encr.aEncryption Options for Backupย ย ย ย ย ย ย ย ย ย ย ย  (ENCROPTS) = CIPHER=AES:MODE=CBC:KEY LENGTH=256

์ด์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์•”ํ˜ธํ™” ์ž‘์—…์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ๋‹ค.ย  ์ดํ›„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋™์ผ ์ธ์Šคํ„ด์Šค ๋‚ด์— ์ƒ์„ฑํ•˜๋ฉด ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.ย ๋˜ํ•œ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—… ๋ฐ›์œผ๋ฉด ์•”ํ˜ธํ™”๋œ ๋ฐฑ์—…์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์•”ํ˜ธํ™” ๋œ Db2์‹œ์Šคํ…œ ์šด์˜ ์‹œย ๊ด€๋ฆฌ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” Master Key๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค

  • Master Key๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Keystore์— ๋“ฑ๋ก ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๊ธฐ์ ์œผ๋กœ Master Key๋ฅผ Rotateํ•˜์—ฌ ๋ณด์•ˆ์„ ์œ ์ง€ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ์ƒˆ๋กœ์šด Master Key๋ฅผ ์ƒ์„ฑ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉดย OS์˜ Secure Random Source๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

$ /db2sdhome/dd if=/dev/random of=mysecreatfile bs=32 count=1

  • ์ƒ์„ฑ๋œ Master Key๋ฅผ Keystore์— ๋ณด๊ด€ํ•œ๋‹ค.

$ HOME/db2/sqllib/gskit/bin/gsk8capicmd_64 -secretkey -add -db /db2sdhome/ ccardskeystore.p12 -stashed -label mylabel.mydb.myinstance.myserver -file /db2sdhome/mysecreatfile

  • Keystore์— ์žˆ๋Š” Master Key๋ชฉ๋ก์„ ํ™•์ธ ํ›„, ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๊ธฐ์ ์œผ๋กœ Master Key๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

$HOME/db2/sqllib/gskit/bin>gsk8capicmd_64 -cert -list -db /db2sdhome/ccardskeystore.p12 โ€“stashed

$ db2 โ€œCALL SYSPROC.ADMIN_ROTATE_MASTER_KEY(‘mylabel.mydb.myinstance.myserver’)

  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”ย Master Key๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
    $HOME/db2/sqllib/gskit/bin/gsk8capicmd_64 -cert -delete -db /db2sdhome/ccardskeystore.p12 -stashed -label mylabel.mydb.myinstance.myserver
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์„ค์ •๋œ Encryption ์„ค์ • ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํ™•์ธํ•œ๋‹ค.
    $ db2 “SELECT * FROM TABLE (SYSPROC.ADMIN_GET_ENCRYPTION_INFO())”

์ด์ƒ์œผ๋กœ Db2์—์„œ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ์ ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์•˜๋‹ค.ย  ๋ณด๋‹ค ์ž์„ธํ•œ ์‚ฌํ•ญ์€ Db2 11.1 Knowledge Center ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.admin.sec.doc/doc/c0061758.html

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.