魏為民 楊朔 酆華 葉文珺 畢忠勤


摘 要:信息時代,傳統的教學方式較難滿足信息安全專業學生的課堂需求。文章提出將學生身邊的故事結合CTF競賽方式,用于信息安全概論、網絡攻擊與防御等課程的“莫爾斯碼破譯”以及信息隱藏課程的“亂碼圖片制作”兩個教學競賽案例,說明采用CTF競賽的教學方法可以有效培養學生的實際動手能力,取得良好效果。
關鍵詞:信息安全;CTF;莫爾斯碼;信息隱藏;教學實踐
0 引 言
在信息安全概論、網絡攻擊與防御、信息隱藏等課堂上,教師一般采用PPT、提問、演示等傳統方法教學,較難激發學生的興趣。將學生身邊的故事結合競賽的方式,特別是采用奪旗賽(capture the flag,CTF)模式,可有效激發學生的學習熱情和專業興趣。
CTF源自1996年DEFCON全球黑客大會,是一種網絡安全技術人員之間進行的可受控環境的技術競技形式,從而取代之前真實的網絡攻擊競賽,至今已成為全球范圍內網絡安全圈流行的競賽形式。DEFCON CTF是目前全球最高技術水平和影響力的CTF競賽。CTF競賽分為以下3種模式[1]。
(1)解題模式(jeopardy)。參賽隊伍通過互聯網或者現場網絡參與競賽,題目主要包含密碼學、數字取證、逆向分析、漏洞挖掘與利用、Web滲透、隱寫分析、安全編程等類別,通常用于在線選拔賽,以解題的分值和時間排名。
(2)攻防模式(attack-defense)。參賽隊伍在受控環境的網絡空間進行相互攻擊和防守,通過挖掘網絡服務漏洞并攻擊對手服務得分,修補自身服務漏洞進行防御,避免丟分。比賽情況可通過得分實時反映,以最終得分定勝負。比賽一般會持續48h以上,因此比賽既考驗參賽隊員的智力和技術水平,又考驗他們的體力和團隊合作能力。這種模式是一種競爭激烈、高度透明且具有很強觀賞性的網絡安全賽制。
(3)混合模式(mix)。結合解題模式與攻防模式,參賽隊伍通過解題獲取一個初始分數,然后通過攻防對抗進行得分的增減,以最終得分高低確定勝負。
1 莫爾斯碼破譯
1.1 莫爾斯碼里的愛情故事
曾經神秘的莫爾斯密碼,在網絡空間演繹了一段費盡周折的愛情猜謎傳奇。在百度的密碼吧,一則2009年1月23日4時12分首發,已有1 316頁50 738個跟帖,標題為“求救,我已經快想爆了”的帖子里,帖主說[2]:
“最近和一個心儀的女生告白,誰知道她給了一個摩斯密碼給我,說解出來了才答應和我約會。可是我用盡了所有方法都解不開這個密碼。好郁悶啊。只能求教你們了。
****-/*----/----*/****-/****-/*----/---**/*----/****-/*----/-****/***--/****-/*----/----*/**---/-****/**---/**---/***--/--***/****-/
她唯一給我的提示就是這個是5層加密的密碼......
也就是說要破解5層密碼才是答案......
好郁悶啊......
救救我吧......”
網友根據莫爾斯密碼對照表,發現對應的數字組合為“4194418141634192622374”。網友“片羿天使”將其轉換成手機鍵盤字母,以上述“41”為例,其對應的就是“4”上的第一個字母“G”,“94”則是“9”的第4個字母“Z”。這樣得到第2層答案:“GZGTGOGXNCS”。
片羿天使說“因為QWE的格式是被世人所認可的,也就有可能成為密碼的碼表。碼表QWE=ABC依次類推。”據此,將上述手機鍵盤字母轉換為第3層答案:“OTOEOIOUYVL”;然后將這組字母分成 “OTOEOI”和“OUYVL”兩排,對插并重組得到排列:“OOTUOYEVOLI”;最后一層倒序即得到最終答案“I LOVE YOU TOO”。
愛情故事有了完美的答案,將上述故事的密碼內容稍作修改,就可使其成為很好的課堂競賽素材。
1.2 競賽素材準備
編寫莫爾斯電碼與英文字母、數字及部分標點符號的互譯程序[3]。其中,文本的空格在譯成電碼后用“_”代替,程序中未包括的符號用“+”代替。文本用“word.txt”文件保存,電碼用“morse.txt”文件保存。輸入的文本可有大小寫,輸出的文本只有小寫。運行程序輸入“1”是將文本譯成電碼,程序可譯包括26個英文字母、*#/()@$?-.,;":!=_' 以及數字;輸入“2”是將電碼譯成文本,輸入“4”為退出。譯完之后,再輸入任意鍵程序結束退出。相關程序源代碼和編譯工程文件可參考文獻[3]。
結合上述愛情故事,為適當增加破譯難度,可采用凱撒方法,譯碼時可進行移位處理。以如下文字為例,“today we continue a never ending journey to bridge the meaning of those words with the realities of our time for history tells us that while these truths may be self-evident theyve never been self-executing that while freedom is a gift from god it must be secured by his people here on earth”,通過移位6位后生成的摩爾斯碼測試紙如圖1所示。
1.3 莫爾斯碼密碼分析
密碼分析學的主要任務是破譯密碼或偽造認證密碼,竊取機密信息或進行欺詐破壞活動。攻擊的方法有兩種:一種是對一個保密系統截獲密文進行分析,稱為被動進攻;另一種是非法入侵者采用刪除、更改、添加、重放、偽造等手段向系統注入假消息,稱為主動進攻。典型的攻擊方法有如下幾種[4]。
(1)密文攻擊。攻擊者僅僅基于截獲的加密消息,嘗試破解明文。這種攻擊對攻擊者而言基本上是開放的,對密鑰的暴力攻擊是此類攻擊的一個典型示例。
(2)已知明文攻擊。在某些情況下,攻擊者可能知道部分或全部加密的明文。典型的已知明文攻擊例子是攻擊者知道加密后的內容包含標準頭文件格式,或者攻擊者知道消息與某一特定主題相關,這有助于攻擊者破譯密鑰或其他消息。
(3)選擇明文攻擊。攻擊者通過插入一些特定的明文并截取其加密內容,確定該加密方法的某些統計特性,然后選擇一些明文分別測試所確定的加密方法參數。例如,假設Alice的郵件服務器上運行一個可過濾電子郵件病毒的程序,同時她將疑似病毒的郵件加密后轉發給病毒專家Bob。攻擊者故意將一個病毒郵寄給Alice,從而就知道某些特定的內容將出現在Alice發送給Bob的郵件中,這樣就可部分或全部破解Alice的加密方法。
(4)選擇密文攻擊。攻擊者有可能確定如何對選中的密文解密。例如,攻擊者偽造一份從Bob到Alice的加密消息(該消息中夾雜攻擊者欲解密的密文),Alice試圖對消息解密時得到一些雜亂的數據。通過截獲Alice回寄給Bob或者以某種不安全方式存儲的這些雜亂數據,攻擊者有可能獲得實際解密的信息。
攻擊算法中較為傳統且高效的破譯方法是“字母頻率攻擊”,古代密碼多可通過字母頻率攻擊破解。以愷撒密碼為例,即使在不知道移位所對應數字的情況下,可通過檢查26個字母出現的頻率來推測。事實證明,英語(或拉丁語)字母出現的頻率彼此差異很大。字母“e”在正常的英語散文中出現頻率高達13%(僅統計字母,不包括標點和空格),這樣攻擊者可知道原始消息中有多少個“e”,因為密文中出現頻率為13%左右的任何字母都極可能是表示“e”,其次最常用的字母是“t”和“n”。對使用愷撒密碼的消息進行加密不會改變消息中字母的統計分布,它只會使另外的字母以同一頻率出現。
在講述典型的攻擊方法和攻擊算法后,教師應將前述準備的競賽素材發給學生,為防止作弊,可準備多組素材或者提供每名學生一份獨立的素材;要求學生破譯完成后通過郵件或者手機短信甚至微博、微信留言等方式提交,從而確定最先成功破譯的前幾名學生。在不同專業和不同班級的教學實踐中發現,學生對破譯工作興趣盎然,甚至到廢寢忘食的地步,基本熟練掌握莫爾斯編碼和字母頻率攻擊方法并取得較好的成績。
2 亂碼圖片制作
傳統的信息隱藏技術主要有兩種[5]:①技術隱寫術,將秘密傳遞的消息記錄下來,然后通過其他媒體發送出去,即將記錄的“信息”隱藏起來的技術,稱為“技術隱寫術”,如將信息隱藏在信使的鞋底或婦女的耳飾中、使用隱寫墨水在報紙的某些字母上作標記、將信息隱藏在縮微膠片中等;②語義隱寫術,將“記錄”這個行為本身隱藏起來,稱為“語義隱寫術”,即消息由隱藏的“寫”的語言或語言形式所組成,如改變字母筆畫的高低以隱藏信息、制作特殊的雕刻或繪畫作品使得從不同角度觀察會顯現不同的影像等。
很多人可能經常在微信朋友圈見到一些“亂碼圖”,當你閉上一只眼睛,用一只眼睛從手機充電口看屏幕時就會恍然大悟[6]。微信朋友圈中的亂碼圖其實是一種語義隱寫。在介紹傳統的信息隱藏技術后,我們對2013級信息安全專業的學生發出制作微信亂碼圖的挑戰,要求可以自行組建每組最多3人的團隊,可以上網查找理論,不限開發語言,能夠將給定的短語自動生成亂碼圖片,獎勵是第一、第二完成任務的團隊成員的該課程平時成績分別評定為“優秀” “良好”。上午第4節課上布置任務,當天下午1點多就收到第1個完成的作品,是用Matlab語言實現的上述功能,內容為“這個優我們拿定了,陳添明和信明權組”,如圖2所示。
稍后收到第2組同學的作品,采用了不同的算法,用C語言實現,內容為“雕欄玉砌應猶在只是朱顏改,問君能有幾多愁恰似春水流”,如圖3所示。
之后收到其他幾個小組的作品,但思路與前述作品大同小異。后續課程中,邀請第1名和第2名小組就各自方法分別作技術報告,氣氛熱烈,收到很好的課堂教學效果。
3 教學成果
將上述教學方法應用于信息安全專業信息隱藏課程,經過一個學期的教學實踐,教學效果良好。表1為該班級的考試課程卷面成績分析,及格率為100%,平均分為75.01。
通過表1可以看到,全班學生均通過閉卷考試,其中有24.64%的學生成績為優良。以下是部分學生對該課程的反饋信息:
“原本一直以為圖片信息隱藏是很傳奇的存在,當然,現在它的存在依舊很傳奇,但是在魏老師名師手把手的帶領下,突然有種我們信息安全專業終于也能做一點東西出來的感覺。”——學號:20136007
“本次實驗在老師的帶領下,我學會了這些原本認為很復雜的知識,雖然有很多困難和問題,但是更多的則是新知識的補充。最喜歡我們這門課的原因是老師給了我們很大的自我發揮空間,既自學到很多內容,又在一次次實驗中發掘出自己的潛力,提高了自己的總結歸納能力和分析解決問題的能力,同時,認真和嚴謹的精神再次被喚醒。”——學號:20136153
“這學期學習信息隱藏技術與應用對我來說是一次愉快的經歷,我非常喜歡老師上課輕松幽默的風格,我覺得某種程度上說這才應該是大學應有的學習氛圍。通過老師課堂上舉的生動實例,我了解了信息隱藏這門學科的分支技術和應用領域,雖然我的專業課成績不是很好,但是對于這門課程我是真的感興趣的,我以后會更加努力學習專業知識,提升自己的能力。”——學號:20133275
4 結 語
在信息安全概論、網絡攻擊與防御、信息隱藏等課程的教學過程中,通過將有趣的網絡故事“莫爾斯碼破譯”、流行的微信朋友圈“亂碼圖片制作”素材進行加工提煉,結合相關專業知識,采用CTF競賽的教學方法,深受學生的歡迎,極大激發了學生的創新熱情。在2015—2016學年第2學期,我們所指導的信息安全專業有3組學生申請獲批上海市大學生創新創業訓練計劃項目3項,另有2組學生發表了2篇與網絡攻擊與防御相關的學術論文(其中1篇期刊論文,1篇會議論文),成功申請3項軟件著作權,取得了較好的效果。下一步,我們計劃結合相應知識點設計更多的類似案例,針對部分適合在受控網絡空間進行相互攻擊和防守的案例采用攻防模式,以期最大化地激發學生的學習熱情,培養團隊協作能力和提高動手能力。
參考文獻:
[1] 百度百科. CTF(奪旗賽)[EB/OL]. [2016-12-06]. http://baike.baidu.com/subview/2735962/16211061.htm.
[2] 百度貼吧. 求救, 我已經快想爆了[EB/OL]. [2016-12-06]. http://tieba.baidu.com/f?z=529691897&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser.
[3] 真印良品. 教學交流[EB/OL]. [2016-12-06]. http://www.truemark.cn/teaching/index.htm.
[4] 李紅嬌, 溫蜜, 魏為民. 信息安全概論[M]. 北京: 中國電力出版社, 2012: 26.
[5] 王麗娜, 張煥國, 葉登攀, 等. 信息隱藏技術與應用[M]. 武漢: 武漢大學出版社, 2012: 7.
[6] 別急不是亂碼圖!圖文教程教你制作“幸福密碼”[EB/OL]. [2016-12-06]. http://g.pconline.com.cn/623/6239803.html.
(編輯:宋文婷)