Handoff 보안
Apple은 한 기기에서 다른 기기로, 내장 앱과 웹 사이트 간에 Handoff를 안전하게 처리하며, 대용량 데이터 Handoff도 처리합니다.
Handoff가 안전하게 작동하는 방법
Handoff를 사용하면 사용자의 iOS, iPadOS 및 macOS 기기가 서로 가까이에 있을 때 자동으로 한 기기에서 수행 중인 작업을 다른 기기로 전달할 수 있습니다. Handoff를 사용하면 사용자가 기기를 전환하고 즉시 작업을 이어갈 수 있습니다.
사용자가 Handoff를 지원하는 두 번째 기기에서 iCloud에 로그인하면 두 기기가 APNS를 사용하여 BLE(Bluetooth Low Energy) 4.2 대역 외 페어링을 구축합니다. 개별 메시지는 iMessage에서의 메시지와 비슷한 방법으로 암호화됩니다. 기기가 페어링된 후 각 기기는 기기의 키체인에 저장되는 대칭 256비트 AES 키를 생성합니다. 이 키는 BLE 알림을 암호화하고 인증할 수 있습니다. 알림은 재전송 방지책과 함께 GCM 모드의 AES256을 사용하여 기기의 현재 동작을 iCloud와 페어링된 다른 기기에 전달합니다.
기기가 새로운 키에서 처음 알림을 받는 경우, 발신하는 기기에 BLE 연결을 구축하고 알림 암호화 키 교환을 수행합니다. 이 연결은 iMessage 암호화 방법과 비슷한 방법으로 개별 메시지 암호화 방식과 표준 BLE 4.2 암호화 방식을 사용하여 보호됩니다. 일부 경우에 이 메시지는 BLE 대신 APNS를 사용하여 전송됩니다. 동작 페이로드는 iMessage와 동일한 방법으로 보호되고 전송됩니다.
네이티브 앱과 웹 사이트 간의 Handoff
Handoff를 사용하면 iOS, iPadOS 또는 macOS 네이티브 앱에서 앱 개발자가 합법적으로 제어하는 도메인의 웹 페이지에서 사용자 활동을 재개할 수 있습니다. 또한 Handoff를 통해 네이티브 앱 사용자 동작을 웹 브라우저에서 재개할 수도 있습니다.
네이티브 앱이 개발자가 제어하지 않는 웹 사이트를 재개하지 못하도록 하려면 앱이 재개하려는 웹 도메인에 대한 합법적인 제어를 입증해야 합니다. 웹 사이트 도메인을 통한 제어는 공유 웹 자격 증명을 위한 메커니즘을 통해 구축됩니다. 자세한 내용은 저장된 암호에 접근할 수 있는 앱 권한을 참조하십시오. 시스템은 사용자 동작 Handoff를 승인하도록 앱을 허용하기 전에 앱의 도메인 이름 제어가 유효한지 확인해야 합니다.
웹 페이지 Handoff의 소스는 Handoff API를 채택한 어떤 브라우저든 가능합니다. 사용자가 웹 페이지를 볼 때 시스템은 암호화된 Handoff 알림 바이트에서 웹 페이지의 도메인 이름을 알립니다. 사용자의 다른 기기만 알림 바이트의 암호화를 해제할 수 있습니다.
수신하는 기기에서 해당 시스템은 설치된 네이티브 앱이 알려진 도메인 이름에 대해 Handoff를 승인함을 감지하고 해당 네이티브 앱 아이콘을 Handoff 옵션으로 표시합니다. Handoff 실행 시, 네이티브 앱은 전체 URL과 웹 페이지 제목을 받습니다. 하지만 브라우저에서 네이티브 앱으로 다른 정보는 전달되지 않습니다.
반대로 네이티브 앱은 Handoff를 수신하는 기기에 동일한 네이티브 앱이 설치되어 있지 않으면 폴백 URL을 지정할 수도 있습니다. 이 경우, 기본 브라우저가 Handoff API를 사용한다면 시스템은 사용자의 기본 브라우저를 Handoff 앱 옵션으로 표시합니다. Handoff가 요청되면 브라우저가 실행되고 소스 앱이 제공한 폴백 URL을 받게 됩니다. 폴백 URL을 네이티브 앱 개발자가 제어하는 도메인 이름으로 제한해야 한다는 요구 사항은 없습니다.
대용량 데이터 Handoff
Handoff의 기본 기능을 사용하는 것 외에도 일부 앱은 Apple이 만든 피어 투 피어 Wi-Fi 기술을 통해(AirDrop과 흡사) 대용량의 데이터 전송을 지원하는 API도 사용할 수 있습니다. 예를 들어, Mail 앱은 이러한 API를 사용하여 대용량 첨부 파일을 포함한 임시 저장 메일의 Handoff를 지원합니다.
앱이 이런 API를 사용하면 두 기기 간의 교환이 Handoff에서와 마찬가지로 시작됩니다. 그러나 수신하는 기기는 BLE(Bluetooth Low Energy)를 사용하여 초기 페이로드를 받은 후에 Wi-Fi를 통해 새로운 연결을 시작합니다. 이 연결은 TLS로 암호화되며 iCloud 키체인으로 공유된 ID를 통해서 신뢰가 파생됩니다. 그리고 인증서에서 신원을 사용자의 신원과 대조하여 확인합니다. 마지막으로 추가 페이로드 데이터가 전송이 완료될 때까지 이 암호화된 연결을 통해 전송됩니다.
공통 클립보드
공통 클립보드는 Handoff를 활용하여 사용자의 클립보드 콘텐츠를 안전하게 모든 기기에 전송할 수 있어 한 기기에서 복사한 콘텐츠를 다른 기기에서 붙여넣을 수 있는 기능입니다. 콘텐츠는 다른 Handoff 데이터와 동일한 방법으로 보호되며 앱 개발자가 공유를 거부하도록 선택하지 않은 이상 공통 클립보드와 자동으로 공유되도록 기본 설정됩니다.
또한 사용자가 클립보드 데이터를 앱에 붙여넣지 않더라도 앱은 클립보드 데이터에 대한 접근 권한을 가집니다. 공통 클립보드를 사용하면 데이터 접근 권한이 iCloud 로그인을 통해 연결된 사용자의 다른 기기의 앱까지 확대됩니다.