版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
chap.6
身份認(rèn)證編程網(wǎng)絡(luò)信息安全本章內(nèi)容要點概述
口令認(rèn)證編程人臉識別編程說話人識別編程抗擊被動攻擊:加密抗擊主動攻擊:消息認(rèn)證防火墻訪問控制數(shù)據(jù)完整性與防病毒入侵探測認(rèn)證技術(shù)實體:指一個程序、設(shè)備、系統(tǒng)或用戶等。標(biāo)識:實體的數(shù)字化指代。身份認(rèn)證、訪問控制、審計技術(shù)、網(wǎng)絡(luò)協(xié)議等都需要利用標(biāo)識對程序、設(shè)備、網(wǎng)絡(luò)、用戶和資源等進(jìn)行識別并進(jìn)行相應(yīng)的操作;在網(wǎng)絡(luò)安全防護(hù)中,也需要使用主機(jī)、網(wǎng)絡(luò)和連接標(biāo)識。6.1概述系統(tǒng)資源標(biāo)識信息系統(tǒng)資源包括電子文件、數(shù)據(jù)庫和程序等,它們在各種狀態(tài)有相應(yīng)的標(biāo)識。在操作系統(tǒng)中,文件通常以文件名和存儲路徑為標(biāo)識。數(shù)據(jù)庫和其中的數(shù)據(jù)庫表可以分別用數(shù)據(jù)庫名和表名為標(biāo)識。在操作系統(tǒng)中,當(dāng)可執(zhí)行程序文件運行時(進(jìn)程),系統(tǒng)對這個運行實例產(chǎn)生相應(yīng)的內(nèi)部標(biāo)識,例如,在Unix系統(tǒng)中它是PID(ProcessIdentity)。系統(tǒng)實體標(biāo)識任務(wù)管理器中的PID號用戶、組和角色標(biāo)識用戶登錄操作系統(tǒng)或信息系統(tǒng)后,系統(tǒng)一般會給用戶分配相應(yīng)的內(nèi)部標(biāo)識。這些內(nèi)部標(biāo)識對應(yīng)或記錄了登錄用戶的訪問權(quán)限信息。組用戶是指用一個標(biāo)識代表的系統(tǒng)管理者希望同時管理的多個用戶。角色是特殊的分組,具有一個角色的用戶或進(jìn)程被授予特定的功能。例如,一些操作系統(tǒng)設(shè)置了協(xié)助超級管理員管理系統(tǒng)的特殊用戶。與數(shù)字證書相關(guān)的標(biāo)識數(shù)字證書用于綁定證書所有者情況及其公鑰,它在數(shù)字簽名和認(rèn)證中用于向簽名驗證者或身份認(rèn)證者提供這些信息。證書簽發(fā)者將對證書簽名,所以與數(shù)字證書相關(guān)的標(biāo)識具有抵制篡改的功能。公鑰密碼的認(rèn)證模型:主機(jī)標(biāo)識:
00AA870C9023
myhost網(wǎng)絡(luò)資源標(biāo)識URI:
。連接標(biāo)識:連接端口用于標(biāo)識主機(jī)所提供的連接或一個交互中的連接。網(wǎng)絡(luò)實體標(biāo)識利用netstat命令查閱本地連接用戶在登錄時需要向驗證者證明其掌握了相應(yīng)的口令,或提供相應(yīng)的證明。認(rèn)證技術(shù)實現(xiàn)身份證明的基本途徑通過這三者之一或組合實現(xiàn)所知:個人掌握的知識,如口令,秘密所有:個人所具有的東西,如身份證、護(hù)照等個人特征:指紋、筆跡等服務(wù)質(zhì)量評價指標(biāo):拒絕率(FRR)漏報率(FAR)15.1.2身份證明系統(tǒng)的要求
1.最大可能正確識別合法示證者5.通信有效性
3.最大可能防止攻擊者偽裝欺騙
4.計算有效性
2.不具有可傳遞性10.可證明安全性6.秘密參數(shù)能安全存儲8.第三方實時參與7.交互識別9.第三方的可信性認(rèn)證系統(tǒng)的組成出示證件的人示證者P(Prover)檢驗證件的合法性和正確性驗證者V(Verifier)竊聽并偽裝示證者騙取驗證者的信任攻擊者A(Attacker)必要時,有第四方參與,即可信者,參與糾紛調(diào)解。身份認(rèn)證具有實時性,證實實體本身;消息認(rèn)證不具時間性,除認(rèn)證消息的合法和可靠還要知道其含義。1.定義口令一般由一串可輸入的數(shù)字和字符或它們的混合組成,它由認(rèn)證機(jī)構(gòu)頒發(fā)給系統(tǒng)用戶,用戶也可以自行編制。用戶在申請權(quán)限時,需要向驗證者證明其掌握了相應(yīng)的口令。2.口令挑戰(zhàn)口令認(rèn)證最簡單的方法就是由驗證者存儲口令,當(dāng)聲稱者請求認(rèn)證時,對聲稱者提交的口令與存儲口令進(jìn)行比對。然而,在實踐中這樣的實現(xiàn)安全性是不足的,因為口令作為一種安全手段,必須面臨著以下挑戰(zhàn)。1)外部泄露2)口令猜測3)線路竊聽4)重放攻擊5)對驗證方的攻擊5.2口令認(rèn)證3.挑戰(zhàn)-響應(yīng)口令方案按照圖6-1的方案,口令認(rèn)證的編程代碼如下。importosfromhashlibimportmd5,sha1importrandom
PSW=""#密碼為"!QAZ@WSX"ID="ID123456"rcd_q="d1e355e8ff53925fdbf1686bb1deec56"#非明文狀態(tài)存儲的ID|q值
deffun_g(psw,id):m=md5()m.update(id.encode('utf-8'))m.update(psw.encode('utf-8'))returnm.hexdigest()
deffun_h(q,nrv):new_sha1=sha1()new_sha1.update(q.encode("utf-8"))new_sha1.update(nrv.encode("utf-8"))returnnew_sha1.hexdigest()defproof_output(r,id):rpn=[r,id]fileObject=open('sampleList.txt','w')foripinrpn:fileObject.write(str(ip))fileObject.write('\n')fileObject.close()
defproof_input(vrf_file):f=open(vrf_file,"r")table=f.readline()f.close()returntableif__name__=='__main__':#?聲稱者發(fā)出認(rèn)證請求(來自網(wǎng)絡(luò)或系統(tǒng)應(yīng)用系統(tǒng)界面)#print(“接收到認(rèn)證請求…”)
#?驗證者產(chǎn)生NRV詢問的隨機(jī)消息NRV=str(random.randrange(1,10000))
#?聲稱者生成驗證口令PSW=input("請輸入認(rèn)證密碼!\n")proof_output(fun_h(fun_g(PSW,ID),NRV),ID)print("驗證口令生成!")input("請輸入回車開始認(rèn)證!")
#?驗證者利用記錄的口令哈希記錄進(jìn)行比對r2=proof_input("sampleList.txt")r=fun_h(rcd_q,NRV)print("聲稱者值=",r2.strip(),"驗證者者值=",r.strip())ifr2.strip()==r.strip():print("認(rèn)證通過!")else:print("認(rèn)證失??!")5.3人臉識別1、人臉識別與安全人臉識別是基于人的臉部特征信息進(jìn)行身份識別的一種生物識別技術(shù)。用攝像機(jī)或攝像頭采集含有人臉的圖像或視頻流,并自動在圖像中檢測和跟蹤人臉,進(jìn)而對檢測到的人臉進(jìn)行臉部識別的一系列相關(guān)技術(shù),通常也叫做人像識別、面部識別。人臉識別系統(tǒng)的研究始于20世紀(jì)60年代。80年代后隨著計算機(jī)技術(shù)和光學(xué)成像技術(shù)的發(fā)展得到提高,但真正進(jìn)入初級的應(yīng)用階段則在90年后期。人臉識別系統(tǒng)成功的關(guān)鍵在于是否擁有尖端的核心算法,并使識別結(jié)果具有實用化的識別率和識別速度;“人臉識別系統(tǒng)”集成了人工智能、機(jī)器識別、機(jī)器學(xué)習(xí)、模型理論、專家系統(tǒng)、視頻圖像處理等多種專業(yè)技術(shù),同時需結(jié)合中間值處理的理論與實現(xiàn),是生物特征識別的最新應(yīng)用。2、人臉識別工具鑒于人臉識別的重要價值,國內(nèi)外很多公司、機(jī)構(gòu)、高校都開展了人臉識別的研究,其中比較成熟的工具包括以下。AnimetricsBetafaceEyedea識別Face++FaceMarkFaceRectIBMWatsonVisualRecognitionKairosSkybiometryFaceRecognitionFaceRecognition是為Linux設(shè)計的,在Github網(wǎng)址為/ageitgey/face_recognition。FaceRecognition在Windows操作系統(tǒng)上也能安裝,需要基于Dlib的環(huán)境搭建和FaceRecognition模塊安裝兩個步驟,具體如下。如果python使用的是Anaconda,因其會自動獲取dlib,所以安裝可以直接跳到2)步。1.定位人臉位置利用face_locations函數(shù),定位圖像中所有找到的臉的位置,示例代碼如下。fromPILimportImage,ImageDrawimportface_recognition
image=face_recognition.load_image_file("scientists.jpg")face_locations=face_recognition.face_locations(image)#?print("Ifound{}face(s)inthisphotograph.".format(len(face_locations)))
#創(chuàng)建一個PILImageDraw對象,后面用于圖像繪制pil_image=Image.fromarray(image)d=ImageDraw.Draw(pil_image)
forface_locationinface_locations:#?top,right,bottom,left=face_locationprint("臉部位置Top:{},Left:{},Bottom:{},Right:{}".format(top,left,bottom,right))#注意矩形框的坐標(biāo)排列與face_location有所區(qū)別d.rectangle((left,top,right,bottom),None,'red')
pil_image.show()2.識別單張圖片中人臉的關(guān)鍵點可以利用face_recognition的face_landmarks函數(shù)找出圖片中人臉的面部特征,示例代碼如下。image=face_recognition.load_image_file("Einstein.jpg")#?找出圖片中所有人臉的面部特征face_landmarks_list=face_recognition.face_landmarks(image)print("Ifound{}face(s)inthisphotograph.".format(len(face_landmarks_list)))
#?創(chuàng)建一個PILImageDraw對象,后面用于圖像繪制pil_image=Image.fromarray(image)d=ImageDraw.Draw(pil_image)forface_landmarksinface_landmarks_list:#打印出圖片中每個臉部特征的位置forfacial_featureinface_landmarks.keys():print("The{}inthisfacehasthefollowingpoints:{}"\.format(facial_feature,face_landmarks[facial_feature]))
#用線段描出圖像中的每個臉部特征forfacial_featureinface_landmarks.keys():d.line(face_landmarks[facial_feature],'red',width=5)#?顯示圖像pil_image.show()3.圖片中的人身份認(rèn)證可以利用face_recognition的compare_faces方法識別兩張人臉是否是同一人,代碼如下。importface_recognition
known_image=face_recognition.load_image_file("Einstein.jpg")unknown_image=face_recognition.load_image_file("unknown.jpg")
Einstein_encoding=face_recognition.face_encodings(known_image)[0]unknown_encoding=face_recognition.face_encodings(unknown_image)[0]
results=face_pare_faces([Einstein_encoding],unknown_\
encoding,tolerance=0.63)ifresults[0]==True:print("It'sapictureofEinstein!")else:print("It'snotapictureofEinstein!")5.4說話人識別1.定義說話人識別(或稱聲紋識別)作為生物認(rèn)證技術(shù)的一種,是根據(jù)語音波形中反映說話人生理和行為特征,鑒別說話人身份的一項技術(shù)。研究表明,聲紋雖然不如指紋、人臉這樣,個體差異明顯,但是由于每個人的聲道、口腔和鼻腔(發(fā)音要用到的器官)也具有個體差異性。因為反映到聲音上,也是具有差異性的。就比如說,當(dāng)我們在接聽電話的時候,通過一聲"喂",就能準(zhǔn)確的分辨出接電話的是誰。人耳作為身體的接收器,與生俱來就有分辨聲音的能力。同理,也可以通過技術(shù)的手段,使聲紋也可以像人臉、指紋那樣作為“個人身份認(rèn)證”的重要信息。說話人識別可以說是一種交叉運用心理學(xué)、生理學(xué)、語音信號處理、模式識別、統(tǒng)計學(xué)習(xí)理論和人工智能的綜合性研究。2.分類自提出以來,人們已經(jīng)發(fā)展出不同種類的說話人識別技術(shù)與方法,說話認(rèn)識別的分類可以依據(jù)任務(wù)和內(nèi)容對其進(jìn)行劃分。如果根據(jù)說話人識別實現(xiàn)的任務(wù)不同,可分為說話人辨認(rèn)(speakeridentification)和說話人確認(rèn)(speakerverification)兩種類型。前者即判定待測試說話人的語音屬于幾個參考說話人其中之一,是一個多選一問題,而后者即確定待測說話人的語音與其特定參考說話人是否相符,是二選一的是非問題,即確認(rèn)(肯定)或拒絕(否定)?;诎踩J(rèn)證需求,本書的實現(xiàn)屬于說話人確認(rèn)。3.工作原理說話人識別從各個說話人的發(fā)音中找出說話人之間的個性差異,這涉及到對說話人發(fā)音器官、發(fā)音通道和發(fā)音習(xí)慣之間等不同級別上的個性差異提取與計算。正常人類說話是通過聲道產(chǎn)生聲音的,主要的的發(fā)音器官包括:聲帶、喉頭、口腔和鼻腔(如圖6-13所示)。4.工作過程一般,說話人識別系統(tǒng)可分為兩個階段:訓(xùn)練階段和識別階段,如圖6-14所示。在具體實現(xiàn)中,語音中說話人個性特征的分離與提取以及精準(zhǔn)的模型建模是決定系統(tǒng)性能的兩個關(guān)鍵環(huán)節(jié)。1)特征分離與提取在聲紋識別,包括語音識別領(lǐng)域,傳統(tǒng)的聲學(xué)特征包括梅爾倒譜系數(shù)MFCC(Mel-frequencycepstralcoefficients)、感知線性預(yù)測系數(shù)PLP、近幾年的逐漸受到關(guān)注的深度特征DeepFeature、以及最新的能量規(guī)整譜系數(shù)PNCC等,都能作為聲紋識別在特征提取層面可選且表現(xiàn)良好的聲學(xué)特征。2)識別模型基于提取的特征可以實現(xiàn)的說話人識別的模型,包括:模板匹配法、統(tǒng)計概率模型法、人工神經(jīng)網(wǎng)絡(luò)法、支持向量機(jī)法、稀疏表示法等,具體算法常見的包括:GMM、UBM、I-Vector、神經(jīng)網(wǎng)絡(luò)方法。1.常見說話人識別工具目前,說話人識別主要的開源工具有:1)MSRIdentityToolkit:這是微軟開源的工具箱,支持MATLAB版本,包含GMM-UBM和I-vector的demo,簡單易用。2)Alize:主要包括GMM-UBM、I-vectorandJFA三種傳統(tǒng)的方法,采用C++實現(xiàn),簡單易用。3)kaldi:是當(dāng)下十分流行的語音識別工具包,也包括聲紋識別的功能,覆蓋了主流的聲紋識別算法(I-vector、x-vector等),采用腳本語言實現(xiàn),使用不非常方便。4)SIDEKIT:SIDEKIT(主頁https://projets-lium.univ-lemans.fr/sidekit/)基于Python開發(fā),將功能集中在數(shù)量不多的幾個類的設(shè)計,大大提高了說話認(rèn)識別工具的易用性。它試圖為開發(fā)者提供一個完整的工具鏈,包括特征提取、建模和分類、結(jié)果表示等功能。5)Tensorflow:是一個基于數(shù)據(jù)流編程的符號數(shù)學(xué)系統(tǒng),被廣泛應(yīng)用于各類機(jī)器學(xué)習(xí)算法的編程實現(xiàn),其前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫DistBelief。基于Tensorflow也可以實現(xiàn)聲音分類,主要是利用了其強(qiáng)大的機(jī)器學(xué)習(xí)算法。1.語言錄制首先需要獲取說話人的語音數(shù)據(jù)??梢岳胮yrec_audio模塊的函數(shù)rec錄制說話人話音,代碼如下。defrec(file_name):p=pyaudio.PyAudio()#?stream=p.open(format=FORMAT,#?channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)input("開始錄音,請敲回車并說話......")frames=[]foriinrange(0,int(RATE/CHUNK*RECORD_SECONDS)):data=stream.read(CHUNK)frames.append(data)#?print("錄音結(jié)束!")
2.語言特征提取對于輸入的語音,其處理過程如下圖6-15所示,經(jīng)過DFT—>取對數(shù)—>逆DFT的過程,這個過程通常采用倒譜(cepstrum)分析的方法。1)語音信號時頻域分析對于信號的識別一般是通過頻域特性進(jìn)行分析的。原始聲音信號是一維時域信號,直觀上很難看出頻率變化規(guī)律。下面代碼original_amplitude_envelope.py實現(xiàn)了對一段聲音的讀取,繪制出該聲音的時域波形圖(如圖6-16所示)。importlibrosaimportmatplotlib.pyplotaspltimportlibrosa.display
audio_path='./wildflower.wav'x,sr=librosa.load(audio_path,sr=16000,mono=True)plt.figure(figsize=(14,5))librosa.display.waveplot(x,sr=sr)plt.show()y,sr=librosa.load(audio_path,sr=8000,mono=True,offset=0,duration=20)fft_y=fft(y)N=np.arange(0,sr,sr/fft_y.shape[0])#橫坐標(biāo)頻率,個數(shù)為采樣點的個數(shù),頻率最大值是采樣頻率,生成等差數(shù)列abs_y=np.abs(fft_y)#取復(fù)數(shù)的絕對值,即復(fù)數(shù)的模(雙邊頻譜)normalization_y=abs_y/fft_y.shape[0]#歸一化,angle_y=np.angle(fft_y)#取復(fù)數(shù)的角度
plt.figure()plt.plot(N,normalization_y[:N.shape[0]])#雙邊譜plt.xlabel('Frequency/Hz')plt.ylabel('Amplitude')plt.show()x,sr=librosa.load(audio_path,sr=16000,mono=True)X=librosa.stft(x)Xdb=librosa.amplitude_to_db(abs(X))plt.figure(figsize=(14,5))librosa.display.specshow(Xdb,sr=sr,x_axis='time',y_axis='hz')plt.colorbar()plt.show()audio_path='./wildflower.wav'x,sr=librosa.load(audio_path,sr=16000,mono=True)X=librosa.stft(x)ps=librosa.feature.melspectrogram(y=x,sr=sr,n_mels=128)Xdb=librosa.amplitude_to_db(abs(X))psdb=librosa.amplitude_to_db(abs(ps))
plt.figure(figsize=(14,5))plt.subplot(2,1,1)plt.title("withoutMeltransformation",x=0.9)librosa.display.specshow(Xdb,sr=sr,y_axis='hz')
plt.subplot(2,1,2)plt.title("Meltransformation",x=0.9)librosa.display.specshow(psdb,sr=sr,x_axis='time',y_axis='hz')plt.show()defload_data(data_path):wav,sr=librosa.load(data_path,sr=16000)intervals=librosa.effects.split(wav,top_db=20)wav_output=[]forslicedinintervals:wav_output.extend(wav[sliced[0]:sliced[1]])assertlen(wav_output)>=8000,"有效音頻小于0.5s"wav_output=np.array(wav_output)ps=librosa.feature.melspectrogram(y=wav_output,sr=sr,hop_length=256).astype(np.float32)ps=ps[np.newaxis,...,np.newaxis]returnps
definfer(audio_path):data=load_data(audio_path)feature=intermediate_layer_model.predict(data)returnfeatureif__name__=='__main__':#要預(yù)測的兩個人的音頻文件person1='dataset/ST-CMDS-20170001_1-OS/20170001P00011A0001.wav'person2='dataset/ST-CMDS-20170001_1-OS/201
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)三年級描寫同學(xué)的作文300字6篇
- 個人工作總結(jié)與參考計劃參考范文
- 陜西供排水項目可行性研究報告
- 普通員工辭職報告14篇
- 城鄉(xiāng)電網(wǎng)項目立項報告
- 個人年終述職報告怎么寫
- xx市天然氣管網(wǎng)及儲氣設(shè)施項目可行性研究報告
- 醫(yī)生晉升副高職稱述職報告
- 四川省宜賓市(2024年-2025年小學(xué)六年級語文)部編版專題練習(xí)((上下)學(xué)期)試卷及答案
- 合并案例分析
- 2024年安徽安慶宜秀區(qū)國企業(yè)招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 替莫唑胺在小細(xì)胞肺癌中的應(yīng)用
- 不動產(chǎn)登記申請表
- 2024年中國中鐵十局招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 第一、二單元語文園地鞏固練習(xí)-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 2024年P(guān)URL系列反應(yīng)型皮革用聚氨酯乳液項目合作計劃書
- 巨量-營銷科學(xué)(初級)認(rèn)證培訓(xùn)考試題庫(含答案)
- 2024-2030年中國城市更新行業(yè)市場深度分析及前景趨勢與投資戰(zhàn)略研究報告
- GB/T 44328-2024七氟異丁腈
- 生態(tài)環(huán)境保護(hù)課件
- 戶外徒步活動策劃方案(共5篇)
評論
0/150
提交評論