現今犯罪者會透過網路進行犯罪手法的分享以及收集相關背景知識,如果鑑識人員能夠掌握犯罪者所搜尋的關鍵字,對於證明犯罪者涉案的動機與證據將有所幫助。不過,市面上網頁瀏覽器的種類繁多,各種瀏覽器所產生的URL碼皆不相同,而且還有亂碼問題,因而造成鑑識人員辨析上的困難。為此,本文將探討URL碼組成元素及URL碼的編碼方式,了解網址列中的URL亂碼問題。
URL編碼簡介
URL碼是連結網頁的媒介,但在網路引擎內所鍵入的關鍵字,在搜尋列上時常會呈現亂碼,此情形的發生,相關因素如下:
1. 網路允許不一樣的編碼方式,但因依據RFC 1738的規定,URL的內容只能出現部分的ASCII碼。
2. 沒有任何標準來規範網頁資料與後端伺服器之間應該如何編碼,造成資料格式在程式介面之間的轉換混亂。所以當使用者在搜尋引擎上,雖然輸入同一字串,但URL碼會依據作業系統、預設語系、瀏覽器的不同而顯現出不同的編碼結果。
一般常見的中文編碼分為繁體與簡體,Big5為繁體編碼、GB為簡體中文編碼,這兩種編碼無法彼此相容,所以當電子郵件以Big5為編碼方式傳送出去後,如果對方不是使用相同的編碼方式閱讀信件(例如採用GB碼),郵件內容就會出現亂碼。
這是因為原先以Big5編碼的文字,對應到GB碼時,因為格式不同,無法正確對應出原來的文字,這時就會出現怪字,或是一堆看不懂的符號。
同樣地,瀏覽國外的網站也可能發生同樣的狀況,當編碼方式無法對應時,就可能會看到一堆亂碼,這就是編碼沒辦法相容的緣故。
中文編碼並非ASCII碼,當中文網頁於伺服器與客戶端間傳輸時,勢必要經過一番處理,變成ASCII碼才能傳輸,以下為URL編碼實際例子。
在Google Chrome瀏覽器中,以Google為搜尋引擎,輸入「美國牛」,其產生的URL碼如表1所示:
表1 中文的URL
瀏覽器發送URL編碼的區別
因為URL編碼無標準規範網頁,造成同一組字串在不同瀏覽器中,卻顯現不同的URL,以下就以市占率前三名的瀏覽器IE、Firefox、Chrome來介紹編碼的差異性。
Internet Explorer(IE)
IE為微軟所設計的瀏覽器,一般使用者購買Windows作業系統,就會附上Internet Explorer的內建瀏覽器,由於微軟作業系統市占率高,因而帶動了IE的高使用率。
IE將URL記錄在index.dat,它是具有隱藏性的檔案,儲存使用者的Cookies、Web History,其預設儲存路徑彙整如表2。
表2 IE Index.dat預設路徑
利用IE瀏覽器,在搜尋引擎輸入「毒品」,然後察看URL編碼情形,如圖3所示。而圖3上方框內的字串「%E6%AF%92%E5%93%81」為關鍵字毒品經過UTF-8編碼方式而成。
|
▲圖3 在IE瀏覽器中鍵入關鍵字進行搜尋。 |
Mozilla Firefox
Firefox瀏覽器是Mozilla基金會從Mozilla Application
Suite獨立出來採用開放原始碼與全球網路社群共同開發的網頁瀏覽器。而Firefox於3.0版本後,使用SQLite儲存資料,如Bookmarks、Cookies、瀏覽紀錄等。
透過SQLite Viewer可查看Firefox網路紀錄檔的內容,表3是紀錄檔預設路徑。而Firefox的URL紀錄儲存在places.sqlite表單內。與IE相同,也在Google搜尋引擎內輸入「毒品」察看URL編碼情形,如圖4所示。
表3 Firefox紀錄檔預設路徑
|
▲圖4 在Firefox瀏覽器中鍵入關鍵字搜尋。 |
很奧妙的是,在搜尋列上觀察到變數q後面所出現的參數為「毒品」,這與IE不同。針對此差異的發生,這裡利用Firefox瀏覽器選項功能列中的語言及字元編碼察看其編碼方式,如圖5所示。
|
▲圖5 Firefox的編碼方式。 |
讀者可能發現Firefox與IE的編碼方式其實是相同的,依然為UTF-8,但為何Firefox的搜尋列中URL所顯示的字串為「毒品」。探究其原因,在於這串URL是給使用者自己看的,並非是傳給伺服器,所以將字串傳輸出去時,仍然會是「%E6%AF%92%E5%
93%81」。
Google Chrome
Chrome是由Google開發的網頁瀏覽器。「Chrome」是化學元素「鉻」的英文名稱,其程式碼是基於其他開放原始碼軟體所撰寫,包括WebKit和Mozilla,Google Chrome的整體發展目標是提升穩定性、速度和安全性,並創造出簡單且有效率的用戶介面。