[WWDC22] What’s new in privacy

sokyte
daily-monster
Published in
12 min readFeb 11, 2024

안녕하세요 :) 일욜 괴물 소깡입니다.

오늘은 WWDC22 세션 중 하나인 What’s new in privacy에 대해서 알아보도록 하겠습니다 !!

이번 글은 WWDC22 세션을 보고 작성한 글입니다.

애플에서는 개인 정보 보호가 기본적인 권리라고 생각하며 사람들의 개인 정보를 보호하는 것이 모든 일의 중심이라고 믿습니다. 엔지니어링 팀이 애플의 모든 제품과 개발자 프레임워크에 개인 정보를 어떻게 구축하는지 알아보고 소비자들과 신뢰를 쌓고 고객의 정보를 보호하기 위해 앱에 적용할 수 있는 기술과 패턴에 대해 알아봅니다.

Great features and privacy

훌륭한 기능을 만들어야 사람들의 관심을 끌 수 있고 개인 정보 보호 기능이 있어야 그들의 신뢰를 얻어 그들 삶에 자리할 수 있습니다.

Privacy pillars

Apple은 실행 가능한 패턴을 모은 privacy pillars를 이용해 훌륭한 기능으로 개인 정보를 보호합니다.

크게 네가지 카테고리로 나눠서 개인정보를 보호합니다.

  1. Data minimization : 기능을 구축하는데 필요한 데이터만을 사용합니다
  2. On-device processing : 기능에 민감한 정보를 사용하는 경우가 있다면 서버와의 데이터 공유를 막기 위해 기기의 전원을 사용합니다.
  3. Transparency and control : 어떤 정보가 어떻게 쓰이는지 사용자에게 알려주고 그에 대한 통제 권한을 줍니다.
  4. Security protections : 민감한 정보를 보호합니다.

Platform updates

앱에 영향을 주는 플랫폼 변화는 아래와 같습니다.

*iOS 16버전 이후, Ventura부터 적용되는 내용입니다.

Device name entitlement

iOS16 이전에는 UIDevice API가 앱에서 사용자가 지정한 기기 이름에 접근하는 것을 허용 (ex, soyeon’s iPhone, soyeon’s iPad)하였습니다.

그러나 iOS16부터는 사용자의 기댓값과 앱의 접근성을 더 잘 맞추기 위해 UI Device Name API는 기기의 모델명으로 돌아갑니다.

그런데, 일부 앱은 기기 이름을 바꿀 수 있는 여러 기기에서 작동합니다. 예를 들면 문서를 마지막으로 편집한 위치를 명확하게 하는 것과 같습니다.

앱이 다중 기기 기능을 사용하고 앱의 UI에 그 정보가 필요한 경우, 기기 이름에 접근 권한을 요청할 수 있습니다. 이 기능이 있더라도 제3자와는 공유할 수 없습니다.

Location attribution

앱에서 위치 기능을 키면 iOS는 상태 표시줄에 화살표로 표시가 됩니다.그리고 제어 센터를 내리면 어떤 앱에서 위d치 기능을 사용하고 있는지 표시 됩니다.

이때 앱에서 필요할 경우에만 위치 기능을 사용하여 사용자들이 놀라는 일이 없도록 해야합니다.

Launching mac apps at login

mac 로그인 시 앱을 실행하는 방법

이전 버전에서는 누군가 mac에 로그인을 하면 앱은 실행 에이전트나 데몬으로 로그인 시 실행할 수 있었습니다. 이는 앱이 메뉴 도우미를 실행하거나 백그라운드에서 소프트웨어 업데이트를 확인하거나 여러 앱 간에 데이터를 동기화하는 등의 편의를 제공합니다.

관련하지 않은 앱이 열려 방해가 될 수 있습니다. 이 앱들은 위치 데이터 등에 접근할 수 있는데, 보이지 않는 형태로 동작하는 앱이라면 사용자들이 미처 알아채지 못할 수 있습니다.

새로운 버전인 macOS Ventura에서는 새로운 단일 API를 사용해서 앱, 런치 에이전트 또는 데몬을 로그인 시 자동으로 실행할 수 있습니다. 기본적으로 사용자는 앱이 로그인 시 자동으로 실행되도록 허용하며 이에 대한 알림이 표시됩니다. 만약 앱에서 조금 더 상승된 권한이 필요한 경우 관리자의 승인이 필요합니다.

설정 > 일반 > 로그인

여기에서 사용자는 시스템에서 사용되는 앱을 관리할 수 있습니다. 상단 부분은 로그인 시 실행되는 앱을 제어하며 하단 부분은 로그인 시 실행되는 다른 항목을 제어합니다. (The top portion controls apps that run at login, and the bottom portion controls other items that run at login.)

이 패널은 로그인 시 앱이 실행되는 여러 방법을 제어하며 여기에는 에이전트, 데몬, SMLoginItems 및 자체적으로 실행되도록 추가된 앱도 포함됩니다.

새로운 API를 사용하는 방법 ⬇️

서비스 관리 프레임워크를 사용하면 로그인 시 리소스를 쉽게 실행할 수 있습니다.

