張一翀 吳 忠 楊洪臣
(1 福建省公安廳刑事技術(shù)總隊 福建 福州 350001;2 中國刑事警察學(xué)院聲像資料檢驗技術(shù)系 遼寧 沈陽 110035;3 南平市公安局刑警支隊 福建 南平 353000)
隨著視頻圖像處理技術(shù)的不斷發(fā)展,各類視頻編輯軟件不斷涌現(xiàn),比較常見的有Adobe premiere、Adobe Effect、會聲會影等專業(yè)視頻編輯處理軟件和愛剪輯等普通視頻制作軟件。這些視頻編輯軟件將視頻編輯變得方便、高效、高質(zhì)量的同時,也成為許多犯罪活動的常用工具。在一些犯罪活動中,犯罪嫌疑人為了達到其目的對視頻資料進行篡改,這些篡改的視頻經(jīng)常出現(xiàn)在案件偵查與司法審判過程中,嚴重影響了公檢法機關(guān)對案件相關(guān)線索的尋找認定與證據(jù)的采集固定,對視頻證據(jù)鑒定工作提出了極大的挑戰(zhàn)[1]。造假犯罪嫌疑人常用修改文件名、轉(zhuǎn)換文件格式和更改系統(tǒng)文件屬性等方法干擾檢驗人員對文件來源的判斷,因此,在檢驗中需要尋找一種較為穩(wěn)定的信息來判斷文件來源。M P 4作為當(dāng)前流行的視頻封裝格式,一直以來都是視頻檢驗人員的研究重點。本文通過解析M P 4文件結(jié)構(gòu),分析底層數(shù)據(jù),發(fā)現(xiàn)大部分M P 4文件元數(shù)據(jù)中存儲有文件的創(chuàng)建時間、修改時間和相關(guān)信息。
MP4文件是依據(jù)MPEG-4標(biāo)準生成的具有類似物理存儲結(jié)構(gòu)的視頻文件,WMV 9、Quick Time、DivX、Xvid等格式的文件均屬于MP4文件。MP4文件通過盒子或原子(一般MP4文件中為box,QuickTime中為atom)來組織所有的數(shù)據(jù)。每一個盒子都是一個容器,盒子可以包含其他的盒子,這種包含盒子稱為container box。box由頭數(shù)據(jù)和主體數(shù)據(jù)組成,其中頭數(shù)據(jù)統(tǒng)一指明box的大小和類型,標(biāo)準的box開頭的4個字節(jié)(32位)為box size,size后面緊跟的32位為box type,這是一個已經(jīng)預(yù)定義好表示固定的意義的4個字符,如ASCLL 碼的“ftyp”“moov”等;主體數(shù)據(jù)根據(jù)類型有不同的意義和格式[2]。
普通MP4文件中由3種box組成(見圖1)。一是ftyp box,一般在每個MP4文件開始處保存類型為ftyp的原子,它定義了文件的大小[3]。該box有且只有一個,也就是我們常說的文件頭數(shù)據(jù),它處于在文件的開始位置,主要記錄和描述的文件的版本、兼容協(xié)議等;二是緊隨ftyp box出現(xiàn)的moov box,主要存儲著媒體播放所需的元數(shù)據(jù);三是mda tbox,其中存儲有媒體數(shù)據(jù)。根據(jù)MPEG-4標(biāo)準的規(guī)定,MP4文件必須包括若干類型的必選box,其中ftypbox和moov box是必選box[4]12。
圖1 普通MP4文件常見box的樹結(jié)構(gòu)
元數(shù)據(jù)(Metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),是在數(shù)據(jù)庫組織中為描述數(shù)據(jù)的數(shù)據(jù),當(dāng)元數(shù)據(jù)庫被用來描述數(shù)據(jù)元、數(shù)據(jù)項、字段或變量時,就稱他們?yōu)閷傩栽獢?shù)據(jù)[5]。moov box包含了MP4文件中所有的元數(shù)據(jù)信息,該box有且只有一個,是一個container box,其中包含1個mvhd box、若干個trakbox及可能出現(xiàn)的udta box。mvhd box處于moov box的頭部。其中有兩個數(shù)值就記載了該MP4文件的創(chuàng)建時間和修改時間,根據(jù)標(biāo)準規(guī)定,這兩個時間數(shù)值為相對于UTC時間1904-01-01零點的秒數(shù)[4]19。mvhdbox的后方是若干個trak box,該box包含了一個軌道的相關(guān)信息,也是一個container box。在一個有聲的MP4文件中,至少會出現(xiàn)兩個trak box,分別記錄視頻和音頻的信息,在trak box之下存在一個tkhdbox,其中同樣記錄創(chuàng)建時間和修改時間,在形式上與mvhd box完全相同。在trak box的后方是udta box,該box記錄的是用戶數(shù)據(jù),內(nèi)容由使用MP4協(xié)議編碼的用戶決定(如圖2)。
圖2 mvhd box數(shù)據(jù)結(jié)構(gòu)圖
iPhone7plus、iPhone5s、小米4手機各1部(內(nèi)裝微博、微信、抖音、美圖秀秀等APP軟件),計時器1臺(校準至手機系統(tǒng)時間),PC機1臺(裝有Adobe premiere、會聲會影、格式工廠、暴風(fēng)影音等軟件)。
利用手機自帶相機及APP軟件錄制不同的樣本視頻,再將視頻導(dǎo)入PC機,運用不同種類的編輯軟件對其進行編輯操作,生成一段與原始文件相同格式的視頻。用計時器記錄每一個操作動作的系統(tǒng)時間,使用QTAtomViewer查看文件結(jié)構(gòu),運用winhex、格式工廠軟件解析提取元數(shù)據(jù)信息,分析樣本文件元數(shù)據(jù)時間與系統(tǒng)時間的關(guān)系,比較不同文件元數(shù)據(jù)信息差異,并進行總結(jié)歸納。
使用iPhone7plus、iPhone5s和小米4自帶相機功能各錄制1min的視頻文件,記錄操作的系統(tǒng)時間,導(dǎo)出視頻文件,解析文件創(chuàng)建時間和修改時間,并記錄查看Windows系統(tǒng)修改時間(見表1)。
表1 不同手機錄制文件的時間記錄表
解析文件,發(fā)現(xiàn)iPhone7plus的錄制文件udta box數(shù)據(jù)內(nèi)容中包含書寫庫、錄制位置、錄制設(shè)備、錄制設(shè)備型號、錄制軟件版本號、文件原始創(chuàng)建時間和原始簽名信息(見圖3);iPhone5s錄制文件udtabox數(shù)據(jù)內(nèi)容中包含書寫庫、錄制位置、錄制設(shè)備、錄制設(shè)備型號、錄制軟件版本號、文件原始創(chuàng)建時間信息(見圖4);小米4錄制文件沒有udta box結(jié)構(gòu)(見圖5)。
圖4 iPhone5s錄制文件的udta box數(shù)據(jù)內(nèi)容
圖5 小米4錄制文件的box結(jié)構(gòu)
運用iPhone7plus、iPhone5s自帶編輯功能對實驗1錄制文件進行剪輯生成新的視頻文件,記錄操作的系統(tǒng)時間,導(dǎo)出視頻文件,解析文件創(chuàng)建時間和修改時間,并記錄查看Windows系統(tǒng)修改時間(見表2)。
表2 不同手機編輯文件的時間記錄表
解析文件,發(fā)現(xiàn)iPhone7plus編輯文件udta box數(shù)據(jù)內(nèi)容僅有原始簽名信息一項發(fā)生變化(見圖6),iPhone5s編輯文件udta box數(shù)據(jù)內(nèi)容不發(fā)生改變(見圖7)。
使用iPhone7plus的微博、微信、抖音、美拍APP軟件拍攝視頻,由于這類軟件錄制結(jié)束時視頻處于預(yù)覽暫存狀態(tài),點擊保存后視頻文件才生成,因此,將錄制結(jié)束和點擊保存時間分開記錄,并記錄查看文件Windows系統(tǒng)修改時間(見表3)。
圖6 iPhone7plus 編輯文件的udta box數(shù)據(jù)內(nèi)容
圖7 iPhone5s編輯文件的udta box數(shù)據(jù)內(nèi)容
表3 不同APP軟件錄制文件的時間記錄表
解析文件,發(fā)現(xiàn)微信錄制文件udtabox數(shù)據(jù)內(nèi)容中有“WXVer”信息(見圖8);抖音錄制文件udta box數(shù)據(jù)內(nèi)容中包括描述、書寫庫、版權(quán)信息(見圖9);微博、美拍錄制文件沒有udta box結(jié)構(gòu)(見圖10~11)。
圖8 微信錄制文件的udta box數(shù)據(jù)內(nèi)容
圖9 抖音錄制文件的udta box數(shù)據(jù)內(nèi)容
圖10 微博錄制文件的box結(jié)構(gòu)
圖11 美拍錄制文件的box結(jié)構(gòu)
運用winhex軟件解析Adobe premiere編輯后文件發(fā)現(xiàn)udta box數(shù)據(jù)內(nèi)容較多,大致包括Adobepremiere版本信息、編輯過程信息、編碼標(biāo)準等信息(見圖12);解析格式工廠、暴風(fēng)影音編輯后文件發(fā)現(xiàn)udta box數(shù)據(jù)內(nèi)容有“寫入應(yīng)用”信息(見圖13、14);會聲會影編輯后文件沒有udta box結(jié)構(gòu)(見圖15)。
圖12 Adobe premiere編輯文件的udta box數(shù)據(jù)內(nèi)容
圖13 格式工廠編輯文件的udta box數(shù)據(jù)內(nèi)容
圖14 暴風(fēng)影音編輯文件udta box數(shù)據(jù)內(nèi)容
圖15 會聲會影編輯文件box結(jié)構(gòu)
運用Adobe premiere、會聲會影、格式工廠、暴風(fēng)影音對實驗1iPhone7plus錄制視頻文件進行編輯,記錄操作編輯時間和保存時間,解析篡改后文件的創(chuàng)建時間和修改時間,并記錄查看Windows系統(tǒng)修改時間(見表4)。
表4 不同編輯軟件編輯同一文件的時間記錄表
M P 4文件的創(chuàng)建時間和修改時間與錄制設(shè)備系統(tǒng)時間有直接關(guān)系,但不同軟件的元數(shù)據(jù)時間形成機制是不同的(見表5)。歸納起來主要有以下幾類:
表5 元數(shù)據(jù)形成機制的歸納統(tǒng)計表
類型1創(chuàng)建時間等于導(dǎo)出開始時間,修改時間等于導(dǎo)出結(jié)束時間,保存時間等于Windows修改時間。
類型2創(chuàng)建時間略晚于錄制開始時間,修改時間等于保存時間,錄制開始時間等于Windows修改時間。
類型3創(chuàng)建時間、修改時間、保存時間三者相等,Windows修改時間略晚于三者時間。
類型4創(chuàng)建時間等于保存時間,修改時間等于Windows修改時間。
類型5保存時間早于創(chuàng)建時間,創(chuàng)建時間、修改時間、Windows修改時間三者相等。
類型6創(chuàng)建時間、修改時間不等,且均晚于保存時間,Windows修改時間介于創(chuàng)建時間和修改時間之間。
類型7創(chuàng)建時間等于修改時間且為特定時間,與Windows修改時間沒有直接聯(lián)系。
經(jīng)過對所有樣本文件udtabox數(shù)據(jù)分析發(fā)現(xiàn):除iPhone 5s編輯本機錄制視頻不影響udtabox數(shù)據(jù)外,其他編輯軟件均對udtabox的數(shù)據(jù)內(nèi)容產(chǎn)生不同影響,大部分udtabox數(shù)據(jù)中帶有生成軟件的特征性信息(見表5)。
綜上可見,所有編輯軟件均改變原文件元數(shù)據(jù)時間形成機制或udtabox數(shù)據(jù)
視頻流和音頻流以一定的編碼格式封裝進M P 4文件并寫入存儲介質(zhì),根據(jù)M P E G-4協(xié)議要求創(chuàng)建時間和修改時間是必備的。不同軟件根據(jù)自身需要以不同的方式記錄下某些系統(tǒng)時間作為創(chuàng)建時間和修改時間,少量軟件甚至以缺省的方式填充日期。在udtabox數(shù)據(jù)上,大部分軟件都會利用這一空間,寫入與自身相關(guān)的參數(shù)。不同的軟件設(shè)定,造成了文件元數(shù)據(jù)的差異,為我們區(qū)分這些文件來源提供可能。
在數(shù)字時代,所有的文件信息存儲都是通過底層二進制代碼實現(xiàn)的,對文件信息的篡改難以留下痕跡,在一定程度上具有不可知性。但檢驗視頻文件是否為原始文件也不是不可能實現(xiàn)的,主要有兩方面的原因,一方面是因為視頻文件只要經(jīng)過編輯,就必經(jīng)解封、解碼、再編碼、再封裝過程。常用的編輯軟件在這一過程中,都會根據(jù)生成的目標(biāo)文件格式,編寫新的元數(shù)據(jù),因此原始文件和編輯文件元數(shù)據(jù)難以完全一致。另一方面是因為元數(shù)據(jù)編輯難度大。在缺少編輯工具情況下,編輯者必須通過底層進行寫入,如果沒有深入了解元數(shù)據(jù)的種類、格式和位置,難以完成編輯。
目前,市面上已經(jīng)有針對文件頭數(shù)據(jù)的底層搜索軟件,但還沒有對元數(shù)據(jù)進行搜索的相關(guān)技術(shù)。從實驗可知,同一軟件生成的視頻文件元數(shù)據(jù)格式相對固定,下一步要廣泛收集樣本文件,制作元數(shù)據(jù)模板庫,實現(xiàn)對檢材元數(shù)據(jù)的快速比對,提高檢驗鑒定工作時效性和準確性。
由于本文討論的創(chuàng)建時間和修改時間均存儲于M P 4文件內(nèi),而非存于文件系統(tǒng)中,在實際案件中檢驗人員可以利用案情中聲稱的錄制設(shè)備錄制樣本視頻,通過查看比較檢材和樣本的元數(shù)據(jù)內(nèi)容,可以判斷檢材文件是否為樣本設(shè)備所錄制。通過比較檢材與樣本文件時間形成機制及元數(shù)據(jù)的異同,可以判斷檢材文件是否具有原始性。