이 블로그 게시물은 Daniel Ogden 및 Alexis Brignoni와 공동으로 수행한 연구를 기반으로 합니다.
Geraldine Blay가 작성한 게시물
격리와 격리의 이 시기에 우리는 가상으로만 공유할 수 있습니다.iOS/MacOS 플랫폼에서 추억을 공유할 수 있는 방법 중 하나는 공유 앨범(이전에는 iCloud 사진 공유)을 사용하는 것입니다.공유 앨범을 통해 사용자는 선택한 사람들과 사진 및 비디오를 공유할 수 있으며 구독자는 자신의 사진 및 비디오를 추가하고 댓글을 달 수 있습니다.
1. 테스트 전화의 공유 앨범 - Apple ID와 연결된 이메일을 사용하여 두 명의 사용자와 공유합니다.
2. 다른 iOS 장치의 공유 앨범 - 테스트 전화에 공유됨.
3. 장치가 비행기 모드(및 네트워크 연결이 끊긴 상태)에 있는 동안 생성된 공유 앨범.따라서 수신자는 전화 추출이 완료되기 전에 요청을 수신/수락할 수 없습니다.
참고: 테스트의 이 특정 부분에서 흥미로운 일이 발생했습니다.전화기는 대략 8-10시간 후에 비행기 모드에서 해제되었고 앨범은 어디에도 없었습니다.앨범을 공유한 사용자가 알림을 받았지만 휴대전화에서 사라졌습니다.
4. 테스트 전화에서 생성된 공유 앨범 – 두 명의 사용자와 공유되었으며 그 중 한 명은 위의 항목 1에 언급된 첫 번째 앨범에 대한 초대를 이미 수락했습니다.
5. macOS에서 생성된 공유 앨범.초대장이 테스트 전화로 전송되었고 수락되었습니다. 전화에 표시된 앨범 제목을 볼 수 있었지만 사진이 전송되기 전에 전화가 비행기 모드로 전환되었습니다.** 휴대전화가 비행기 모드에서 해제되고 사진이 전송되어 차이점을 확인하기 위해 다른 추출도 수행되었습니다.**
6. 테스트 전화에서 공유 앨범이 생성되었고 다른 iOS 사용자에게 초대가 공유되었으며 전화가 비행기 모드로 설정되었습니다.우리는 테스트의 파트 3을 반복하는 것에 대해 궁금했습니다. 이번에는 전화기가 8-10시간이 아닌 짧은 시간 동안만 비행기 모드로 유지되었습니다.전에 남아있었습니다.
7. 사용자의 Apple ID와 연결된 전화 번호를 사용하여 사용자와 공유된 테스트 전화에서 공유 앨범이 생성되었습니다.
전체 파일 시스템 checkm8 추출(UFED 4 PC 사용)은 앨범이 생성되기 전에 기준선으로 획득되었습니다.또한 위에서 언급한 각 앨범이 생성된 후에 전체 파일 시스템 checkm8 추출을 얻었습니다.Physical Analyzer 7.35 및 iLEAPP v 1.6을 사용하여 추출을 처리했습니다.
결과
아래 스크린샷 은 기준 이미지를 촬영할 때PhotoCloudSharingData 디렉터리의 기본 구조를 보여줍니다. 이 시점에서 공유 앨범을 받거나 추가하지 않았습니다.여기에는 Caches 및 INFLIGHT_JOBS 하위 디렉터리와 서버 구성 파일이 포함되어 있습니다.
diskcacherepository.plist 파일 을 제외하고 Caches 하위 디렉토리는 비어 있습니다.
테스트 장치에서 공유 앨범이 생성되면 private/var/mobile/Media/PhotoData/PhotoCloudSharingData/디렉터리에 다음과 같은 몇 가지 항목이 포함됩니다.
DsID*(private/var/mobile/Media/PhotoData/PhotoCloudSharingData/<DsID>)로 명명된 하위 디렉토리 내에서 공유 앨범을 찾습니다.
*참고: iPhone Wiki에 따르면 DsID는 Directory Services Identifier를 나타내며 "AppleID 계정을 식별하는 방법"입니다(Apple 고객이 일련 번호를 가지고 있는 것처럼 생각하십시오 :-p).
이러한 각 공유 앨범( 기기 소유자의 Apple ID에서 공유되었거나 기기 소유자의 APPLE ID와공유되었는지 여부에 관계 없이 )은 별도의 GUID로
·DCIMLastDirectoryNumber (해당 앨범에 둘 이상의 DCIM 디렉토리가 있는 경우)
·DCIMLastFileNumber: DCIM 디렉토리에 있는 사진의 수를 나타냅니다.또한 이미 존재하는 공유 앨범에 사진이나 비디오를 추가하면 추가된 항목 수만큼 DCIM_CLOUD.plist의 DCIMLastFileNumber 필드가 증가함 을확인 했습니다 .
공유 앨범 내에 둘 이상의 DCIM 디렉토리가 있는 경우 어떤 일이 발생하는지 알아보려면 추가 테스트가 필요합니다.
- 앨범 제목, CloudOwnerHashedPersonID, 클라우드 소유자 이메일, 이름 및 성, 해당 앨범에 대한 공개 URL 활성화 여부, 구독 날짜(앨범이 해당 사용자와 공유된 경우) 및 클라우드 관계 상태*가 포함된Info.plist*.
CloudOwnerHashedPersonID는 아래에 설명 된 cloudSharedPersonInfos.plist 에도 나타납니다.
**참고: CloudRelationshipState 필드에 대해서는 더 많은 연구가 필요 합니다.테스트에서 "0"과 "2" 값만 찾을 수 있었습니다."Cloud Relationship State"가 "0"인 앨범도 테스트 사용자가 만든 앨범이었고 관계 상태가 "2"인 앨범은 그녀와 공유 된 앨범이었습니다.그러나 이것은 완전한 우연의 일치일 수 있으며 더 많은 테스트가 필요합니다.
- 해당 앨범의 사진/비디오가 포함된 하위 폴더.해당 디렉토리의 명명 규칙은 100CLOUD***로 나타납니다.
***참고: 공유 앨범에 이러한 디렉토리가 둘 이상 있을 수 있습니다.아직 충분한 사진/비디오가 포함된 앨범을 만들지 않았습니다. 테스트할 항목 목록에 있지만 이 블로그 게시물을 계속 지연하고 싶지는 않았습니다.위에서 언급한 DCIMLastDirectoryNumber 필드가 이와 관련이 있다고 생각합니다 .
기본 PhotoCloudSharingData 디렉토리에는diskcacherepository.plist 및 sharedAssetsPrefetchCount.plist가 포함된 Caches 라는 하위 디렉토리도 있습니다.
PhotoCloudSharingData 디렉터리에도 있는 중요한 데이터를 포함할 수 있는 다른 파일 은 다음과 같습니다.
- serverconfiguration :maxnum.ownedAlbums, maxnum.photosPerAlbum및 maxnum.commentsPerPhoto와 같은 구성 설정을 포함합니다 .
- cloudSharedEmails.plist: 이 장치와 앨범을 공유한 Apple ID와 연결된 이메일을 포함합니다(앨범이 공유되었기 때문에 테스트 장치에서 사용된 AppleID 포함).
- cloudSharedPersonInfos.plist: 테스트에서 앨범이 공유되는 즉시 이 plist는 ********-****-****-******** 형식의 GUID를 채웁니다. *******, 앨범을 공유한 사용자의 APPLE ID 이메일(초대에 사용된 경우 전화번호)이 포함됩니다.그러나 이 사용자가 공유 앨범 초대를 수락하는 경우 CloudOwnerHashedPersonID를 사용하여 다른 항목이 생성되며 여기에는 APPLE ID와 연결된 이름, 성 및 전체 이름이 포함됩니다.