20189216 2018-2019-2 《密碼與安全新技術專題》課程總結報告

課程學習內容總結

每次做業連接彙總

20189216 2018-2019-2 《密碼與安全新技術專題》第一次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第二次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第三次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第四次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第五次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第六次做業
20189216 2018-2019-2 《密碼與安全新技術專題》第七次做業html

每次講座內容總結

(1)講座的主題爲網絡(Web)安全與與內容安全

張老師從Web應用安全和隱私安全兩個方面爲咱們帶來了一場精彩的講座。經過此次講座,咱們知道常見的Web漏洞有以下幾個:

經過此次講座咱們知道了什麼是SQL注入漏洞、SQL注入分類以及如何判斷等等。
還學習到什麼是XSS跨站腳本攻擊, XSS漏洞分爲兩類:①反射型XSS ②存儲型XSS,認識到XSS的危害,瞭解持久型跨站腳本攻擊場景等等。
學習什麼是CSRF跨站請求僞造漏洞,跨站請求僞造(CSRF)場景,如何上傳漏洞、解析漏洞,什麼是弱口令等等。
在隱私安所有分介紹了用戶軌跡的危害以及機器學習的啓發。前端

(2)講座的主題是量子密碼

經過本次講座咱們知道量子密碼與傳統的密碼系統不一樣,它依賴於物理學做爲安全模式的關鍵方面而不是數學。實質上,量子密碼術是基於單個光子的應用和它們固有的量子屬性開發的不可破解的密碼系統,由於在不干擾系統的狀況下沒法測定該系統的量子狀態。理論上其餘微粒也能夠用,只是光子具備全部須要的品質,它們的行爲相對較好理解,同時又是最有前途的高帶寬通信介質光纖電纜的信息載體。量子密碼學的理論基礎是量子力學,不一樣於以往理論基礎是數學的密碼學。若是用量子密碼學傳遞數據,則此數據將不會被任意擷取或被插入另外一段具備惡意的數據,數據流將能夠安全地被編碼及譯碼。而編碼及譯碼的工具就是隨機的序列(bit-strings),也能夠稱他爲金鑰(Key)。當前,量子密碼研究的核心內容,就是如何利用量子技術在量子信道上安全可靠地分配金鑰。量子密碼通訊如今是很是熱門的問題。當下,我國必須培養這方面的人才,與國外相比,技術不能落後,只有大力發展科學技術,才能在量子密碼通訊的道路上越走越遠!web

(3)講座主題是基於深度學習的密碼分析與設計

經過此次講座瞭解到密碼分析與機器學習、深度學習簡介與現狀、深度學習與密碼分析、深度學習與密碼設計。金鑫老師充滿活力的給咱們帶來一個精彩的講座——基於深度學習的密碼分析與設計。我發現人工智能須要咱們的知識儲備很是足,要有很好的數學基礎,密碼學基礎等等。本次講座使我對人工智能、機器學習和深度學習增長了系統性的認知,以及對深度學習的應用有了更爲寬闊的瞭解。我發現本身對人工智能、深度學習有點感興趣,但是知識儲備遠遠不夠,但願後期本身可以努力培養這方面的知識。算法

(4)講座的主題是信息隱藏

經過此次講座知道了信息隱藏是指將特定用途的消息隱蔽地藏於其餘載體(Cover)中,使得它們難以被發現或者消除,經過可靠提取隱藏的信息,實現隱蔽通訊、內容認證或內容保護功能 。信息隱藏主要包括水印、可視密碼、隱寫等。隨着多媒體技術在通訊領域的普遍應用和飛速發展,信息隱藏及隱寫分析技術成爲信息安全領域的研究熱點。經過夏老師的此次課讓我對信息隱藏和隱寫分析技術等有了基礎的瞭解。最重要的一點是夏老師給咱們提出的四點建議讓我感覺頗深。首先咱們要在平時學習專業課之餘去看一些最新的頂會、期刊文章,增長本身的知識儲備。固然,要想看懂頂會期刊就必須擁有必定的英語水平。老師建議咱們去抽時間學習英語,說好英語,寫好英語。做爲一名計算機的學生,編程天然是少不了的。要想在科研工做上走的更遠,須要擁有良好的編程能力。老師告訴咱們要利用好資源,GitHub上有不少優秀的代碼,不少牛人都值得咱們去學習。最後一點就是無論幹什麼事都要放平心態,我認爲老師說的很是對,我深有感觸。只有遇到問題遇到麻煩鎮定自若,平心靜氣,踏踏實實去盡本身最大的努力完成就能夠了。心態是決定你可否成功的關鍵因素。編程

(5)講座的主題是區塊鏈

