Android Keystore ๋ณด์
์๋ ํ์ธ์. ํฅ์ฌ๋ํธ ๊ฐ์ค์ฐ ์ ๋๋ค. ์ด ํฌ์คํ ์์๋ Android ๋ด์ ๋ณด์์์ญ Keystore ๋ฅผ ๋ค๋ฃฐ ์์ ์ ๋๋ค.
Keystore ์ธ์ ์ธ ์ ์์๊น?
ใ
ฃ ์ด๋๋ฆฌ์ KeyStore ํ์ผ์ ์ด๋๋ฆฌ์ Private Key์ ์ํธํ๋ ๋ฒ์ ์
๋๋ค.
๋ง์ฝ Private Key๊ฐ ํ์ทจ๋์์ ๊ฒฝ์ฐ, ๊ณต๊ฒฉ์๋ ๋น์ ์ ๊ณ์ข์ ๋ํ ๋ชจ๋ ๊ถํ์ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ํํฉ๋๋ค.
์ ์๋ฌธ์ ์ฌ๊ธฐ์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค
Android ์ํธํํ Wallet ์ ์ ์ ์ Transaction ์ ์ฃผ์ฒด๊ฐ ๋๊ธฐ ์ํ Private Key(์ดํ PK) ๋ฅผ ๊ธฐ๊ธฐ ๋ด๋ถ์ ์ด๋ ์์ญ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด PK๋ฅผ ์ด๋์ ์ ์ฅํ ์ ์์๊น์? Wallet ์ ์ ์ํ ํ์ฌ์ Server๋ Android ๊ธฐ๊ธฐ ๋ด์ Internal Storage ์๋๋ฉด External Storage ์๋ค ์ ์ฅํ ์ ์์๊ฒ๋๋ค.
์๋ฒ์ ๊ฒฝ์ฐ์๋ ์ฌ๋ ์๋ฒ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํดํน์ ์ํ์ด ์์ผ๋ฉฐ, Storage๋ ์๋์ ์ผ๋ก ์ ๊ทผ์ด ์ด๋ ต์ง ์์ต๋๋ค. ์ด ์ค์ํ PK๋ฅผ Plain Text๋ก ๋ ธ์ถํด ๋์๋ค๋ฉด, ์ ๊ทผ๊ณผ ๋์์ ํ์ทจ๋นํ ๊ฒ ์ ๋๋ค.
PK๋ Encrypted ๋ ์ํ๋ก ๋์ฌ์ผ ํ๋ฉฐ, ๋ณตํธํ๊ฐ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค. ๋ณตํธํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ Key๋ํ Plant Text๋ก ์กด์ฌํ๋ฉด ์๋ฉ๋๋ค.
๊ฐ๋จํ๊ฒ KeyStore๋ ์ํธํ๋ฅผ ์ํ Key๋ฅผ ์์ฑํ๋ ์์คํ ์ ๋๋ค. ์ด ํฌ์คํ ์ Keystore ๊ฐ ๋ฌด์์ธ๊ฐ๋ฅผ ์๊ฐํ๊ธฐ ์ํ ์๋ฃ์ ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ Device๋ด์์ PK๋ฅผ ์ ์ฅํ๊ธฐ ์ํด Keystore๊ฐ ์ด๋ป๊ฒ ์ฐ์ด๊ณ ์ํธํ, ๋ณตํธํ๊ฐ ์ด๋ค Flow๋ก ์ด๋ฃจ์ด์ง๋์ง ์๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Android KeyStore ์์คํ
Android KeyStore ์์คํ ์์๋ ์ํธํ ํค๋ฅผ Store์ ์ ์ฅํด์ผ ํ๋ฏ๋ก ์ด ํค๋ฅผ ๊ธฐ๊ธฐ์์ ์ถ์ถํด๋ด๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค. ์ผ๋จ ํค๊ฐ Store์ ๋ค์ด๊ฐ๋ฉด, ์ด ํค๋ ์ฃผ์ material์ ๋ด๋ณด๋ผ ์ ์๋ ์ํธํ ์์ ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด ์์คํ ์์๋ ๋ํ ํค ์ฌ์ฉ ์๊ธฐ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(์: ํค ์ฌ์ฉ์ ์ํด ์ฌ์ฉ์ ์ธ์ฆ ์๊ตฌ ๋๋ ํน์ ์ํธํ ๋ชจ๋์์๋ง ์ฌ์ฉํ๋๋ก ํค๋ฅผ ์ ํ)
๋ณด์
Android KeyStore ์์คํ ์ ์น์ธ๋์ง ์์ ์ ๊ทผ์ ๋ํด ์ค์ํ Key material๋ฅผ ๋ณดํธํฉ๋๋ค
โ ๋๋ฐ์ด์ค ๋ฐ์์์ ์น์ธ๋์ง ์์ key material ์ฌ์ฉ์ ๋ํด key material ์ถ์ถ์ ๋ณดํธํจ์ผ๋ก์จ ์น์ธ๋์ง ์์ ์ ๊ทผ์ ๋ํ ์ํ์ ์ค์ฌ์ค๋๋ค.
โ Keystore๋ ๋๋ฐ์ด์ค์์์ ์น์ธ๋์ง ์์ ์ ๊ทผ์ ๋ํด ํค๋ฅผ specify ํ๊ณ ์ฑ ํ๋ก์ธ์ค ๋ฐ๊นฅ์์์ ์ด๋ค ์ ํ์ ๊ฐ์ ํจ์ผ๋ก์จ ์น์ธ๋์ง ์์ ์ ๊ทผ์ ๋ํ ์ํ์ ์ค์ฌ์ค๋๋ค.
์ถ์ถ ์ฐจ๋จ
Android KeyStore ํค์ ์ฃผ์ material์ด ์ถ์ถ๋๋ ๊ฒ์ ์ฐจ๋จํ๊ธฐ ์ํด ๋ ๊ฐ์ง ๋ณด์ ์กฐ์น๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
โ ์ฃผ์ material์ ์ ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด KeyStore ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ, ๋ฐฐํ์์ ์๋ช ํ๊ฑฐ๋ ํ์ธํ๋ ค๋ ์ผ๋ฐ ํ ์คํธ, ์ํธ ํ ์คํธ ๋ฐ ๋ฉ์์ง๋ ์ํธํ ์์ ์ ์ํํ๋ ์์คํ ํ๋ก์ธ์ค๋ก ๋ค์ด๊ฐ๋๋ค. ์ฑ์ ํ๋ก์ธ์ค๊ฐ ๋ ธ์ถ๋๋ฉด, ๊ณต๊ฒฉ์๊ฐ ์ฑ ํค๋ฅผ ์ฌ์ฉํ ์ ์์ด๋ ํค์ ์ฃผ์ material์ ์ถ์ถํด๋ผ ์๋ ์์ต๋๋ค
โ ์ฃผ์ material์ Android ๊ธฐ๊ธฐ์ ๋ณด์ ํ๋์จ์ด(์: Trusted Execution Environment, Secure Element)์ ๋ฐ์ธ๋ฉ ๋ ์๋ ์์ต๋๋ค. ํค์ ๋ํด ์ด ๊ธฐ๋ฅ์ด ํ์ฑํ๋๋ฉด, ํค์ ์ฃผ์ material์ด ์ ๋๋ก ๋ณด์ ํ๋์จ์ด ๋ฐ๊นฅ์ ๋ ธ์ถ๋์ง ์์ต๋๋ค. Android OS๊ฐ ์์๋๊ฑฐ๋ ๊ณต๊ฒฉ์๊ฐ ๊ธฐ๊ธฐ์ ๋ด๋ถ ์ ์ฅ์๋ฅผ ์ฝ์ ์ ์๋ ๊ฒฝ์ฐ, ์ด ๊ณต๊ฒฉ์๋ Android ๊ธฐ๊ธฐ์ ์๋ ๋ชจ๋ ์ฑ์ Android KeyStore ํค๋ฅผ ์ฌ์ฉํ ์๋ ์๊ฒ ์ง๋ง, ๊ธฐ๊ธฐ์์ ํค๋ฅผ ์ถ์ถํด๋ผ ์๋ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ด ํ์ฑํ๋๋ ค๋ฉด ๊ธฐ๊ธฐ์ ๋ณด์ ํ๋์จ์ด๊ฐ ํน์ ์กฐํฉ์ ํค ์๊ณ ๋ฆฌ์ฆ, ์ฐจ๋จ ๋ชจ๋, ๋ณํ ๋ฐฉ๋ฒ ๋ฐ ๋ค์ด์ ์คํธ๋ฅผ ์ง์ํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ํค ์ฌ์ฉ์ ์น์ธํฉ๋๋ค.
ํค ์ฌ์ฉ ์น์ธ
Android ๊ธฐ๊ธฐ์์ ํค์ ๋ถ๋ฒ ์ฌ์ฉ์ ์ค์ด๊ธฐ ์ํด, Android KeyStore๋ ํค๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ๋ ์ ๋ฒํ ํค ์ฌ์ฉ์ ์ฑ์์ ์ง์ ํ๋๋ก ๋ง๋ญ๋๋ค. ํค๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ์ ธ์จ ํ์๋ ๊ทธ ์น์ธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ํค๊ฐ ์ฌ์ฉ๋ ๋๋ง๋ค Android KeyStore์ ์ํด ์น์ธ์ด ์ํ๋ฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๊ณ ๊ธ ๋ณด์ ๊ธฐ๋ฅ์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ํค ์์ฑ/๊ฐ์ ธ์ค๊ธฐ ์ดํ(์ด์ ์ด๋ ๋์ค์ ์๋) ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค์ ์์์ด ๋ถ๋ฒ ํค ์ฌ์ฉ์ผ๋ก ์ด์ด์ ธ์๋ ์ ๋๋ค๋ ์๊ตฌ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉํฉ๋๋ค.
์ง์๋๋ ํค ์ฌ์ฉ ์น์ธ์ ๋ค์๊ณผ ๊ฐ์ ๋ฒ์ฃผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
โ ์ํธํ : ํค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์น์ธ๋ ํค ์๊ณ ๋ฆฌ์ฆ, ์์
๋๋ ์ฉ๋(encrypt, decrypt, sign, verify), ๋ณํ ๋ฐฉ๋ฒ, ์ฐจ๋จ ๋ชจ๋ ๋ฐ ๋ค์ด์ ์คํธ
โ ์ธ์ฆ ์ ํจ๊ธฐ๊ฐ : ํค ์ฌ์ฉ์ด ์น์ธ๋๋ ์ ํจ๊ธฐ๊ฐ ์ง์
โ ์ฌ์ฉ์ ์ธ์ฆ : ์ฌ์ฉ์๊ฐ ์ต๊ทผ์ ์ธ์ฆ๋ ๊ฒฝ์ฐ์๋ง ํค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ๊ฐ์ ์ธ ๋ณด์ ์กฐ์น๋ก์, ์ฃผ์ material์ด ๋ณด์ ํ๋์จ์ด ์์ ์๋ ํค์ ๊ฒฝ์ฐ / KeyInfo.isInsideSecurityHardware(), Android ๊ธฐ๊ธฐ๋ง๋ค ๋ค๋ฅด์ง๋ง ์ผ๋ถ ํค ์น์ธ์ ๋ณด์ ํ๋์จ์ด์ ์ํด ์ํ๋ ์๋ ์์ต๋๋ค. '์ํธํ' ์น์ธ ๋ฐ '์ฌ์ฉ์ ์ธ์ฆ' ์น์ธ์ ์ฃผ๋ก ๋ณด์ ํ๋์จ์ด์ ์ํด ์ํ๋ฉ๋๋ค. '์๊ฐ์ ์ ํจ์ฑ ๊ฐ๊ฒฉ' ์น์ธ์ ๋๊ฐ ๋ณด์ ํ๋์จ์ด์ ์ํด ์ํ๋์ง ์๋๋ฐ, ๊ทธ ์ด์ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ฆฝ๋ ์ค์๊ฐ ๋ณด์ ํด๋ก์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํค์ ์ฌ์ฉ์ ์ธ์ฆ ์น์ธ์ด ๋ณด์ ํ๋์จ์ด์ ์ํด ์ํ๋๋์ง ์ฌ๋ถ๋ / KeyInfo.isUserAuthenticationRequirementEnforcedBySecureHardware()๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
ํค์ฒด์ธ ๋๋ Android KeyStore ์ ๊ณต์ ์ค์ ์ ํ
์์คํ ๋ฒ์์ ์๊ฒฉ ์ฆ๋ช ์ ์ํ๋ฉด KeyChain API๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฑ์ด KeyChain API๋ฅผ ํตํด ์๊ฒฉ ์ฆ๋ช ์ฌ์ฉ์ ์์ฒญํ๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์๋ ์ค์น๋ ์๊ฒฉ ์ฆ๋ช ์ค์์ ์ด ์ฑ์ด ์ก์ธ์คํ ์ ์๋ ์๊ฒฉ ์ฆ๋ช ์ ์์คํ ์ ๊ณต UI๋ฅผ ํตํด ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์ ๋์ ํ์ ์ฌ๋ฌ ์ฑ์ด ๋์ผํ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Android KeyStore ์ ๊ณต์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ณ ์ฑ์ด ํผ์๋ง ์ก์ธ์คํ ์ ์๋ ์๊ฒฉ ์ฆ๋ช ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฑ์ด ํผ์๋ง ์ฌ์ฉํ ์ ์๋ ์๊ฒฉ ์ฆ๋ช ์ ๊ด๋ฆฌํ ์ ์์ ๋ฟ๋ง ์๋๋ผ Keychain API๊ฐ ์์คํ ๋ฒ์์ ์๊ฒฉ ์ฆ๋ช ์ ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ณด์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์๊ฒฉ ์ฆ๋ช ์ ์ ํํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ํธ์์ฉ์ด ํ์ ์์ต๋๋ค.
Android KeyStore ์ ๊ณต์ ์ฌ์ฉ
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด, ํ์ค KeyStore ๋ฐ KeyPairGenerator ๋๋ KeyGeneratorํด๋์ค์ Android 4.3(API ๋ ๋ฒจ 18)์ ์๊ฐ๋ AndroidKeyStore ์ ๊ณต์๋ฅผ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
AndroidKeyStore๋ KeyStore.getInstance(type)๋ฉ์๋์ ์ฌ์ฉํ๊ธฐ ์ํด KeyStore ์ ํ์ผ๋ก ๋ฑ๋ก๋๋ฉฐ, KeyPairGenerator.getInstance(algorithm, provider) ๋ฐ KeyGenerator.getInstance(algorithm, provider)๋ฉ์๋์ ์ฌ์ฉํ๊ธฐ ์ํด ์ ๊ณต์๋ก ๋ฑ๋ก๋ฉ๋๋ค.
์ ๊ฐ์ธ ํค ์์ฑ
์ Private Key ๋ฅผ ์์ฑํ๋ ค๋ฉด ์์ฒด ์๋ช ์ธ์ฆ์๊ฐ ๊ฐ๊ฒ ๋ ์ด๊ธฐ X.509 ํน์ฑ๋ ์ง์ ํด์ผ ํฉ๋๋ค.
ํค๋ฅผ ์์ฑํ๋ ค๋ฉด KeyPairGenerator์ KeyPairGeneratorSpec์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
์ ๋น๋ฐ ํค ์์ฑ
ํค๋ฅผ ์์ฑํ๋ ค๋ฉด KeyGenerator์ KeyGenParameterSpec์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
ํค์คํ ์ด ํญ๋ชฉ ์ฌ์ฉ
AndroidKeyStore ์ ๊ณต์ ์ฌ์ฉ์ ๋ชจ๋ ํ์ค KeyStore API์์ ๋ฐ์ํฉ๋๋ค.
ํญ๋ชฉ ๋์ด
aliases() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํค์คํ ์ด์ ํญ๋ชฉ์ ๋์ดํฉ๋๋ค.
๋ฐ์ดํฐ ์๋ช ๋ฐ ํ์ธ
ํค์คํ ์ด์์ KeyStore.Entry ๊ฐ์ ธ์ค๊ณ sign()๊ณผ ๊ฐ์ Signature API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์๋ช ํฉ๋๋ค.
ํค ์ฌ์ฉ์ ์ํด ์ฌ์ฉ์ ์ธ์ฆ ์๊ตฌ
ํค๋ฅผ ์์ฑํ๊ฑฐ๋ AndroidKeyStore๋ก ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ ์ธ์ฆ๋ ํ์๋ง ํค ์ฌ์ฉ์ ์น์ธํ๋๋ก ์ง์ ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์์ ์ ๋ณด์ ์ ๊ธ ํ๋ฉด ์๊ฒฉ ์ฆ๋ช (ํจํด/PIN/์ํธ, ์ง๋ฌธ)์ ์ฌ์ฉํ์ฌ ์ธ์ฆ๋ฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ณ ๊ธ ๋ณด์ ๊ธฐ๋ฅ์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ํค ์์ฑ/๊ฐ์ ธ์ค๊ธฐ ์ดํ(์ด์ ์ด๋ ๋์ค์ ์๋) ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค ์์์ด ํค ์ฌ์ฉ์ ์ํ ์ฌ์ฉ์ ์ธ์ฆ ์๊ตฌ์ฌํญ์ ๋ฌด์ํด์๋ ์ ๋๋ค๋ ์๊ตฌ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ธ์ฆ๋ ํ์๋ง ํค ์ฌ์ฉ์ ์น์ธํ๋ ๊ฒฝ์ฐ, ๋ ๊ฐ์ง ๋ชจ๋ ์ค ํ๋์์ ์๋ํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
โ ์ฌ์ฉ์ ์ธ์ฆ์์ ์ผ์ ํ ๊ธฐ๊ฐ ๋์ ํค ์ฌ์ฉ์ ์น์ธํฉ๋๋ค. ์ด ๋ชจ๋์์๋ ์ฌ์ฉ์๊ฐ ๋ณด์ ์ ๊ธ ํ๋ฉด์ ํด์ ํ๊ฑฐ๋ KeyguardManager.createConfirmDeviceCredentialIntent ํ๋ฆ์ ์ฌ์ฉํ์ฌ ๋ณด์ ์ ๊ธ ํ๋ฉด ์๊ฒฉ ์ฆ๋ช ์ ํ์ธํ๋ ์ฆ์ ๋ชจ๋ ํค์ ์ฌ์ฉ์ด ์น์ธ๋ฉ๋๋ค. ์น์ธ์ด ์ ํจํ๊ฒ ์ ์ง๋๋ ๊ธฐ๊ฐ์ ๊ฐ ํค ๋ง๋ค ๋ค๋ฅด๋ฉฐ, ์ด ๊ธฐ๊ฐ์ ํค ์์ฑ ๋๋ ๊ฐ์ ธ์ค๊ธฐ ์ค์ setUserAuthenticationValidityDurationSeconds๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ฉ๋๋ค. ์ด๋ฌํ ํค๋ ๋ณด์ ์ ๊ธ ํ๋ฉด์ด ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์์ฑ๋๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ณด์ ์ ๊ธ ํ๋ฉด์ด ๋นํ์ฑํ๋๋ฉด ์ด๋ฌํ ํค๋ ์๊ตฌ์ ์ผ๋ก ๋ฌดํจํ๋๊ฑฐ๋(์ฌ์ฉ์๋ฅผ ์ธ์ฆํ์ง ์๋ None ๋ชจ๋, Swipe ๋ชจ๋ ๋๋ ๊ธฐํ ๋ชจ๋๋ก ์ฌ๊ตฌ์ฑ) ๋๋ ๊ฐ์ ๋ก ์ฌ์ค์ ๋ฉ๋๋ค(์: ๊ธฐ๊ธฐ ๊ด๋ฆฌ์์ ์ํด ์ฌ์ค์ ).
โ ์ฌ์ฉ์ ์ธ์ฆ์์๋ ํ๋์ ํค์ ์ฐ๊ด๋ ํน์ ์ํธํ ์์ ์ ์น์ธํฉ๋๋ค. ์ด ๋ชจ๋์์๋ ์ด๋ฌํ ํค๊ฐ ๊ด๋ จ๋ ๊ฐ ์์ ์ ์ฌ์ฉ์๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ์น์ธํด์ผ ํฉ๋๋ค. ํ์ฌ๋ก์๋ ์ด๋ฌํ ์น์ธ์ ์ ์ผํ ์๋จ์ ์ง๋ฌธ ์ธ์ฆ(FingerprintManager.authenticate)๋ฟ์ ๋๋ค. ์ด๋ฌํ ํค๋ ์ต์ ํ๋ ์ด์์ ์ง๋ฌธ์ด ๋ฑ๋ก๋ ๊ฒฝ์ฐ์๋ง ์์ฑ๋๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ง๋ฌธ์ด ์๋ก ๋ฑ๋ก๋๊ฑฐ๋ ๋ชจ๋ ์ง๋ฌธ์ด ๋ฑ๋ก ํด์ ๋๋ฉด ์ด๋ฌํ ํค๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ฌดํจํ๋ฉ๋๋ค.
์ง์๋๋ ์๊ณ ๋ฆฌ์ฆ
โ Cipher
โ KeyGenerator
โ KeyFactory
โ KeyPairGenerator
โ Mac
โ Signature
โ SecretKeyFactory
์ฐธ๊ณ ์๋ฃ
๋๋ถ๋ถ์ ๋ด์ฉ์ด Android developer ์์ ๋ฐ์์ต๋๋ค. (๊ฐ๋ฐ๋ฌธ์ ์๋ณธ๋ณด๋ค ์ ํํ ์ ์๊ฒ ์ฃ )
์๋ฌธ ํ์ธํ๊ธฐ >> https://bit.ly/2BfrvkV