20189216 2018-2019-2 《密码与安全新技术专题》课程总结报告
課程學(xué)習(xí)內(nèi)容總結(jié)
每次作業(yè)鏈接匯總
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第一次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第二次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第三次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第四次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第五次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第六次作業(yè)
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第七次作業(yè)
每次講座內(nèi)容總結(jié)
(1)講座的主題為網(wǎng)絡(luò)(Web)安全與與內(nèi)容安全
張老師從Web應(yīng)用安全和隱私安全兩個方面為我們帶來了一場精彩的講座。通過這次講座,我們知道常見的Web漏洞有如下幾個:
通過這次講座我們知道了什么是SQL注入漏洞、SQL注入分類以及如何判斷等等。
還學(xué)習(xí)到什么是XSS跨站腳本攻擊, XSS漏洞分為兩類:①反射型XSS ②存儲型XSS,認(rèn)識到XSS的危害,了解持久型跨站腳本攻擊場景等等。
學(xué)習(xí)什么是CSRF跨站請求偽造漏洞,跨站請求偽造(CSRF)場景,如何上傳漏洞、解析漏洞,什么是弱口令等等。
在隱私安全部分介紹了用戶軌跡的危害以及機器學(xué)習(xí)的啟發(fā)。
(2)講座的主題是量子密碼
通過本次講座我們知道量子密碼與傳統(tǒng)的密碼系統(tǒng)不同,它依賴于物理學(xué)作為安全模式的關(guān)鍵方面而不是數(shù)學(xué)。實質(zhì)上,量子密碼術(shù)是基于單個光子的應(yīng)用和它們固有的量子屬性開發(fā)的不可破解的密碼系統(tǒng),因為在不干擾系統(tǒng)的情況下無法測定該系統(tǒng)的量子狀態(tài)。理論上其他微粒也可以用,只是光子具有所有需要的品質(zhì),它們的行為相對較好理解,同時又是最有前途的高帶寬通訊介質(zhì)光纖電纜的信息載體。量子密碼學(xué)的理論基礎(chǔ)是量子力學(xué),不同于以往理論基礎(chǔ)是數(shù)學(xué)的密碼學(xué)。如果用量子密碼學(xué)傳遞數(shù)據(jù),則此數(shù)據(jù)將不會被任意擷取或被插入另一段具有惡意的數(shù)據(jù),數(shù)據(jù)流將可以安全地被編碼及譯碼。而編碼及譯碼的工具就是隨機的序列(bit-strings),也可以稱他為金鑰(Key)。當(dāng)前,量子密碼研究的核心內(nèi)容,就是如何利用量子技術(shù)在量子信道上安全可靠地分配金鑰。量子密碼通信現(xiàn)在是非常熱門的問題。當(dāng)下,我國必須培養(yǎng)這方面的人才,與國外相比,技術(shù)不能落后,只有大力發(fā)展科學(xué)技術(shù),才能在量子密碼通信的道路上越走越遠!
(3)講座主題是基于深度學(xué)習(xí)的密碼分析與設(shè)計
通過這次講座了解到密碼分析與機器學(xué)習(xí)、深度學(xué)習(xí)簡介與現(xiàn)狀、深度學(xué)習(xí)與密碼分析、深度學(xué)習(xí)與密碼設(shè)計。金鑫老師充滿活力的給我們帶來一個精彩的講座——基于深度學(xué)習(xí)的密碼分析與設(shè)計。我發(fā)現(xiàn)人工智能需要我們的知識儲備非常足,要有很好的數(shù)學(xué)基礎(chǔ),密碼學(xué)基礎(chǔ)等等。本次講座使我對人工智能、機器學(xué)習(xí)和深度學(xué)習(xí)增加了系統(tǒng)性的認(rèn)知,以及對深度學(xué)習(xí)的應(yīng)用有了更為寬闊的了解。我發(fā)現(xiàn)自己對人工智能、深度學(xué)習(xí)有點感興趣,可是知識儲備遠遠不夠,希望后期自己能夠努力培養(yǎng)這方面的知識。
(4)講座的主題是信息隱藏
通過這次講座知道了信息隱藏是指將特定用途的消息隱蔽地藏于其他載體(Cover)中,使得它們難以被發(fā)現(xiàn)或者消除,通過可靠提取隱藏的信息,實現(xiàn)隱蔽通信、內(nèi)容認(rèn)證或內(nèi)容保護功能 。信息隱藏主要包括水印、可視密碼、隱寫等。隨著多媒體技術(shù)在通信領(lǐng)域的廣泛應(yīng)用和飛速發(fā)展,信息隱藏及隱寫分析技術(shù)成為信息安全領(lǐng)域的研究熱點。通過夏老師的這次課讓我對信息隱藏和隱寫分析技術(shù)等有了基礎(chǔ)的了解。最重要的一點是夏老師給我們提出的四點建議讓我感受頗深。首先我們要在平時學(xué)習(xí)專業(yè)課之余去看一些最新的頂會、期刊文章,增加自己的知識儲備。當(dāng)然,要想看懂頂會期刊就必須擁有一定的英語水平。老師建議我們?nèi)コ闀r間學(xué)習(xí)英語,說好英語,寫好英語。作為一名計算機的學(xué)生,編程自然是少不了的。要想在科研工作上走的更遠,需要擁有良好的編程能力。老師告訴我們要利用好資源,GitHub上有很多優(yōu)秀的代碼,很多牛人都值得我們?nèi)W(xué)習(xí)。最后一點就是不管干什么事都要放平心態(tài),我認(rèn)為老師說的非常對,我深有感觸。只有遇到問題遇到麻煩不慌不忙,平心靜氣,踏踏實實去盡自己最大的努力完成就可以了。心態(tài)是決定你能否成功的關(guān)鍵因素。
(5)講座的主題是區(qū)塊鏈
通過這次講座知道比特幣概念、比特幣交易的特點、比特幣的特點、區(qū)塊鏈技術(shù)以及區(qū)塊鏈技術(shù)雨未來。這次講座為我們詳細地講解了區(qū)塊鏈的產(chǎn)生和發(fā)展,由匿名作者中本聰發(fā)布的《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》白皮書,演化成為今天這個比特幣體系。這次講座讓我對比特幣、區(qū)塊鏈的歷史有了系統(tǒng)的了解,對于區(qū)塊鏈的技術(shù)也有了較為詳細的認(rèn)識,明白了這個機制是怎么正常運作的。
(6)講座主題為漏洞挖掘及攻防技術(shù)。
通過這次講座,對漏洞挖掘有個基本的了解。我認(rèn)為想提高漏洞挖掘能力的方法要做到細心、耐心、會看、會記、懂收集、勤動手、愛學(xué)習(xí)。 細心放在第一位,是因為細心真的是非常非常非常重要。耐心同細心一樣重要,可以說是一對cp。 會看,會記就是要多看多記,多看漏洞詳情,多看技術(shù)文章,漏洞詳情可以在烏云看,還有網(wǎng)上很多人分享的案例,主要是烏云。勤動手,當(dāng)你看了大量漏洞,記了大量筆記,這個時候,我相信你最需要的,就是實戰(zhàn),實戰(zhàn)是可以把所學(xué)所看融會貫通的最快方法,沒有之一,只有實戰(zhàn)可以鍛煉自己的挖洞能力,和效率。看到新的漏洞多去搭建環(huán)境復(fù)現(xiàn),這也是對能力的一種提升。
自認(rèn)為寫得最好一篇博客是?為什么?
20189216 2018-2019-2 《密碼與安全新技術(shù)專題》第二次作業(yè)
這篇博客的是關(guān)于量子密碼的。通過老師上課的內(nèi)容來進行歸納總結(jié),從研究背景、量子密碼基本物理概念、典型協(xié)議和基本模型三個方面。對上課中存在的疑問以及對有關(guān)知識點的理解不透徹課后查詢資料,如對薛定諤的貓的概念的理解、量子Grover算法等等。量子密碼學(xué)的理論基礎(chǔ)是量子力學(xué),不同于以往理論基礎(chǔ)是數(shù)學(xué)的密碼學(xué)。如果用量子密碼學(xué)傳遞數(shù)據(jù),則此數(shù)據(jù)將不會被任意擷取或被插入另一段具有惡意的數(shù)據(jù),數(shù)據(jù)流將可以安全地被編碼及譯碼。而編碼及譯碼的工具就是隨機的序列(bit-strings),也可以稱他為金鑰(Key)。另外就量子密鑰分發(fā)這個方面查閱了頂會上的最新的論文,理解其最新研究現(xiàn)狀。
各組同學(xué)匯報總結(jié)
(1)Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale
應(yīng)用程序市場的審查流程預(yù)計具有可擴展性和有效性。 然而,今天的審查機制很慢,并且不太能夠捕獲新的威脅。 文中研究發(fā)現(xiàn)通過利用構(gòu)建和傳播Android惡意軟件的方式可以找到更強大的解決方案,這通常是通過重新打包具有類似惡意組件的合法應(yīng)用程序。 結(jié)果,這種攻擊有效載荷通常從相同重新包裝起源的那些中脫穎而出并且也出現(xiàn)在不應(yīng)該彼此相關(guān)的應(yīng)用中。基于這一觀察,我們開發(fā)了一種名MassVet的新技術(shù),用于大規(guī)模審查應(yīng)用程序,而無需了解惡意軟件的外觀和行為方式。與通常使用重量級程序分析技術(shù)的現(xiàn)有檢測機制不同,文中的方法只是將提交的應(yīng)用程序與已經(jīng)在市場上的所有應(yīng)用程序進行比較,重點關(guān)注那些共享類似UI結(jié)構(gòu)(表示可能的重新打包關(guān)系)和共性的區(qū)別。在那些看似無關(guān)的人中。一旦公共庫和其他合法代碼重用被刪除,這種差異/通用程序組件就會變得非常可疑。在研究中,在一個有效的相似性比較算法之上構(gòu)建了這個“DiffCom”分析,該算法將應(yīng)用程序的UI結(jié)構(gòu)或方法的控制流圖的顯著特征映射到一個快速比較的值。作者在流處理引擎上實施了MassVet,并評估了來自全球33個應(yīng)用市場的近120萬個應(yīng)用程序,即Google Play的規(guī)模。研究表明,該技術(shù)可以在10秒內(nèi)以低錯誤檢測率審核應(yīng)用程序。此外,它在檢測覆蓋率方面優(yōu)于VirusTotal(NOD32,賽門鐵克,邁克菲等)的所有54臺掃描儀,捕獲了超過10萬個惡意應(yīng)用程序,包括20多個可能的零日惡意軟件和數(shù)百萬次安裝的惡意軟件。仔細觀察這些應(yīng)用程序可以發(fā)現(xiàn)有趣的新觀察結(jié)果:例如,谷歌的檢測策略和惡意軟件作者的對策導(dǎo)致某些Google Play應(yīng)用程序的神秘消失和重新出現(xiàn)。
檢測思路如下:
核心技術(shù)結(jié)構(gòu):
MassVet結(jié)構(gòu)
(2)Spectre Attacks: Exploiting Speculative Execution
通過他們的匯報知道什么是預(yù)測執(zhí)行。簡單來說就是一些具有預(yù)測執(zhí)行能力的新型處理器,可以估計即將進行的指令,采用預(yù)先計算的方法來加快整個處理過程。預(yù)測執(zhí)行的設(shè)計理念是為了加速大概率事件。預(yù)測執(zhí)行是高速處理器使用的一種技術(shù),通過考慮可能的未來執(zhí)行路徑并提前地執(zhí)行其中的指令來提高性能。例如,當(dāng)程序的控制流程取決于物理內(nèi)存中未緩存的值時,可能需要幾百個時鐘周期才能知道該值。除了通過空閑浪費這些周期之外,過程還會控制控制流的方向,保存其寄存器狀態(tài)的檢查點并且繼續(xù)在推測的路徑上推測性地執(zhí)行該程序。當(dāng)值從存儲器中偶然到達時,處理器檢查最初猜測的正確性。如果猜測錯誤,則處理器將寄存器狀態(tài)恢復(fù)為存儲的檢查點并丟棄(不正確的)預(yù)測執(zhí)行,如果猜測是正確的,則該部分代碼已被執(zhí)行過,不需要再次執(zhí)行,因此帶來了顯著的性能增益。可以發(fā)現(xiàn),如果預(yù)測錯誤,即便程序真正執(zhí)行到這里時錯誤結(jié)果被丟棄,但錯誤的結(jié)果還是短暫的出現(xiàn)在寄存器中,在被丟棄之前,這部分?jǐn)?shù)據(jù)就很容易被泄露。
Spectre Attacks(幽靈攻擊)
現(xiàn)代處理器使用分支預(yù)測和推測執(zhí)行來最大化性能。 例如,如果分支的目標(biāo)取決于正在讀取的內(nèi)存值,則CPU將嘗試獲取目標(biāo)并嘗試提前執(zhí)行。 當(dāng)內(nèi)存值最終到達時,CPU丟棄或提交推測計算。 推測邏輯在執(zhí)行方式上是不忠實的,可以訪問受害者的內(nèi)存和寄存器,并且可以執(zhí)行具有可測量副作用的操作。
幽靈攻擊涉及誘使受害者以規(guī)范的方式執(zhí)行在正確的程序執(zhí)行期間不會發(fā)生的操作以及泄漏受害者的操作,可以通過側(cè)信道向外界提供的機密信息。幽靈攻擊結(jié)合了來自側(cè)信道攻擊,故障攻擊和回歸導(dǎo)向編程的方法,可以從受害者的內(nèi)存中讀取任意任意位置的內(nèi)容。 更廣泛地說,推測性執(zhí)行實施違反了支持?jǐn)?shù)字軟件安全機制的安全假設(shè),包括操作系統(tǒng)進程分離,靜態(tài)分析,容器化,即時(JIT)編譯以及對緩存的定時/側(cè)通道攻擊的對策。 這些攻擊對實際系統(tǒng)構(gòu)成嚴(yán)重威脅,因為在用于數(shù)百萬臺設(shè)備的英特爾,AMD和ARM的微處理器中發(fā)現(xiàn)了漏洞預(yù)測執(zhí)行的功能。
幽靈攻擊就像字面所說的意思一樣,來無影去無蹤,當(dāng)攻擊發(fā)生時受害者在毫無察覺的情況下就被CPU的預(yù)測執(zhí)行功能“出賣”了。
攻擊過程及結(jié)果
攻擊流程圖如下:
獲取目標(biāo)內(nèi)存地址的技術(shù)本論文沒有介紹,個人以為可以堆內(nèi)存地址進行監(jiān)控,選擇頻繁被修改的地址。
攻擊示例程序中的受害代碼采用上面的例子,交替輸入有效和惡意的參數(shù):
在通過直接讀取該處cache中的值確定攻擊是否命中,當(dāng)讀取速度小于某個經(jīng)驗值時,則認(rèn)為該數(shù)據(jù)在高速緩存中,判斷為命中。當(dāng)命中某個數(shù)值達到一定次數(shù)時判定命中結(jié)果:
相似的攻擊手段:meltdown
Meltdown是一種類似的微體系結(jié)構(gòu)攻擊,它利用無序執(zhí)行來泄漏目標(biāo)的物理內(nèi)存。 Meltdown在兩個主要方面與Spectre Attacks截然不同。 首先,與Spectre不同,Meltdown不使用分支預(yù)測來實現(xiàn)推測執(zhí)行。 相反,它依賴于觀察,當(dāng)一條指令導(dǎo)致一個軟中斷時,正在無序執(zhí)行的指令中止。第二,Meltdown利用特定于英特爾處理器的特權(quán)升級漏洞,由此 推測執(zhí)行的指令可以繞過內(nèi)存保護。 結(jié)合這些問題,Meltdown從用戶空間訪問內(nèi)核內(nèi)存。 此訪問會導(dǎo)致軟中斷,但在發(fā)出軟中斷之前,訪問后面的代碼會通過緩存通道泄漏所訪問內(nèi)存的內(nèi)容。與Meltdown不同,Spectre攻擊適用于非Intel處理器,包括AMD和ARM處理器。 此外,KAISER補丁已被廣泛應(yīng)用于對Meltdown攻擊的緩解,但不能防止幽靈攻擊。
(3)AllYourGPSAreBelongToUs: TowardsStealthyManipulationofRoadNavigationSystems
他們所選論文主要探討了對道路導(dǎo)航系統(tǒng)進行隱身操縱攻擊的可行性目標(biāo)是觸發(fā)假轉(zhuǎn)向?qū)Ш?#xff0c;引導(dǎo)受害者到達錯誤的目的地而不被察覺。其主要想法是略微改變GPS位置,以便假冒的導(dǎo)航路線與實際道路的形狀相匹配并觸發(fā)實際可能的指示。為了證明可行性,該論文首先通過實施便攜式GPS欺騙器并在真實汽車上進行測試來執(zhí)行受控測量。然后,該論文設(shè)計一個搜索算法來實時計算GPS移位和受害者路線。該論文使用追蹤駕駛模擬(曼哈頓和波士頓的600輛出租車道路)進行廣泛的評估,然后通過真實駕駛測試(攻擊我們自己的車)來驗證完整的攻擊。最后,該研究組在美國和中國使用駕駛模擬器進行欺騙性用戶研究,結(jié)果顯示95%的參與者遵循導(dǎo)航?jīng)]有意識到這種攻擊就到了錯誤的目的地。論文提出了一種秘密操縱道路導(dǎo)航系統(tǒng)的攻擊方法。該算法利用了現(xiàn)實中出租車行駛軌跡,并對算法進行了廣泛的評估,實現(xiàn)了攻擊算法和一個低成本的便攜式GPS欺騙器.在道路上的實際測量和駕駛測試證實了攻擊的可行性,證明在道路行駛過程中人為的因素可以影響攻擊是否成功。這些結(jié)果表明,有些司機常見的駕駛習(xí)慣大概率會讓他們遭受到GPS欺騙攻擊,并對結(jié)果進行了分析和提出了相應(yīng)的對策。
論文的研究思路
1、首先本文介紹了兩種攻擊GPS信號的方法強制接管和平滑接管。強制接管,欺騙者只是以高功率發(fā)送錯誤信號,導(dǎo)致受害者失去對衛(wèi)星的跟蹤并鎖定更強的欺騙信號。平滑接管,接管開始于發(fā)送與原始信號同步的信號,然后逐漸超過原始信號以引起遷移。平滑接管隱秘性,強制接管會在接收到的信號強度中產(chǎn)生異常跳躍,平滑接管需要特殊的硬件來實時跟蹤并與受害者位置處的原始信號同步,價格更加昂貴。
2、接下來介紹了本文使用的便攜式的欺騙設(shè)備HarkrfOne。由四個組件組成分別是HackRFOne-based前端,Raspberry Pi,便攜式電源和天線。整體器件可以放在一個小盒子里我們將其連接到頻率范圍在700 MHz至2700 MHz之間的天線,覆蓋民用GPS頻段L1(1575.42兆赫),Raspberry Pi 可以用作中央服務(wù)器,它運行支持SSH的Raspbian Jessie操作系統(tǒng)和LAMP堆棧服務(wù)器。GPS衛(wèi)星信號由一個名為的開源軟件生成在Raspberry Pi上運行的無線攻擊發(fā)射盒(WALB)。 Raspberry Pi具有蜂窩網(wǎng)絡(luò)連接,并支持通過SSH進行遠程訪問(Se-并支持通過SSH(Se-cure Shell)。通過控制Raspberry Pi,我們可以手動或使用腳本來獲取實時GPS位置信息。我們使用10000 mAh移動電源作為整個系統(tǒng)的電源。所有組件都是現(xiàn)成的。總費用大約是223美元(175美元+ 35美元+ 10美元+ 3美元)。
3、接著分析了GPS欺騙的可行性:如果攻擊者隨機改變導(dǎo)航設(shè)備的GPS信息,則駕駛員可以容易地注意到路線信息與物理路況之間的不一致。例如,欺騙的GPS位置可以觸發(fā)導(dǎo)航系統(tǒng)指示“轉(zhuǎn)彎”,但是在實際道路上沒有辦法向左轉(zhuǎn)。為了讓駕駛員相信他在原始路線上駕駛。如何使攻擊更加隱蔽?關(guān)鍵是要找到一條模仿真實道路形狀的虛擬路線。在這樣,導(dǎo)航指令可以與物理世界保持一致。另一個影響因素是導(dǎo)航系統(tǒng)通常會顯示第一人稱視角。司機沒有看到整個路線,而是關(guān)注當(dāng)前路線和下一個轉(zhuǎn)彎,這可能會增加攻擊者成功的機會。
4、攻擊的原理:
(1)受害者是紐約市的旅行者,他不熟悉該地區(qū),因此依靠GPS應(yīng)用程序進行導(dǎo)航。
(2)圖3a顯示受害者正在從新澤西州的漢密爾頓公園(P)開車到曼哈頓的帝國大廈(D)。
(3)假設(shè)攻擊者接管受害者在Lincoln Tun nel(A)出口處的GPS接收器,如圖3c所示。
(4)攻擊者創(chuàng)建錯誤的GPS信號以將GPS位置設(shè)置為附近的“主機”位置B.為了應(yīng)對錯誤的位置漂移,導(dǎo)航系統(tǒng)將重新計算B和D之間的新路線。我們稱之為新的路線鬼魂路線。
(5)在物理道路上,受害者仍然在位置A并開始按照應(yīng)用程序的逐向?qū)Ш健M瑫r,導(dǎo)航應(yīng)用程序不斷接收欺騙的GPS信號。最終,受害者將最終到達不同的地方C.注意B與D的路線形狀類似于A與C的路線。
(6)也即是受害者的原始導(dǎo)航路線為P→D; 在位置A,欺騙者將GPS設(shè)置為幻影位置B,其迫使導(dǎo)航系統(tǒng)生成新的路線B→D。在逐向?qū)Ш街?#xff0c;受害者實際上在物理世界中從A行進到C。
5、攻擊的算法
(1)基本攻擊算法
如算法1所示,基本算法首先從距離綁定?的所有連接點中,從實際位置Loca中選擇一個鬼位置Loca。然后, 計算從鬼位置到目的地的鬼導(dǎo)航路由Γg=(SG1,Sg2,.,sgm)。為了找到更多的受害者路線盡可能,我們通過m深度寬度優(yōu)先搜索從實際位置遍歷圖.我們在每一步都保持符合以下條件的候選路線:
- 轉(zhuǎn)向模式匹配:為了確保幽靈路由的導(dǎo)航指令可以應(yīng)用于受害者路由,我們需要匹配兩條路由的轉(zhuǎn)彎模式:φ(svi,svi 1)和φ(Sgi), SGI 1)∈相同的機動指令類別。
- 分段長度匹配:給定一個速度刻度因子?速度,鬼魂的旅行距離應(yīng)在(1±?)倍于受害者實際TRA的范圍內(nèi) 每個節(jié)段上的距離一樣,這保證了在重影和受害者路由上的段長度是相似的。
(2)迭代攻擊算法
在基本攻擊中,攻擊者只將GPS位置從LOCA移動到LOCF。這里,我們提出了一種迭代攻擊,使攻擊者能夠在不同位置創(chuàng)建多個漂移, 受害者正在開車。通過迭代地應(yīng)用基本攻擊算法,可以顯著提高攻擊性能,因為可以使用部分匹配的受害者-重影路由,在受害者移動時搜索新路線。如算法2所示,對于每次迭代,我們首先檢查攻擊目標(biāo)是否已經(jīng)實現(xiàn)。如果不是,我們在新幽靈r上創(chuàng)建另一個位置移位。 從前一次迭代中提取出分段,并應(yīng)用基本的搜索算法。攻擊者的目標(biāo)可能是“到達預(yù)先定義的目標(biāo)”或“輸入錯誤的方式”,這有助于終止 早期搜索。
(4)With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning
遷移學(xué)習(xí)
(1)遷移學(xué)習(xí)過程
學(xué)生模型通過復(fù)制教師模型的前N-1層來初始化,并增加了一層全連接層用于分類,之后使用自己的數(shù)據(jù)集對學(xué)生模型進行訓(xùn)練,訓(xùn)練過程中,前K層是被凍結(jié)的,即它們的權(quán)重是固定的,只有最后N-K層的權(quán)重才會被更新。前K層之所以在訓(xùn)練期間要被凍結(jié),是因為這些層的輸出已經(jīng)代表了學(xué)生任務(wù)中的有意義的特征,學(xué)生模型可以直接使用這些特征,凍結(jié)它們可以降低訓(xùn)練成本和減少所需的訓(xùn)練數(shù)據(jù)集。
(2)遷移學(xué)習(xí)方法
根據(jù)訓(xùn)練過程中被凍結(jié)的層數(shù)K,可以把遷移學(xué)習(xí)分為以下3種方法:深層特征提取器(Deep-layer Feature Extractor)、中層特征提取器(Mid-layer Feature Extractor)、全模型微調(diào)(Full Model Fine-tuning)。
- Deep-layer Feature Extractor:K=N-1,學(xué)生任務(wù)與教師任務(wù)非常相似,需要的訓(xùn)練成本最小
- Mid-layer Feature Extractor:K<N-1,允許更新更多的層,有助于學(xué)生為自己的任務(wù)進行更多的優(yōu)化
- Full Model Fine-tuning:K=0,學(xué)生任務(wù)和教師任務(wù)存在顯著差異,所有層都需要微調(diào)
對遷移學(xué)習(xí)的攻擊
(1)對抗性攻擊
由于機器學(xué)習(xí)算法的輸入形式是一種數(shù)值型向量(numeric vectors),所以攻擊者就會通過設(shè)計一種有針對性的數(shù)值型向量從而讓機器學(xué)習(xí)模型做出誤判,這便被稱為對抗性攻擊。
和其他攻擊不同,對抗性攻擊主要發(fā)生在構(gòu)造對抗性數(shù)據(jù)的時候,之后該對抗性數(shù)據(jù)就如正常數(shù)據(jù)一樣輸入機器學(xué)習(xí)模型并得到欺騙的識別結(jié)果。如給一個輸入圖像加入不易察覺的擾動,使模型將輸入圖像誤分類成其他類別。
對抗性攻擊可分為白盒攻擊和黑盒攻擊。
白盒攻擊:攻擊者能夠獲知分類器的內(nèi)部體系結(jié)構(gòu)及所有權(quán)重。它允許攻擊者對模型進行無限制的查詢,直至找到一個成功地對抗性樣本。這種攻擊常常在最小的擾動下獲得接近100%的成功,因為攻擊者可以訪問深度神經(jīng)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),所以他們可以找到誤分類所需的最小擾動量。然而白盒攻擊一般被認(rèn)為是不切實際的,因為很少會有系統(tǒng)公開其模型的內(nèi)部結(jié)構(gòu)。
黑盒攻擊:攻擊者不知道受害者的內(nèi)部結(jié)構(gòu),攻擊者要么嘗試反向工程DNN的決策邊界,建一個復(fù)制品用于生成對抗樣本,要么反復(fù)查詢生成中間對抗樣本并不斷迭代改進。黑盒攻擊容易被防御。
對抗樣本是對干凈圖像進行處理后的樣本,被故意擾亂(如加噪聲等)以達到迷惑或者愚弄機器學(xué)習(xí)技術(shù)的目的,包括深度神經(jīng)網(wǎng)絡(luò)。
(2)本文攻擊模式
由于當(dāng)前模型的默認(rèn)訪問模式是:
- 教師模型被深度學(xué)習(xí)服務(wù)平臺公開。
- 學(xué)生模型離線訓(xùn)練且不公開。
本文提出了一個新的針對遷移學(xué)習(xí)的對抗性攻擊,即對教師模型白盒攻擊,對學(xué)生模型黑盒攻擊。攻擊者知道教師模型的內(nèi)部結(jié)構(gòu)以及所有權(quán)重,但不知道學(xué)生模型的所有權(quán)值和訓(xùn)練數(shù)據(jù)集。
(3)本文具體攻擊思路
攻擊目標(biāo):把source圖貓誤識別為target圖狗
本文的攻擊思路:首先將target圖狗輸入到教師模型中,捕獲target圖在教師模型第K層的輸出向量。之后對source圖加入擾動,使得加過擾動的source圖(即對抗樣本)在輸入教師模型后,在第K層產(chǎn)生非常相似的輸出向量。由于前饋網(wǎng)絡(luò)每一層只觀察它的前一層,所以如果我們的對抗樣本在第K層的輸出向量可以完美匹配到target圖的相應(yīng)的輸出向量,那么無論第K層之后的層的權(quán)值如何變化,它都會被誤分類到和target圖相同的標(biāo)簽。
(4)如何計算擾動
本文通過求解一個有約束的最優(yōu)化問題來計算擾動。目標(biāo)是是模擬隱藏層第K層的輸出向量,約束是擾動不易被人眼察覺。即在擾動程度perturb_magnitude小于一定約束值(擾動預(yù)算P)的前提下,最小化對抗樣本(擾動后的source image)第K層的輸出向量與target image 第K層的輸出向量的歐式距離。前人計算擾動程度都是使用Lp范數(shù),但是它無法衡量人眼對于圖像失真程度的感知。所以本文使用DSSIM計算擾動程度,它是一種對圖像失真度的客觀測量指標(biāo)。
DSSIM
(5) 目標(biāo)攻擊/非目標(biāo)攻擊
目標(biāo)攻擊:將source image x_s 誤分類成target image s_t 所屬標(biāo)簽
非目標(biāo)攻擊:將source image x_s 誤分類成任意其他的source image 所屬標(biāo)簽
非目標(biāo)攻擊需要確定一個“方向”把source image推出它自己的決策邊界。但是要預(yù)測這個“方向“是非常難的,所以本文的解決方法是,把每個目標(biāo)攻擊的攻擊目標(biāo)都試一遍,然后選出與source image第K層輸出向量距離最小的類別作為目標(biāo)。
(6)影響攻擊效果的因素
- 擾動預(yù)算P
擾動預(yù)算P的選擇直接關(guān)系到攻擊的隱蔽性。P越小攻擊成功率越低,通過使用DSSIM度量方法測量圖像失真,我們發(fā)現(xiàn)P=0.003是人臉圖像的一個安全閾值。其對應(yīng)的L2范數(shù)值明顯小于前人的結(jié)果。 - 距離度量方法
距離度量方法也會影響攻擊效果,使用DSSIM產(chǎn)生的擾動不易察覺,使用L2的擾動更明顯。DSSIM能考慮到圖像的潛在結(jié)構(gòu),而L2平等對待每一個像素,并經(jīng)常在臉部產(chǎn)生明顯的“紋身樣” 圖案。 - 遷移學(xué)習(xí)方法
遷移學(xué)習(xí)方法也非常影響攻擊效果,本文的攻擊對于Deep-layer Feature Extractor是非常有效的,但對于Full Model Fine-tuning無效。
(7)如何選擇攻擊層
攻擊者首先要判斷學(xué)生模型是否使用了Deep-layer Feature Extractor,因為它是最易被攻擊的方法。
如果學(xué)生模型的遷移學(xué)習(xí)方法是Deep-layer Feature Extractor ,攻擊者需要攻擊第N-1層以獲得最佳的攻擊性能;
如果學(xué)生模型的遷移學(xué)習(xí)方法不是Deep-layer Feature Extractor ,攻擊者可以嘗試通過迭代瞄準(zhǔn)不同的層,從最深層開始,找到最優(yōu)的攻擊層。
(8) 給定學(xué)生模型確定其教師模型
前面我們的誤分類攻擊是假設(shè)了攻擊者知道教師模型是哪個的,接下來我們放寬這個條件,考慮攻擊者不知道教師模型是哪個的情況。今天的深度學(xué)習(xí)服務(wù)(Google Cloud ML, Facebook PyTorch, Microsoft CNTK)會幫用戶從一系列教師模型中生成學(xué)生模型。這種情況下,攻擊者就得自己尋找他要攻擊的學(xué)生模型對應(yīng)的教師模型。本文設(shè)計了一種指紋方法,只需要對學(xué)生模型進行少量圖像查詢就可以確定他的教師模型。
我們假設(shè)給定一個學(xué)生模型,攻擊者可以知道它的教師模型候選池,候選池中的一個教師模型生成了該學(xué)生模型。這個假設(shè)是現(xiàn)實的,因為對于常規(guī)的深度學(xué)習(xí)任務(wù),目前只有少數(shù)幾個公開可用的高質(zhì)量、預(yù)訓(xùn)練過的模型。比如Google Cloud ML 給圖像分類任務(wù)提供的是Inception v3 , MobileNet及其變體作為教師模型。所以攻擊者只需要在這一組候選模型中識別。
如果基尼系數(shù)非常大,說明該學(xué)生模型對應(yīng)的教師模型不在候選池中,或者該學(xué)生模型選擇的不是Deep-layer Feature Extractor的遷移學(xué)習(xí)方法。
應(yīng)對本文攻擊的防御方法
論文還提出了3種針對本文攻擊的防御方法,其中最可行的是修改學(xué)生模型,更新層權(quán)值,確定一個新的局部最優(yōu)值,在提供相當(dāng)?shù)幕蛘吒玫姆诸愋Ч那疤嵯聰U大它和教師模型之間的差異。這又是一個求解有約束的最優(yōu)化問題,約束是對于每個訓(xùn)練集中的x,讓教師模型第K層的輸出向量和學(xué)生模型第K層的輸出向量之間的歐氏距離大于一個閾值,在這個前提下,讓預(yù)測結(jié)果和真實結(jié)果的交叉熵損失最小。
(5)Safeinit: Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities
safeinit
llvm/clang架構(gòu)
LLVM包括了一個狹義的LLVM和一個廣義的LLVM。廣義的LLVM其實就是指整個LLVM編譯器架構(gòu),包括了前端、后端、優(yōu)化器、眾多的庫函數(shù)以及很多的模塊;而狹義的LLVM其實就是聚焦于編譯器后端功能(代碼生成、代碼優(yōu)化等)的一系列模塊和庫。Clang是一個C++編寫、基于LLVM的C/C++/Objective-C/Objective-C++編譯器。Clang是一個高度模塊化開發(fā)的輕量級編譯器,它的編譯速度快、占用內(nèi)存小、非常方便進行二次開發(fā)。上圖是LLVM和Clang的關(guān)系:Clang其實大致上可以對應(yīng)到編譯器的前端,主要處理一些和具體機器無關(guān)的針對語言的分析操作;編譯器的優(yōu)化器部分和后端部分其實就是我們之前談到的LLVM后端(狹義的LLVM);而整體的Compiler架構(gòu)就是LLVM架構(gòu)。
safeinit架構(gòu)
1)通過調(diào)整工具鏈來確保所有堆棧和堆分配始終初始化,從而減輕通用程序中的這些錯誤。 SafeInit在編譯器級別實現(xiàn)。
2)必須在編譯器本身內(nèi)完成。 只需在編譯過程中傳遞額外的加固標(biāo)記即可啟用SafeInit。
如圖編譯器在獲得C/C++文件后,編譯器前端將源文件轉(zhuǎn)換為中間語言(IR),通過初始化、代碼優(yōu)化結(jié)合現(xiàn)存編譯器的優(yōu)化器,之后通過無效數(shù)據(jù)消除、強化分配器最后獲得二進制文件。Safeinit在整個過程中所添加的就是 初始化全部變量、優(yōu)化以及強化分配器,來避免或緩解未初始化值。最后,SafeInit優(yōu)化器提供了非侵入式轉(zhuǎn)換和優(yōu)化,它們與現(xiàn)有的編譯器優(yōu)化(必要時自行修改)以及最終組件(現(xiàn)有“死存儲消除”優(yōu)化的擴展)一起運行。這些構(gòu)建在我們的初始化傳遞和分配器之上,執(zhí)行更廣泛的刪除不必要的初始化代碼,證明我們的解決方案的運行時開銷可以最小化。
初始化:保證堆和棧內(nèi)的局部變量全部初始化
SafeInit在首次使用之前初始化所有局部變量,將局部變量看做新分配的變量處理。SafeInit通過修改編譯器編譯代碼的中間表示(IR),在每個變量進入作用域后進行初始化(例如內(nèi)置memset)。
強化分配器
1)SafeInit的強化分配器可確保在返回應(yīng)用程序之前將所有新分配的內(nèi)存清零。——敏感數(shù)據(jù)的保護
2)通過修改現(xiàn)代高性能堆分配器tcmalloc來實現(xiàn)我們的強化分配器。——提高性能
3)修改了LLVM,以便在啟用SafeInit時將來自新分配的內(nèi)存的讀取視為返回零而不是undef。 ——初始化數(shù)據(jù)
優(yōu)化器:可在提高效率和非侵入性的同時提高SafeInit的性能。優(yōu)化器的主要目標(biāo)是更改現(xiàn)有編譯器中可用的其他標(biāo)準(zhǔn)優(yōu)化,以消除任何不必要的初始化。
1)存儲下沉:存儲到本地的變量應(yīng)盡可能接近它的用途。
2)檢測初始化:檢測初始化數(shù)組(或部分?jǐn)?shù)組)的典型代碼
字符串緩沖區(qū)
3)用于存儲C風(fēng)格的以空字符結(jié)尾的字符串的緩沖區(qū)通常僅以“安全”方式使用,其中永遠不會使用超出空終止符的內(nèi)存中的數(shù)據(jù)。傳遞給已知C庫字符串函數(shù)(例如strcpy和strlen)的緩沖區(qū)是“安全的”,優(yōu)化器檢測到該緩沖區(qū)始終被初始化,可以刪除掉該緩沖區(qū)的初始化代碼。
無效存儲消除(DSE):可以刪除總是被另一個存儲覆蓋而不被讀取的存儲。
1)堆清除:所有堆分配都保證初始化為零,使用零存儲刪除堆內(nèi)存
2)非恒定長度存儲清除:為了刪除動態(tài)堆棧分配和堆分配的不必要初始化
3)交叉塊DSE:可以跨多個基本塊執(zhí)行無效存儲消除
4)只寫緩沖區(qū):通過指定該緩沖區(qū)只用來存儲而不是刪除,就可以將該緩沖區(qū)刪除
評估
本測試的基線配置是clang/LLVM的未修改版本,以及tcmalloc未修改版本。
基準(zhǔn)測試運行在(4核)Intel i7-3770上,內(nèi)存為8GB,運行(64位)Ubuntu 14.04.1。 禁用CPU頻率縮放,并啟用超線程。
安全
開銷
(6)Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning
作者對線性回歸模型的中毒攻擊及其對策進行了第一次系統(tǒng)研究。作者提出了一個針對中毒攻擊和快速統(tǒng)計攻擊的新優(yōu)化框架,該框架需要對培訓(xùn)過程的了解很少。作者還采用原則性方法設(shè)計一種新的魯棒防御算法,該算法在很大程度上優(yōu)于現(xiàn)有的穩(wěn)健回歸方法。作者在醫(yī)療保健,貸款評估和房地產(chǎn)領(lǐng)域的幾個數(shù)據(jù)集上廣泛評估作者提出的攻擊和防御算法。作者在案例研究健康應(yīng)用中證明了中毒攻擊的真實含義。作者終于相信,作者的工作將激發(fā)未來的研究,以開發(fā)更安全的中毒攻擊學(xué)習(xí)算法。
系統(tǒng)架構(gòu):
TRIM算法及成果:
相關(guān)數(shù)據(jù):
(7)ConvolutionalNeuralNetworksforSentenceClassi?cation
論文報告了一系列的卷積神經(jīng)網(wǎng)絡(luò)(CNN)的實驗,這些實驗是在預(yù)先訓(xùn)練過的單詞向量的基礎(chǔ)上訓(xùn)練的,用于句子級的分類任務(wù)。作者發(fā)現(xiàn),一個簡單的CNN具有很少的超參數(shù)調(diào)整和靜態(tài)向量,在多個基準(zhǔn)點上都能達到很好的效果。通過微調(diào)學(xué)習(xí)特定于任務(wù)的向量可以進一步提高性能。此外,作者還建議對體系結(jié)構(gòu)進行簡單的修改,以允許使用特定于任務(wù)的向量和靜態(tài)向量。本文所討論的CNN模型改進了7項任務(wù)中的4項,包括情緒分析和問題分類。
模型介紹:
用一張釋義更明確的圖來講解該模型的結(jié)構(gòu):
感想和體會
自己的收獲
通過本學(xué)期對該課程的學(xué)習(xí),讓我印象最深的就是王老師這種授課模式。總共八次課,前六次每次的專題都不一樣,由不同的老師來講解。然后讓我們自己去頂會找一篇論文來閱讀理解,最后兩次課由我們上臺匯報自己所學(xué)所看。因為準(zhǔn)備跟著導(dǎo)師做的課題是密碼分析。在六次講座中,其中一個老師說的量子密碼,一個老師講的是基于深度學(xué)習(xí)的密碼分析與設(shè)計。我對這兩個專題講座很是感興趣。在之前,我對密碼分析的認(rèn)識很片面,將密碼分析分為以下五種情形:
(1)惟密文攻擊(Ciphertext only)
對于這種形式的密碼分析,破譯者已知的東西只有兩樣:加密算法、待破譯的密文。
(2)已知明文攻擊(Known plaintext)
在已知明文攻擊中,破譯者已知的東西包括:加密算法和經(jīng)密鑰加密形成的一個或多個明文—密文對,即知道一定數(shù)量的密文和對應(yīng)的明文。
(3)選擇明文攻擊(Chosen plaintext)
選擇明文攻擊的破譯者除了知道加密算法外,他還可以選定明文消息,并可以知道對應(yīng)的加密得到的密文,即知道選擇的明文和對應(yīng)的密文。例如,公鑰密碼體制中,攻擊者可以利用公鑰加密他任意選定的明文,這種攻擊就是選擇明文攻擊。
(4) 選擇密文攻擊(Chosen ciphertext)
與選擇明文攻擊相對應(yīng),破譯者除了知道加密算法外,還包括他自己選定的密文和對應(yīng)的、已解密的原文,即知道選擇的密文和對應(yīng)的明文。
(5)選擇文本攻擊(Chosen text)
選擇文本攻擊是選擇明文攻擊與選擇密文攻擊的結(jié)合。破譯者已知的東西包括:加密算法、由密碼破譯者選擇的明文消息和它對應(yīng)的密文,以及由密碼破譯者選擇的猜測性密文和它對應(yīng)的已破譯的明文。
金鑫老師生動給我們上了一課,基于深度學(xué)習(xí)的密碼分析與設(shè)計。通過那次課發(fā)現(xiàn)自己要提高的東西太多,如英語水平,數(shù)學(xué)基礎(chǔ),密碼學(xué)知識儲備,查閱文獻資料,搜索資料的能力。我想王老師最后兩次課讓我們自己去學(xué)習(xí)頂會論文,自己去理解論文,代碼復(fù)現(xiàn),意圖就是為了我們提前做好準(zhǔn)備,提前接觸頂會論文,對大牛發(fā)的論文,對自己感興趣的研究方向上有一定的認(rèn)識,為我們研二做項目寫論文提前做準(zhǔn)備,到那個時候不會無處下手。
自己需要改進的地方
課程的前半部分往往比較認(rèn)真,隨著課程深入,其他課程的任務(wù)比較重,可能投入的認(rèn)真程度有一定下降。就是認(rèn)真努力地程度還有待提高,與自己的目標(biāo)的還有很大的距離,不能把零碎的時間用來學(xué)習(xí),學(xué)習(xí)的效率沒有達到理想的狀態(tài)。
對本課程的建議和意見
首先,老師這種教學(xué)方式很新穎,第一次一門課程由六個老師來講解。我認(rèn)為這樣很好,六個老師有六個不同的上課風(fēng)格,總有一款適合學(xué)生。我覺得老師每次讓我們就一個專題學(xué)習(xí)后寫一篇博客,這樣可以讓我們對專題知識點的總結(jié),可以起到一定的記憶和回顧作用。但是我認(rèn)為最好的作業(yè)應(yīng)該由上課的老師來布置,比如有的知識就需要實踐跑代碼的等等。而且每次由不同的老師來布置,其風(fēng)格和老師上課的風(fēng)格必然是一致的,這樣會讓作業(yè)更加新穎,不會那么單調(diào)枯燥。另外我認(rèn)為授課老師應(yīng)該多加強與學(xué)生的互動。不同的學(xué)生的專業(yè)、興趣、愛好都是不一樣的。所以最后一次的論文理解與代碼復(fù)現(xiàn)我覺得范圍可以放的更大一點,可以由學(xué)生自己的研究方向來定,這樣應(yīng)該會理解的更透徹一點,更明白一點。
轉(zhuǎn)載于:https://www.cnblogs.com/zhengli-5520/p/10993261.html
總結(jié)
以上是生活随笔為你收集整理的20189216 2018-2019-2 《密码与安全新技术专题》课程总结报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言的积木编程,c语言入门第3节,掌握
- 下一篇: ABAP 培训