經過此次講座知道比特幣概念、比特幣交易的特色、比特幣的特色、區塊鏈技術以及區塊鏈技術雨將來。此次講座爲咱們詳細地講解了區塊鏈的產生和發展,由匿名做者中本聰發佈的《比特幣:一種點對點的電子現金系統》白皮書,演化成爲今天這個比特幣體系。此次講座讓我對比特幣、區塊鏈的歷史有了系統的瞭解,對於區塊鏈的技術也有了較爲詳細的認識,明白了這個機制是怎麼正常運做的。後端

(6)講座主題爲漏洞挖掘及攻防技術。

經過此次講座,對漏洞挖掘有個基本的瞭解。我認爲想提升漏洞挖掘能力的方法要作到細心、耐心、會看、會記、懂收集、勤動手、愛學習。 細心放在第一位,是由於細心真的是很是很是很是重要。耐心同細心同樣重要,能夠說是一對cp。 會看,會記就是要多看多記,多看漏洞詳情,多看技術文章,漏洞詳情能夠在烏雲看,還有網上不少人分享的案例,主要是烏雲。勤動手,當你看了大量漏洞,記了大量筆記,這個時候,我相信你最須要的,就是實戰,實戰是能夠把所學所看融會貫通的最快方法,沒有之一,只有實戰能夠鍛鍊本身的挖洞能力,和效率。看到新的漏洞多去搭建環境復現,這也是對能力的一種提高。數組

自認爲寫得最好一篇博客是?爲何?

20189216 2018-2019-2 《密碼與安全新技術專題》第二次做業
這篇博客的是關於量子密碼的。經過老師上課的內容來進行概括總結,從研究背景、量子密碼基本物理概念、典型協議和基本模型三個方面。對上課中存在的疑問以及對有關知識點的理解不透徹課後查詢資料,如對薛定諤的貓的概念的理解、量子Grover算法等等。量子密碼學的理論基礎是量子力學,不一樣於以往理論基礎是數學的密碼學。若是用量子密碼學傳遞數據,則此數據將不會被任意擷取或被插入另外一段具備惡意的數據,數據流將能夠安全地被編碼及譯碼。而編碼及譯碼的工具就是隨機的序列(bit-strings),也能夠稱他爲金鑰(Key)。另外就量子密鑰分發這個方面查閱了頂會上的最新的論文,理解其最新研究現狀。緩存

各組同窗彙報總結

(1)Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale

應用程序市場的審查流程預計具備可擴展性和有效性。 然而,今天的審查機制很慢,而且不太可以捕獲新的威脅。 文中研究發現經過利用構建和傳播Android惡意軟件的方式能夠找到更強大的解決方案,這一般是經過從新打包具備相似惡意組件的合法應用程序。 結果,這種攻擊有效載荷一般從相同從新包裝起源的那些中脫穎而出而且也出如今不該該彼此相關的應用中。基於這一觀察,咱們開發了一種名MassVet的新技術,用於大規模審查應用程序,而無需瞭解惡意軟件的外觀和行爲方式。與一般使用重量級程序分析技術的現有檢測機制不一樣,文中的方法只是將提交的應用程序與已經在市場上的全部應用程序進行比較,重點關注那些共享相似UI結構(表示可能的從新打包關係)和共性的區別。在那些看似無關的人中。一旦公共庫和其餘合法代碼重用被刪除,這種差別/通用程序組件就會變得很是可疑。在研究中,在一個有效的類似性比較算法之上構建了這個「DiffCom」分析,該算法將應用程序的UI結構或方法的控制流圖的顯着特徵映射到一個快速比較的值。做者在流處理引擎上實施了MassVet,並評估了來自全球33個應用市場的近120萬個應用程序,即Google Play的規模。研究代表,該技術能夠在10秒內以低錯誤檢測率審覈應用程序。此外,它在檢測覆蓋率方面優於VirusTotal(NOD32,賽門鐵克,邁克菲等)的全部54臺掃描儀,捕獲了超過10萬個惡意應用程序,包括20多個可能的零日惡意軟件和數百萬次安裝的惡意軟件。仔細觀察這些應用程序能夠發現有趣的新觀察結果:例如,谷歌的檢測策略和惡意軟件做者的對策致使某些Google Play應用程序的神祕消失和從新出現。安全

檢測思路以下:

核心技術結構:
MassVet結構
服務器

(2)Spectre Attacks: Exploiting Speculative Execution

