스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
개인 정보 보호의 새로운 내용
Apple은 개인 정보 보호가 인권의 기본이며, 사용자의 개인 정보를 보호하는 것은 Apple이 수행하는 모든 활동의 중심이라고 생각합니다. Apple의 엔지니어링 팀에서 모든 제품 및 개발자 프레임워크에 개인 정보 보호를 구축하는 방법을 살펴보고, 신뢰를 구축하고 고객을 보호하기 위해 앱에 도입할 수 있는 기술 및 패턴을 알아보시기 바랍니다.
리소스
관련 비디오
WWDC22
-
다운로드
♪♪
안녕하세요, 개인 정보 보호 엔지니어링 부의 Justin입니다 영상을 보러 오신 여러분 환영합니다 Apple에서는 개인 정보 보호가 기본 인권이라고 생각합니다 사람의 개인 정보를 보호하는 게 저희가 하는 모든 일의 중심이죠 사람들이 여러분의 앱을 좋아하고 그들 삶의 일부가 되길 원하죠 훌륭한 기능을 만들어야 사람들의 관심을 끌 수 있고 개인 정보 보호 기능이 있어야 그들의 신뢰를 얻어 그들 삶에 자리할 수 있습니다 사람들이 어떤 데이터가 수집되고 어떻게 사용되는지 이해하면 다른 대안을 선택하는 대신 여러분의 앱이나 서비스를 이용할 가능성이 높아집니다
Apple에서는 저희 제품을 사용하는 분들을 위해 훌륭한 기능과 개인 정보 보호를 우선시했습니다 이를 여러분의 고객들께도 제공할 수 있게 돕고자 합니다 Apple은 실행 가능한 패턴을 모은 privacy pillars를 이용해 훌륭한 기능으로 개인 정보를 보호하고자 합니다 이는 개인 정보 보호 기능을 구축하는 법을 여러분께도 알려 주는 훌륭한 지침서가 될 겁니다 첫 번째는 데이터를 최소화하는 겁니다 기능을 구축하는 데 필요한 데이터만 사용하십시오 다음은 온디바이스 프로세싱입니다 기능 구축에 민감한 데이터가 필요한 경우 서버와 데이터 공유를 막기 위해 기기의 전원을 사용합니다 세 번째는 투명성과 통제입니다 민감한 정보가 기기에서 전송되면 사용자에게 어떤 정보가 보내졌고 어떻게 사용되는지 알려 주고 그에 대한 통제 권한을 주는 거죠 마지막은 보안 및 보호입니다 기기가 켜져 있든 꺼져 있든 전송 중이거나 보관 중인 민감한 정보를 보호하는 겁니다
이번 영상에서는 여러분께 영향을 미칠 몇 가지 플랫폼 변화와
여러분이 적용해야 할 새로 강화된 보안 기능 개인 정보 보호에 영향을 미치는 중요한 새 기능을 알려 드릴게요
우선, 여러분 앱에 영향을 끼칠 플랫폼 변화에 대해 말씀드리죠 iOS 16과 macOS Ventura에는 몇 가지 중요한 변화가 있습니다 새로운 Device name entitlement로 기기 이름에 대한 접근을 제한하는 겁니다
다음으로는 위치 표시로 제어 센터에 앱 속성이 나타납니다
Gatekeeper의 개선으로 더 많은 곳에서 공증된 앱의 결점을 확인합니다
로그인 시 Mac 앱을 실행하면 추가 정보가 사용자에게 통보되고 단순화된 API를 가지게 됩니다
Legacy Pasteboard 접근에는 권한이 필요합니다
먼저 기기 이름 접근의 변경 사항부터 살펴보죠
기기를 쉽게 식별하도록 하기 위해서 Apple 계정의 사용자 이름에는 기본적으로 iOS의 기기 이름이 일부 포함됩니다
iOS 16 전에는 UIDevice API가 앱에서 사용자가 지정한 기기 이름에 접근하는 걸 허용했습니다 사용자의 기댓값과 앱의 접근성을 더 잘 맞추기 위해서 UI Device Name API는 기기의 모델명으로 돌아갑니다 사용자가 이름을 어떻게 지정하든 상관없이 할당된 이름이 아닌 다른 이름을 지정하죠
일부 앱은 기기 이름을 바꿀 수 있는 여러 기기에서 작동된다는 걸 아실 겁니다 문서를 마지막으로 편집한 위치를 명확히 하는 것과 같죠
앱이 다중 기기 기능을 사용하고 앱의 UI에 그게 표시될 경우 기기 이름에 접근 권한을 요청할 수 있습니다 이 접근 권한이 있더라도 클라우드 호스팅 서비스 제공 업체가 아닌 제3자와는 기기 이름을 공유할 수 없습니다
다음으로는 위치 사용을 위한 속성 업데이트입니다
앱에서 위치 기능을 켜면 iOS는 상태 표시줄에 화살표로 표시됩니다
iOS 16에서는 쓸어내려서 제어 센터를 열면 어떤 앱이 위치를 사용 중인지 나타납니다 여러분 앱에서 필요할 때만 위치를 사용해서 사용자들이 놀라는 일이 없도록 하세요
이번에는 Mac에 대해 말씀드리겠습니다 Gatekeeper는 새로 다운받은 앱에 결점이 있는지 확인합니다 macOS Ventura에서는 Gatekeeper가 분리된 앱은 물론이고 공증된 모든 앱을 검사합니다
우선, 앱에는 제대로 된 서명이 있어야 합니다 macOS Ventura부터 시작해 보죠 만약 공증된 앱의 서명이 더는 유효하지 않다면 첫 시도에서 Gatekeeper에 의해 차단될 겁니다 모든 실행 파일과 번들에 서명해야 하며 앱을 변경할 때 해당 서명이 유효한지 확인해야 합니다 Gatekeeper는 결점 검사와 더불어서 앱이 특정 방식으로 수정되는 걸 방지합니다
일반적으로 앱을 수정하는 건 업데이트를 할 때입니다 같은 개발자 계정이나 팀에서 유효한 서명을 했다면 서로 계속해서 업데이트할 수 있습니다 이러면 바로 작업이 가능하죠
다른 개발팀이 여러분 앱을 업데이트하는 걸 허용하거나 여러분만 업데이트하도록 제한하고 싶다면 info.pllist를 업데이트할 수 있습니다 이 경우를 예로 들면 Unrelated App은 plist의 변경만으로 Pal About의 업데이트를 허용할 수 있습니다
그냥 NSUpdateSecurityPolicy만 추가하면 됩니다 NSUpdateSecurityPolicy에서는 AllowProcesses를 추가하고 딕셔너리로 팀 식별자를 서명 식별자 배열에 매핑합니다 이 예시를 살펴보면 Pal About의 팀 식별자가 서명한 com.example.pal.about으로 된 모든 프로세스를 허용해서 여러분의 앱을 업데이트할 수 있도록 합니다 같은 개발팀에서 서명하지 않은 앱에 의해 앱이 수정되거나 NSUpdateSecurityPolicy에 허용되지 않은 경우 macOS가 수정을 차단하고 앱이 다른 앱을 수정하려 하는 걸 사용자에게 알립니다 알림을 누르면 시스템 설정으로 연결돼서 앱이 다른 앱을 업데이트하고 수정할 수 있도록 합니다
macOS Ventura를 강화하려면 앱의 실행 파일과 번들에 서명해야 하며 업데이트 후에도 그 서명이 유효하도록 해야 압니다 여러분이 사용하는 업데이트 프로그램을 나열하고 NSUpdateSecurityPolicy를 적용합니다 여러분의 앱이 정책 범위 밖에서 다른 앱을 수정하려고 할 경우 사용자가 이를 허용해야 합니다
다음으로는 Mac 로그인 시 앱을 실행하는 방법을 알려 드리죠 macOS Monterey와 이전 버전에서는 누군가 Mac에 로그인하면 앱은 실행 에이전트나 데몬으로 로그인 시 실행할 수 있습니다 이는 앱이 편리하게 메뉴 헬퍼 실행을 허락해서 백그라운드에서 소프트웨어 업데이트를 확인하거나 여러 앱에서 데이터를 동기화할 수 있도록 합니다
가끔 사용자가 Mac에 로그인할 때 관련되지 않은 앱이 열려 방해가 될 수 있습니다 앱이나 다른 소프트웨어는 센서나 위치 데이터에 접근할 수 있습니다 사람들은 그 사실을 잘 모를 수 있습니다 실행 중이어도 보이지 않을 수 있기 때문이죠 그리고 개발자들도 어떤 메커니즘을 사용해야 할지 명확하지 않습니다 데몬이나 에이전트 아니면 서비스 관리일까요? macOS Ventura에서는 훨씬 간단합니다
macOS Ventura에서는 새로운 단일 API를 사용해 앱을 실행하고 로그인 시 에이전트나 데몬을 실행할 수 있습니다 여러분의 앱은 기본적으로 로그인 시 실행되고 사용자들에게 알림이 표시될 겁니다 여러분의 앱에 높은 권한의 데몬이 필요한 경우 실행을 위해서는 관리자의 승인을 받아야 합니다
알림을 클릭하면 시스템 설정의 로그인 설정 창이 열립니다 사용자가 시스템에서 실행되는 앱을 관리할 수 있죠 위쪽에서는 로그인 시에 실행되는 앱을 제어하고 아래쪽에선 로그인 시 실행되는 다른 항목을 제어합니다 여기서 로그인 시 실행되는 앱을 다양하게 제어할 수 있는데 여기에는 에이전트와 데몬 SMLoginItems가 포함되며 로그인 시 자동으로 열리는 앱들도 포함됩니다 새로운 API 사용법을 알려 드리죠
서비스 관리 프레임워크는 로그인 시 리소스를 쉽게 시작하게 해 줍니다 모든 에이전트와 데몬은 여러분의 앱 번들에 있기 때문에 설치 프로그램을 사용해 실행 에이전트를 생성하거나 정리 스크립트를 만들지 않아도 되고 Mac App Store에서도 작동합니다 여러분의 앱에서 SMAppService API와 연결해 사용자가 알림을 받는 시간과 앱 아이콘이 어떻게 보이는지 제어할 수 있습니다
다음은 pasteboard 접근입니다
전에는 투명한 알림창이 떴습니다 사용자가 편집 옵션에서 붙여 넣기를 누르지 않았는데 pasteboard에 접근하는 경우에 말이죠
iOS 16에서 시스템은 다른 앱이 작성한 pasteboard 항목에 대한 모든 접근 의도를 확인합니다 앱이 pasteboard 항목 값에 계속 접근하는 경우에 UIPasteboard API를 사용하면 시스템은 모덜 프롬프트로 나타납니다 이 프롬프트가 나타나지 않게 하는 방법이 세 가지 있습니다 첫째는 편집 메뉴를 이용하는 겁니다 둘째는 단축키를 이용하는 거죠 'Features to adopt' 부분에서 세 번째 방법을 말씀드릴게요 바로 새로운 UIKit Paste controls입니다
이런 플랫폼의 개인 정보 변경은 여러분이 알고 계셔야 합니다 개인 정보 보호를 강화하는 새로운 기술도 몇 가지 있는데 앱의 개인 정보 보호 시스템을 쉽게 구축하는 데 도움이 되죠
UIKit Paste controls에 대해 먼저 말씀드리겠습니다
UIKit Paste controls를 앱에 추가하면 사람들이 직관적인 버튼을 눌러서 pasteboard에 접근할 수 있습니다 UIKit Paste controls는 편집 메뉴는 물론이고 단축키나 시스템 프롬프트 없이도 붙여 넣을 수 있습니다 시스템에서 그 의도를 확인할 때는 눈에 보이는 버튼을 누른 건지 확인합니다 이 버튼을 앱의 인터페이스에 맞게 사용자가 바꿀 수 있습니다 모서리를 둥글게 바꾸거나 글자 색이나 아이콘 모양 배경색을 변경할 수 있죠 버튼의 대비를 확실하게 해 주고 다른 요소 뒤에 숨겨지지 않고 작동만 잘 되게 해 주면 됩니다 그리고 버튼이 잘 작동하는지 실험합니다
데이터 접근을 최소화하면서 원활한 이용을 위해 만든 또 다른 도구가 Media device discovery입니다
오늘날 앱은 사용자들의 다양한 통신 장비를 통해 광범위한 스트리밍 프로토콜을 사용하고 있습니다
전에는 이런 프로토콜을 사용해 미디어를 스트리밍하려면 앱이 로컬 네트워크에 접근 권한이 필요했고 종종 Bluetooth도 필요했죠
선택된 기기들을 관리하려면 모든 기기에 대한 지식이 필요해 이 권한이 있어야 하는 겁니다 하지만 이는 필요한 것보다 많은 정보에 접근 권한을 줘서 흔적을 남길 위험성이 있습니다
Media device discovery는 기기의 앱에서 선택한 미디어를 네트워크나 Bluetooth가 연결됐단 프롬프트 없이 재생할 수 있죠 스트리밍 기기는 AirPlay로 같은 기기에 표시되고 앱에서는 스트리밍하는 기기만 볼 수 있습니다 이 기능은 Device Discovery 확장 프로그램 덕분에 가능합니다
이 확장 프로그램에서는 로컬 네트워크와 Bluetooth 기기를 검색할 수 있고 앱과 별도로 샌드박스에서 실행되므로 검색 결과를 다시 전송할 수 없습니다 앱이 로컬 네트워크나 Bluetooth에 접근하는 데 광범위한 권한이 필요하지 않다는 겁니다 앱이 전체 네트워크는 볼 수 없기 때문이죠
그 대신 확장 프로그램은 입력된 정보를 Device Discovery Extension 프레임워크로만 보낼 수 있습니다 Device Discovery Extension 프레임워크는 발견된 기기 목록을 보여 주고 사용자가 선택을 한 후에는 시스템에서 선택된 기기와 통신을 가능하게 합니다 다른 권한은 필요 없죠
프로토콜 공급자는 Device Discovery Extension으로 앱 확장 프로그램을 생성해야 합니다 AV Route Picker View를 확장해 사용자의 반응을 처리하고 프로토콜에서 사용자가 선택한 네트워크 기기를 처리하고 확장 프로그램 및 앱을 다운받아 자세한 내용을 확인하는 거죠 앱 개발자들은 스트리밍 프로토콜 제공자에게 연락해서 Device Discovery Extension을 시행해야 합니다
Media device discovery는 뛰어난 개인 정보 보호 기능을 구축할 기회를 만들어 줍니다 여러분의 앱은 스트리밍에 필요한 데이터에 정확히 접근할 수 있고 검색은 간단하게 프롬프트 없이 이루어지며 사람들은 훌륭한 개인 정보 보호망을 얻는 거죠 이건 모두에게 좋은 기능입니다
Media device discovery에서는 프롬프트 없이 필요한 장치에만 접근할 수 있는 권한을 제공합니다 PHPicker API가 권한을 제공해서 프롬프트 없이 필요한 사진에만 접근할 수 있죠
현재 PHPicker는 macOS Ventura가 탑재된 Mac을 포함해 watchOS 9에 탑재되어 있습니다 Mac 및 Watch 앱을 업데이트하여 모든 사진에 대한 접근 여부를 묻지 않고도 접근할 수 있습니다
다음은 Private Access Tokens입니다 CAPTCHAs가 방해받지 않고도 사기를 예방하는 강력한 도구죠
Private Access Tokens가 CAPTCHAs를 대체하고 감춰진 토큰을 사용해 기능을 구축한다면 웹 사이트 또는 API 개발자가 해당 기기를 추적할 수 없어도 합법적인 기기를 인식할 수 있습니다 Apple은 기기가 어떤 사이트에서 토큰을 가져오는지 모르고 그 토큰을 받는 서버에서는 토큰을 보내는 기기의 정보를 남기지 않습니다
Private Access Tokens는 Privacy Pass IETF 개방형 표준의 일부로 Private Relay 사용자의 진위를 확인하기 위해 저희가 사용하는 기술과 동일한 기술이 적용됩니다
자세한 내용은 영상을 참고하세요 제목은 'CAPTCHA를 프라이빗 액세스 토큰으로 대체하기'입니다
이제 패스키에 대해 알아보도록 하죠
암호는 계정 인증에서 가장 중요합니다 개인 데이터를 안전하게 보관하는 데도 중요하죠 하지만 심각한 문제가 있습니다 기억하는 게 어렵기 때문에 사람들이 암호를 단순하게 만들거나 여러 사이트에서 똑같은 걸 사용하기도 합니다 그러면 해킹당할 수도 있죠
패스키는 보다 강력한 인증 방법을 구현해서 금방 익숙해질 수 있는 UI 스타일과 암호를 자동으로 입력할 수 있는 생체 인식 방법을 사용합니다
패스키는 공개 키 암호 방식을 기반으로 합니다 그래서 서버 저장소의 가치가 높을 수밖에 없죠 그 서버가 유출된다고 해도 상관없습니다 완전히 공개되어 있는 서버니까요 패스키는 해당 웹 사이트와 연결되어 있기 때문에 해킹될 일은 없습니다 패스키 실행에 대한 자세한 내용은 ‘패스키 소개’라는 영상을 참고하세요
이건 여러분이 적용해야 할 개인 정보 보호 업데이트입니다
제가 한 가지 더 중요하게 말하고 싶은 건 iOS 16의 새로운 개인 정보 보호 도구인 안전 확인(Safety Check)입니다 ‘안전 확인’은 가정 내에서나 가까운 사람에게 폭력을 당하는 사람들이 다른 사람에게 허락했을지도 모를 접근 권한 검토 및 재설정을 위해 고안됐습니다
안전 확인은 다음과 같은 면에서 도움이 됩니다 FindMy에서 위치 공유를 해제해 사람들과 데이터 공유를 중지하고 사진이나 메모, 캘린더 공유를 막는 겁니다
앱과 데이터 공유를 중지하기 위해 시스템 개인 정보 보호 권한을 재설정하는데 이는 모든 타사 앱에 적용됩니다 다른 iCloud 기기의 FaceTime과 iMessage에서 로그아웃 되도록 도와주고 메시지와 전화가 여러분이 가진 기기로만 전송되도록 합니다 다른 iCloud 기기에서 로그아웃을 시켜서 다른 기기에서는 위치 정보를 업데이트할 수 없게 하는 겁니다 FindMy나 사진, 캘린더 같은 앱에서 말이죠
기기와 iCloud 계정의 암호도 변경할 수 있습니다 신뢰할 수 있는 이의 전화번호와 iCloud의 2단계 인증 과정 비상 연락처를 관리하는 데 도움이 됩니다 이 모든 기능은 신변에 위협을 받는 사람들을 도와 그들의 데이터에 대한 접근을 제어합니다
안전 확인에는 두 가지 사용법이 있습니다 첫 번째는 위험한 상황에 대비한 Emergency Reset입니다 사용자나 앱에 대한 접근 권한을 바로 재설정할 때 필요하죠
두 번째는 Manage Sharing and Access입니다 안전 확인의 각 기능을 보다 세밀하게 통제할 수 있죠
Emergency Reset을 통해 모든 사용자와 앱에 대해 신속한 조치를 취할 수 있고 다른 기기에서 FaceTime과 iMessage에 대한 접근을 비활성화합니다 그다음 기기의 iCloud 계정을 여러분 기기에 안전하게 보호하고 신뢰할 수 있는 기기와 비상 연락처를 검토합니다
Manage Sharing and Access는 사람과 앱을 일일이 확인해 공유 대상을 검토할 수 있습니다 공유 중인 정보의 이름이나 형식에 따라 구분할 수 있습니다 특정 사람과 공유 중인 내용을 확인하고 제어하는 훌륭한 도구죠 민감한 권한을 가진 앱을 찾을 수도 있습니다 누군가 여러분의 기기에 접근해 설치해 놓은 앱 같은 거죠
안전 확인에서는 빠른 종료가 가능하며 중간에 빠르게 나갈 수도 있습니다 그들이 뭘 하고 있는지 누군가 볼까 봐 걱정된다면 말이죠 지금 보이는 부분을 누르면 홈 화면으로 돌아가고 다음에 다시 설정에 들어가면 기본 설정 페이지가 나타날 겁니다 안전 확인 페이지가 아니고요
안전 확인은 가정 내에서나 가까운 이에게 폭행당한 사람이 그들의 개인 정보를 다시 제어할 수 있게 하는 거죠 개인 정보 보호는 단지 데이터를 공유할 때 결정하는 게 아니라 언제든지 그 결정을 이해하고 변경할 수 있게 하는 겁니다 이건 Apple이 개인 정보를 보호하는 한 가지 예일 뿐이에요 여러분의 앱이 개인 정보를 보호하도록 설계하면 사용자와의 신뢰를 구축하고 유지하는 데 도움이 될 겁니다 iOS 16과 macOS Ventura는 이런 여정에 도움이 되는 여러 새로운 기술을 제공합니다 UI 기기 이름 변경이나 Gatekeeper 개선 같은 새 플랫폼 업데이트를 준비하시고 Media device discovery 확장 프로그램을 포함해 UIKit paste controls는 물론이고 Private Access Tokens와 패스키도 도입하세요
오늘 함께해 주셔서 감사합니다 어떤 훌륭한 기능을 가진 개인 정보 보호 기능을 여러분의 앱에 구축할지 기대하고 있겠습니다
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.