物聯(lián)網(wǎng)信息安全與防護手段的討論_第1頁
物聯(lián)網(wǎng)信息安全與防護手段的討論_第2頁
物聯(lián)網(wǎng)信息安全與防護手段的討論_第3頁
物聯(lián)網(wǎng)信息安全與防護手段的討論_第4頁
物聯(lián)網(wǎng)信息安全與防護手段的討論_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGE47物聯(lián)網(wǎng)信息安全與防護手段的討論摘要當(dāng)今世界,隨著科技的進步,物聯(lián)網(wǎng)的發(fā)展與研究已經(jīng)呈現(xiàn)一定的爆發(fā)趨勢,因此,物聯(lián)網(wǎng)的安全也擺在了人們的面前,成為我們需要迫切解決的問題。本文主要研究的是物聯(lián)網(wǎng)架構(gòu)中的感知層的RFID安全防護問題。詳細分析其中可能存在的安全問題并對其進行分析,從物理機制和邏輯機制兩個方面提出了一系列的安全措施及防護手段,以便使RFID技術(shù)在物聯(lián)網(wǎng)的應(yīng)用更加方便與安全,促進我國物聯(lián)網(wǎng)沿著安全、健康的軌道前進。關(guān)鍵詞物聯(lián)網(wǎng),RFID,安全,防護ABSTRACTIntoday'sworld,withtheprogressofscienceandtechnology,thedevelopmentandresearchcontentnetworkingappearstohavecertainoutbreaktrend,therefore,thesafethingnetworkinginfrontofpeopleand,becomeweneedurgentlytoresolveproblems.ThispapermainlystudiestheperceptionwasthatthenetworkingarchitecturesafetyproblemslayersofRFID.Detailedanalysisofthepossibleexistenceofsecurityissuesandcarriesontheanalysis,thepaperproposedaseriesofsafetymeasuresandprotectivemethod,soastomakeRFIDtechnologyincontentnetworkingapplicationmoreconvenientandsafe,promotingChina'sthingsalongthesafetyandhealthnetworkrailforward.Keywords:Theinternetofthings,RFID,Security,Protection目錄第一章緒論 41.1物聯(lián)網(wǎng)發(fā)展的背景 41.2物聯(lián)網(wǎng)技術(shù)發(fā)展現(xiàn)狀分析 41.3物聯(lián)網(wǎng)的安全威脅 51.4本文研究方法 61.5本研究的意義 61.6小結(jié) 6第二章RFID技術(shù) 72.1RFID的定義 72.2RFID的體系架構(gòu) 82.2.1RFID主要由標簽、閱讀器、天線組成。 82.2.2RFID系統(tǒng)的組成框圖 82.3RFID的工作原理 92.3.1耦合原理 92.3.2數(shù)據(jù)傳輸原理 102.4小結(jié) 10第三章RFID系統(tǒng)的安全問題分析 123.1RFID系統(tǒng)安全問題概述與分析 123.2跟蹤信息的劃分 143.3RFID系統(tǒng)的各種安全威脅 153.3.1惡意軟件的威脅 163.3.2RFID入侵 163.3.3移動RFID威脅 183.3.4RFID病毒 183.4EPCglobal系統(tǒng)的縱向安全和隱私威脅分析 193.5供應(yīng)鏈的橫向安全和隱私威脅分析 203.5.1安全威脅 203.5.2個人隱私威脅 213.6小結(jié) 21第四章RFID系統(tǒng)安全威脅的技術(shù)解決方案 224.1概述 224.2RFID物理安全機制 224.2.1KILL標簽 224.2.2法拉第網(wǎng)罩 234.2.3主動干擾 234.2.4阻止標簽 244.2.5智能標簽 244.2.6輔助標簽 244.2.7用戶密碼 244.2.8阻塞器標簽 244.2.9軟阻塞器標簽 254.3邏輯安全機制 254.3.1安全哈希算法 254.3.2哈希(Hash)鎖方案 284.3.3隨機Hash鎖方案 294.3.4Hash鏈方案 304.4小結(jié) 31第五章總結(jié)與展望 32參考文獻 33致謝 34附錄A 35附錄B 41附錄C 42附錄D 45第一章緒論1.1物聯(lián)網(wǎng)發(fā)展的背景物聯(lián)網(wǎng)(theinternetofthings),顧名思義,就是“物物相連的互聯(lián)網(wǎng)”。在中國、歐洲等都有不同的具體定義。它的發(fā)展背景可大致分為以下幾個階段:1990年,施樂公司的網(wǎng)絡(luò)可樂販賣機可以說是物聯(lián)網(wǎng)最早的實踐。1999年,在美國召開的移動計算和網(wǎng)絡(luò)國際會議首先提出物聯(lián)網(wǎng)(InternetofThings)這個概念。2005年,在信息社會世界峰會上,過機電系聯(lián)盟發(fā)布《ITU互聯(lián)網(wǎng)報告2005:物聯(lián)網(wǎng)》,引用的“物聯(lián)網(wǎng)的概念”。2008年,北京大學(xué)舉辦了第二屆中國移動政務(wù)研討會“知識社會與創(chuàng)新2.0”1.2物聯(lián)網(wǎng)技術(shù)發(fā)展現(xiàn)狀分析在國外,美國的奧巴馬政府對更新美國信息高速公路提出了更具高新技術(shù)含量的信息化新的方案,歐盟則相應(yīng)的發(fā)布了下一代的全歐移動寬帶長期演進與超越以及ICT研發(fā)與創(chuàng)新戰(zhàn)略,同時,英國、法國、德國等其他發(fā)達國家也加快部署了下一代網(wǎng)絡(luò)基礎(chǔ)設(shè)施的步伐。在國內(nèi),溫家寶總理指出“在傳感網(wǎng)發(fā)展中,要早一點謀劃未來,早一點攻破核心技術(shù)”,“在國家重大科技專項中,加快推進傳感網(wǎng)發(fā)展”,“盡快建立中國的傳感信息中心,或者叫‘感知中國’中心”。當(dāng)前我國多數(shù)RFID研發(fā)公司基本是借鑒國外的參考方案、購置國外的芯片進行系統(tǒng)應(yīng)用與集成,在產(chǎn)品的核心技術(shù)上還是很落后,只有很少的技術(shù)能達到國際標準,因此,不管是在專利方面還是價格方面都處于受限地位。而目前RFID的全球標準沒有統(tǒng)一,使得不同的國家使用不盡相同的標準,譬如美國的EPCGlobal、日本的UbiquitouslD標準技術(shù)和國際標準ISO/IEC18000標準差別不大卻各不兼容。在中國,對于RFID的各個頻段沒有一個統(tǒng)一、完整的標準體系。因此,我們需要研發(fā)屬于自己的、具有完全獨立知識產(chǎn)權(quán)的技術(shù)。這不僅僅是我們奮斗的目標,也是現(xiàn)實的需求。閱讀器和標簽作為RFID技術(shù)中的關(guān)鍵領(lǐng)域,一直是研究人員重要的研究方向。本文正是在這種需求上,對這方面進行了研究,為我國RFID系統(tǒng)的發(fā)展乃至物聯(lián)網(wǎng)的健康發(fā)展和自主技術(shù)的進步進行了探索嘗試。1.3物聯(lián)網(wǎng)的安全威脅物聯(lián)網(wǎng)主要分為四個層次,分別為應(yīng)用層、中間件層、網(wǎng)絡(luò)層、智能感知層。(1)應(yīng)用層。主要為應(yīng)用安全,包括多因素認證、統(tǒng)一認證、統(tǒng)一訪問控制、終端統(tǒng)一認證、安全日志審計、安全威脅報表、統(tǒng)一密鑰管理、安全運營平臺等。(2)中間件層。主要為中間件層安全,包括系統(tǒng)最小化裁剪、病毒防護、沙箱隔離、Web安全、數(shù)據(jù)完整性、磁盤與文件加密等。(3)網(wǎng)絡(luò)層。主要為網(wǎng)絡(luò)安全,包括防火墻安全、僵尸/蠕蟲、漏洞等。(4)感知層。主要為無線安全,包括RFID系統(tǒng)安全、女巫攻擊、通信不穩(wěn)定等。1.4本文研究方法RFID安全在整個物聯(lián)網(wǎng)中是十分重要的。本文將利用安全Hash算法實現(xiàn)對RFID中傳遞信息的加密。本文將在兩個方面研究RFID面臨的隱私問題:一種是物理安全機制方面設(shè)計相關(guān)的物理方法,一種是在邏輯安全機制中設(shè)計安全算法實現(xiàn)對信息的加密。在這個過程中,我參閱了大量參考資料,并對其進行理解,加以整理,借鑒了一些相關(guān)的畢業(yè)論文設(shè)計,在老師的認可指導(dǎo)下,完成了自己的論文。1.5本研究的意義RFID的大規(guī)模應(yīng)用一旦普及,那么它的潛在應(yīng)用范圍將遠遠超過我們的想象。當(dāng)RFID與互聯(lián)網(wǎng)結(jié)合時,一場影響深遠的革命就來臨了。IPV6與RFID系統(tǒng)的結(jié)合,互聯(lián)網(wǎng)的巨大潛能才真正釋放出來。物聯(lián)網(wǎng)才會產(chǎn)生它的威力,相應(yīng)的RFID系統(tǒng)的不安全,會導(dǎo)致整個物聯(lián)網(wǎng)發(fā)生難以預(yù)想的災(zāi)難,給人類造成不可估量的損失。因此,研究RFID系統(tǒng)的安全問題就變得尤為重要。1.6小結(jié)本章主要介紹了物聯(lián)網(wǎng)的發(fā)展歷程以及當(dāng)今世界各國物聯(lián)網(wǎng)發(fā)展的狀況。簡略介紹了本文將使用的研究方法及解決問題的手段,最后概括了本論文的研究的意義。下面我們將詳細的介紹物聯(lián)網(wǎng)中感知層的RFID系統(tǒng),它是整個物聯(lián)網(wǎng)中至關(guān)重要的一環(huán),也是本文研究的重點。第二章RFID技術(shù)2.1RFID的定義無線射頻識別(RFID)是一種遠程存儲和獲取數(shù)據(jù)的方法。標簽中存儲及發(fā)射的信息可以有很多種,無論是攜帶者的身份還是物品的各種信息,如顏色、價格等都可以。RFID比條形碼擁有體積小、易于嵌入、讀取簡單等特點,所以將成為條形碼的替代品是毋庸置疑的。[1]此外,根據(jù)RFID標識符較長的特點,就使得被安裝電子標簽的物體都具有唯一的編碼,這樣就使得跟蹤者能利用這個唯一的編碼進行跟蹤等非法行為。同樣它的優(yōu)點也是十分突出的,比如它可以方便對物品的清點、易于管理。此外,在柜臺結(jié)賬時,可以大大減少消費者等待的時間。RFID系統(tǒng)的工作流程通常是:1.讀寫器會通過其中嵌有的天線發(fā)射一定頻率的信號,當(dāng)電子標簽進入讀寫器的工作范圍后,標簽會被激活,標簽中存在的信息會發(fā)射到讀寫器中。2.當(dāng)電子標簽中的信息被讀寫器接收并傳送到讀寫器內(nèi)部后,信息就會被執(zhí)行解碼與解調(diào)操作。3.后臺會對標簽中的信息進行運算,如果其符合預(yù)留信息,則根據(jù)預(yù)留信息對其進行相關(guān)操作,包括記錄、修改、去除、等操作。2.2RFID的體系架構(gòu)2.2.1RFID主要由標簽、閱讀器、天線組成。(1)標簽:由耦合元件及其芯片組成,標簽含有內(nèi)置天線,用于和射頻天線間進行通信。(2)閱讀器:寫入/讀取標簽信息的設(shè)備。(3)天線:在閱讀器與標簽之間傳遞射頻信號。2.2.2RFID系統(tǒng)的組成框圖圖2.1RFID組成框圖這是RFID系統(tǒng)的基本組成框圖,隨著信息技術(shù)的提高,RFID的相關(guān)性能不斷增強,標簽的使用與應(yīng)用增多,RFID系統(tǒng)中所存在的安全問題變得越來越重要。如果電子標簽中存在嚴重的安全隱私漏洞問題,就有可能被附近的閱讀器讀取,從而泄露個人的信息,尤其是暴露用戶的位置隱私,是用戶被非法監(jiān)聽和跟蹤。所以,RFID協(xié)議十分重要,制定時要充分考慮其可能面對的各個方面的問題。保護相關(guān)信息的保密性。這不僅需要技術(shù)方面的支持,也需要國家在政策、法規(guī)方面采取必要的手段來保護用戶的隱私不受侵犯。2.3RFID的工作原理2.3.1耦合原理RFID閱讀器和標簽在能夠通訊使用前,必須先完成耦合操作。耦合的方式一般分為電容耦合、后向散射、磁耦合、電感耦合。耦合的方式?jīng)Q定RFID系統(tǒng)的頻率與通訊距離范圍。電容耦合適用于標簽與閱讀器距離非常近(小于1cm)的時候。標簽與閱讀器中有大導(dǎo)通平面,當(dāng)它們的距離非常近時,便形成了一個電容。交流信號就可以在閱讀器與標簽中相互傳遞。該耦合方式傳遞的能量大、能夠驅(qū)動標簽中比較復(fù)雜的電路。電感耦合的工作距離相對電容耦合要大,約為10cm。電感耦合利用閱讀器與標簽中的線圈組成一個暫時的變壓器。閱讀器產(chǎn)生的電流對自己本身線圈充電,同時產(chǎn)生了磁場。標簽中的線圈受到閱讀器產(chǎn)生的磁場的影響,產(chǎn)生電流,從而使標簽內(nèi)的電路有了電量,能夠傳遞能量。電磁耦合的工作距離在1cm以內(nèi),其余特性與電感耦合類似,多用于插入式讀取。后向散射耦合則是RFID中采用比較多的一種工作方式。EPCGen2的RFID標簽就是采用的這種方式。其原理是閱讀器把RF信號發(fā)送到標簽,標簽通過接收的RF信號提供自身所需的供電電量和解調(diào)信號,隨后反射回閱讀器,工作距離可達10cm以上。2.3.2數(shù)據(jù)傳輸原理閱讀器與標簽之間數(shù)據(jù)交換方式分為反向散射調(diào)制與負載調(diào)制。(1)反向散射調(diào)制反向散射調(diào)制技術(shù)是指無源RFID電子標簽將數(shù)據(jù)發(fā)送回讀寫器所用的通訊方式。當(dāng)閱讀器與標簽之間的距離有幾米,而載波僅有幾厘米到幾十厘米之間時,它們的能量傳遞為反向散射調(diào)制。電子標簽返回數(shù)據(jù)的方式是控制天線的阻抗,其原理如下圖:圖2.2電子標簽阻抗控制方式(2)負載調(diào)制近距離低頻射頻識別系統(tǒng)是通過準靜態(tài)場的耦合來實現(xiàn)的,稱之為負載調(diào)制。2.4小結(jié)本章主要介紹了RFID系統(tǒng)的特點,包括其定義、組成、體系架構(gòu)及工作原理等。概括的指出RFID系統(tǒng)的工作流程以及各部分之間的作用和關(guān)系。通過了解耦合原理和數(shù)據(jù)傳輸原理,才能提出解決問題的方法。我們分析RFID的組成是為了找出其各部分所存在的安全問題,在下一章中,會詳細分析RFID系統(tǒng)中存在的各種安全問題。第三章RFID系統(tǒng)的安全問題分析3.1RFID系統(tǒng)安全問題概述與分析電子標簽與閱讀器之間是無線通訊的,所以射頻識別系統(tǒng)很容易受到攻擊。RFID面臨的隱私威脅包括:標簽中預(yù)留信息的泄漏以及對標簽的惡意跟蹤問題。RFID安全與隱私性能主要有:(1)數(shù)據(jù)秘密性的問題:標簽有可能會被未授權(quán)的閱讀器閱讀并竊取其中的信息。目前,由于成本的限制,當(dāng)標簽與閱讀器進行無線通信時,沒有相應(yīng)的保護措施。在功能上,由于缺少PKI密鑰與點對點加密交換的功能,攻擊者就利用這些漏洞進行攻擊,從而獲取標簽中存在的信息,或利用相關(guān)竊聽方面的技術(shù)設(shè)備,通過分析發(fā)射信號的物理特征來獲得標簽與閱讀器之間的通信數(shù)據(jù)。(2)數(shù)據(jù)完整性的問題:數(shù)據(jù)在傳輸過程中,一定要保證數(shù)據(jù)傳輸?shù)耐暾?,確保信息不被非法攻擊者篡改和替換。數(shù)字簽名是數(shù)據(jù)完整性實現(xiàn)的一種方法,因為我們會事先采用一種設(shè)計好的散列算法,當(dāng)攻擊者非法進行操作時,會對預(yù)先存在的消息認證產(chǎn)生很大的影響。(3)數(shù)據(jù)真實性的問題:標簽的身份認證問題。敏感信息被攻擊者從竊聽到的通訊數(shù)據(jù)中獲取,重構(gòu)RFID標簽進行非法使用。(4)用戶隱私泄露問題:一個切實、有效、安全的RFID系統(tǒng)應(yīng)能夠保護使用者的隱私信息或相關(guān)企業(yè)的商業(yè)利益。標簽信息的泄露是指在發(fā)送信息的過程中暴露信息的內(nèi)容,使未被授權(quán)者得到該信息的內(nèi)容。該信息內(nèi)容包括了識別對象或標簽持有人的相關(guān)信息。標簽擁有唯一的ID,當(dāng)攻擊者獲得了目標對象的數(shù)據(jù)信息,就可以獲取目標標簽內(nèi)的相關(guān)隱私信息。例如當(dāng)RFID標簽應(yīng)用于醫(yī)院處方藥物管理時,如果標簽的信息被泄露出去,那么病人的隱私權(quán)即被侵犯了,侵犯者通過掃描病人的檔案以及病人使用過的藥物記錄,可以得知病人的健康信息。當(dāng)個人信息例如其身份信息、健康特種等被添加到電子標簽中時,一旦發(fā)生隱私泄露問題,會對個人造成嚴重的危害。RFID系統(tǒng)都有自己的后臺服務(wù)器,相應(yīng)的,后臺服務(wù)器有獨立的數(shù)據(jù)庫,標簽一般不需包含有很多的信息,在傳輸?shù)臅r候也只會有很少一部分信息。通常情況下,因為標簽都有唯一的標識符,而標識符的意義在數(shù)據(jù)庫中都有存儲,所以只需發(fā)送標識符即可。此外,不管標簽與閱讀器之間傳輸?shù)男畔⑹欠窦用?,攻擊者都可以通過標簽中標識符的唯一性對標簽持有者進行跟蹤。也就是說,每當(dāng)人們使用一次標簽,攻擊者就會記錄一次他的位置,從而實現(xiàn)對其的跟蹤。這樣,攻擊者就可以通過匯總,得出他想要的信息及利用這些信息對標簽持有者進行監(jiān)控。利用一些技術(shù)可以實現(xiàn)對他人的跟蹤,比如GSM、視頻監(jiān)控、藍牙等。但是,RFID具有其他技術(shù)不具有的優(yōu)點,就是它的價格相對低廉的多,尤其是RFID系統(tǒng)越來越普及,擁有閱讀器的人越來越多,因此,有的不法分子就會利用閱讀器隨意掃描他人的信息并進行跟蹤。而且,由于通常使用的是被動標簽,因此不能主動切斷與閱讀器之間的聯(lián)系,此外,標簽還具有尺寸小、使用壽命長等特點,這些特點都方便攻擊者利用進行跟蹤。[2]3.2跟蹤信息的劃分RFID系統(tǒng)根據(jù)分層模型可劃分為物理層、通訊層和應(yīng)用層。如下圖所示:圖3.1RFID分層模型惡意跟蹤可以在此三個層次內(nèi)進行。(1)物理層物理層負責(zé)傳輸數(shù)據(jù)、定義物理空中接口,包括數(shù)據(jù)編碼、頻率、定時、傳輸調(diào)制等。因此,不管使用者是否知道閱讀器與標簽之間傳輸?shù)男畔⒌囊馑?,都可以區(qū)分不同的標簽。無線傳輸參數(shù)可以使用不同的已知標準,當(dāng)使用一樣的標準時,信號會非常類似,當(dāng)使用不同的標準時,信號很容易區(qū)分。該方法用于跟蹤特定類型的人,如安全人員或軍人。(2)應(yīng)用層應(yīng)用層用于處理用戶定義的信息。為了保護用戶的隱私,可以在數(shù)據(jù)傳輸前臨時變更傳輸?shù)膮?shù),也可以實現(xiàn)在不同的時段下使用不用的參數(shù)變換。認證、標簽識別等協(xié)議斗士在該層定義的。目前的跟蹤手段是通過標簽識別符進行的。因此,我們所設(shè)計的解決方案一定要實現(xiàn)發(fā)送的信息每次都要改變。(3)通信層通信層是定義標簽與閱讀器之間的通信方式的。該層定義的選擇機制有防碰撞協(xié)議與特定標簽標識符。該層的跟蹤問題可以來自兩個方面:一方面是基于缺乏隨機性的攻擊,另一方面是是基于未完成的單一化。防碰撞協(xié)議我們可分為兩類:確定性協(xié)議與概率性協(xié)議。因為標簽具有唯一的靜態(tài)標識符,所以確定性防碰撞協(xié)議是基于此創(chuàng)建的,因此,攻擊者可以輕而易舉的追蹤標簽。所以如果標簽的標識符的靜態(tài)的,則可以避免被跟蹤監(jiān)控。不過,標識符的單一性過程是不能被修改的,否則會影響其功能的實現(xiàn)。為了確保不被惡意跟蹤,在使用時要注意,每次使用時都要使用不相同的標識符。但是,利用一定的技術(shù),有的閱讀器可以使標簽的一次使用或?qū)υ捥幱趯ν忾_放的狀態(tài),這樣就使得標簽持有者很容易的就被跟蹤。3.3RFID系統(tǒng)的各種安全威脅RFID系統(tǒng)可在不同的環(huán)境中使用,因此其安全問題是十分多樣話的。例如在有的情況下,閱讀器不管是非法的還是合法的,都可以接入到標簽中,竊取其中的信息,使信息被非法使用和閱讀。在RFID系統(tǒng)的重要應(yīng)用中,比如證券和金融行業(yè),攻擊者可以通過復(fù)制、篡改等非法操作,以獲取一定的個人利益。(1)定位威脅。當(dāng)我們實行具體的定位時,地址轉(zhuǎn)化閱讀器會產(chǎn)生兩種不同的潛在隱私威脅。首先,當(dāng)一個物體帶有標簽時,不管其位置在哪里或其持有人是誰,都容易被攻擊者監(jiān)聽控制。(2)布局威脅。無論帶有標簽的物體是否與標簽集關(guān)聯(lián)在一起,標簽會在只有人的四周形成一個特定的標簽布局,這樣,持有人的位置就被監(jiān)聽了。(3)優(yōu)選權(quán)威脅。由于商品的標簽上會標出商品的類型、型號、產(chǎn)品制造商等,會使購買商品的用戶暴露自己的個人購買喜好。[3](4)泄密。RFID系統(tǒng)的讀取速度很快,因此可以在包括掃描商品的時候迅速的對商品進行跟蹤,從而有可能被利用進行竊取商業(yè)機密。3.3.1惡意軟件的威脅(1)資源代碼多。由于大量的源代碼存在于后臺的中間件系統(tǒng)中,使得代碼的平均錯誤率如果在0.5%-1.5%之間時,就有可能使大量的入侵漏洞進入到中間件中。(2)通用的協(xié)議與設(shè)施?;ヂ?lián)網(wǎng)如果在現(xiàn)有的體系上開發(fā)并使用合理的、可升級的中間件系統(tǒng)時,會繼承原有原有的額外的報復(fù),如脆弱的安全性。(3)后臺數(shù)據(jù)庫。為了滿足用戶的應(yīng)用需求,數(shù)據(jù)庫成為絕大部分RFID系統(tǒng)最重要的組成部分,但是,不同級別的數(shù)據(jù)庫的安全性也不是一樣的。(4)數(shù)據(jù)價值高。RFID系統(tǒng)中存在的信息通常帶有一定的經(jīng)濟或隱私特征,因此可以對國家的安全造成一定的影響。(5)安全意識不夠。當(dāng)人們的安全意識不夠、沒有充分意識到惡意軟件的危害時,RFID系統(tǒng)會變得更加脆弱。因此,許多攻擊者喜歡攻擊這樣沒有保護的目標,尤其是在離線系統(tǒng)中。所以中間件系統(tǒng)開發(fā)商必須要考慮到系統(tǒng)安全問題。3.3.2RFID入侵標簽可能會遇到以下幾種攻擊:緩沖器溢出在眾多種攻擊方法中,緩沖器溢出是軟件攻擊方式中最常見的一種,每年會造成數(shù)十億美元的經(jīng)濟損失。緩沖器溢出在網(wǎng)絡(luò)攻擊中扮演著至關(guān)重要的角色。常見的有攻擊方式有SQLSlammer蠕蟲、CodeRed、Morris等。(2)代碼植入植入代碼VBScript、Java、JavaScript等標識語言通常被入侵者使用,無論是HTML還是Cross-sitescripting等都如此。因此惡意的URLS被黑客使用,用于欺騙用戶點擊。當(dāng)用戶使用并激活這些腳本時,系統(tǒng)就會執(zhí)行黑客留下的攻擊命令。代碼植入的范圍從頁面獲取到網(wǎng)絡(luò)詐騙,也可以利用我們所使用的瀏覽器中存在的漏洞來攻擊服務(wù)器。同樣,中間件一樣會遭遇代碼植入問題,因為有的RFID是通過網(wǎng)絡(luò)協(xié)議查詢到后臺服務(wù)器的,所以中間件客戶端就有一定的幾率執(zhí)行腳本語言。[4](3)SQL植入SQL的代碼植入攻擊是最典型的攻擊方式,其攻擊步驟大致是首先SQL要窮舉指定的數(shù)據(jù)庫結(jié)構(gòu),而后沒有經(jīng)過授權(quán)的攻擊者可以以此對文件進行取回、修改或刪除操作。(4)RFID蠕蟲蠕蟲(worm)是一個主動攻擊的獨立程序,它的目標是整個網(wǎng)絡(luò)中的計算機,它通過分布式網(wǎng)絡(luò)傳播特定的信息,從而造成使網(wǎng)絡(luò)服務(wù)等被執(zhí)行拒絕操作或發(fā)生死鎖現(xiàn)象。通常蠕蟲使用一個“有效載荷”,執(zhí)行郵件發(fā)送信息、刪除文件等操作,也可能在計算機安裝軟件補丁。最為常見的是蠕蟲把后門安裝在計算機中,使我們的計算機處于黑客的監(jiān)控之下。蠕蟲的傳播不予要用戶做任何事,它能通過在線RFID服務(wù)尋找安全漏洞進行傳播。它也可以通過電子標簽傳播,使中間件系統(tǒng)重寫標簽數(shù)據(jù)進行傳播,而這個過程可以循環(huán)發(fā)生,所以蠕蟲可以進行一輪又一輪的傳播。3.3.3移動RFID威脅移動RFID是RFID應(yīng)用技術(shù)中被使用較多的一種應(yīng)用。增值服務(wù)中一種常見的應(yīng)用就是移動電話。在應(yīng)用中,由于標簽的位置相對固定,所以標簽中的信息會被移動電話在近距離掠過時閱讀。對于移動RFID,隱私威脅就不僅包括了個人隱私,也包括了閱讀器本身所帶有的信息隱私。因此,一旦移動RFID的隱私被泄露的話,會造成很大的損失。不管是移動性、閱讀器的閱讀范圍還是移動RFID應(yīng)用的服務(wù)模型都可能造成移動RFID的隱私泄露。(1)由于閱讀器的移動性,無論是掃描區(qū)域還是閱讀器的閱讀范圍,都使移動RFID的安全復(fù)雜化。(2)用戶也可能被移動RFID本身跟蹤或監(jiān)控。3.3.4RFID病毒RFID病毒具有自我復(fù)制的功能,因此它的傳播不需要以來網(wǎng)絡(luò),它只需要感染的標簽作為攻擊媒介。RFID病毒的工作原理:當(dāng)閱讀器讀取標簽數(shù)據(jù)時,后臺的數(shù)據(jù)庫無意中執(zhí)行了SQL代碼,代碼便存儲在閱讀器中,當(dāng)閱讀下一個標簽時,閱讀器中的惡意代碼便進入到新的標簽中,由此傳播病毒。新感染的標簽被別的閱讀器閱讀時代碼便進入到其中,感染病毒,以此類推進行廣泛傳播。3.4EPCglobal系統(tǒng)的縱向安全和隱私威脅分析產(chǎn)品電子代碼(EPC)是一串?dāng)?shù)字,由表頭、序列號、對象分類代碼、廠商識別代碼組成。它具有科學(xué)性、合理性、國際性、無歧視性等特點。因此,在下一代產(chǎn)品中,EPC技術(shù)將被廣泛應(yīng)用。EPCglobal是國際物品編碼協(xié)會EAN和美國統(tǒng)一代碼委員會的一個合資公司,在國際上,目前大部分的企業(yè)都是用的EPCglobal的標準,因此,研究EPCglobal系統(tǒng)是十分必要的。EPCglobal系統(tǒng)的框架以及所面臨的安全威脅如下圖所示:圖3.2EPCglobal系統(tǒng)框架及威脅看圖可知,EPCglobal主要由以下幾個部分組成:標簽、閱讀器、EPC、EPCIS、ONS以及企業(yè)內(nèi)部的其他系統(tǒng)。EPCglobal系統(tǒng)從上到下,可分為三個安全域:(1)企業(yè)之間和企業(yè)與公共用戶之間供數(shù)據(jù)交換和查詢網(wǎng)絡(luò)構(gòu)成的安全區(qū)域。保證采集的數(shù)據(jù)不被用于非法目的,就必須要使ONS通過一種認證和授權(quán)機制。(2)企業(yè)內(nèi)部系統(tǒng)構(gòu)成的安全域。既要防止非法閱讀器接入企業(yè)內(nèi)部網(wǎng)絡(luò),也要防止內(nèi)部人員的越權(quán)使用。(3)標簽和閱讀器構(gòu)成的無線數(shù)據(jù)采集區(qū)域構(gòu)成的安全域。在這種安全域中,隱私威脅包括獲取目標標簽的相關(guān)信息、偽造或篡改標簽等。3.5供應(yīng)鏈的橫向安全和隱私威脅分析一個比較完整的供應(yīng)鏈以及所面臨的安全威脅如下圖所示:圖3.3供應(yīng)鏈及其威脅框圖RFID在供應(yīng)鏈中的應(yīng)用也是非常廣泛的,它可以存在于供應(yīng)鏈中的每一個環(huán)節(jié),因此RFID的安全與否對物流會產(chǎn)生相當(dāng)大的影響。圖中標示的前四個威脅為安全威脅,后七個威脅為隱私威脅。3.5.1安全威脅(1)信任域威脅。共享大量電子數(shù)據(jù),包括物流的整個環(huán)節(jié)。(2)市場競爭威脅。攜帶標簽的物品可更容易的獲取用戶的喜好,商家可以在競爭市場中使用這些數(shù)據(jù)。(3)基礎(chǔ)設(shè)施威脅??赏ㄟ^阻塞天線使RFID失去作用。(4)工業(yè)間諜威脅。3.5.2個人隱私威脅(1)行為威脅。可通過監(jiān)控標簽的行蹤獲取一個人的行蹤。(2)關(guān)聯(lián)威脅。當(dāng)攜帶EPC標簽的物品與攜帶者的身份相關(guān)聯(lián)時,就會發(fā)生隱私泄露危險。(3)位置威脅??僧a(chǎn)生兩類威脅,一是被暴露,二是被跟蹤。(4)喜好威脅。對一些涉及隱私的物品,攻擊者可以了解他們不想被他人所知的一些事情。(5)面包屑威脅。屬于關(guān)聯(lián)結(jié)果的一種威脅。攻擊者利用棄用標簽中存在的信息實施犯罪。(6)星座威脅。很多個標簽在一個人的周圍形成一個唯一的“星座”,攻擊者就能利用之進行實時跟蹤。(7)事務(wù)威脅。當(dāng)標簽攜帶者從一個星座移動到另一個星座時,可容易的推導(dǎo)出發(fā)生的事務(wù)。3.6小結(jié)本章詳細介紹了RFID系統(tǒng)在不同的環(huán)境中面臨的威脅、跟蹤問題的劃分等問題,包括惡意軟件的威脅、RFID入侵、移動RFID威脅、RFID病毒等。單獨介紹了EPCglobal系統(tǒng)以及在供應(yīng)鏈中RFID可能面臨的威脅充分表明了解決其安全為題的重要性與迫切性。在下一章中會在物理與邏輯機制兩方面提出一些解決方案,是RFID系統(tǒng)更加安全。第四章RFID系統(tǒng)安全威脅的技術(shù)解決方案4.1概述RFID系統(tǒng)的安全隱私問題有很多。本章主要是在兩個方面對其進行對其進行概述,并提出相關(guān)的解決方案。在物理機制中,提出了主動干擾信號、法拉第網(wǎng)罩、(軟)阻塞器標簽等解決方案。在邏輯機制中,通過安全hash算法實現(xiàn)了對信息的加密,提出了三種解決方案,分別為hash鎖方案、隨機hash鎖方案、hash鏈方案。[5]4.2RFID物理安全機制使用物理方法來保護標簽安全性的機制被稱為物理安全機制。物理安全機制主要包括主動干擾、KILL標簽、智能標簽、法拉第網(wǎng)罩(靜電屏蔽)、輔助標簽、用戶密碼、解碼器、阻塞器標簽、軟阻塞器標簽以及阻止標簽方法等。4.2.1KILL標簽標準化組織自由識別中心(Auto-IDCenter)提出了KILL標簽機制,KILL標簽可以完全殺死標簽的組織掃面和追蹤,防止攻擊者對標簽攜帶者的追蹤,但是RFID電子標簽的功能就不存在了。例如在超市結(jié)賬時可使用。KILL命令使標簽失去了它本應(yīng)有的特點,比如商品出售后,標簽上存有的信息將不再存在,同樣也不方便日后對售出的產(chǎn)品進行售后服務(wù)等一系列問題。此外,一旦KILL識別序列號(PIN)被泄露出去,會導(dǎo)致一些不法分子利用此方法在超市中進行盜竊。因此,可以考慮KILL命令的含義—附帶擦除這些數(shù)據(jù)的功能。此外在一定的時期內(nèi),由于使用的陳本或其他原因,會考慮到堅固標簽?zāi)芑厥罩貜?fù)使用的情況。當(dāng)然,這些保存的信息有一定的保存期限。因為不同鎖定狀態(tài)的影響,僅用Write或BlockWrite,BlockErass命令,不一定能改寫EPC號碼、User內(nèi)容或者Password。這樣就產(chǎn)生了一個需求,需要了解一個簡單命了的Erase命令—出了TID區(qū)及其Lock狀態(tài)位。比較起來,改善的KILL命令和增加的Erase命令功能基本相同(應(yīng)該都使用KILLPassword)。[6]4.2.2法拉第網(wǎng)罩根據(jù)電磁場中理論,如果一個容器由傳導(dǎo)材料構(gòu)成(法拉第網(wǎng)罩),那么它可以屏蔽外部的無線電信號。能把容器外的無線電屏蔽,使得網(wǎng)罩內(nèi)部不受外界信號的干擾。把標簽放進由傳導(dǎo)材料構(gòu)成的容器中,被動標簽接收不到外界閱讀器發(fā)出的信號,因此不能傳導(dǎo)能量。將主動標簽放入容器中則主動標簽發(fā)出的信號不能被外界的閱讀器所接收。例如,如果貨幣中加入RFID標簽后,可以防止他人的電子掃描操作,避免自己的錢財暴露。4.2.3主動干擾另一種屏蔽標簽的方法就是主動干擾無線電信號。標簽持有者可以使用某種設(shè)備發(fā)射發(fā)現(xiàn)點信號來干擾RFID閱讀器對標簽的閱讀。對于此方法也有它的局限性,因為它可以帶來非法干擾,附近的合法RFID系統(tǒng)也會被外界的影響,嚴重的是,它可能阻斷附近其他無線系統(tǒng)。4.2.4阻止標簽有一種用于阻止功能的防碰撞算法可以構(gòu)成阻止標簽,每次閱讀器閱讀標簽的時候,需要獲得同樣的應(yīng)答數(shù)據(jù),這樣才能保護標簽。[7]4.2.5智能標簽智能標簽(SmartLabel)也有人稱之為無線射頻識別標簽,是電子和計算機等高新技術(shù)在標簽制印上的結(jié)晶。這種技術(shù)能增加標簽的處理能力,利用加密技術(shù)進行訪問控制,保護用戶隱私。當(dāng)然,在成本允許的情況下,愈發(fā)雜的加密技術(shù)的保密性能就越好。4.2.6輔助標簽當(dāng)RFID標簽被無線方式修改難以識別時,利用條形碼、十進制碼、或產(chǎn)品標志等,可增加輔助識別。4.2.7用戶密碼可以在RFID中加入密碼設(shè)置,不管是在標簽上還是閱讀器上都可以。獲取用戶密碼必須通過物理接觸,這樣可以避免未經(jīng)授權(quán)的都切器直接獲取信息。4.2.8阻塞器標簽一種內(nèi)置在購物袋中的專門設(shè)計的RFID標簽?zāi)馨l(fā)動DoS攻擊,防止RFID閱讀器讀取袋中所購貨物上的標簽。4.2.9軟阻塞器標簽(阻塞器標簽的改進)在銷售點通過“會員卡”可看到隱藏信息,當(dāng)顧客購買了某種商品后,銷售點會及時更新其中存在的某些隱私信息,提示某些閱讀器如供應(yīng)鏈閱讀器不要讀取該信息。4.3邏輯安全機制4.3.1安全哈希算法SHA是一種數(shù)據(jù)加密算法,該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段(通常更?。┟芪模部梢院唵蔚睦斫鉃槿∫淮斎氪a(稱為預(yù)映射或信息),下面(附錄)是關(guān)于Hash的一段C語言代碼,它實現(xiàn)的功能是對信息進行加密。關(guān)于程序的運行如以下截圖:圖4.1添加頭文件圖4.2添加源文件圖4.3生成程序圖4.4調(diào)試結(jié)果一圖4.5調(diào)試結(jié)果二4.3.2哈希(Hash)鎖方案圖4.6Hash鎖原理圖Hash鎖方案相對物理安全機制解決方案更加完善的一種地址標簽未授權(quán)訪問的安全機制解決方案。因為Hash鎖方案僅僅需要使用Hash函數(shù),所以這種方案的成本比較低。Hash鎖的方案原理是每個標簽的密鑰K都存在于閱讀器中,密鑰K對應(yīng)標簽存儲的元身份(MetaID),元身份MetaID=Hash(K)。閱讀器發(fā)送信號給標簽后,標簽發(fā)送MetaID給閱讀器,閱讀器在后臺查找與MetaID相應(yīng)的密鑰K,而后把信息發(fā)給標簽。閱讀器發(fā)送的密鑰K需要標簽通過Hash函數(shù)進行計算,檢查元身份MetaID與Hash(K)是否相同,如果檢查后與元身份相同,標簽會發(fā)送真實的ID給標簽。[8]哈希鎖的加密操作的具體工作原理為:(1)閱讀器首先要有一個隨機的密鑰key,并計算metaID=Hash(key)。(2)閱讀器把metaID發(fā)送并寫入到標簽中。(3)標簽接收到MetaID后進入到鎖定狀態(tài)。(4)當(dāng)閱讀器接收到標簽發(fā)出的信息后,將把MetaID作為索引,并在后臺數(shù)據(jù)庫中存儲(MetaID,key)。標簽的解鎖的過程:(1)當(dāng)標簽進入到閱讀器的識別范圍內(nèi),標簽對閱讀器的信息作出回應(yīng),即標簽向閱讀器發(fā)送metaID。(2)閱讀器接收到標簽中存有的信息后,返回后臺數(shù)據(jù)庫中查找相應(yīng)的(metaID,key)。(3)當(dāng)閱讀器查找到(metaID,key)后,將key發(fā)送給標簽。(4)標簽對發(fā)送過來的key通過Hash(key)進行計算計算,如果Hash(key)=metaID,標簽解鎖,并向閱讀器發(fā)送本身信息。圖4.7Hash-lock協(xié)議流程圖標簽數(shù)據(jù)與訪問控制的隱私保護可以由該解決方案解決,但其標簽的MetaID仍然是固定的,因此攻擊者依然可以利用MetaID追蹤到攜帶者的位置。閱讀器訪問密鑰通過前向通道以明文的方式傳輸。4.3.3隨機Hash鎖方案圖4.8隨機Hash鎖流程圖隨機Hash鎖方案是Hash鎖的一種擴展,因為其MataID是變化的,所以可以解決標簽的跟蹤問題。利用隨機Hash鎖方案,每次閱讀器訪問標簽輸出的信息都不盡相同。隨機Hash鎖的原理是標簽不僅包含有Hash函數(shù),還包含一個隨機數(shù)發(fā)生器,所有標簽的ID都存儲在后臺服務(wù)器中。當(dāng)標簽接收到閱讀器請求訪問的命令后,Hash需要計算隨機數(shù)n與閱讀器標簽ID的Hash值。閱讀器接收標簽發(fā)送的數(shù)據(jù)后,同時把信息發(fā)送到后臺服務(wù)器,后臺服務(wù)器數(shù)據(jù)庫窮舉搜索所有標簽ID和元身份Meta的Hash值,而后需要判斷Hash值是否為對應(yīng)標簽的ID。如果Hash值對應(yīng),則標簽ID解鎖。[9]盡管在低成本的情況下Hash函數(shù)可以完成,但在計算能力有限的的低成本被動標簽下集成隨機數(shù)發(fā)生器,卻是十分困難的。另外,隨機Hash鎖僅僅解決了標簽位置的隱私問題,攻擊者可以通過截獲的秘密信息來獲得訪問控制權(quán),利用返回到標簽中的歷史記錄,來獲得標簽持有者的隱私。后臺服務(wù)器通過窮舉來搜索數(shù)據(jù)庫的解碼,因此需要用Hash函數(shù)計算和對所有的標簽窮舉搜索,對此狀況,存在著拒絕服務(wù)攻擊。4.3.4Hash鏈方案圖4.9Hash鏈原理圖哈希鏈的方案原理是標簽設(shè)置一個隨機的初始化標識符在最初的存儲器中,同時后臺數(shù)據(jù)庫也要存儲這個標識符。在此方案中,標簽需要包含兩個Hash函數(shù)H和G。當(dāng)標簽被閱讀器訪問時,閱讀器接收標簽返回的當(dāng)前標識符rk=G(sk),同時標簽一旦獲得電磁場的能量就會自動更新標識符sk+1=H(sk)。[10]

哈希鏈與前面提到的哈希方案相比,本方案的主要優(yōu)點是提供了前向安全性。當(dāng)然,它的缺點也是顯而易見的就是它在阻止重放攻擊方面是有一定缺陷的。而且在該方案中,窮舉搜索操作需要在每一次閱讀器對標簽進行識別時都進行,然后對后臺數(shù)據(jù)庫的每個標簽與搜索后的結(jié)果進行比較,數(shù)據(jù)庫更新后變得很大時,計算負擔(dān)在后端服務(wù)器中會變得很大。因此哈希鏈方案也存在著通用的缺點,即所有標簽都會自動更新,因此大規(guī)模的推廣難以實施。同時,窮舉搜索同樣在本方案中需要用到,所以依然存在拒絕服務(wù)攻擊。4.4小結(jié)本章通過物理和邏輯兩個方面提出了一些解決安全問題的方案,在物理機制中,主要使用了KILL標簽、法拉第網(wǎng)罩、主動干擾、阻止標簽、智能標簽、輔助標簽、用戶密碼、(軟)阻塞器標簽等方法;在邏輯機制中,主要提出了Hash鎖、隨機Hash鎖、Hash鏈三個方案。第五章總結(jié)與展望寥寥數(shù)字不能完全把物聯(lián)網(wǎng)以及RFID系統(tǒng)做一個詳細、明確的闡述,我在文中對RFID系統(tǒng)所做的分析與得到的解決方案可能存在著某些不足,我一定會繼續(xù)努力,完善自己的方案。綜述全篇,即在物理與邏輯安全兩大方面對RFID系統(tǒng)的安全提出了一些方案,其中物理安全機制方面,相對來說,需要的技術(shù)與成本較低,容易大規(guī)模的推廣與使用。在邏輯安全機制方面,如果技術(shù)成熟的話,將會成為解決RFID系統(tǒng)安全威脅的根治方法,因此,不光需要我們技術(shù)人員的努力,也需要國家部門給予相應(yīng)的配合。未來,隨著RFID技術(shù)的進步與發(fā)展,物聯(lián)網(wǎng)會趨于成熟,大規(guī)模的應(yīng)用也指日可待。本文通過不同的物理方案和邏輯方案對RFID系統(tǒng)的安全隱患提出了技術(shù)解決方案,在物理安全機制中,提出了KILL標簽、主動干擾、阻止標簽、增加用戶密碼等方案。在邏輯機制中,提出了Hash鎖一系列方案,解決了數(shù)據(jù)傳輸中的一系列隱私泄露問題。RFID系統(tǒng)非常復(fù)雜的、涉及諸多方面的理論與方法,有許多新的問題需要解決,需要在使用中不斷發(fā)現(xiàn),對其加以分析與改進,才能使物聯(lián)網(wǎng)朝著健康的方向發(fā)展。在以下幾個方面還需要做進一步的研究與討論:(1)在邏輯安全機制方面,可能只是在理論上進行了探討,但是在實際應(yīng)用中由于成本、技術(shù)上的原因,會很難實現(xiàn),我會繼續(xù)努力,爭取做出更好的方案。(2)對RFID系統(tǒng)只是做了基礎(chǔ)上的一些分析,使得方案還不是很完善。(3)RFID系統(tǒng)在物聯(lián)網(wǎng)中的應(yīng)用范圍還不夠廣泛,還有提高的余地。參考文獻[1]安隱.使用RFID的安全威脅分析及技術(shù)解決對策.北京:北京大學(xué)出版社,2007[2]鄒晨祎.線性反饋唯一寄存器在射頻識別系統(tǒng)中的應(yīng)用.北京:計算機世界,2008[3]吳枝根,劉一華,王美芹.一種測量平面主應(yīng)力的簡便方法.上海:復(fù)旦大學(xué)出版社,2008[4]李春茂,王鑫.射頻識別技術(shù)安全問題研究.北京:北京大學(xué)出版社,2007[5]粟偉.低成本無線射頻識別安全與隱私研究.北京:北京大學(xué)出版社,2007[6]白煜.超高頻射頻識別(UHFRFID)系統(tǒng)抗干擾策略的研究.北京:北京工業(yè)大學(xué)出版社,2010[7]郭虎.無線射頻識別安全與隱私研究.天津:天津大學(xué)穿射,2008[8]李強.淺談RFID的信息安全及對策.北京:北京大學(xué)出版社,2007[9]孟淑玲.射頻識別系統(tǒng)中防沖突算法的研究.湖北:華中科技大學(xué)出版社,2010[10]裴友林.RFID安全協(xié)議設(shè)計與研究.上海:復(fù)旦大學(xué)出版社,2010致謝本論文是在我的指導(dǎo)老師楊雪松老師的關(guān)懷和悉心指導(dǎo)下完成的。他嚴謹?shù)慕虒W(xué)態(tài)度、精益求精的工作作風(fēng),一直感染和激勵著我。從課題的選擇到論文的最終完成,楊老師都始終給予我悉心的指導(dǎo)和不懈的支持。在這里,我謹向楊老師表達最衷心的感謝。在這里我還要感謝學(xué)院的各位領(lǐng)導(dǎo)與老師,四年的大學(xué)生活即將結(jié)束,是你們在這四年里給予我關(guān)懷與教導(dǎo)。最后,我要感謝我的父母,是他們給了我在大學(xué)學(xué)習(xí)的機會,沒有你們給予我的支持,就沒有今天的我。附錄A#include"sha1.h"#defineSHA1CircularShift(bits,word)\(((word)<<(bits))|((word)>>(32-(bits))))voidSHA1PadMessage(SHA1Context*);voidSHA1ProcessMessageBlock(SHA1Context*);intSHA1Reset(SHA1Context*context){if(!context){returnshaNull;}context->Length_Low=0;context->Length_High=0;context->Message_Block_Index=0;context->Intermediate_Hash[0]=0x67452301;context->Intermediate_Hash[1]=0xEFCDAB89;context->Intermediate_Hash[2]=0x98BADCFE;context->Intermediate_Hash[3]=0x10325476;context->Intermediate_Hash[4]=0xC3D2E1F0;context->Computed=0;context->Corrupted=0;returnshaSuccess;}intSHA1Result(SHA1Context*context,uint8_tMessage_Digest[SHA1HashSize]){inti;if(!context||!Message_Digest){returnshaNull;}if(context->Corrupted){returncontext->Corrupted;}if(!context->Computed){SHA1PadMessage(context);for(i=0;i<64;++i){context->Message_Block[i]=0;}context->Length_Low=0;context->Length_High=0;context->Computed=1;}for(i=0;i<SHA1HashSize;++i){Message_Digest[i]=context->Intermediate_Hash[i>>2]>>8*(3-(i&0x03));}returnshaSuccess;}intSHA1Input(SHA1Context*context,constuint8_t*message_array,unsignedlength){if(!length){returnshaSuccess;}if(!context||!message_array){returnshaNull;}if(context->Computed){context->Corrupted=shaStateError;returnshaStateError;}if(context->Corrupted){returncontext->Corrupted;}while(length--&&!context->Corrupted){context->Message_Block[context->Message_Block_Index++]=(*message_array&0xFF);context->Length_Low+=8;if(context->Length_Low==0){context->Length_High++;if(context->Length_High==0){context->Corrupted=1;}}if(context->Message_Block_Index==64){SHA1ProcessMessageBlock(context);}message_array++;}returnshaSuccess;}voidSHA1ProcessMessageBlock(SHA1Context*context){constuint32_tK[]={0x5A827999,0x6ED9EBA1,0x8F1BBCDC,0xCA62C1D6};intt;uint32_ttemp;uint32_tW[80];uint32_tA,B,C,D,E;for(t=0;t<16;t++){W[t]=context->Message_Block[t*4]<<24;W[t]|=context->Message_Block[t*4+1]<<16;W[t]|=context->Message_Block[t*4+2]<<8;W[t]|=context->Message_Block[t*4+3];}for(t=16;t<80;t++){W[t]=SHA1CircularShift(1,W[t-3]^W[t-8]^W[t-14]^W[t-16]);}A=context->Intermediate_Hash[0];B=context->Intermediate_Hash[1];C=context->Intermediate_Hash[2];D=context->Intermediate_Hash[3];E=context->Intermediate_Hash[4];for(t=0;t<20;t++){temp=SHA1CircularShift(5,A)+((B&C)|((~B)&D))+E+W[t]+K[0];E=D;D=C;C=SHA1CircularShift(30,B);B=A;A=temp;}for(t=20;t<40;t++){temp=SHA1CircularShift(5,A)+(B^C^D)+E+W[t]+K[1];E=D;D=C;C=SHA1CircularShift(30,B);B=A;A=temp;}for(t=40;t<60;t++){temp=SHA1CircularShift(5,A)+((B&C)|(B&D)|(C&D))+E+W[t]+K[2];E=D;D=C;C=SHA1CircularShift(30,B);B=A;A=temp;}for(t=60;t<80;t++){temp=SHA1CircularShift(5,A)+(B^C^D)+E+W[t]+K[3];E=D;D=C;C=SHA1CircularShift(30,B);B=A;A=temp;}context->Intermediate_Hash[0]+=A;context->Intermediate_Hash[1]+=B;context->Intermediate_Hash[2]+=C;context->Intermediate_Hash[3]+=D;context->Intermediate_Hash[4]+=E;context->Message_Block_Index=0;}voidSHA1PadMessage(SHA1Context*context){if(context->Message_Block_Index>55){context->Message_Block[context->Message_Block_Index++]=0x80;while(context->Message_Block_Index<64){context->Message_Block[context->Message_Block_Index++]=0;}SHA1ProcessMessageBlock(context);while(context->Message_Block_Index<56){context->Message_Block[context->Message_Block_Index++]=0;}}else{context->Message_Block[context->Message_Block_Index++]=0x80;while(context->Message_Block_Index<56){context->Message_Block[context->Message_Block_Index++]=0;}}context->Message_Block[56]=context->Length_High>>24;context->Message_Block[57]=context->Length_High>>16;context->Message_Block[58]=context->Length_High>>8;context->Message_Block[59]=context->Length_High;context->Message_Block[60]=context->Length_Low>>24;context->Message_Block[61]=context->Length_Low>>16;context->Message_Block[62]=context->Length_Low>>8;context->Message_Block[63]=context->Length_Low;SHA1ProcessMessageBlock(context);}附錄B#ifndef_SHA1_H_#define_SHA1_H_#include"stdint.h"#ifndef_SHA_enum_#define_SHA_enum_enum{shaSuccess=0,shaNull,shaInputTooLong,shaStateError};#endif#defineSHA1HashSize20typedefstructSHA1Context{uint32_tIntermediate_Hash[SHA1HashSize/4];uint32_tLength_Low;uint32_tLength_High;int_least16_tMessage_Block_Index;uint8_tMessage_Block[64];intComputed;intCorrupted;}SHA1Context;intSHA1Reset(SHA1Context*);intSHA1Input(SHA1Context*,constuint8_t*,unsignedint);intSHA1Result(SHA1Context*,uint8_tMessage_Digest[SHA1HashSize]);#endif附錄C#ifndef_STDINT_H#define_STDINT_H#define__need_wint_t#define__need_wchar_t#include<stddef.h>typedefsignedcharint8_t;typedefunsignedcharuint8_t;typedefshortint16_t;typedefunsignedshortuint16_t;typedefintint32_t;typedefunsigneduint32_t;typedeflongint64_t;typedefunsignedlonguint64_t;typedefsignedcharint_least8_t;typedefunsignedcharuint_least8_t;typedefshortint_least16_t;typedefunsignedshortuint_least16_t;typedefintint_least32_t;typedefunsigneduint_least32_t;typedeflongint_least64_t;typedefunsignedlonguint_least64_t;typedefcharint_fast8_t;typedefunsignedcharuint_fast8_t;typedefshortint_fast16_t;typedefunsignedshortuint_fast16_t;typedefintint_fast32_t;typedefunsignedintuint_fast32_t;typedeflongint_fast64_t;typedefunsignedlonguint_fast64_t;typedefintintptr_t;typedefunsigneduintptr_t;typedeflongintmax_t;typedefunsignedlonguintmax_t;#if!defined(__cplusplus)||defined(__STDC_LIMIT_MACROS)#defineINT8_MIN(-128)#defineINT16_MIN(-32768)#defineINT32_MIN(-2147483647-1)#defineINT64_MIN(-9223372036854775807LL-1)#defineINT8_MAX127#defineINT16_MAX32767#defineINT32_MAX2147483647#defineINT64_MAX9223372036854775807LL#defineUINT8_MAX0xff#defineUINT16_MAX0xffff#defineUINT32_MAX0xffffffff#defineUINT64_MAX0xffffffffffffffffULL#defineINT_LEAST8_MININT8_MIN#defineINT_LEAST16_MININT16_MIN#defineINT_LEAST32_MININT32_MIN#defineINT_LEAST64_MININT64_MIN#defineINT_LEAST8_MAXINT8_MAX#defineINT_LEAST16_MAXINT16_MAX#defineINT_LEAST32_MAXINT32_MAX#defineINT_LEAST64_MAXINT64_MAX#defineUINT_LEAST8_MAXUINT8_MAX#defineUINT_LEAST16_MAXUINT16_MAX#defineUINT_LEAST32_MAXUINT32_MAX#defineUINT_LEAST64_MAXUINT64_MAX#defineINT_FAST8_MININT8_MIN#defineINT_FAST16_MININT16_MIN#defineINT_FAST32_MININT32_MIN#defineINT_FAST64_MININT64_MIN#defineINT_FAST8_MAXINT8_MAX#defineINT_FAST16_MAXINT16_MAX#defineINT_FAST32_MAXINT32_MAX#defineINT_FAS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論