經過他們的彙報知道什麼是預測執行。簡單來講就是一些具備預測執行能力的新型處理器,能夠估計即將進行的指令,採用預先計算的方法來加快整個處理過程。預測執行的設計理念是爲了加速大機率事件。預測執行是高速處理器使用的一種技術,經過考慮可能的將來執行路徑並提早地執行其中的指令來提升性能。例如,當程序的控制流程取決於物理內存中未緩存的值時,可能須要幾百個時鐘週期才能知道該值。除了經過空閒浪費這些週期以外,過程還會控制控制流的方向,保存其寄存器狀態的檢查點而且繼續在推測的路徑上推測性地執行該程序。當值從存儲器中偶然到達時,處理器檢查最初猜想的正確性。若是猜想錯誤,則處理器將寄存器狀態恢復爲存儲的檢查點並丟棄(不正確的)預測執行,若是猜想是正確的,則該部分代碼已被執行過,不須要再次執行,所以帶來了顯著的性能增益。能夠發現,若是預測錯誤,即使程序真正執行到這裏時錯誤結果被丟棄,但錯誤的結果仍是短暫的出如今寄存器中,在被丟棄以前,這部分數據就很容易被泄露。
Spectre Attacks(幽靈攻擊)
現代處理器使用分支預測和推測執行來最大化性能。 例如,若是分支的目標取決於正在讀取的內存值,則CPU將嘗試獲取目標並嘗試提早執行。 當內存值最終到達時,CPU丟棄或提交推測計算。 推測邏輯在執行方式上是不忠實的,能夠訪問受害者的內存和寄存器,而且能夠執行具備可測量反作用的操做。
幽靈攻擊涉及誘使受害者以規範的方式執行在正確的程序執行期間不會發生的操做以及泄漏受害者的操做,能夠經過側信道向外界提供的機密信息。幽靈攻擊結合了來自側信道攻擊,故障攻擊和迴歸導向編程的方法,能夠從受害者的內存中讀取任意任意位置的內容。 更普遍地說,推測性執行實施違反了支持數字軟件安全機制的安全假設,包括操做系統進程分離,靜態分析,容器化,即時(JIT)編譯以及對緩存的定時/側通道攻擊的對策。 這些攻擊對實際系統構成嚴重威脅,由於在用於數百萬臺設備的英特爾,AMD和ARM的微處理器中發現了漏洞預測執行的功能。
幽靈攻擊就像字面所說的意思同樣,來無影去無蹤,當攻擊發生時受害者在毫無察覺的狀況下就被CPU的預測執行功能「出賣」了。
攻擊過程及結果
攻擊流程圖以下:

獲取目標內存地址的技術本論文沒有介紹,我的覺得能夠堆內存地址進行監控,選擇頻繁被修改的地址。
攻擊示例程序中的受害代碼採用上面的例子,交替輸入有效和惡意的參數:

在經過直接讀取該處cache中的值肯定攻擊是否命中,當讀取速度小於某個經驗值時,則認爲該數據在高速緩存中,判斷爲命中。當命中某個數值達到必定次數時斷定命中結果:

類似的攻擊手段:meltdown
Meltdown是一種相似的微體系結構攻擊,它利用無序執行來泄漏目標的物理內存。 Meltdown在兩個主要方面與Spectre Attacks大相徑庭。 首先,與Spectre不一樣,Meltdown不使用分支預測來實現推測執行。 相反,它依賴於觀察,當一條指令致使一個軟中斷時,正在無序執行的指令停止。第二,Meltdown利用特定於英特爾處理器的特權升級漏洞,由此 推測執行的指令能夠繞過內存保護。 結合這些問題,Meltdown從用戶空間訪問內核內存。 此訪問會致使軟中斷,但在發出軟中斷以前,訪問後面的代碼會經過緩存通道泄漏所訪問內存的內容。與Meltdown不一樣,Spectre攻擊適用於非Intel處理器,包括AMD和ARM處理器。 此外,KAISER補丁已被普遍應用於對Meltdown攻擊的緩解,但不能防止幽靈攻擊。

(3)AllYourGPSAreBelongToUs: TowardsStealthyManipulationofRoadNavigationSystems

