요약
- 10월 28일자 mailmaint 작업반 초안 03판은 개인 데이터 아카이브의 컨테이너로 POSIX pax를 택했다. 하나의 내보내기를 여러 독립적으로 읽을 수 있는 파일로 나눌 수 있고, 큰 폴더도 여러 부분에 걸칠 수 있다.
- 가져오는 쪽은 공통
uid와 일치하는 메타데이터로 분할 폴더를 하나로 합쳐야 한다. 위험한 경로와 특수 항목을 거부해야 하며, 아카이브 안의 파일 소유자·권한 비트·확장 속성·ACL을 새 시스템에 적용해서는 안 된다.
다운로드 두 번이 받은편지함 두 개를 뜻하지는 않는다
사용자의 메일함이 커서 첫 파일에는 오래된 편지, 두 번째에는 최근 편지가 들어 있다고 하자. 두 파일 모두 ‘받은편지함’이라는 폴더를 담고 있다. 새 서비스가 파일마다 폴더를 하나씩 만들면 계정의 구조가 갈라진다. 첫 파일만 완전한 것으로 취급하면 최근 메일이 빠진다. 어느 쪽이든 전송 자체는 성공했을 수 있다. 문제는 파일의 도착과 계정의 복원이 서로 다른 작업이라는 점이다.
초안은 분할된 폴더의 연결 방법을 구체화한다. 각 부분에는 자체 archive.json이 있고, part와 final 값으로 전체에서의 위치를 나타낸다. 같은 폴더가 여러 부분에 나타날 때 각 folder.json에는 해당 부분의 항목만 적되, 나머지 메타데이터는 일치해야 한다. 삭제 항목 목록도 반복한다. 동일한 폴더 uid가 한 객체임을 나타내며, 가져오는 프로그램은 복제하지 말고 병합해야 한다. 화면에 보이는 이름이 같다는 사실만으로는 원래 계정의 동일성을 복구할 수 없다.
03판이 고른 pax는 tar를 확장해 국제화된 경로 이름과 추가 크기 정보를 담을 수 있다. 내보내는 쪽은 일반 파일과 디렉터리만 넣을 수 있다. 심볼릭 링크, 하드 링크, 장치 파일은 허용되지 않는다. 항목 이름은 UTF-8 상대 경로여야 하고 .이나 .. 구간이 없어야 한다. 아카이브 안에서는 구별되는 두 이름도 대소문자를 구분하지 않거나 Unicode를 정규화하는 디스크에서는 같은 이름이 될 수 있다. 초안은 보내는 쪽에 충돌 회피를, 받는 쪽에 조용한 덮어쓰기 대신 중복 거부를 요구한다. 이런 작은 규칙이 사용자의 폴더 하나를 지킨다.
옛 공유 설정은 새 계정의 명령이 아니다
가져오는 쪽의 더 큰 책임은 접근 권한이다. 초안 8.3절은 디스크에 쓰기 전에 절대 경로와 상위 디렉터리 이동, 일반 파일·디렉터리가 아닌 항목을 거부하라고 한다. 수신자는 파일을 자기 시스템의 기본 설정으로 만들어야 한다. 꾸러미에 든 소유자, 모드 비트, 확장 속성, ACL은 그대로 옮기지 않는다. 낡은 서비스가 새 서버의 문을 열 사람을 정하도록 내버려 두지 않는 규칙이다.
애플리케이션 안의 역할 정보도 검증 없이 권한이 되지 않는다. 일정에는 참석자가 있고 다른 객체에는 shareWith가 있을 수 있다. 초안은 원래 서비스의 접근 통제가 데이터와 함께 신뢰성 있게 이전되지 않을 수 있고, 업로드한 역할 값이 바뀌었을 수도 있다고 경고한다. 옛 일정에 어떤 이름이 적혀 있다는 것과 새 서비스가 그 사람을 확인해 열람을 허가했다는 것은 다른 사실이다. 수신자가 계정과 권한을 자기 규칙으로 연결해야 한다.
연락처, 작업, 일정의 지정된 객체에는 uid와 updated가 필요하다. 가져오는 쪽은 같은 uid를 가진 기존 객체를 찾고, 충분히 비슷하다면 다시 읽었다는 이유만으로 수정 시각을 바꾸지 않아야 한다. 그러지 않으면 옮길 때마다 중복 연락처와 가짜 변경 이력이 늘어난다. 다만 ‘충분히 비슷함’을 판단하는 방법은 구현에 남는다. 이 설계는 한 방향의 동기화를 돕지만, 동시에 바뀌는 두 계정의 모든 충돌을 판결하지 않는다.
아카이브는 압축하지 않거나 gzip, Zstandard로 압축할 수 있다. 수신자는 비압축과 gzip을 받아야 하고 Zstandard도 지원하는 편이 권장된다. 작은 내려받기 파일이 풀리면서 막대한 저장 공간과 처리 시간을 요구할 수 있으므로, 초안은 압축 해제 후 전체 크기, 항목 수, 개별 크기를 살피라고 한다. 내보내기에는 요청자의 데이터만 아니라 통신 상대와 초대받은 사람의 정보도 모인다. 편한 이삿짐은 유출에도 편한 꾸러미가 될 수 있다.
02판에는 이번 pax 컨테이너와 분할 폴더 규칙이 아직 확정되지 않았다. IETF Datatracker는 03판을 작업반 Internet-Draft로 기록한다. 발행된 RFC도, 서비스 간 실제 이전의 성공 사례도 아니다. 아카이브를 요청하고 전달하는 통신 절차 역시 이 문서 밖에 있다. 파일 형식이 구체화됐다는 사실과 사용자 탈출 경로가 실제로 열렸다는 판단은 분리해야 한다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
전략 서클 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