모든 에이전트와 데몬은 앱 번들에 있기 때문에 더 이상 설치 프로그램을 통해서 런치 에이전트를 작성하거나 정리 스크립트를 만들 필요가 없으며 이는 Mac App Store에서도 작동합니다.

앱에서 SMAppService API를 호출하여 사용자에게 알림이 표시되는 시기와 시스템 설정에서 앱 아이콘의 모양을 제어할 수 있습니다.

여기서 .. 잠깐 .. !

런치 에이전트? 데몬? 이게 무엇일까요?

런치 에이전트(Launch Agent)와 데몬(Daemon)은 macOS 시스템에서 백그라운드에서 실행되는 프로세스를 나타내는 용어입니다. 각각의 역할과 특징은 아래와 같습니다.

런치 에이전트

  • 사용자가 로그인할 때 실행되는 프로세스
  • 사용자와 상호작용하지 않고 백그라운드에서 동작하는 작은 프로그램이나 서비스를 실행하는 데 사용
  • 주로 사용자 로그인 시에 시작되며, 사용자와 관련된 작업을 수행하는 데 적합합니다.

데몬

  • 시스템이 부팅될 때 시작되는 백그라운드 프로세스
  • 사용자와 직접적으로 상호작용하지 않고 주로 시스템 레벨에서 실행되는 서비스를 담당
  • 보통 지속적으로 실행되며 특정 작업을 수행하거나 백그라운드에서 동작하는 서비스를 제공합니다.

→ 새로운 API를 통해 사용자의 로그인 시에 런치 에이전트와 데몬을 편리하게 설정하고 관리 가능, 앱 개발자들은 이전보다 더 간편하게 자신의 앱이나 백그라운드 서비스를 로그인 시에 자동으로 실행 가능

Pasteboard access

기존에는 상단 알림으로 제공하던 기능에 대해서 16버전 이후부터는 아래와 같이 변경됩니다.

iOS16에서는 시스템이 다른 앱에서 작성한 pasteboard 항목에 대한 모든 접근에 대한 의도를 확인합니다. (계좌 번호 복사 후 은행 앱을 열 때 etc ..)

만약 앱이 UIPasteboard API를 사용해서 pasteboard 항목의 값을 계속해서 엑세스하는 경우, 시스템은 모달 프롬프트를 표시합니다.

이 모달 프롬프트가 나타나지 않도록 하는 방법은 크게 세 가지가 있습니다. 첫 번째는 편집 옵션 메뉴를 사용하는 것이고, 두 번째는 키보드 단축키를 사용하는 것이고, 세 번째 방식은 UIKit paste controls입니다. (→ 다음 부분에서 설명할 것)

⇒ 여기까지가 플랫폼에 적용되는 개인 정보 변경 사항입니다. 추가로 앱에 개인 정보를 효과적으로 통합할 수 있도록 도와주는 몇 가지 새로운 개인 정보 보호 기술을 소개합니다.

Features to adopt

UIKit paste controls

UIKit paste controls를 앱 경험에 추가하여 사용자들이 버튼을 누르는 것을 통해 직관적으로 pasteboard에 접근할 수 있게 합니다.

UIKit paste controls를 도입하면 편집 메뉴, 키보드 단축키 또는 시스템 프롬프트(alert창) 없이도 붙여넣기가 가능합니다.

시스템은 버튼이 시각적으로 표시되고 탭 되었음을 확인하여 의도를 확인합니다. 이러한 버튼을 앱의 인터페이스에 맞게 사용자 정의할 수 있습니다. (커스텀 할 수 있습니다.) 버튼은 대비가 있어야 하며(contrast) 다른 요소 뒤에 숨겨져 있지 않도록 주의해야 합니다. Paste 버튼이 예상대로 동작하는지 테스트 하는 것도 중요합니다.

Media device discovery

데이터 엑세스를 최소화하면서 원활한 경험을 만들기 위한 또 다른 도구는 미디어 장치 검색입니다. 현재 앱들은 다양한 스트리밍 프로토콜과 사용자 지정 검색 및 통신 로직을 사용합니다.

이전에는 이러한 프로토콜 중 하나를 사용하여 미디어를 스트리밍 하려면 로컬 네트워크 및 (때에 따라) 블루투스에 대한 엑세스 권한이 필요했었습니다.

이 권한은 모든 장치에 대한 지식이 필요하며 장치 선택을 관리하기 위해 필요했지만, 필요한 정보보다 더 많은 정보에 엑세스 할 수 있었으며 지문 인식 위험이 존재 했었습니다.

미디어 장치 검색을 통해 앱은 네트워크 또는 블루투스 엑세스 프롬프트를 표시하지 않고 선택한 장치로 바로 스트리밍 할 수 있습니다. 스트리밍 장치는 AirPlay와 동일한 선택기에 나타나며 앱은 스트리밍 할 장치만 볼 수 있습니다. 이는 DeviceDiscovery extensions 덕분에 가능합니다.

이 extension은 로컬 네트워크 및 블루투스 장치를 검색할 수 있지만 앱과 별도로 샌드박스가 있어 검색 결과를 보낼 수 없습니다. 따라서 앱이 전체 네트워크를 볼 수 없기 때문에 앱이 로컬 네트워크 또는 블루투스에 대한 (과한) 권한을 필요로 하지 않습니다.