他們所選論文主要探討了對道路導航系統進行隱身操縱攻擊的可行性目標是觸發假轉向導航,引導受害者到達錯誤的目的地而不被察覺。其主要想法是略微改變GPS位置,以便假冒的導航路線與實際道路的形狀相匹配並觸發實際可能的指示。爲了證實可行性,該論文首先經過實施便攜式GPS欺騙器並在真實汽車上進行測試來執行受控測量。而後,該論文設計一個搜索算法來實時計算GPS移位和受害者路線。該論文使用追蹤駕駛模擬(曼哈頓和波士頓的600輛出租車道路)進行普遍的評估,而後經過真實駕駛測試(攻擊咱們本身的車)來驗證完整的攻擊。最後,該研究組在美國和中國使用駕駛模擬器進行欺騙性用戶研究,結果顯示95%的參與者遵循導航沒有意識到這種攻擊就到了錯誤的目的地。論文提出了一種祕密操縱道路導航系統的攻擊方法。該算法利用了現實中出租車行駛軌跡,並對算法進行了普遍的評估,實現了攻擊算法和一個低成本的便攜式GPS欺騙器.在道路上的實際測量和駕駛測試證明了攻擊的可行性,證實在道路行駛過程當中人爲的因素能夠影響攻擊是否成功。這些結果代表,有些司機常見的駕駛習慣大機率會讓他們遭受到GPS欺騙攻擊,並對結果進行了分析和提出了相應的對策。
論文的研究思路
一、首先本文介紹了兩種攻擊GPS信號的方法強制接管和平滑接管。強制接管,欺騙者只是以高功率發送錯誤信號,致使受害者失去對衛星的跟蹤並鎖定更強的欺騙信號。平滑接管,接管開始於發送與原始信號同步的信號,而後逐漸超過原始信號以引發遷移。平滑接管隱祕性,強制接管會在接收到的信號強度中產生異常跳躍,平滑接管須要特殊的硬件來實時跟蹤並與受害者位置處的原始信號同步,價格更加昂貴。
二、接下來介紹了本文使用的便攜式的欺騙設備HarkrfOne。由四個組件組成分別是HackRFOne-based前端,Raspberry Pi,便攜式電源和天線。總體器件能夠放在一個小盒子裏咱們將其鏈接到頻率範圍在700 MHz至2700 MHz之間的天線,覆蓋民用GPS頻段L1(1575.42兆赫),Raspberry Pi 能夠用做中央服務器,它運行支持SSH的Raspbian Jessie操做系統和LAMP堆棧服務器。GPS衛星信號由一個名爲的開源軟件生成在Raspberry Pi上運行的無線攻擊發射盒(WALB)。 Raspberry Pi具備蜂窩網絡鏈接,並支持經過SSH進行遠程訪問(Se-並支持經過SSH(Se-cure Shell)。經過控制Raspberry Pi,咱們能夠手動或使用腳原本獲取實時GPS位置信息。咱們使用10000 mAh移動電源做爲整個系統的電源。全部組件都是現成的。總費用大約是223美圓(175美圓+ 35美圓+ 10美圓+ 3美圓)。

三、接着分析了GPS欺騙的可行性:若是攻擊者隨機改變導航設備的GPS信息,則駕駛員能夠容易地注意到路線信息與物理路況之間的不一致。例如,欺騙的GPS位置能夠觸發導航系統指示「轉彎」,可是在實際道路上沒有辦法向左轉。爲了讓駕駛員相信他在原始路線上駕駛。如何使攻擊更加隱蔽?關鍵是要找到一條模仿真實道路形狀的虛擬路線。在這樣,導航指令能夠與物理世界保持一致。另外一個影響因素是導航系統一般會顯示第一人稱視角。司機沒有看到整個路線,而是關注當前路線和下一個轉彎,這可能會增長攻擊者成功的機會。
四、攻擊的原理:

(1)受害者是紐約市的旅行者,他不熟悉該地區,所以依靠GPS應用程序進行導航。
(2)圖3a顯示受害者正在重新澤西州的漢密爾頓公園(P)開車到曼哈頓的帝國大廈(D)。
(3)假設攻擊者接管受害者在Lincoln Tun nel(A)出口處的GPS接收器,如圖3c所示。
(4)攻擊者建立錯誤的GPS信號以將GPS位置設置爲附近的「主機」位置B.爲了應對錯誤的位置漂移,導航系統將從新計算B和D之間的新路線。咱們稱之爲新的路線鬼魂路線。
(5)在物理道路上,受害者仍然在位置A並開始按照應用程序的逐嚮導航。同時,導航應用程序不斷接收欺騙的GPS信號。最終,受害者將最終到達不一樣的地方C.注意B與D的路線形狀相似於A與C的路線。
(6)也便是受害者的原始導航路線爲P→D; 在位置A,欺騙者將GPS設置爲幻影位置B,其迫使導航系統生成新的路線B→D。在逐嚮導航以後,受害者實際上在物理世界中從A行進到C。
五、攻擊的算法

(1)基本攻擊算法

如算法1所示,基本算法首先從距離綁定Ω的全部鏈接點中,從實際位置Loca中選擇一個鬼位置Loca。而後, 計算從鬼位置到目的地的鬼導航路由Γg=(SG1,Sg2,.,sgm)。爲了找到更多的受害者路線儘量,咱們經過m深度寬度優先搜索從實際位置遍歷圖.咱們在每一步都保持符合如下條件的候選路線:

  • 轉向模式匹配:爲了確保幽靈路由的導航指令能夠應用於受害者路由,咱們須要匹配兩條路由的轉彎模式:φ(svi,svi 1)和φ(Sgi), SGI 1)∈相同的機動指令類別。
  • 分段長度匹配:給定一個速度刻度因子Ω速度,鬼魂的旅行距離應在(1±Ω)倍於受害者實際TRA的範圍內 每一個節段上的距離同樣,這保證了在重影和受害者路由上的段長度是類似的。

