搜尋引擎 HTTP 數位鑑識 URL

從URL編碼還原網路使用證據

現今犯罪者會透過網路進行犯罪手法的分享以及收集相關背景知識,如果鑑識人員能夠掌握犯罪者所搜尋的關鍵字,對於證明犯罪者涉案的動機與證據將有所幫助。不過,市面上網頁瀏覽器的種類繁多,各種瀏覽器所產生的URL碼皆不相同,而且還有亂碼問題,因而造成鑑識人員辨析上的困難。為此,本文將探討URL碼組成元素及URL碼的編碼方式,了解網址列中的URL亂碼問題。
搜尋引擎提供現今網路大眾平台上所需的功能,舉凡Yahoo奇摩、Google、Findbook等網路平台上,皆有附上搜尋引擎的服務,以吸引使用者造訪自己的網站。

當使用者輸入關鍵字時,搜尋引擎會依此關鍵字在網路中搜尋網頁並且過濾資訊,列出符合使用者可能需要的內容,使用者透過點選瀏覽清單中的網頁來選取瀏覽。而所瀏覽的網頁資訊會自動地被伺服端及本地端電腦儲存,如文字檔、Cookies、網頁表單。

這些紀錄檔記錄著使用者的網路活動,使用者在搜尋引擎所鍵入的關鍵字,在網路紀錄檔是以URL碼方式儲存,如奇摩搜尋引擎搜尋information時,將記錄成「http://tw.search.yahoo.com/search?p=information&fr=yfp&ei=utf-8&v=0」。

但很特別地,非英語系國家的文字,如日文、中文、韓文,URL碼會變成由看似亂數所組成的一串亂碼,無法得知使用者搜尋的資訊。為了解亂碼問題,必須探討URL編碼方式以及各瀏覽器關鍵字搜尋URL碼的編碼方法,並分析鑑識工具如何還原URL搜尋字串。

網路資料搜尋

網路資料是豐富且方便的,所以在需要查詢資料時,網路往往是優先搜尋資料的來源選項。透過搜尋引擎平台上的關鍵字搜尋服務,使用者可以立即找到相關的資料,並透過點選網頁進一步瀏覽確認內容。

網路中充滿多樣性的資源,如語言教育、旅遊、社群交友等,從中可獲取許多資料幫助學習,但有些非法人士卻利用網路進行犯罪,在網路中搜尋敏感性的資訊,獲取非法利益,例如他人信用卡卡號或毒品製作方法。

經由關鍵字搜尋進行的犯罪活動,鑑識人員可從網路紀錄檔中萃取URL碼,藉由URL碼來還原非法人士的網路歷史紀錄,確定犯罪行為。但是,URL碼因各國的編碼不同而使得HTTP URL的儲存情形呈現亂碼,因此URL的亂碼問題會出現在非英語系國家中,而英語系國家則不會有問題。

網頁容許各式各樣的編碼,如Big5、Unicode,所以非英語系國家會發展出屬於自己國家的編碼系統。但依據RFC 1738的規定,URL的內容只能出現部分ASCII碼,非英文的文字會被編碼成16進位數字。

如此一來,鑑識人員在URL的紀錄中將無法直接觀察出使用者所搜尋的字串,若要了解原始文字,必須透過反編碼方能解譯。

由於鑑識人員從網路紀錄中萃取的搜尋字串URL多呈現亂碼現象,所以還必須正確地解譯URL碼,了解URL編碼及其在不同瀏覽環境下的編碼方式,才能進一步地將搜尋字串還原。

何謂URL

使用者在瀏覽器的網址搜尋列中所鍵入的網址,即是統一資源定位符(Uniform/Universal Resource Locator,URL)。每一列URL碼代表著網頁位址,當鍵入網址URL碼時,瀏覽器便會將網址轉譯成IP再連線至網站,與此網址的遠端伺服器連線溝通。

而網路中每一筆網頁資料都有位置,所以要在網路世界搜尋資料,連線到資料所屬網站的網址是非常重要的步驟。

統一資源定位符最初是由蒂姆.?伯納斯-李(Tim Berners-Lee)發明,作為全球資訊網(WWW)的地址,它使用ASCII代碼的一部分來表示網際網路的地址。

目前全球資訊網聯盟已將URL編製為網際網路標準RFC1738,是網際網路上標準的資源地址(Address),URL編寫有一定的規則,它的組成元素依序為「協定類型://伺服器地址(必要時須加上埠號)/路徑/文件名」,標準格式如圖1所示:


▲圖1 統一資源定位符格式。

以「http://www.google.com/search?hl=en&source=hp&q=forensic&aq=f&oq=&aqi=g10」為例,它為Google搜尋引擎所搜尋的URL碼,其變數為q,而「forensic」為所搜尋的字串,如圖2所示。


▲圖2 Google搜尋引擎搜尋「forensic」。

配合圖2的例子,說明HTTP協定的統一資源定位符的五個基本元素,如下所列:

1. 傳送協定,如http、https(傳送資料時加密)、ftp。
2. 伺服器,例如www.google.com、www.yahoo.com等。
3. 埠號:以數字方式表示,如HTTP的埠號預設值為80,通常埠號可被省略。
4. 路徑:以「/」字元區別路徑中的每一個目錄的名稱。
5. 查詢:GET模式的表單參數,以「?」字元為起點,而每個參數之間以「&」隔開,「=」符號則區隔資料與參數名稱,如「q=forensic」。查詢的URL編碼通常以UTF-8為主,以避開字元衝突的問題。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!