- Apple Intelligence가 온디바이스로 처리하기 어려운 요청을 큰 파운데이션 모델에 맡기기 위해 Private Cloud Compute(PCC) 를 도입했으며, 클라우드에서도 개인 데이터 접근을 최소화하는 설계를 내세움
- PCC는 맞춤형 Apple silicon 서버, Secure Enclave, Secure Boot, Code Signing, 샌드박싱을 결합해 데이터센터에 기기 수준의 보안 모델을 가져오려 함
- 사용자 요청은 검증된 PCC 노드 공개키로 직접 암호화되며, 로드밸런서나 프라이버시 게이트웨이는 요청을 복호화할 키를 갖지 않음
- 운영 편의를 위해 흔히 쓰는 원격 셸, 대화형 디버깅, 범용 로깅을 제외하고, 감사된 로그와 제한된 지표만 노드 밖으로 나가도록 설계함
- Apple은 프로덕션 소프트웨어 이미지, 투명성 로그, 연구 환경, Apple Security Bounty를 통해 외부 검증 가능한 클라우드 AI를 만들겠다는 계획임
Apple Intelligence가 클라우드로 넘어갈 때 생기는 프라이버시 문제
- Apple Intelligence는 iPhone, iPad, Mac에 생성 모델 기반 개인 지능 기능을 제공하는 시스템임
- 더 복잡한 데이터에 대해 추론해야 하는 고급 기능은 더 큰 파운데이션 모델이 필요하며, 이를 위해 Apple은 Private Cloud Compute(PCC) 를 만들었음
- PCC는 개인 AI 처리를 위해 설계된 클라우드 인텔리전스 시스템이며, 사용자 개인 데이터가 Apple을 포함한 누구에게도 노출되지 않도록 하는 것을 목표로 함
- 온디바이스 처리는 사용자 데이터 보안과 프라이버시에 유리함
- 사용자 기기에만 있는 데이터는 중앙 공격 지점에 놓이지 않음
- 가장 민감한 클라우드 데이터에는 종단 간 암호화가 강력한 방어 수단이 됨
- 종단 간 암호화가 적절하지 않은 클라우드 서비스에서는 임시 처리나 사용자 신원을 흐리는 무관한 무작위 식별자를 사용할 수 있음
기존 클라우드 AI 보안 모델의 한계
- 클라우드 AI는 강력한 데이터센터 하드웨어와 큰 머신러닝 모델을 활용할 수 있지만, 요청과 관련 개인 데이터에 암호화되지 않은 접근이 필요함
- 이 때문에 완전한 종단 간 암호화만으로는 처리할 수 없고, 기존 클라우드 AI 서비스는 전통적인 클라우드 보안 방식에 의존해 왔음
- 전통적인 접근에는 세 가지 약점이 있음
- 보안·프라이버시 보장 검증이 어려움
- 서비스가 특정 사용자 데이터를 기록하지 않는다고 해도 연구자가 이를 확인하기 어려움
- 새 버전이 민감한 데이터를 실수로 로그에 남기거나, TLS를 종료하는 로드밸런서가 문제 해결 중 사용자 요청을 대량 기록할 수 있음
- 런타임 투명성 제공이 어려움
- 클라우드 AI 서비스는 실제 실행 중인 소프트웨어 스택을 보통 공개하지 않음
- 오픈소스 소프트웨어만 사용하더라도, 사용자 기기나 브라우저가 서비스의 소프트웨어가 수정되지 않았는지 확인하는 널리 배포된 방법이 없음
- 강한 권한 접근 제한이 어려움
- SRE와 관리자는 장애나 심각한 사고 상황에서 SSH 같은 높은 권한 접근을 사용할 수 있음
- 관리자가 라이브 서버 데이터를 백업하다 민감한 사용자 데이터를 복사하거나, 범죄자가 관리자 자격 증명을 탈취해 사용자 데이터를 가져갈 수 있음
- 보안·프라이버시 보장 검증이 어려움
PCC의 다섯 가지 설계 요구사항
-
개인 사용자 데이터에 대한 무상태 계산
- PCC는 받은 개인 데이터를 사용자 요청 처리 목적으로만 사용해야 함
- 데이터는 Apple 직원을 포함해 사용자 외 누구에게도 제공되지 않아야 함
- 응답 반환 후에는 로그나 디버깅 용도를 포함해 어떤 형태로도 보존되지 않아야 함
-
기술적으로 강제 가능한 보장
- 보안과 프라이버시 보장은 전체 시스템의 중요한 구성요소를 제한하고 분석할 수 있을 때 가장 강함
- PCC의 핵심 보장은 TLS 종료 로드밸런서 같은 외부 구성요소에 의존하지 않아야 함
- 서버 지표와 오류 로그 수집 같은 운영 요구도 프라이버시 보호를 약화하지 않는 방식으로 지원돼야 함
-
특권 런타임 접근 없음
- PCC에는 Apple SRE가 장애 대응 중에도 프라이버시 보장을 우회할 수 있는 특권 인터페이스가 없어야 함
- 런타임에 추가 소프트웨어를 로드해 특권 접근 범위를 넓히는 방식도 지원하지 않아야 함
-
비표적화
- 공격자가 특정 PCC 사용자의 개인 데이터를 노리려면 전체 PCC 시스템에 대한 광범위한 침해를 시도해야 함
- 공급망에서 PCC 노드에 물리 공격을 하거나 데이터센터 접근을 얻은 공격자도 특정 사용자 요청을 손상된 노드로 유도할 수 없어야 함
-
검증 가능한 투명성
- 보안 연구자는 PCC의 보안·프라이버시 보장이 Apple의 공개 약속과 일치하는지 높은 신뢰도로 검증할 수 있어야 함
- 연구자가 검사한 소프트웨어와 PCC 프로덕션 환경에서 실행 중인 소프트웨어가 같은지도 확인 가능해야 함
PCC 노드와 보안 기반
- PCC의 신뢰 루트는 맞춤 제작된 서버 하드웨어인 PCC 컴퓨트 노드임
- PCC 노드는 iPhone에 쓰이는 하드웨어 보안 기술을 데이터센터로 가져옴
- 운영체제는 LLM 추론 워크로드에 맞춘 iOS와 macOS 기반의 강화된 하위 집합임
- 공격 표면을 좁게 유지하도록 설계됨
- Code Signing과 샌드박싱 같은 iOS 보안 기술을 활용함
- Apple은 데이터센터 관리에 일반적으로 중요한 구성요소를 PCC 노드에서 제외함
- 원격 셸
- 시스템 내부 관찰과 범용 관측 도구
- 대신 SRE 직원에게 작고 제한된 운영 지표만 결정적으로 제공하는 목적별 구성요소를 사용함
- Swift on Server로 클라우드 기반 파운데이션 모델을 호스팅하기 위한 새 머신러닝 스택을 만들었음
사용자 요청 처리와 데이터 보존 방지
- PCC는 사용자 요청의 데이터를 모델 추론에 사용해야 하므로 완전한 종단 간 암호화만으로는 설계할 수 없음
- 대신 PCC 컴퓨트 노드가 처리 중 사용자 데이터 프라이버시를 기술적으로 강제하고, 작업 주기가 끝나면 데이터를 보존할 수 없게 함
- PCC의 사용자 데이터 처리 보장은 세 가지임
- 사용자 기기는 추론 요청 처리라는 유일한 목적을 위해 PCC에 데이터를 보냄
- 사용자 데이터는 응답 반환 전까지만 요청을 처리하는 PCC 노드에 머무름
- 사용자 데이터는 프로덕션 서비스나 하드웨어에 대한 관리 접근 권한을 가진 Apple 직원에게도 제공되지 않음
- Apple Intelligence가 PCC를 사용할 때 기기는 프롬프트, 원하는 모델, 추론 매개변수로 요청을 구성함
- 기기의 PCC 클라이언트는 먼저 검증되고 암호학적으로 인증된 PCC 노드의 공개키로 요청을 직접 암호화함
- 사용자 기기에서 검증된 PCC 노드까지 종단 간 암호화가 제공됨
- 로드밸런서와 프라이버시 게이트웨이 같은 보조 데이터센터 서비스는 신뢰 경계 밖에 있으며 요청을 복호화할 키가 없음
- PCC 노드는 Secure Boot와 Code Signing으로 승인되고 암호학적으로 측정된 코드만 실행할 수 있음
- 실행 가능한 모든 코드는 Apple이 서명하고 특정 PCC 노드에 승인된 trust cache에 포함돼야 함
- trust cache는 Secure Enclave가 로드하며 런타임에 변경하거나 추가할 수 없음
- JIT 매핑을 만들 수 없어 런타임 코드 컴파일이나 주입을 막음
- 코드와 모델 자산은 Signed System Volume에 쓰이는 것과 같은 무결성 보호를 사용함
- Secure Enclave는 요청 복호화 키가 복제되거나 추출될 수 없도록 강제함
- 데이터 보존을 막기 위해 Secure Enclave는 재부팅마다 데이터 볼륨 암호화 키를 무작위화하고 이 키를 영구 저장하지 않음
- PCC 노드의 Secure Enclave Processor가 재부팅될 때마다 데이터 볼륨은 암호학적으로 삭제됨
- 추론 프로세스는 요청 완료 시 관련 데이터를 삭제함
- 사용자 데이터를 처리한 주소 공간은 예기치 않게 메모리에 남은 데이터의 영향을 줄이기 위해 주기적으로 재활용됨
- Pointer Authentication Codes와 샌드박싱은 보장 우회를 노리는 익스플로잇을 어렵게 하고, PCC 노드 내부의 수평 이동을 제한함
- 추론 제어와 디스패치 계층은 Swift로 작성돼 메모리 안전성을 확보하며, 요청 초기 처리를 별도 주소 공간으로 분리함
특권 런타임 접근 제거
- PCC 노드에는 원격 셸이나 대화형 디버깅 메커니즘이 포함되지 않음
- Code Signing은 추가 코드 로드를 막지만, Apple은 이런 개방형 접근 자체를 시스템 보안과 프라이버시를 우회할 넓은 공격 표면으로 봄
- PCC 노드는 Developer Mode를 활성화할 수 없고, 디버깅 워크플로에 필요한 도구도 포함하지 않음
- 관측성과 관리 도구는 사용자 데이터 노출을 막는 프라이버시 보호장치를 포함함
- 범용 로깅 메커니즘이 없음
- 사전 지정되고 구조화되며 감사된 로그와 지표만 노드 밖으로 나갈 수 있음
- 여러 독립 검토 계층이 해당 메커니즘을 통한 사용자 데이터의 우발적 노출을 막는 데 사용됨
- 이 설계는 지정된 코드만 사용자 데이터에 접근하고, 시스템 관리 중 사용자 데이터가 PCC 노드 밖으로 새지 않도록 강제 가능한 보장을 제공함
비표적화와 하드웨어 공격 대응
- PCC의 위협 모델은 컴퓨트 노드에 물리적으로 접근하고, 시스템의 일부 하드웨어 보안 속성을 우회해 처리 중인 데이터를 추출할 수 있는 고도화된 공격자를 포함함
- Apple은 두 가지 방식으로 방어함
- PCC 하드웨어에 강화된 공급망을 적용해 대규모 하드웨어 공격을 매우 비싸고 발견 가능하게 만듦
- 소규모 공격이 특정 사용자 데이터를 표적으로 삼는 데 쓰이지 못하게 함
- PCC 하드웨어 보안은 제조 단계에서 시작함
- 서버가 봉인되고 변조 스위치가 활성화되기 전 PCC 노드 구성요소를 재고화하고 고해상도 이미징을 수행함
- 데이터센터 도착 후 PCC 프로비저닝 전에 광범위한 재검증을 수행함
- 여러 Apple 팀이 독립 출처의 데이터를 교차 확인하며, Apple과 무관한 제3자 관찰자가 절차를 추가로 모니터링함
- 각 PCC 노드에는 Secure Enclave UID에 뿌리를 둔 키 인증서가 발급됨
- 사용자 기기는 인증서를 검증할 수 없는 PCC 노드에 데이터를 보내지 않음
- 더 작고 정교한 공격을 막기 위해 PCC는 표적 분산(target diffusion) 접근을 사용함
- 요청 메타데이터에는 출처 기기나 사용자에 대한 개인 식별 정보가 빠짐
- 적절한 모델로 라우팅하는 데 필요한 제한된 요청 맥락 데이터만 포함함
- 이 메타데이터만 PCC 신뢰 경계 밖의 로드밸런서와 데이터센터 구성요소에 제공됨
- 메타데이터는 RSA Blind Signatures 기반의 일회용 자격 증명을 포함해, 요청을 특정 사용자와 묶지 않고 유효한 요청을 승인함
- PCC 요청은 제3자가 운영하는 OHTTP relay를 통과함
- 요청이 PCC 인프라에 도달하기 전에 기기의 출발지 IP 주소를 숨김
- 공격자가 IP 주소로 요청을 식별하거나 개인과 연결하는 것을 막음
- 출발지 IP 기반 트래픽 유도를 하려면 제3자 릴레이와 Apple 로드밸런서를 모두 침해해야 함
- 사용자 기기는 전체 PCC 서비스가 아니라 PCC 노드의 부분집합에 대해서만 요청을 암호화함
- 로드밸런서는 요청을 처리할 준비가 되었을 가능성이 높은 노드 부분집합을 반환함
- 로드밸런서는 사용자나 기기 식별 정보를 갖지 않으므로 특정 사용자를 위해 집합을 편향시킬 수 없음
- 단일 노드가 손상되더라도 들어오는 요청의 작은 일부만 복호화할 수 있음
- 로드밸런서가 선택한 PCC 노드 집합은 통계적으로 감사 가능함
검증 가능한 투명성과 연구자 접근
- Apple은 PCC에 대한 공적 신뢰를 위해 보안 연구자가 종단 간 보안·프라이버시 보장을 검증할 수 있어야 한다고 봄
- PCC 출시 시 모든 프로덕션 빌드의 소프트웨어 이미지를 보안 연구 목적으로 공개할 계획임
- 사용자 기기는 공개적으로 등재된 소프트웨어를 실행한다고 암호학적으로 증명할 수 있는 PCC 노드에만 데이터를 보내도록 설계됨
- Apple의 검증 가능한 투명성 계획은 다음을 포함함
- PCC에서 실행되는 모든 코드의 측정값을 추가 전용 방식의 암호학적 변조 방지 투명성 로그에 게시
- 로그와 관련 바이너리 소프트웨어 이미지를 프라이버시·보안 전문가가 검사하고 검증할 수 있게 공개
- PCC 노드 소프트웨어 분석용 공식 도구 세트 게시 및 유지
- Apple Security Bounty를 통한 중요한 연구 결과 보상
- 모든 프로덕션 PCC 소프트웨어 이미지는 독립 바이너리 검사를 위해 공개됨
- OS, 애플리케이션, 관련 실행 파일이 포함됨
- 연구자는 이를 투명성 로그의 측정값과 대조해 검증할 수 있음
- 소프트웨어는 로그 포함 후 90일 이내 또는 관련 소프트웨어 업데이트 제공 후 중 더 빠른 시점에 공개됨
- 릴리스가 로그에 서명돼 들어가면 탐지 없이 제거할 수 없음
- 사용자 기기는 PCC 노드의 증명된 측정값이 공개 투명성 로그의 소프트웨어 릴리스와 일치할 때만 요청 페이로드 키를 해당 노드의 공개키로 감쌈
- Code Signing은 승인되지 않은 소프트웨어 로드를 막고, PCC 노드의 모든 코드가 증명에 포함되도록 함
PCC 연구 환경과 보상
- Apple은 연구자가 PCC 프라이버시 약속을 빠르게 검증하고 문제를 찾을 수 있도록 세 가지 추가 조치를 계획함
- PCC Virtual Research Environment 공개
- Apple silicon이 탑재된 Mac에서 PCC 노드를 시뮬레이션하는 도구와 이미지 세트
- 가상화에 성공하도록 최소 수정된 PCC 소프트웨어 버전을 부팅할 수 있음
- 모든 프로덕션 PCC 빌드의 바이너리 이미지와 별도로, 보안상 중요한 PCC 소스 코드 일부를 주기적으로 공개
- Apple 플랫폼 최초로 PCC 이미지에 sepOS 펌웨어와 iBoot 부트로더를 평문으로 포함
- PCC Virtual Research Environment 공개
- Apple Security Bounty는 전체 PCC 소프트웨어 스택의 연구 결과를 보상함
- PCC의 프라이버시 약속을 약화하는 문제에는 특히 큰 보상이 제공될 예정임
이후 공개 예정 사항
- PCC는 무상태 계산, 강제 가능한 보장, 특권 접근 없음, 비표적화, 검증 가능한 투명성 요구사항을 만족하도록 설계됨
- PCC가 베타로 제공된 뒤 더 깊은 기술 설명이 이어질 예정임
- 향후 각 핵심 요구사항의 구현과 동작에 대한 추가 기술 세부사항을 공유할 계획임
- Apple은 보안 연구자에게 PCC 소프트웨어와 PCC Virtual Research Environment를 곧 처음 공개할 예정임