(2)迭代攻擊算法

在基本攻擊中,攻擊者只將GPS位置從LOCA移動到LOCF。這裏,咱們提出了一種迭代攻擊,使攻擊者可以在不一樣位置建立多個漂移, 受害者正在開車。經過迭代地應用基本攻擊算法,能夠顯著提升攻擊性能,由於可使用部分匹配的受害者-重影路由,在受害者移動時搜索新路線。如算法2所示,對於每次迭代,咱們首先檢查攻擊目標是否已經實現。若是不是,咱們在新幽靈r上建立另外一個位置移位。 從前一次迭代中提取出分段,並應用基本的搜索算法。攻擊者的目標多是「到達預先定義的目標」或「輸入錯誤的方式」,這有助於終止 早期搜索。

(4)With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning

遷移學習
(1)遷移學習過程
學生模型經過複製教師模型的前N-1層來初始化,並增長了一層全鏈接層用於分類,以後使用本身的數據集對學生模型進行訓練,訓練過程當中,前K層是被凍結的,即它們的權重是固定的,只有最後N-K層的權重纔會被更新。前K層之因此在訓練期間要被凍結,是由於這些層的輸出已經表明了學生任務中的有意義的特徵,學生模型能夠直接使用這些特徵,凍結它們能夠下降訓練成本和減小所需的訓練數據集。

(2)遷移學習方法
根據訓練過程當中被凍結的層數K,能夠把遷移學習分爲如下3種方法:深層特徵提取器(Deep-layer Feature Extractor)、中層特徵提取器(Mid-layer Feature Extractor)、全模型微調(Full Model Fine-tuning)。

  • Deep-layer Feature Extractor:K=N-1,學生任務與教師任務很是類似,須要的訓練成本最小
  • Mid-layer Feature Extractor:K<N-1,容許更新更多的層,有助於學生爲本身的任務進行更多的優化
  • Full Model Fine-tuning:K=0,學生任務和教師任務存在顯著差別,全部層都須要微調

對遷移學習的攻擊
(1)對抗性攻擊
因爲機器學習算法的輸入形式是一種數值型向量(numeric vectors),因此攻擊者就會經過設計一種有針對性的數值型向量從而讓機器學習模型作出誤判,這便被稱爲對抗性攻擊。
和其餘攻擊不一樣,對抗性攻擊主要發生在構造對抗性數據的時候,以後該對抗性數據就如正常數據同樣輸入機器學習模型並獲得欺騙的識別結果。如給一個輸入圖像加入不易察覺的擾動,使模型將輸入圖像誤分類成其餘類別。
對抗性攻擊可分爲白盒攻擊和黑盒攻擊。
白盒攻擊:攻擊者可以獲知分類器的內部體系結構及全部權重。它容許攻擊者對模型進行無限制的查詢,直至找到一個成功地對抗性樣本。這種攻擊經常在最小的擾動下得到接近100%的成功,由於攻擊者能夠訪問深度神經網絡的內部結構,因此他們能夠找到誤分類所需的最小擾動量。然而白盒攻擊通常被認爲是不切實際的,由於不多會有系統公開其模型的內部結構。
黑盒攻擊:攻擊者不知道受害者的內部結構,攻擊者要麼嘗試反向工程DNN的決策邊界,建一個複製品用於生成對抗樣本,要麼反覆查詢生成中間對抗樣本並不斷迭代改進。黑盒攻擊容易被防護。

對抗樣本是對乾淨圖像進行處理後的樣本,被故意擾亂(如加噪聲等)以達到迷惑或者愚弄機器學習技術的目的,包括深度神經網絡。

(2)本文攻擊模式
因爲當前模型的默認訪問模式是:

  • 教師模型被深度學習服務平臺公開。
  • 學生模型離線訓練且不公開。
    本文提出了一個新的針對遷移學習的對抗性攻擊,即對教師模型白盒攻擊,對學生模型黑盒攻擊。攻擊者知道教師模型的內部結構以及全部權重,但不知道學生模型的全部權值和訓練數據集。

