范魯寧 張世波 艾雨兵
摘要:該文是《網(wǎng)絡(luò)信息安全》課程教學(xué)改革研究的階段性研究報(bào)告。該課題研究目的:為了更方便的實(shí)施網(wǎng)絡(luò)實(shí)驗(yàn),加強(qiáng)學(xué)生軟硬件動(dòng)手能力,提高教學(xué)效果。研究方法:根據(jù)現(xiàn)有的樹莓派開發(fā)板、nodejs服務(wù)器以及App Inventor2安卓開發(fā)平臺(tái)等相關(guān)技術(shù)資料和設(shè)備,課題組教師開發(fā)大型實(shí)驗(yàn),并拍攝教學(xué)視頻。階段性研究結(jié)果:目前已經(jīng)成功開發(fā)了兩個(gè)大型實(shí)驗(yàn):無線監(jiān)控樹莓派和樹莓派上的打地鼠游戲。結(jié)論:基于樹莓派開發(fā)板的對(duì)于《網(wǎng)絡(luò)信息安全》的實(shí)驗(yàn)開發(fā)是完全可行的,并且具有無限擴(kuò)展性。
關(guān)鍵詞:網(wǎng)絡(luò);樹莓派;安卓;服務(wù)器端
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)35-0058-03
《網(wǎng)絡(luò)信息安全》這門課涉及計(jì)算機(jī)科學(xué)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)、密碼技術(shù)、信息安全技術(shù)、應(yīng)用數(shù)學(xué)、數(shù)論、信息論等綜合性知識(shí)。為了讓學(xué)生能夠系統(tǒng)性地將這些知識(shí)串聯(lián)起來,需要有一個(gè)統(tǒng)一的集成化的平臺(tái)去實(shí)現(xiàn)或者印證這些理論。
從學(xué)校教學(xué)來看,普通本科單純的課堂理論化教學(xué)和分散的小型實(shí)驗(yàn)對(duì)大專、高職院校來說并不是十分適合。首先,學(xué)生不具備很強(qiáng)的理論學(xué)習(xí)能力,他們對(duì)深?yuàn)W的數(shù)學(xué)理論和復(fù)雜的編程思想缺乏扎實(shí)的理論基礎(chǔ)知識(shí),學(xué)習(xí)起來十分費(fèi)勁。其次,大專、高職院校的學(xué)生將來要直接進(jìn)入企業(yè)第一線工作,相對(duì)實(shí)用的成套的技術(shù)對(duì)他們來說更有用,經(jīng)過一系列設(shè)備的配置、安裝以及簡(jiǎn)單的程序編寫完成一個(gè)看得見摸得著的作品會(huì)讓他們有強(qiáng)烈的成就感。普通教材中的實(shí)驗(yàn)往往是零時(shí)安裝一個(gè)現(xiàn)成的程序,然后輸入“配置”數(shù)據(jù)、點(diǎn)擊“下一步”、“確定”。這種模式不能讓學(xué)生掌握到核心的技術(shù),即使要做一些變通也無從下手。另外,普通學(xué)校機(jī)房缺乏有效的實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)平臺(tái),學(xué)生機(jī)上安裝的系統(tǒng)比較單一,一般會(huì)附帶保護(hù)卡和系統(tǒng)恢復(fù)機(jī)制,不允許隨便修改系統(tǒng)設(shè)置,不僅安裝不同的系統(tǒng)是不被允許的,而且練習(xí)具備破壞性的網(wǎng)絡(luò)攻防實(shí)驗(yàn)也會(huì)對(duì)機(jī)房的網(wǎng)絡(luò)系統(tǒng)造成破壞,使得其他教學(xué)活動(dòng)不能順利進(jìn)行。
樹莓派:
因此針對(duì)《網(wǎng)絡(luò)信息安全》這門課,一個(gè)新的能夠模仿物聯(lián)網(wǎng)模式連接各種不同設(shè)備、搭載不同系統(tǒng)的教學(xué)平臺(tái)以及更加集成化和項(xiàng)目化的教學(xué)模式呼之欲出。為此,本課題組成員計(jì)劃采用市面上一款叫樹莓派的新產(chǎn)品作為核心設(shè)備來嘗試實(shí)現(xiàn)這個(gè)目標(biāo)。
1 研究技術(shù)材料和方法介紹
本文會(huì)涉及一些新的技術(shù),如:樹莓派開發(fā)板、基于java script腳本語(yǔ)言的用于小型服務(wù)器開發(fā)的新技術(shù)以及麻省理工大學(xué)出品的用于教育領(lǐng)域的Android應(yīng)用程序開發(fā)平臺(tái),因此先在這個(gè)章節(jié)做一些簡(jiǎn)單介紹。
1.1 RaspberryPi
樹莓派這個(gè)聽起來像一種國(guó)外烘培產(chǎn)品的名字其實(shí)是一種小型的卡片式的電腦主板,需要另外添加顯示屏、鍵盤、鼠標(biāo)、電源、無線網(wǎng)卡等外部設(shè)備才能夠真正的正常運(yùn)行[1]。雖然有些折騰,但是能給學(xué)生一個(gè)動(dòng)手的機(jī)會(huì),讓他們更好的理解計(jì)算機(jī)的組成。
除了提供硬件組裝的動(dòng)手機(jī)會(huì),它的軟件運(yùn)行也具備許多優(yōu)勢(shì)。普通學(xué)校機(jī)房的裝機(jī)實(shí)踐證明,即使使用虛擬機(jī)等軟件也會(huì)和某些教學(xué)管理軟件產(chǎn)生沖突,導(dǎo)致很多實(shí)驗(yàn)不能進(jìn)行,影響教學(xué)效果。
樹莓派開發(fā)板可以安裝類似于Linux的操作系統(tǒng),并且實(shí)現(xiàn)一系列好玩的實(shí)驗(yàn)。例如:配置一個(gè)無線的監(jiān)控系統(tǒng),以實(shí)現(xiàn)遠(yuǎn)程的攝像監(jiān)控記錄動(dòng)作圖片和視頻,甚至可以通過手機(jī)來訪問這個(gè)攝像監(jiān)控設(shè)備實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。這當(dāng)中要涉及操作系統(tǒng)安裝、網(wǎng)絡(luò)配置、系統(tǒng)更新和插件安裝配置、攝像頭的安裝配置、自動(dòng)發(fā)送郵件的配置等等一系列可以進(jìn)行教學(xué)的內(nèi)容,形成一個(gè)完整的大型實(shí)驗(yàn)。讓學(xué)生接觸到軟件和硬件方面的各種知識(shí),不同于以往的簡(jiǎn)單操作,可以在不斷地“折騰”當(dāng)中加強(qiáng)動(dòng)手能力,并可以結(jié)合其他課程的內(nèi)容,達(dá)到溫故知新的效果。
另外,低廉的價(jià)格也是樹莓派的一大優(yōu)勢(shì),現(xiàn)在市場(chǎng)上成套的教學(xué)設(shè)備動(dòng)不動(dòng)就是幾千元、上萬(wàn)元。一塊最新的第二代樹莓派國(guó)內(nèi)售價(jià)僅僅二百多元人民幣,并且可以連接筆記本電腦,通過共享網(wǎng)絡(luò)和遠(yuǎn)程連接軟件就可以進(jìn)行操作,可以為學(xué)校節(jié)省大筆教學(xué)設(shè)備采購(gòu)的費(fèi)用。
1.2 Appinventor2
App Inventor是由麻省理工和谷歌開發(fā)的一款A(yù)ndroid開發(fā)平臺(tái),目前發(fā)展到第二代,具有操作簡(jiǎn)單、可視化、模塊化、事件置頂、正確性高和便于調(diào)試等優(yōu)點(diǎn)。使用App Inventor無需具備編程知識(shí),也不需要記憶和編寫代碼,程序的組件和功能都存儲(chǔ)在模塊編輯庫(kù)中,在創(chuàng)建程序時(shí)只需將其拖拽到編輯區(qū)域進(jìn)行組合即可,用戶不需要記憶如何輸入指令或參考任何編程設(shè)計(jì)手冊(cè)[3]。因此,非常適合用于教學(xué)上的項(xiàng)目快速開發(fā),讓學(xué)生接觸到手機(jī)應(yīng)用開發(fā)的全新領(lǐng)域。
1.3 Nodejs
既然是網(wǎng)絡(luò)安全課程,肯定少不了網(wǎng)絡(luò)知識(shí)。在這里,課題組采用最新的服務(wù)器后臺(tái)框架技術(shù)Nodejs,這是一種用Java script作為編寫語(yǔ)言的服務(wù)器框架,使用事件驅(qū)動(dòng),非阻塞I/O模型而得以輕量和高效,非常適合用于小型網(wǎng)站或輕量級(jí)數(shù)據(jù)交換應(yīng)用的開發(fā)[4]。
2 實(shí)驗(yàn)項(xiàng)目介紹
課題組研發(fā)了以下兩個(gè)較為綜合性的大型實(shí)驗(yàn),作為課堂教學(xué)所用。一個(gè)是偏向硬件和網(wǎng)絡(luò)配置方向的“無線監(jiān)控樹莓派”,另一個(gè)是偏向軟件編程和手機(jī)應(yīng)用開發(fā)的“樹莓派上的打地鼠游戲”。
2.1 無線監(jiān)控樹莓派
這個(gè)大型實(shí)驗(yàn)由兩部分組成,一個(gè)是“無線”,另一個(gè)是“監(jiān)控”。這里所謂的“無線”,就是可以脫離網(wǎng)線、電源線、顯示屏、鍵盤、鼠標(biāo)的鏈接,獨(dú)立運(yùn)行,并可以通過遠(yuǎn)程以可視化或字符狀態(tài)登錄系統(tǒng)。
實(shí)現(xiàn)“無線”的操作步驟如下:
1)更新系統(tǒng),首先要保證樹莓派上的系統(tǒng)是最新版的Raspbian,通過命令$sudoapt-get update實(shí)現(xiàn)。
2)架設(shè)遠(yuǎn)程桌面服務(wù),這一步是為了移除顯示器的連接線,原來我們剛使用樹莓派的時(shí)候,都是通過HDMI高清線連接在電視機(jī)上的,使用非常不方便。這里我們使用VNC服務(wù)器,通過這個(gè)遠(yuǎn)程連接,使用者可以在筆記本電腦上可視化登陸樹莓派的操作界面。
3)為樹莓派添加無線網(wǎng)卡。我們從樹莓派專賣店中采購(gòu)了專用的無線網(wǎng)卡EP-N8508GS,以便開發(fā)板能夠輕松識(shí)別它。通過USB接口連接以后,需要通過網(wǎng)絡(luò)配置文件配置無線網(wǎng)卡的IP地址。最好設(shè)置成靜態(tài)的IP地址,以便我們每次登錄的時(shí)候直接連接,不需要再通過ARP命令查詢樹莓派的IP地址。
4)最后要移除電源插頭。由于樹莓派使用的是5V的電源和1到2A的電流,我們可以使用充電寶來代替電源插頭。做完以上這些,樹莓派就真的可以揣在口袋里到處走了。
實(shí)現(xiàn)“監(jiān)控”則更加有趣和實(shí)用一些,它的步驟如下:
1)安裝攝像頭,可以是普通的USB攝像頭,也可以是樹莓派專用的串口攝像頭。連接上以后通過dmesg命令查看設(shè)備連接和辨識(shí)情況。一般攝像頭在系統(tǒng)中以文件video0的名字出現(xiàn)。
2)安裝和配置motion運(yùn)動(dòng)捕捉應(yīng)用程序。使用sudoapt-get install motion命令,自動(dòng)從網(wǎng)上下載并安裝程序。安裝完畢后,需要設(shè)置照片和視頻的存放地址、調(diào)整畫面的高度、寬度和幀率,默認(rèn)是每秒鐘捕捉兩張圖片,圖片大小為320像素×240像素,文件大小約為12KB。另外還要配置捕捉的敏感度threshold,也就是有多大幅度的動(dòng)作才會(huì)被攝像頭抓拍下來,有一個(gè)數(shù)值來控制它,當(dāng)motion發(fā)現(xiàn)圖像的變化超過該值時(shí)將會(huì)捕捉畫面,數(shù)值越大,敏感度越低。
3)為了讓以上這些步驟實(shí)現(xiàn)自動(dòng)化,我們還需要設(shè)計(jì)一個(gè)腳本程序?qū)崿F(xiàn)以下目標(biāo)[2]:只發(fā)送最新由motion捕捉的圖像,程序可以一直在后臺(tái)運(yùn)行,刪除已經(jīng)發(fā)送的圖片,避免空間浪費(fèi)。腳本采用系統(tǒng)自帶的shell語(yǔ)言編寫,按順序集成了一系列的系統(tǒng)命令,監(jiān)控存放圖片的文件夾,并及時(shí)發(fā)送到設(shè)置好的郵箱地址當(dāng)中,然后刪除已經(jīng)發(fā)送的圖片。
這個(gè)大型實(shí)驗(yàn)需要5次課程的實(shí)驗(yàn)來完成,其中涉及操作系統(tǒng)、網(wǎng)絡(luò)、硬件組裝技術(shù)等知識(shí)點(diǎn),是一個(gè)較為全面和綜合的內(nèi)容。期間需要學(xué)生大量的動(dòng)手和解決出現(xiàn)的各種問題。后續(xù)也可以加入其他內(nèi)容,如添加溫度濕度傳感器、被動(dòng)紅外傳感器,通過命令行的方式遠(yuǎn)程測(cè)試環(huán)境[2]。
2.2 樹莓派上的打地鼠游戲
本實(shí)驗(yàn)結(jié)合了打地鼠游戲,Nodejs服務(wù)器,MySQL數(shù)據(jù)庫(kù),以及樹莓派這些軟硬件組件。游戲本身由MITAppinventor2開發(fā),它的服務(wù)器現(xiàn)在已經(jīng)移植到廣州教育局的服務(wù)器上(app.gzjkw.net),訪問速度比以前快了很多。Nodejs服務(wù)器和MySQL數(shù)據(jù)庫(kù)將會(huì)部署在樹莓派上記錄游戲者分?jǐn)?shù)從高到低的排列,保證在WIFI環(huán)境下任何手機(jī)都能訪問該服務(wù)器,并保證數(shù)據(jù)記錄不丟失。
1)經(jīng)典老游戲的復(fù)活
“打地鼠”游戲的靈感來自一款經(jīng)典的街機(jī)游戲,其中的小動(dòng)物會(huì)突然從洞中冒出,玩家則用木槌擊打它們,擊中得分。
手機(jī)上的“打地鼠”應(yīng)用將實(shí)現(xiàn)以下功能:一只地鼠隨機(jī)出現(xiàn)在屏幕上,每秒鐘移動(dòng)一次;如果手指觸碰到地鼠,則讓設(shè)備震動(dòng),顯示的命中數(shù)加1,地鼠隨機(jī)移動(dòng)到一個(gè)新位置;添加另一個(gè)地雷的圖片:用戶不許碰到它,如果碰到將會(huì)受到懲罰,減少得分或結(jié)束游戲;點(diǎn)擊“重新開始”按鈕,游戲重新開始,命中和失敗的計(jì)數(shù)歸零。界面組件設(shè)計(jì)如下圖所示,而邏輯設(shè)計(jì)部分的功能模塊主要包括:游戲界面初始化、地鼠隨機(jī)移動(dòng)、游戲倒計(jì)時(shí)和游戲結(jié)束這幾個(gè)模塊,充分利用計(jì)時(shí)器的功能來控制圖片的移動(dòng)和游戲的計(jì)時(shí)。
2)在樹莓派上架設(shè)服務(wù)器和部署MySQL數(shù)據(jù)庫(kù)
為了讓游戲者的得分紀(jì)錄能夠長(zhǎng)期保存,并且讓網(wǎng)絡(luò)中的其他參與人員看到得分排行,就需要用到服務(wù)器端來查詢和存儲(chǔ)數(shù)據(jù)。為了減輕樹莓派的負(fù)擔(dān),加快運(yùn)行速度,我們應(yīng)用了小型的基于Nodejs技術(shù)的服務(wù)器端,并創(chuàng)建MySQL數(shù)據(jù)表來存儲(chǔ)游戲得分,當(dāng)游戲結(jié)束并存儲(chǔ)得分后,服務(wù)器會(huì)將重新得到的記錄進(jìn)行排序[5],得出一個(gè)從高到低的得分排名。
樹莓派功耗小,占用體積少,只要在WIFI環(huán)境下連接電源就可以開啟服務(wù)器,當(dāng)然要在系統(tǒng)中設(shè)置好自動(dòng)啟動(dòng)服務(wù)器應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器。
3 總結(jié)和展望
以上介紹的這兩個(gè)實(shí)驗(yàn)都強(qiáng)調(diào)了硬件和軟件的動(dòng)手能力,從趣味性和實(shí)用性兩方面對(duì)原有的教學(xué)內(nèi)容進(jìn)行了改進(jìn)。為了讓學(xué)生更好地在課后完成實(shí)驗(yàn),用最新的視頻制作軟件Camtasiastudio8.5錄制的教學(xué)視頻也已經(jīng)完成。實(shí)驗(yàn)課程的成功開發(fā),證明在其他課程內(nèi)容上采用樹莓派作為平臺(tái)是可行的。課題組將會(huì)繼續(xù)探索和開發(fā)合適的內(nèi)容作為《網(wǎng)絡(luò)信息安全》這門必修課的項(xiàng)目化教學(xué)內(nèi)容。
參考文獻(xiàn):
[1] [英]Peter Membrey. 樹莓派學(xué)習(xí)指南[M]. 北京: 人民郵電出版社, 2014:151-185.
[2] [美]Brendan Horan.RaspberryPi. 樹莓派實(shí)作應(yīng)用[M]. 北京: 人民郵電出版社, 2014:37-58.
[3] 黃仁祥. 人人都能開發(fā)安卓App–AppInventor2應(yīng)用開發(fā)實(shí)戰(zhàn)[M]. 北京:機(jī)械工業(yè)出版社, 2014:91-97.
[4] [英]TomHugbes-Croucber,Node. 即學(xué)即用[M]. OREILLY, 2013:147-158.
[5] David Flanagan, Java Script. 權(quán)威指南[M]. OREILLY, 2015:487-508.