대신, extension은 발견된 디바이스/악세서리를 DeviceDiscoveryExtension 프레임워크에만 보낼 수 있습니다.

DeviceDiscoveryExtension 프레임워크는 선택한 장치 목록을 선택기에 표시하고 선택이 이루어진 후 시스템이 선택한 장치와의 통신을 활성화합니다. 이 때 다른 권한은 필요로 하지 않습니다.

PHPicker API

위의 미디어 장치 검색이 프롬프트 없이 필요한 장치에만 엑세스 권한을 부여하는 것처럼 PHPicker API는 프롬프트 없이 필요한 사진에만 엑세스 권한을 부여합니다.

Private Access Token

  • CAPTCHA를 방해하지 않으면서 사기를 방지하는 강력한 도구
  • CAPTCHA를 대체
  • 웹사이트 또는 API 개발자가 유저를 추적할 수 없게 하면서 합법적인 장치를 인식할 수 있게하는 블라인드 토큰을 사용하여 구축됩니다.

Safety Check

iOS16의 새로운 개인 정보 보호 도구입니다.

가정 내 또는 친밀한 관계의 폭력 상황에서 사람들이 이전에 설정한 엑세스를 검토하고 재설정할 수 있도록 설게되었습니다.

  • FindMy에서 위치 공유를 중지하고 Photos, Notes, Calendar에서의 공유를 중지함으로써 사람들과 데이터 공유를 중지합니다.
  • 모든 타사 앱에 대한 시스템 개인 정보 권한을 재설정함으로써 앱과의 데이터 공유를 중지합니다.
  • Face Time 및 iMessage에서 로그아웃하여 Messages 및 통화가 손에 있는 장치로만 전송되도록 합니다.
  • 장치 및 iCloud 계정의 암호를 변경하는 데 도움이 되며 iCloud 이중 인증을 위한 신뢰할 수 있는 전화번호를 관리하는 데도 도움이 됩니다.
  • 그리고 필요한 경우 비상 연락처를 관리하는데 도움이 됩니다.

→ 이 모든 것들이 함께 결합되어 개인 안전에 대한 위협에 대응하고 데이터 엑세스를 효과적으로 통제할 수 있도록 도와줍니다.

Safety Check을 사용하는 두 가지 방법이 있습니다. 첫 번째는 긴급 재설정으로, 비상 상황에서 즉시 사람 및 앱에 대한 엑세스를 재설정해야 할 때 사용됩니다.

두 번째는 공유 및 엑세스 관리로, Safety Check의 각 기능에 대해 더 정교한 제어를 제공합니다.

  • 긴급 재설정

빠르게 모든 사람 및 모든 앱에 대해 조취를 취하고 다른 기기에서의 Face Time 및 iMessage 엑세스를 비활성화할 수 있습니다.

iCloud 계정을 현재 사용 중인 장치에 안전하게 보호하고 비상 연락처 및 신뢰할 수 있는 기기를 검토할 때 안내 받게 됩니다.

  • 공유 및 엑세스 관리

각 사람 및 앱을 개별적으로 검토하고 누구와 데이터를 공유하는지를 자세히 제어할 수 있습니다.

이를 이름 또는 공유하는 정보의 유형으로 정렬할 수 있습니다.

이는 특정 인물과의 공유를 이해하고 제어하는데 훌륭한 도구입니다. 또한 다른 사용자가 기기에 엑세스 권한이 있는 앱을 설치했는지 찾는 데도 도움이 됩니다.

Quick Exit은 모든 Safety Check 플로우에서 사용 가능하며 사용자가 다른 사람이 자신이 설정하는 것을 볼까 걱정될 때 빠르게 해당 페이지를 나갈 수 있습니다. 이 버튼을 누르면 홈 화면으로 돌아가며 다음에 설정을 들어가면 Safety Check가 아닌 기본 설정 페이지로 돌아가게 됩니다.

Safety Check는 가정 내 또는 친밀한 관계 내의 폭력 상황에서 사람들이 개인 데이터의 통제를 되찾도록 도와줍니다.

개인 정보는 데이터를 공유할 때 순간적인 결정 뿐만 아니라 언제든지 이 결정을 이해하고 변경할 수 있는 능력에 관한 것입니다.

앱에서 개인 정보를 잘 다루면 (잘 설계하면) 사용자들과의 신뢰를 구축하고 유지하는 데 도움이 됩니다. iOS16 및 macOS Ventura는 여러 과정에서 도움이 되는 새로운 기술을 제공합니다.

UI 장치 이름 변경 및 Gatekeeper 개선과 같은 새로운 플랫폼 업데이트에 대비하세요. 미디어 장치 검색 확장, UIKit paste controls, Private Access Token 및 Passkeys를 도입하세요.

오늘은 이렇게 애플에서 권장하는, 제공하는 개인정보 보호 방법에 대해서 알아보았습니다.

이 가이드를 제대로 인지하고 앱에 적용할 수 있도록 해봅시다. :)

--

--