(3)本文具體攻擊思路
攻擊目標:把source圖貓誤識別爲target圖狗
本文的攻擊思路:首先將target圖狗輸入到教師模型中,捕獲target圖在教師模型第K層的輸出向量。以後對source圖加入擾動,使得加過擾動的source圖(即對抗樣本)在輸入教師模型後,在第K層產生很是類似的輸出向量。因爲前饋網絡每一層只觀察它的前一層,因此若是咱們的對抗樣本在第K層的輸出向量能夠完美匹配到target圖的相應的輸出向量,那麼不管第K層以後的層的權值如何變化,它都會被誤分類到和target圖相同的標籤。

(4)如何計算擾動
本文經過求解一個有約束的最優化問題來計算擾動。目標是是模擬隱藏層第K層的輸出向量,約束是擾動不易被人眼察覺。即在擾動程度perturb_magnitude小於必定約束值(擾動預算P)的前提下,最小化對抗樣本(擾動後的source image)第K層的輸出向量與target image 第K層的輸出向量的歐式距離。前人計算擾動程度都是使用Lp範數,可是它沒法衡量人眼對於圖像失真程度的感知。因此本文使用DSSIM計算擾動程度,它是一種對圖像失真度的客觀測量指標。

DSSIM

(5) 目標攻擊/非目標攻擊
目標攻擊:將source image x_s 誤分類成target image s_t 所屬標籤

非目標攻擊:將source image x_s 誤分類成任意其餘的source image 所屬標籤

非目標攻擊須要肯定一個「方向」把source image推出它本身的決策邊界。可是要預測這個「方向「是很是難的,因此本文的解決方法是,把每一個目標攻擊的攻擊目標都試一遍,而後選出與source image第K層輸出向量距離最小的類別做爲目標。

(6)影響攻擊效果的因素

  • 擾動預算P
    擾動預算P的選擇直接關係到攻擊的隱蔽性。P越小攻擊成功率越低,經過使用DSSIM度量方法測量圖像失真,咱們發現P=0.003是人臉圖像的一個安全閾值。其對應的L2範數值明顯小於前人的結果。
  • 距離度量方法
    距離度量方法也會影響攻擊效果,使用DSSIM產生的擾動不易察覺,使用L2的擾動更明顯。DSSIM能考慮到圖像的潛在結構,而L2平等對待每個像素,並常常在臉部產生明顯的「紋身樣」 圖案。
  • 遷移學習方法
    遷移學習方法也很是影響攻擊效果,本文的攻擊對於Deep-layer Feature Extractor是很是有效的,但對於Full Model Fine-tuning無效。

(7)如何選擇攻擊層
攻擊者首先要判斷學生模型是否使用了Deep-layer Feature Extractor,由於它是最易被攻擊的方法。
若是學生模型的遷移學習方法是Deep-layer Feature Extractor ,攻擊者須要攻擊第N-1層以得到最佳的攻擊性能;
若是學生模型的遷移學習方法不是Deep-layer Feature Extractor ,攻擊者能夠嘗試經過迭代瞄準不一樣的層,從最深層開始,找到最優的攻擊層。

(8) 給定學生模型肯定其教師模型

前面咱們的誤分類攻擊是假設了攻擊者知道教師模型是哪一個的,接下來咱們放寬這個條件,考慮攻擊者不知道教師模型是哪一個的狀況。今天的深度學習服務(Google Cloud ML, Facebook PyTorch, Microsoft CNTK)會幫用戶從一系列教師模型中生成學生模型。這種狀況下,攻擊者就得本身尋找他要攻擊的學生模型對應的教師模型。本文設計了一種指紋方法,只須要對學生模型進行少許圖像查詢就能夠肯定他的教師模型。
咱們假設給定一個學生模型,攻擊者能夠知道它的教師模型候選池,候選池中的一個教師模型生成了該學生模型。這個假設是現實的,由於對於常規的深度學習任務,目前只有少數幾個公開可用的高質量、預訓練過的模型。好比Google Cloud ML 給圖像分類任務提供的是Inception v3 , MobileNet及其變體做爲教師模型。因此攻擊者只須要在這一組候選模型中識別。

若是基尼係數很是大,說明該學生模型對應的教師模型不在候選池中,或者該學生模型選擇的不是Deep-layer Feature Extractor的遷移學習方法。
應對本文攻擊的防護方法
論文還提出了3種針對本文攻擊的防護方法,其中最可行的是修改學生模型,更新層權值,肯定一個新的局部最優值,在提供至關的或者更好的分類效果的前提下擴大它和教師模型之間的差別。這又是一個求解有約束的最優化問題,約束是對於每一個訓練集中的x,讓教師模型第K層的輸出向量和學生模型第K層的輸出向量之間的歐氏距離大於一個閾值,在這個前提下,讓預測結果和真實結果的交叉熵損失最小。

