林 瀟,吳 怡
(福建師范大學(xué) 光電與信息工程學(xué)院,福州 350007)
在信息化時代,打印設(shè)備的使用在信息技術(shù)中發(fā)揮著不可或缺的作用,涉及到政府軍隊,企事業(yè)等重要部門,以及與國計民生相關(guān)的金融、電信、能源、教育和電力等各行各業(yè).隨著云計算、嵌入式技術(shù)的發(fā)展,打印技術(shù)也逐漸進(jìn)入了云打印模式.2010年4月,谷歌提出云打印概念:以互聯(lián)網(wǎng)為基礎(chǔ),整合打印設(shè)備資源,構(gòu)建漫游共享打印平臺,向全社會提供隨時隨地的質(zhì)量標(biāo)準(zhǔn)化的打印服務(wù),通過其Chrome 操作系統(tǒng)的API來實現(xiàn)云打印功能.同年11月,惠普也發(fā)布云打印技術(shù)(HP ePrint),通過向云打印機(jī)唯一的E-mail地址發(fā)送郵件的方式,來實現(xiàn)云打印功能[1].
云打印模式的引入,也發(fā)展了打印管理與審計、打印數(shù)據(jù)的加密傳輸?shù)炔煌陌踩蛴〖夹g(shù)[2,3],但在實際應(yīng)用中仍存在以下主要問題:
(1)僅依靠基礎(chǔ)設(shè)施安全,各打印安全功能孤立化,缺少多種不同技術(shù)方案的融合.文獻(xiàn)[4]和文獻(xiàn)[5]中實現(xiàn)的安全打印主要采用數(shù)據(jù)加密技術(shù)來保證打印作業(yè)到云打印機(jī)的可靠交付,但在打印管理和審計方面沒有涉及.特別是文獻(xiàn)[4]應(yīng)用的谷歌云打印系統(tǒng)需要將打印文檔先通過Internet 上傳到國外的云服務(wù)器上,除了使用公有云的開放架構(gòu)易受攻擊之外,還存在很大的隱私問題.文獻(xiàn)[6]的安全打印主要通過安全管理模塊維護(hù)用戶與授權(quán)打印機(jī)的對應(yīng)關(guān)系,通過日志系統(tǒng)追朔打印作業(yè)的執(zhí)行過程,但在打印數(shù)據(jù)的非授權(quán)訪問方面沒有涉及.
(2)用戶桌面與打印機(jī)驅(qū)動高度耦合的技術(shù)模式易產(chǎn)生應(yīng)用風(fēng)險.文獻(xiàn)[7]雖然通過服務(wù)器實現(xiàn)打印監(jiān)控與審計,但是用戶桌面與打印機(jī)驅(qū)動高度耦合,當(dāng)桌面維護(hù)人員的介入后,容易接觸到用戶的桌面或待打印的文檔信息,從而引起數(shù)據(jù)泄密的信息安全事故.
(3)忽視打印輸出端上的系統(tǒng)加固與主動智能防御.為了避免打印桌面的暴露,打印輸出端一般會設(shè)計為3 種應(yīng)用模式:1)像谷歌或惠普的云打印方案中的那種面向特定協(xié)議的專用打印機(jī),但這意味著擴(kuò)展性不足,不適合普通的打印機(jī)接入云打印系統(tǒng);2)采用無用戶交互界面的基于PC的代理網(wǎng)關(guān)系統(tǒng)對不同類型的網(wǎng)絡(luò)打印機(jī)進(jìn)行統(tǒng)一的協(xié)議控制與訪問[8];3)設(shè)計嵌入式控制器驅(qū)動打印機(jī)[9].但是無論采用哪種模式,均沒有在打印輸出端上進(jìn)行安全加固,這會使打印輸出設(shè)備成為潛在的被攻擊的對象,存在病毒傳播及數(shù)據(jù)泄密的風(fēng)險.
因此,針對上述問題,本文以技術(shù)融合為出發(fā)點,創(chuàng)新地提出了一種智能防御的私有云打印系統(tǒng)的安全云打印架構(gòu).采用私有云的網(wǎng)絡(luò)架構(gòu)限制云打印系統(tǒng)的訪問范圍,采用虛擬打印技術(shù)屏蔽打印的細(xì)節(jié)為用戶提供統(tǒng)一的訪問接口,采用面向過程的安全管理技術(shù)對整個打印業(yè)務(wù)流進(jìn)行監(jiān)控、審計與授權(quán)訪問,采用智能防御技術(shù)對打印輸出端進(jìn)行安全加固.整個系統(tǒng)主要由云打印客戶端、云打印服務(wù)器和池打印控制器構(gòu)成.云打印客戶端是面向用戶的接口,用戶通過其登錄云打印系統(tǒng),把待打印的數(shù)據(jù)形成打印作業(yè)后提交至云打印服務(wù)器.云打印服務(wù)器采用Web 架構(gòu),它首先對用戶進(jìn)行身份鑒別,然后對其提交的打印作業(yè)進(jìn)行過程控制,包括審核、審計和作業(yè)數(shù)據(jù)的存儲,一旦打印作業(yè)審核成功,后續(xù)在需要時將被送往該作業(yè)準(zhǔn)入的池打印控制器.池打印控制器采用Windows Embedded 系統(tǒng),它通過讀卡器來實現(xiàn)當(dāng)前打印作業(yè)用戶的鑒別,只有在鑒別到作業(yè)用戶后才下載打印作業(yè)并通過USB 接口驅(qū)動打印機(jī)實現(xiàn)收到作業(yè)的打印輸出,以防止作業(yè)數(shù)據(jù)的丟失.系統(tǒng)的應(yīng)用架構(gòu)如圖1所示.
圖1 系統(tǒng)的應(yīng)用架構(gòu)圖
私有云安全打印技術(shù)是系統(tǒng)工作的基礎(chǔ),它通過虛擬通道打印、文檔格式轉(zhuǎn)化機(jī)制把用戶提交的本地打印作業(yè)中的打印數(shù)據(jù)轉(zhuǎn)為一個加密型的PDF中間件格式,傳輸?shù)皆拼蛴》?wù)器.當(dāng)用戶就近訪問系統(tǒng)中的打印機(jī),并在打印輸出端上完成身份認(rèn)證后,云打印服務(wù)器才把之前用戶提交的打印作業(yè)下發(fā)給打印輸出端進(jìn)行打印輸出,其功能架構(gòu)如圖2所示.該技術(shù)主要體現(xiàn)在云打印客戶端和私有云安全打印通信協(xié)議的設(shè)計中.
圖2 私有云安全打印技術(shù)的功能架構(gòu)圖
云打印客戶端主要由瀏覽器、通用打印驅(qū)動和信使客戶端構(gòu)成,是系統(tǒng)提供給用戶的打印輸入接口.它主要實現(xiàn)了用戶的身份驗證、虛擬打印、本地打印作業(yè)的管理、與系統(tǒng)進(jìn)行協(xié)議交互的功能.
(1)用戶的身份驗證:用戶通過瀏覽器訪問云打印服務(wù)器完成身份驗證.用戶一旦登錄成功則上報登陸主機(jī)的身份信息(IP 地址和MAC 地址等),用于后續(xù)交互的用戶數(shù)據(jù)的標(biāo)識.
(2)虛擬打印:它是由通過定制基于Microsoft PostScript (PS)的打印機(jī)驅(qū)動插件實現(xiàn)的通用打印驅(qū)動來完成的.Microsoft PostScript 打印驅(qū)動由一系列的動態(tài)庫(pscript5.dll、ps5ui.dll 等)、文本文件(PPD 文件)和二進(jìn)制數(shù)據(jù)文件組成.pscript5.dll 用于處理文本輸出和呈現(xiàn)圖像,然后將文本和圖像數(shù)據(jù)發(fā)送到打印后臺處理程序;ps5ui.dll 用來提供打印界面;PPD 文件是打印機(jī)的數(shù)據(jù)文件,為打印機(jī)屬性提供可選配置,例如打印紙張大小、顏色模式等,可以通過修改PPD 文件來修改打印參數(shù).
通用打印驅(qū)動采用COM 技術(shù),主要實現(xiàn)以下功能:它使用Winspool中的AddPrinter 函數(shù)完成虛擬打印機(jī)的安裝及打印機(jī)名稱的自定義設(shè)置,用戶通過該虛擬打印機(jī)名稱實現(xiàn)對系統(tǒng)中所有在線打印機(jī)的統(tǒng)一訪問;它通過定制PS 驅(qū)動中的界面自定義用戶插件和修改PPD 文件實現(xiàn)打印參數(shù)的配置;它實現(xiàn)了PS 驅(qū)動中的IPrintOemPS2::WritePrinter 方法來獲取通過虛擬打印機(jī)提交的打印數(shù)據(jù),原始的打印數(shù)據(jù)為PS 數(shù)據(jù)流;它對打印流程的控制則通過實現(xiàn)PS 驅(qū)動中的IPrintOemPS2::EnableDriver 方法中定制的打印機(jī)掛鉤函數(shù)來完成,掛鉤函數(shù)包含INDEX_DrvStartDoc、INDEX_DrvEndDoc、INDEX_DrvStartPage,這些函數(shù)主要處理文檔開始打印、打印結(jié)束、打印某頁的邏輯.
(3)本地打印作業(yè)的管理:主要包括本地打印作業(yè)的提交和取消,以及打印結(jié)果反饋.應(yīng)用程序通過虛擬打印機(jī)執(zhí)行打印操作時,通用打印驅(qū)動會將收到的PS打印數(shù)據(jù)流和打印參數(shù)通過管道發(fā)送給信使客戶端.為了保證打印數(shù)據(jù)的安全性以及可擴(kuò)展性,信使客戶端通過第三方的ghostscript 庫將PS 數(shù)據(jù)流轉(zhuǎn)成PDF文件,經(jīng)加密后連同打印參數(shù)一起上傳至云打印服務(wù)器完成打印作業(yè)的提交.而云打印服務(wù)器則根據(jù)打印安全策略對用戶提交的打印作業(yè)進(jìn)行審核,并把審核結(jié)果反饋至信使客戶端進(jìn)行顯示.在此過程中,通用打印驅(qū)動還可通過Winspool中的AbortPrinter 函數(shù)對提交的打印作業(yè)進(jìn)行取消,并通告信使客戶端以完成取消打印消息到云打印服務(wù)器的進(jìn)一步提交.
(4)與系統(tǒng)進(jìn)行協(xié)議交互:云打印客戶端與云打印服務(wù)器的數(shù)據(jù)交互主要通過信使客戶端進(jìn)行,采用的是自定義的私有云安全打印通信協(xié)議.
私有云安全打印通信協(xié)議是系統(tǒng)各部件進(jìn)行數(shù)據(jù)交互的基礎(chǔ),通過其實現(xiàn)了私有云的獨立架構(gòu),即系統(tǒng)的數(shù)據(jù)只能在單一網(wǎng)絡(luò)內(nèi)流動,對其他網(wǎng)絡(luò)而言都是無效的.它以WebSocket 協(xié)議為基礎(chǔ),擴(kuò)展實現(xiàn)了打印機(jī)注冊管理、打印作業(yè)管理控制、輸出端智能防御控制等功能,其協(xié)議流如圖3所示.
圖3 私有云安全打印通信協(xié)議的協(xié)議流圖
(1)打印機(jī)注冊管理
池打印控制器每次上電接入網(wǎng)絡(luò)時,都會通過打印機(jī)注冊報文向云打印機(jī)服務(wù)器進(jìn)行注冊,通告自己的設(shè)備ID 及連接的打印機(jī)狀態(tài),只有注冊成功的池打印控制器才能下載打印作業(yè)進(jìn)行輸出.
(2)打印作業(yè)管理控制
云打印客戶端通過作業(yè)提交報文向云打印服務(wù)器提交作業(yè)打印請求,服務(wù)器則通過作業(yè)反饋報文通告審核結(jié)果.一旦審核通過,后續(xù)服務(wù)器將通過作業(yè)下達(dá)報文向池打印控制器發(fā)送作業(yè)輸出指令.
由于在作業(yè)提交流程中,作業(yè)文檔的上傳將耗費較多的帶寬,為了提高系統(tǒng)的響應(yīng)速度,作業(yè)提交報文被設(shè)計為請求文檔、上傳文檔、提交完成這3個子類型.完整的打印作業(yè)提交流程如圖4所示,云打印客戶端首先通過請求文檔報文在服務(wù)器中查找是否已存在待打印文檔,若存在則通過請求文檔報文返回待打印文檔存放在數(shù)據(jù)庫中的唯一的文檔ID;若不存在,則通過上傳文檔報文向服務(wù)器上傳待打印文檔,服務(wù)器在存儲文檔后同樣通過請求文檔報文返回文檔ID;最后再通過提交完成報文向服務(wù)器提交待打印文檔的ID和打印參數(shù)完成作業(yè)的提交.在系統(tǒng)中采用MD5校驗碼和CRC16 校驗碼組合的方式進(jìn)行相同文檔的匹配,在請求文檔報文中就包含有待打印文檔的MD5校驗碼和CRC16 校驗碼,采用雙類型碼校驗檢索可以極大地降低誤匹配率.
圖4 打印作業(yè)提交流程圖
(3)輸出端智能防御控制
池打印控制器通過打印輸出請求報文向云打印服務(wù)器發(fā)出打印機(jī)使用的請求,一旦審核通過,服務(wù)器就會通過作業(yè)下達(dá)報文向該池打印控制器下載請求用戶的作業(yè)進(jìn)行輸出.同時,為了對輸出端進(jìn)行加固,云打印服務(wù)器還會向池打印控制器下發(fā)網(wǎng)絡(luò)訪問控制報文進(jìn)行智能防御,而池打印控制器則會通過網(wǎng)絡(luò)監(jiān)測報文向服務(wù)器進(jìn)行網(wǎng)絡(luò)異常狀態(tài)的通告.
為了保證私有云架構(gòu)的安全性及可控性,私有云之間通過私有云ID 相互區(qū)分,且通過加密算法及校驗策略保證交互數(shù)據(jù)的完整性及可靠性.
面向過程的打印安全管理技術(shù)是云打印服務(wù)器功能的核心,它以面向用戶的打印安全策略為基礎(chǔ),對整個打印過程進(jìn)行監(jiān)控,包括打印作業(yè)的審核、審批和追溯,以及打印機(jī)的監(jiān)控與管理.其中,面向用戶的打印安全策略由用戶注冊時的角色類型以及后續(xù)管理員的設(shè)定來決定,它主要分為打印策略和文檔訪問安全策略這兩個部分.打印策略主要是對用戶提交的打印參數(shù)進(jìn)行限制,包括:允許打印、彩打/黑白、單面等.文檔訪問安全策略主要是對用戶打印的資源進(jìn)行訪問控制,包括:文檔密級、需要人工審批、信息追蹤等.其中,文檔密級用于限制用戶能夠打印的文檔,超過密級以上的文檔用戶將無法打印.服務(wù)器會對用戶提交的打印作業(yè)中的文檔進(jìn)行密級鑒定,采用的是文檔匹配、敏感詞句匹配、人工審核相結(jié)合的方式.即,先根據(jù)作業(yè)中的文檔ID 提取待打印文檔,若該文檔是歷史上傳文檔,其密級就是作業(yè)文檔的密級;若該文檔是新上傳文檔則不存在文檔密級,此時進(jìn)行敏感詞句的匹配,并把匹配到的敏感詞句的密級作為該文檔的密級;若所有的敏感詞句都匹配不到,則提交管理員審核,由管理員設(shè)定文檔密級.作業(yè)文檔的密級一旦設(shè)定,則打印流程繼續(xù),文檔密級的鑒定流程如圖5所示.而信息追蹤,則是對提交打印的文檔加入基于用戶名、提交打印主機(jī)MAC 地址、打印時間戳的暗水印以實現(xiàn)打印泄密的源追溯.
圖5 文檔密級的鑒定流程圖
面向過程的打印安全管理技術(shù)的工作流程如圖6所示.當(dāng)用戶提交打印作業(yè)時,首先基于用戶的打印策略對打印參數(shù)進(jìn)行審核,接著鑒定作業(yè)文檔的密級,并根據(jù)用戶的文檔訪問安全策略進(jìn)行審核.所有審核通過后,打印作業(yè)被存儲在服務(wù)器中,再根據(jù)后續(xù)的打印輸出請求下發(fā)到池打印控制器進(jìn)行按需打印輸出.除此之外,服務(wù)器還會向池打印控制器下發(fā)網(wǎng)絡(luò)訪問控制策略,并根據(jù)池打印控制器反饋的網(wǎng)絡(luò)異常狀態(tài)進(jìn)行系統(tǒng)通告及阻斷打印過程,以實現(xiàn)打印機(jī)的監(jiān)控與管理.
圖6 打印安全管理技術(shù)的工作流程圖
為了避免池打印控制器成為系統(tǒng)網(wǎng)絡(luò)安全的短板——成為被攻擊的對象或者攻擊的發(fā)起者,在設(shè)計中,云打印服務(wù)器和池打印控制器之間進(jìn)行了網(wǎng)絡(luò)隔離.傳統(tǒng)的網(wǎng)絡(luò)隔離技術(shù),一般通過配置交換機(jī)與防火墻實現(xiàn),對硬件要求較高,兼容性較差,在用戶訪問權(quán)限需要動態(tài)變化的情況下,還需要頻繁地對交換機(jī)進(jìn)行設(shè)置,使用繁瑣.因此,系統(tǒng)在網(wǎng)絡(luò)隔離方面提出了一種端末的網(wǎng)絡(luò)訪問控制策略,即使用智能防御技術(shù)對打印輸出端(池打印控制器)進(jìn)行安全加固.
端末的網(wǎng)絡(luò)訪問控制策略的核心就是在池打印控制器的網(wǎng)卡驅(qū)動中添加過濾模塊,該過濾模塊會加載從服務(wù)器下發(fā)的網(wǎng)絡(luò)訪問控制報文中解析到的網(wǎng)絡(luò)訪問控制列表,并據(jù)其對網(wǎng)卡流入和流出的網(wǎng)絡(luò)數(shù)據(jù)幀進(jìn)行過濾,攔截網(wǎng)絡(luò)訪問控制列表中禁止的網(wǎng)絡(luò)行為,以限制池打印控制器的能夠訪問的網(wǎng)絡(luò)范圍,達(dá)到網(wǎng)絡(luò)隔離的目的.同時,池打印控制器還會根據(jù)過濾模塊統(tǒng)計的網(wǎng)絡(luò)異常訪問信息,觸發(fā)設(shè)備關(guān)閉或重啟的操作,利用Windows Embedded 系統(tǒng)具有重啟還原的特點,讓池打印控制器始終在可靠的狀態(tài)下工作.策略的工作流程如圖7所示.
圖7 端末的網(wǎng)絡(luò)訪問控制策略的工作流程圖
過濾模塊所加載的訪問控制列表包含基礎(chǔ)流量信息(IP 地址范圍、本地端口范圍、遠(yuǎn)程端口范圍、Internet 使用的協(xié)議類型、網(wǎng)絡(luò)數(shù)據(jù)幀的流量方向以及訪問權(quán)限等)和特征流量信息(受限流量和非受限流量的端口速率、重復(fù)率、碎片率、誤碼率等).
系統(tǒng)的應(yīng)用效果如圖8、圖9和圖10所示.其中,圖8為云打印服務(wù)器的Web 管理界面,圖9為池打印控制器控制2 臺打印機(jī)的場景圖.當(dāng)打印用戶通過瀏覽器登陸云打印系統(tǒng)成功之后,在本地的信使客戶端中即可查詢到當(dāng)前用戶能夠訪問的系統(tǒng)中已上線的云打印機(jī)信息、用戶歷史的打印作業(yè)信息,以及對其正在提交的打印作業(yè)進(jìn)行打印管理,應(yīng)用效果如圖10所示.
圖8 云打印服務(wù)器的Web 管理界面
圖9 池打印控制器控制2 臺打印機(jī)的場景圖
圖10 云打印客戶端中的信使客戶端運(yùn)行界面
為了測試在保障良好的響應(yīng)時間內(nèi)系統(tǒng)能夠承受的最大吞吐量,即每秒同時提供的不同業(yè)務(wù)接口的最大值,本文采用了apache-jmeter-5.1.1 測試工具對系統(tǒng)進(jìn)行了性能壓測,主要測試了安全路徑下的提交作業(yè)和作業(yè)輸出這2個業(yè)務(wù)流.同時還測試了池打印控制器在受到DOS 攻擊時,系統(tǒng)執(zhí)行作業(yè)輸出流的平均響應(yīng)時間和異常率.系統(tǒng)的測試環(huán)境如表1所示,其中,云打印服務(wù)器采用群集的方式部署為2個基于Web的打印管理服務(wù)器和2個數(shù)據(jù)庫服務(wù)器.
表1 系統(tǒng)的測試環(huán)境表
在測試環(huán)境中,本文針對提交作業(yè)流程(含請求文檔U1、上傳文件U2、提交作業(yè)U3 這3個階段),模擬400 并發(fā)用戶連續(xù)發(fā)起100 次請求進(jìn)行測試,測試數(shù)據(jù)如表2所示.其中,系統(tǒng)對提交作業(yè)流程各階段的平均響應(yīng)時間為0.15 s,最長響應(yīng)時間為1.995 s,錯誤率是0 (100%執(zhí)行成功),吞吐量(即每秒完成的請求數(shù))約為2358.352.
表2 提交作業(yè)測試數(shù)據(jù)表
而針對作業(yè)輸出流程(含獲取作業(yè)詳情D1、下載作業(yè)文件D2、上報作業(yè)狀態(tài)D3 這3個階段),模擬400 并發(fā)用戶連續(xù)發(fā)起100 次請求進(jìn)行測試,測試數(shù)據(jù)如表3所示.其中,系統(tǒng)對作業(yè)輸出流程各階段的平均響應(yīng)時間為0.448 s,最長響應(yīng)時間為1.329 s,錯誤率是0 (100% 執(zhí)行成功),吞吐量(即每秒完成的請求數(shù))約為860.931.
表3 作業(yè)輸出測試數(shù)據(jù)表
根據(jù)表2和表3的測試數(shù)據(jù)分析可得,一個完整的提交作業(yè)流程(含3個階段)的平均響應(yīng)時間為0.45 s,而一個完整的作業(yè)輸出流程(含3個階段)的平均響應(yīng)時間為1.343 s,均小于2 s,根據(jù)2/5/10 s 原則[10],系統(tǒng)可以被用戶認(rèn)為是“非常有吸引力”的用戶體驗.
而對池打印控制器的安全性測試,則在表3的模擬條件下附加hping3 工具對其發(fā)起TCP SYN Flood攻擊進(jìn)行.由于池打印控制器應(yīng)用了智能防御技術(shù),過濾了非授權(quán)流量,無法通過漏洞掃描探測其開放端口,因此,在測試中,hping3 攻擊的池打印器端口顯示給出.測試數(shù)據(jù)如表4所示,根據(jù)其分析可得,在S1 (1000 SYN包/s)攻擊條件下,系統(tǒng)能夠正常及時地執(zhí)行作業(yè)輸出流;在S2 (5000 SYN 包/s)攻擊條件下,系統(tǒng)能夠較好地執(zhí)行作業(yè)輸出流,但響應(yīng)時間增加;在特定攻擊條件S3 (偽造打印管理服務(wù)器IP,5000 SYN 包/s)下,作業(yè)輸出流執(zhí)行質(zhì)量有一定的下降.在S2和S3 條件下,隨著攻擊時間的持續(xù),池打印控制器均發(fā)生重啟,且打印管理服務(wù)器收到網(wǎng)絡(luò)異常信息.可見,本文所設(shè)計的安全架構(gòu)能夠較好地保障系統(tǒng)功能的安全執(zhí)行.
表4 池打印控制器被攻擊時,作業(yè)輸出測試數(shù)據(jù)表
為了解決打印服務(wù)存在的易受攻擊、數(shù)據(jù)泄密等安全問題以及充分利用云計算集中式管理的便捷性與高效性,本文提出了一種融合私有云技術(shù)、打印過程監(jiān)控及管理與智能防御技術(shù)的安全打印架構(gòu).該架構(gòu)以私有云為基礎(chǔ)屏蔽了外部網(wǎng)絡(luò)的非授權(quán)訪問,通過對打印過程的審計與管理實現(xiàn)打印數(shù)據(jù)的授權(quán)訪問以及追溯控制,最后還通過端末的訪問控制策略實現(xiàn)打印輸出設(shè)備的主動智能防御,以避免末端成為系統(tǒng)網(wǎng)絡(luò)安全的短板.以該架構(gòu)實現(xiàn)的系統(tǒng)經(jīng)過壓力測試和安全性測試后,仍具有良好的用戶體驗和健壯性,目前已部署于銀行、保險等單位,以待實踐的進(jìn)一步檢驗.