
ํค์ฒด์ธ ๋ฐ์ดํฐ ๋ณดํธ
๋๋ถ๋ถ์ ์ฑ์ ํค ๋ฐ ๋ก๊ทธ์ธ ํ ํฐ ๊ฐ์ ์์ง๋ง ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ์ํธ๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ํค์ฒด์ธ์ ์ด๋ฌํ ํญ๋ชฉ์ ์์ ํ๊ฒ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ Apple ์ด์ ์ฒด์ ๋ ์๋ก ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํค์ฒด์ธ ๋ณดํธ ํด๋์ค์ ๊ด๋ จ๋ ๋ณด์ฆ์ ์ํํฉ๋๋ค. macOS๊ฐ ์ค์น๋ ๊ธฐ๊ธฐ์์๋ ์ด๋ฌํ ๋ณด์ฆ์ ์ํํ๋ ๋ฐ ๋ฐ์ดํฐ ๋ณดํธ๊ฐ ์ง์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
๊ฐ์
ํค์ฒด์ธ ํญ๋ชฉ์ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ AES-256-GCM ํค์ธ ํ ์ด๋ธ ํค(๋ฉํ๋ฐ์ดํฐ) ๋ฐ ํ๋ณ ํค(๋น๋ฐ ํค)๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ฉ๋๋ค. ํค์ฒด์ธ ๋ฉํ๋ฐ์ดํฐ(kSecValue๋ฅผ ์ ์ธํ ๋ชจ๋ ์์ฑ)๋ ๊ฒ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ๋ฉํ๋ฐ์ดํฐ ํค๋ก ์ํธํ๋๊ณ ๋น๋ฐ ๊ฐ(kSecValueData)์ ๋น๋ฐ ํค๋ก ์ํธํ๋ฉ๋๋ค. ๋ฉํ๋ฐ์ดํฐ ํค๋ Secure Enclave๋ก ๋ณดํธ๋์ง๋ง ๋น ๋ฅธ ํค์ฒด์ธ ์ฟผ๋ฆฌ๋ฅผ ์ํด ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์์ ์บ์๋ฉ๋๋ค. ๋น๋ฐ ํค๋ Secure Enclave ๋ด์์ ํญ์ ์๋ณต์ผ๋ก ์์ง์ฌ์ผ ํฉ๋๋ค.
ํค์ฒด์ธ์ ํ์ผ ์์คํ
์ ์ ์ฅ๋์ด ์๋ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋จ ํ๋์ด๋ฉฐ, securityd
๋ฐ๋ชฌ์ด ๊ฐ ํ๋ก์ธ์ค ๋๋ ์ฑ์ ํค์ฒด์ธ ํญ๋ชฉ ์ ๊ทผ ๊ถํ์ ๊ฒฐ์ ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํค์ฒด์ธ ์ ๊ทผ API๊ฐ ๋ฐ๋ชฌ์ผ๋ก ์์ฒญ๋๊ณ ๋ฐ๋ชฌ์ ์ฑ์ โKeychain-access-groupsโ, โapplication-identifierโ, โapplication-groupโ ๊ถํ์ ์ฟผ๋ฆฌํ๋ ๋ฐฉ์์
๋๋ค. ๋จ์ผ ํ๋ก์ธ์ค๋ก ์ ๊ทผ์ ์ ํํ๋ ๋์ ์ ์ ๊ทผ ๊ทธ๋ฃน์ ํตํด ์ฑ ๊ฐ์ ํค์ฒด์ธ ํญ๋ชฉ์ด ๊ณต์ ๋ ์ ์์ต๋๋ค.
ํค์ฒด์ธ ํญ๋ชฉ์ ๊ฐ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ ์ฑ ์ฌ์ด์์๋ง ๊ณต์ ๋ ์ ์์ต๋๋ค. ํค์ฒด์ธ ํญ๋ชฉ์ ๊ณต์ ํ๊ธฐ ์ํด ํ์ฌ ์ฑ์ ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ ๊ทธ๋ฃน์ Apple Developer Program์ ํตํด ํ ๋น๋ฐ์ ์ ๋์ฌ๊ฐ ์ง์ ๋ ์ ๊ทผ ๊ทธ๋ฃน์ ์ฌ์ฉํฉ๋๋ค. ์ ๋์ฌ ์๊ตฌ ์ฌํญ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ ๊ทธ๋ฃน ํน์ ์ฑ์ ์ฝ๋ ์๋ช , ๊ถํ ์ค์ ํ๋กํ ๋ฐ Apple Developer Program์ ํตํด ๊ฐ์ ๋ก ์ ์ฉ๋ฉ๋๋ค.
ํค์ฒด์ธ ๋ฐ์ดํฐ๋ ํ์ผ ๋ฐ์ดํฐ ๋ณดํธ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น์ทํ ํด๋์ค ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด ๋ณดํธ๋ฉ๋๋ค. ์ด๋ฌํ ํด๋์ค๋ ํ์ผ ๋ฐ์ดํฐ ๋ณดํธ ํด๋์ค์ ๋์ผํ๊ฒ ๋์ํ์ง๋ง ๊ณ ์ ํ ํค์ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅ ์๊ธฐ | ํ์ผ ๋ฐ์ดํฐ ๋ณดํธ | ํค์ฒด์ธ ๋ฐ์ดํฐ ๋ณดํธ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ | NSFileProtectionComplete | kSecAttrAccessibleWhenUnlocked | |||||||||
์ ๊ฒจ ์๋ ๊ฒฝ์ฐ | NSFileProtectionComplete UnlessOpen | ||||||||||
์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ | NSFileProtectionComplete UntilFirstUserAuthentication | kSecAttrAccessibleAfterFirstUnlock | |||||||||
ํญ์ | NSFileProtectionNone | kSecAttrAccessibleAlways | |||||||||
์ํธ ํ์ฑํ๋จ | kSecAttrAccessibleWhen PasscodeSetThisDeviceOnly |
๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ก ๊ณ ์นจ ์๋น์ค๋ฅผ ํ์ฉํ๋ ์ฑ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ๋ฐ์ดํธ ์ค์ ์ ๊ทผํด์ผ ํ๋ ํค์ฒด์ธ ํญ๋ชฉ์ ๋ํด kSecAttrAccessibleAfterFirstUnlock ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly ํด๋์ค๋ kSecAttrAccessibleWhenUnlocked ํด๋์ค์ ๋๊ฐ์ด ๋์ํ์ง๋ง ๊ธฐ๊ธฐ์ ์ํธ๊ฐ ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ด ํด๋์ค๋ System Keybag์๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ ํ ์ฌํญ์ด ์์ต๋๋ค.
iCloud ํค์ฒด์ธ๊ณผ ๋๊ธฐํ๋์ง ์์
๋ฐฑ์ ๋์ง ์์
Escrow keybag์ ํฌํจ๋์ง ์์
์ํธ๊ฐ ์ ๊ฑฐ๋๊ฑฐ๋ ์ฌ์ค์ ๋ ๊ฒฝ์ฐ ์ด ํด๋์ค ํค๋ฅผ ์ญ์ ํ์ฌ ์ด ํญ๋ชฉ์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
๋ค๋ฅธ ํค์ฒด์ธ ํด๋์ค๋ โ์ด ๊ธฐ๊ธฐ์์๋งโ์ ๋์ ํญ๋ชฉ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋์ ํญ๋ชฉ์ ๋ฐฑ์ ์ค์ ๊ธฐ๊ธฐ์์ ๋ณต์ฌ๋๋ ๊ฒฝ์ฐ UID๋ก ํญ์ ๋ณดํธ๋๋ฉฐ, ๋ฐฑ์ ์ด ๋ค๋ฅธ ๊ธฐ๊ธฐ์ ๋ณต์๋๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. Apple์ ๋ณดํธ๋๋ ์ ๋ณด์ ์ข ๋ฅ์ iOS, iPadOS ๋ฐ visionOS์์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ํค์ฒด์ธ ํด๋์ค๋ฅผ ์ ํํจ์ผ๋ก์จ ๋ณด์์ฑ๊ณผ ์ฌ์ฉ์ฑ์ ๊ท ํ์ ๋ง์ถ์์ต๋๋ค.
ํค์ฒด์ธ ๋ฐ์ดํฐ ํด๋์ค ๋ณดํธ
์๋์ ๋์ด๋ ํด๋์ค ๋ณดํธ๋ ํค์ฒด์ธ ํญ๋ชฉ์ ๋์์ผ๋ก ์ํ๋ฉ๋๋ค.
ํญ๋ชฉ | ์ ๊ทผ ๊ฐ๋ฅ ์๊ธฐ |
---|---|
Wi-Fi ์ํธ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Mail ๊ณ์ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Microsoft Exchange ActiveSync ๊ณ์ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
VPN ์ํธ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
LDAP, CalDAV, CardDAV | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
์์ ๋คํธ์ํฌ ๊ณ์ ํ ํฐ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Handoff ์๋ฆผ ์ํธํ ํค | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
iCloud ํ ํฐ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
iMessage ํค | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
ํ ๊ณต์ ์ํธ | ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Safari ์ํธ | ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Safari ๋ถ๋งํฌ | ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ |
Finder/iTunes ๋ฐฑ์ | ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ, ์ด๋ํ ์ ์์ |
VPN ์ธ์ฆ์ | ์ฒ์ ์ ๊ธ ํด์ ํ ๊ฒฝ์ฐ, ์ด๋ํ ์ ์์ |
Bluetoothยฎ ํค | ํญ์, ์ด๋ํ ์ ์์ |
APNS(Apple ํธ์ ์๋ฆผ ์๋น์ค) ํ ํฐ | ํญ์, ์ด๋ํ ์ ์์ |
iCloud ์ธ์ฆ์ ๋ฐ ๊ฐ์ธ ํค | ํญ์, ์ด๋ํ ์ ์์ |
SIM PIN | ํญ์, ์ด๋ํ ์ ์์ |
๋์ ์ฐพ๊ธฐ ํ ํฐ | ํญ์ |
์์ฑ ๋ฉ์์ง | ํญ์ |
macOS์์๋ ๊ตฌ์ฑ ํ๋กํ์ ํตํด ์ค์น๋ ๋ชจ๋ ํค์ฒด์ธ ํญ๋ชฉ์ ํญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. iOS, iPadOS ๋ฐ visionOS์ ๊ฒฝ์ฐ ๊ตฌ์ฑ ํ๋กํ์ ํตํด ์ค์น๋ ํค์ฒด์ธ ํญ๋ชฉ์ด ์ ํ, ์ฐธ์กฐ ๋ฐฉ์ ๋ฐ ์ค์น ๋ ์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ๊ทผ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก, ๊ตฌ์ฑ ํ๋กํ์ ํตํด ์ค์น๋ ํค์ฒด์ธ ํญ๋ชฉ์ ์ฒ์ ์ ๊ธ์ ํด์ ํ ํ์ ์ฌ์ฉํ ์ ์๊ณ , ์ด๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ ๊ฒฝ์ฐ์๋ ๊ตฌ์ฑ ํ๋กํ์ ํตํด ์ค์น๋ ํค์ฒด์ธ ํญ๋ชฉ์ ํญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
iOS 15 ๋๋ iPadOS 15 ์ด์์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ์ค์น๋์์ ๊ฒฝ์ฐ
์ ์์ด ์๋ ์ธ์ฆ์์ผ ๊ฒฝ์ฐ
com.apple.mdm
ํ์ด๋ก๋์IdentityCertificateUUID
์ ์ํด ์ฐธ์กฐ๋ ์ ์์ผ ๊ฒฝ์ฐ
ํค์ฒด์ธ ์ ๊ทผ ์ ์ด
ํค์ฒด์ธ์ ์ ๊ทผ ์ ์ด ๋ชฉ๋ก(ACL)์ ํตํด ์ ๊ทผ์ฑ๊ณผ ์ธ์ฆ ์๊ตฌ ์ฌํญ์ ๋ํ ์ ์ฑ ์ ์ค์ ํ ์ ์์ต๋๋ค. Optic ID, Face ID ๋ฐ Touch ID ๋๋ ๊ธฐ๊ธฐ ์ํธ ์ ๋ ฅ์ ํตํด ์ธ์ฆํ๋ ๊ฒฝ์ฐ์๋ง ํค์ฒด์ธ ํญ๋ชฉ์ ์ ๊ทผํ ์ ์๋๋ก ๋ช ์ํ์ฌ ์ฌ์ฉ์์ ์ง์ ์ ๋ ฅ์ด ํ์ํ ์กฐ๊ฑด์ ํ๋ฆฝํ ์ ์์ต๋๋ค. ๋ํ, ํญ๋ชฉ์ด ์ถ๊ฐ๋ ์ดํ์ Optic ID, Face ID ๋ฐ Touch ID ๋ฑ๋ก์ด ๋ณ๊ฒฝ๋์ง ์๋๋ก ๋ช ์ํ์ฌ ํญ๋ชฉ ์ ๊ทผ์ ์ ํํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ ์ฌํญ ๋๋ถ์ ํด์ปค๊ฐ ์ง๋ฌธ์ ์ถ๊ฐํด๋ ํค์ฒด์ธ ํญ๋ชฉ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ACL์ Secure Enclave ๋ด์์ ํ๊ฐ๋์ด ๋ช ์๋ ์ ์ฝ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ์๋ง ์ปค๋์ ๊ณต๊ฐ๋ฉ๋๋ค.
macOS์ ํค์ฒด์ธ ์ํคํ ์ฒ
๋ํ macOS์์๋ ํค์ฒด์ธ์ ์ ๊ทผ ๊ถํ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ, ๋์งํธ ID, ์ํธํ ํค, ๋ณด์ ๋ฉ๋ชจ๋ฅผ ํธ๋ฆฌํ๊ณ ์์ ํ๊ฒ ์ ์ฅํ ์ ์์ต๋๋ค. ํค์ฒด์ธ์๋ /์์ฉ ํ๋ก๊ทธ๋จ/์ ํธ๋ฆฌํฐ/์ ์์นํ ํค์ฒด์ธ ์ ๊ทผ ์ฑ์ ์ด์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํค์ฒด์ธ์ ์ฌ์ฉํ๋ฉด ์ถ์ฒ๋ณ๋ก ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ ฅํ๊ฑฐ๋ ๊ธฐ์ตํ ํ์๊ฐ ์์ต๋๋ค. Mac์ ์ฌ์ฉ์๋ณ๋ก ์ต์ด ๊ธฐ๋ณธ ํค์ฒด์ธ์ด ์์ฑ๋์ง๋ง ์ฌ์ฉ์๋ ํน์ ํ ์ฉ๋๋ก ์ฌ์ฉํ ํค์ฒด์ธ์ ๋ณ๋๋ก ์์ฑํ ์ ์์ต๋๋ค.
macOS๋ ์ฌ์ฉ์ ํค์ฒด์ธ ์ธ์๋ ๋ค์ํ ์์คํ ์์ค์ ํค์ฒด์ธ์ ํ์ฉํด ๋คํธ์ํฌ ์๊ฒฉ ์ฆ๋ช ๊ณผ PKI(๊ณต๊ฐ ํค ์ธํ๋ผ) ID ๋ฑ ์ฌ์ฉ์๋ณ๋ก ํน์ ํ์ง ์์ ์ธ์ฆ ์์ฐ์ ์ ์งํฉ๋๋ค. ์ด๋ฌํ ํค์ฒด์ธ ์ค ํ๋์ธ ์์คํ ๋ฃจํธ๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐ ์ธํฐ๋ท PKI ๋ฃจํธ ์ธ์ฆ ๊ธฐ๊ด(CA) ์ธ์ฆ์๋ฅผ ์ ์ฅํด ์จ๋ผ์ธ ๋ฑ ํน๊ณผ ์ ์์๊ฑฐ๋ ๋ฑ์ ์ผ๋ฐ์ ์ธ ์์ ์ ๋ณด์กฐํฉ๋๋ค. ์ฌ์ฉ์๋ ๋ด๋ถ์์ ๊ถํ์ด ์ค์ ๋ CA ์ธ์ฆ์๋ฅผ ๊ด๋ฆฌ๋๋ Mac ์ปดํจํฐ์ ์ด์ ์ ์ฌํ๊ฒ ๋ฐฐํฌํด ๋ด๋ถ ์ฌ์ดํธ์ ์๋น์ค๋ฅผ ๊ฒ์ฆํ๋ ๋ฐ ๋์์ ์ป์ ์ ์์ต๋๋ค.