(5)Safeinit: Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities

safeinit
llvm/clang架構

LLVM包括了一個狹義的LLVM和一個廣義的LLVM。廣義的LLVM其實就是指整個LLVM編譯器架構,包括了前端、後端、優化器、衆多的庫函數以及不少的模塊;而狹義的LLVM其實就是聚焦於編譯器後端功能(代碼生成、代碼優化等)的一系列模塊和庫。Clang是一個C++編寫、基於LLVM的C/C++/Objective-C/Objective-C++編譯器。Clang是一個高度模塊化開發的輕量級編譯器,它的編譯速度快、佔用內存小、很是方便進行二次開發。上圖是LLVM和Clang的關係:Clang其實大體上能夠對應到編譯器的前端,主要處理一些和具體機器無關的針對語言的分析操做;編譯器的優化器部分和後端部分其實就是咱們以前談到的LLVM後端(狹義的LLVM);而總體的Compiler架構就是LLVM架構。
safeinit架構
1)經過調整工具鏈來確保全部堆棧和堆分配始終初始化,從而減輕通用程序中的這些錯誤。 SafeInit在編譯器級別實現。
2)必須在編譯器自己內完成。 只需在編譯過程當中傳遞額外的加固標記便可啓用SafeInit。

如圖編譯器在得到C/C++文件後,編譯器前端將源文件轉換爲中間語言(IR),經過初始化、代碼優化結合現存編譯器的優化器,以後經過無效數據消除、強化分配器最後得到二進制文件。Safeinit在整個過程當中所添加的就是 初始化所有變量、優化以及強化分配器,來避免或緩解未初始化值。最後,SafeInit優化器提供了非侵入式轉換和優化,它們與現有的編譯器優化(必要時自行修改)以及最終組件(現有「死存儲消除」優化的擴展)一塊兒運行。這些構建在咱們的初始化傳遞和分配器之上,執行更普遍的刪除沒必要要的初始化代碼,證實咱們的解決方案的運行時開銷能夠最小化。
初始化:保證堆和棧內的局部變量所有初始化
SafeInit在首次使用以前初始化全部局部變量,將局部變量看作新分配的變量處理。SafeInit經過修改編譯器編譯代碼的中間表示(IR),在每一個變量進入做用域後進行初始化(例如內置memset)。
強化分配器
1)SafeInit的強化分配器可確保在返回應用程序以前將全部新分配的內存清零。——敏感數據的保護
2)經過修改現代高性能堆分配器tcmalloc來實現咱們的強化分配器。——提升性能
3)修改了LLVM,以便在啓用SafeInit時未來自新分配的內存的讀取視爲返回零而不是undef。 ——初始化數據
優化器:可在提升效率和非侵入性的同時提升SafeInit的性能。優化器的主要目標是更改現有編譯器中可用的其餘標準優化,以消除任何沒必要要的初始化。
1)存儲下沉:存儲到本地的變量應儘量接近它的用途。
2)檢測初始化:檢測初始化數組(或部分數組)的典型代碼
字符串緩衝區
3)用於存儲C風格的以空字符結尾的字符串的緩衝區一般僅以「安全」方式使用,其中永遠不會使用超出空終止符的內存中的數據。傳遞給已知C庫字符串函數(例如strcpy和strlen)的緩衝區是「安全的」,優化器檢測到該緩衝區始終被初始化,能夠刪除掉該緩衝區的初始化代碼。
無效存儲消除(DSE):能夠刪除老是被另外一個存儲覆蓋而不被讀取的存儲。
1)堆清除:全部堆分配都保證初始化爲零,使用零存儲刪除堆內存
2)非恆定長度存儲清除:爲了刪除動態堆棧分配和堆分配的沒必要要初始化
3)交叉塊DSE:能夠跨多個基本塊執行無效存儲消除
4)只寫緩衝區:經過指定該緩衝區只用來存儲而不是刪除,就能夠將該緩衝區刪除
評估
本測試的基線配置是clang/LLVM的未修改版本,以及tcmalloc未修改版本。
基準測試運行在(4核)Intel i7-3770上,內存爲8GB,運行(64位)Ubuntu 14.04.1。 禁用CPU頻率縮放,並啓用超線程。
安全

開銷

(6)Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning

做者對線性迴歸模型的中毒攻擊及其對策進行了第一次系統研究。做者提出了一個針對中毒攻擊和快速統計攻擊的新優化框架,該框架須要對培訓過程的瞭解不多。做者還採用原則性方法設計一種新的魯棒防護算法,該算法在很大程度上優於現有的穩健迴歸方法。做者在醫療保健,貸款評估和房地產領域的幾個數據集上普遍評估做者提出的攻擊和防護算法。做者在案例研究健康應用中證實了中毒攻擊的真實含義。做者終於相信,做者的工做將激發將來的研究,以開發更安全的中毒攻擊學習算法。
系統架構:

