한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
원격 프로비저닝으로 새로워진 Android 증명 업그레이드를 확인하세요
2022년 5월 25일 수요일
작성자: Max Bires (Software Engineer)
이 글의 원문은
여기서
확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
증명은 Android 8.0부터 의무화된 필수 기능입니다. 매일 새 버전의 앱이 출시되면서 SafetyNet, Identity Credential, Digital Car Key 및 다양한 타사 라이브러리가 제공하는 기능과 서비스의 신뢰하는 것이 점점 더 중요해지고 있습니다. 보안 신뢰 사슬을 더욱더 탄탄히 구축하고, 알려진 취약점이 발생할 시 기기 신뢰성의 복구 기능을 높이기 위해 이번 기회에 증명 인프라를 다시 살펴보았습니다.
Google은 Android 12.0부터 팩토리 내 비공개 키 프로비저닝을 팩토리 내 공개 키
추출
과 단기 인증서를 이용한 무선 인증서 프로비저닝의 조합으로 대체하는 옵션을 제공할 예정입니다. 이 체계는 Android 13.0에서 의무 사항이 됩니다. 이 새로운 체계를 원격 키 프로비저닝이라 부릅니다.
누가 영향을 받나요?
OEM/ODM
기기 제조업체는 더 이상 팩토리에서 기기에 직접 증명 비공개 키를 프로비저닝하지 않으므로, 증명을 위해 보안 비밀을 관리해야 하는 부담이 사라집니다.
신뢰 당사자 (잠재적 영향)
아래에서 더 자세히 설명드리는 것과 같이, 증명에 있는 인증서 체인의 형식, 알고리즘 및 길이가 바뀔 것입니다. 신뢰 당사자가 레거시 인증서 체인 구조를 엄격히 따라 인증서 유효성 검사 코드를 설정한 경우에는, 이 코드를 업데이트해야 합니다.
왜 변경하나요?
증명 인증서 프로비저닝 방식을 변경하는 두 가지 주요 목적은 인증서 손상 시 기기를 복구하고 증명 공급망을 강화하기 위해서입니다. 오늘날의 증명 체계에서는 증명의 신뢰 신호에 영향을 미치는 방식을 통해 기기 모델이 손상된 것으로 확인되거나 어떤 메커니즘을 통해 키가 누출된 경우 키를 취소해야 합니다. 증명 키 신호에 의존하는 서비스의 수가 늘어나면서, 관련 기기를 소유한 소비자의 부담이 늘어났습니다.
이번 변경을 통해 손상된 것으로 알려진 소프트웨어가 설치된 기기에 대한 프로비저닝을 중지해 의도하지 않은 키 누출 가능성을 미연에 방지할 수 있습니다. 이로써 사용자는 갑작스러운 서비스 중단 없이 계속해서 앱을 사용할 수 있게 됩니다.
어떻게 작동할까요?
각 기기에서 고유한 정적 키 쌍을 생성하고 OEM이 팩토리에서 이 키 쌍의 공개 부분을 추출합니다. 그런 다음 Google 서버에 공개 키를 업로드하여 이후 프로비저닝을 위한 신뢰의 토대로 삼습니다. 비공개 키는 키가 생성되는 보안 환경을 결코 벗어나지 않습니다.
개봉 후 인터넷에 연결된 기기는 기기에서 생성한 키에 대한 인증서 서명 요청을 생성하고 팩토리에서 수집한 공개 키에 상응하는 비공개 키로 서명합니다. 백엔드 서버는 요청의 신뢰성을 확인한 다음 공개 키를 서명하여 인증서 체인을 반환합니다. 그런 다음 키 저장소는 이러한 인증서 체인을 저장하여 증명을 요청할 때마다 앱에 할당합니다.
이 과정은 인증서가 만료되거나 현재 키 공급이 소진될 시에 정기적으로 반복됩니다. 이 체계에서는 애플리케이션이 각기 다른 증명 키를 수신하고 키 자체도 정기적으로 교체되기 때문에 개인정보를 보호할 수 있습니다. 또한 Google 백엔드 서버는 기기의 공개 키를 확인하는 서버와 첨부된 증명 키를 확인하는 서버로 분리됩니다. 다시 말해, Google이 증명 키를 요청한 특정 기기와 해당 증명 키를 연관 짓는 것은 불가능합니다.
기술적인 관점에서 무엇이 바뀌나요?
최종 사용자는 어떤 변화도 알아차리지 못할 것입니다. 증명을 활용하는 개발자라면 다음과 같은 변경 사항에 주의하여야 합니다.
인증서 체인 구조
새로운 온라인 프로비저닝 인프라의 특성으로 인해, 체인 길이가 이전보다 길어지고 변경될 수 있습니다.
신뢰할 수 있는 루트
신뢰할 수 있는 루트는 기존의 RSA 키에서 ECDSA 키로 업데이트될 것입니다.
RSA 증명 지원 중단
KeyMint로 생성하고 증명한 모든 키는 ECDSA 키와 해당 인증서 체인으로 서명합니다. 기존에는 비대칭 키를 상응하는 알고리즘으로 서명했습니다.
단기 인증서와 증명 키
기기에 프로비저닝된 인증서는 일반적으로 최대 2개월간 유효하며, 그 후에는 만료되어 교체됩니다.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed