Hình ảnh & hình ảnh · Công cụ quyền riêng tư siêu dữ liệu hình ảnh
EXIF, TIFF và IFD: Cấu trúc của những năm 1990 vẫn còn bên trong mỗi bức ảnh
· Lý lịch
Exif file-formats image-privacy
EXIF đã được xuất bản trong 1995 và mượn mô hình dữ liệu của nó từ TIFF, đó là lý do tại sao khối siêu dữ liệu bên trong JPEG thực sự là một tệp TIFF nhỏ có các thư mục, thẻ và phần bù. Biết được cấu trúc sẽ giải thích được những gì vũ nữ thoát y có thể loại bỏ một cách sạch sẽ và tại sao.
Tệp TIFF ẩn bên trong JPEG của bạn — câu đố về lý do tại sao EXIF trông không giống phần còn lại của định dạng JPEG
JPEG có thể chứa cấu trúc dữ liệu có hình dạng TIFF mà không phải là hình ảnh TIFF. Tải trọng APP1 Exif của nó bắt đầu bằng một mã định danh và sau đó là tiêu đề TIFF có các phần bù và thư mục sắp xếp các giá trị máy ảnh, thời gian và GPS. Trình phân tích cú pháp được chia sẻ cũng sử dụng các khối TIFF được tìm thấy trong các khối PNG eXIf và WebP EXIF, đó là lý do tại sao một trình đọc phân phát ba vùng chứa.
Kho lưu trữ không thiết lập ngày xuất xứ của EXIF
Sổ làm việc cung cấp câu chuyện nguồn gốc và năm, nhưng các nguồn kho được sử dụng ở đây không thiết lập lịch sử tiêu chuẩn, tổ chức hoặc ngày xuất bản. Thay vì lặp lại trình tự thời gian không được trích dẫn, phần này đưa ra thông tin hữu ích trong mã: EXIF tải trọng sử dụng TIFF thứ tự byte, phép thuật và cơ chế thư mục mà trình phân tích cú pháp trình duyệt có thể kiểm tra mà không cần giải mã dữ liệu hình ảnh.
Mô hình thư mục của TIFF — tiêu đề, điểm đánh dấu thứ tự byte, IFD0 và 12 các mục nhập byte có thẻ, loại, số lượng và giá trị hoặc phần bù
Tiêu đề TIFF cho biết giá trị nhiều byte là nhỏ hay lớn, mang giá trị kỳ diệu và trỏ tới IFD0. Mỗi thư mục bắt đầu bằng một số đếm và lưu trữ các mục nhập có kích thước cố định chứa thẻ, loại, số lượng giá trị và dữ liệu nội tuyến hoặc phần bù. Sự sắp xếp đó cho phép các giá trị nhỏ nằm trong mục nhập trong khi các chuỗi dài hơn và các số hữu tỉ nằm ở nơi khác trong khối.
Các thư mục mà trình phân tích cú pháp này thực sự theo dõi
Việc triển khai này tuân theo IFD0 và sau đó là các con trỏ Exif và GPS. Nó cố tình bỏ qua con trỏ khả năng tương tác dưới dạng giá trị mà người dùng hướng tới và không theo đuổi các hình thu nhỏ IFD1 theo cách đệ quy. Gọi rằng mô hình thư mục EXIF hoàn chỉnh sẽ là sai; nó là tập hợp con giới hạn cần thiết cho vị trí, danh tính, dấu thời gian, phần mềm và kỹ thuật có thể đọc được của sản phẩm.
Đánh số thẻ và kiểu dữ liệu - tại sao Make là 0x010F, tại sao số hữu tỉ là cặp số nguyên và tại sao chuỗi kết thúc bằng byte rỗng
Thẻ là số nhận dạng số được diễn giải trong ngữ cảnh thư mục của chúng, trong khi loại trường xác định độ rộng và giải mã byte. ASCII, các giá trị số nguyên và số hữu tỉ được xử lý khác nhau. Các thẻ không xác định được gắn nhãn theo số thập lục phân thay vì đoán và mọi thẻ không xác định bên trong thư mục GPS vẫn được phân loại là vị trí vì thư mục của nó cung cấp ngữ cảnh đó.
Các ranh giới thực hiện quan trọng ngày nay
Ở đây ranh giới hoạt động quan trọng hơn dòng thời gian của phiên bản. Một thư mục được giới hạn ở 512 mục nhập, các giá trị ở phần tử 64 và các giá trị chênh lệch ngoài phạm vi sẽ bị bỏ qua. Nội bộ MakerNote và IFD1 không được giải mã. Các giới hạn này ngăn khối không đúng định dạng hoặc khối thù địch biến trình xem siêu dữ liệu thành trình phân tích cú pháp không giới hạn trong khi vẫn cho phép xóa toàn bộ khối vùng chứa của nó.
Điều này không bao gồm những gì — bản thân quá trình nén JPEG và các định dạng riêng tư của MakerNote
Trình đọc JPEG chỉ phân tích cú pháp APP1 Exif để hiển thị chứ không phải nội dung XMP hoặc IPTC không được hỗ trợ và các hình ảnh TIFF, DNG và RAW không được hỗ trợ đều bị từ chối mặc dù chia sẻ cấu trúc liên quan. Một hồ sơ màu được cố tình giữ lại trong quá trình làm sạch. Do đó, công cụ này thể hiện việc sử dụng thư mục chứa TIFF mà không tự nhận là TIFF chung hoặc công cụ siêu dữ liệu điều tra.
Bài học rút ra: EXIF được thiết kế độc lập — Công cụ quyền riêng tư siêu dữ liệu hình ảnh có thể hiển thị cho bạn các thư mục và xóa toàn bộ khối mà không cần chạm vào hình ảnh
EXIF đủ độc lập để kiểm tra và xóa toàn bộ khối: tìm khối vùng chứa, phân tích các thư mục giới hạn mà bạn hỗ trợ hoặc loại bỏ khối mà không phân tích cú pháp từng byte riêng tư. Mở một bức ảnh, so sánh các trường IFD0, Exif và GPS trong bảng, đồng thời giữ rõ sự khác biệt giữa phạm vi có thể đọc được và phạm vi xóa trong suốt quy trình làm việc.