TRIM算法及成果:


相關數據:





(7)ConvolutionalNeuralNetworksforSentenceClassification

論文報告了一系列的卷積神經網絡(CNN)的實驗,這些實驗是在預先訓練過的單詞向量的基礎上訓練的,用於句子級的分類任務。做者發現,一個簡單的CNN具備不多的超參數調整和靜態向量,在多個基準點上都能達到很好的效果。經過微調學習特定於任務的向量能夠進一步提升性能。此外,做者還建議對體系結構進行簡單的修改,以容許使用特定於任務的向量和靜態向量。本文所討論的CNN模型改進了7項任務中的4項,包括情緒分析和問題分類。
模型介紹

用一張釋義更明確的圖來說解該模型的結構:

感想和體會

本身的收穫
經過本學期對該課程的學習,讓我印象最深的就是王老師這種授課模式。總共八次課,前六次每次的專題都不同,由不一樣的老師來說解。而後讓咱們本身去頂會找一篇論文來閱讀理解,最後兩次課由咱們上臺彙報本身所學所看。由於準備跟着導師作的課題是密碼分析。在六次講座中,其中一個老師說的量子密碼,一個老師講的是基於深度學習的密碼分析與設計。我對這兩個專題講座非常感興趣。在以前,我對密碼分析的認識很片面,將密碼分析分爲如下五種情形:
(1)唯密文攻擊(Ciphertext only)
對於這種形式的密碼分析,破譯者已知的東西只有兩樣:加密算法、待破譯的密文。
(2)已知明文攻擊(Known plaintext)
在已知明文攻擊中,破譯者已知的東西包括:加密算法和經密鑰加密造成的一個或多個明文—密文對,即知道必定數量的密文和對應的明文。
(3)選擇明文攻擊(Chosen plaintext)
選擇明文攻擊的破譯者除了知道加密算法外,他還能夠選定明文消息,並能夠知道對應的加密獲得的密文,即知道選擇的明文和對應的密文。例如,公鑰密碼體制中,攻擊者能夠利用公鑰加密他任意選定的明文,這種攻擊就是選擇明文攻擊。
(4) 選擇密文攻擊(Chosen ciphertext)
與選擇明文攻擊相對應,破譯者除了知道加密算法外,還包括他本身選定的密文和對應的、已解密的原文,即知道選擇的密文和對應的明文。
(5)選擇文本攻擊(Chosen text)
選擇文本攻擊是選擇明文攻擊與選擇密文攻擊的結合。破譯者已知的東西包括:加密算法、由密碼破譯者選擇的明文消息和它對應的密文,以及由密碼破譯者選擇的猜想性密文和它對應的已破譯的明文。
金鑫老師生動給咱們上了一課,基於深度學習的密碼分析與設計。經過那次課發現本身要提升的東西太多,如英語水平,數學基礎,密碼學知識儲備,查閱文獻資料,搜索資料的能力。我想王老師最後兩次課讓咱們本身去學習頂會論文,本身去理解論文,代碼復現,意圖就是爲了咱們提早作好準備,提早接觸頂會論文,對大牛發的論文,對本身感興趣的研究方向上有必定的認識,爲咱們研二作項目寫論文提早作準備,到那個時候不會無處下手。
本身須要改進的地方
課程的前半部分每每比較認真,隨着課程深刻,其餘課程的任務比較重,可能投入的認真程度有必定降低。就是認真努力地程度還有待提升,與本身的目標的還有很大的距離,不能把零碎的時間用來學習,學習的效率沒有達到理想的狀態。

對本課程的建議和意見

首先,老師這種教學方式很新穎,第一次一門課程由六個老師來說解。我認爲這樣很好,六個老師有六個不一樣的上課風格,總有一款適合學生。我以爲老師每次讓咱們就一個專題學習後寫一篇博客,這樣可讓咱們對專題知識點的總結,能夠起到必定的記憶和回顧做用。可是我認爲最好的做業應該由上課的老師來佈置,好比有的知識就須要實踐跑代碼的等等。並且每次由不一樣的老師來佈置,其風格和老師上課的風格必然是一致的,這樣會讓做業更加新穎,不會那麼單調枯燥。另外我認爲授課老師應該多增強與學生的互動。不一樣的學生的專業、興趣、愛好都是不同的。因此最後一次的論文理解與代碼復現我以爲範圍能夠放的更大一點,能夠由學生本身的研究方向來定,這樣應該會理解的更透徹一點,更明白一點。

相關文章
相關標籤/搜索