劉志軍 賀鎮(zhèn)海 陳 寧
中興通訊股份有限公司 上海 201208
密碼管控不嚴(yán)格導(dǎo)致的黑客入侵事件是常見的一類安全事件。計(jì)算機(jī)和通信行業(yè)中實(shí)施主機(jī)賬號(hào)密碼管控時(shí)常常出現(xiàn)密碼維護(hù)困難,如IPTV(Internet Protocol Television,網(wǎng)絡(luò)協(xié)定電視)、OTT(Over The Top)等產(chǎn)品中主機(jī)數(shù)量龐大,產(chǎn)品工程安全規(guī)范實(shí)施不到位出現(xiàn)弱密碼,進(jìn)而會(huì)因?yàn)楣こ藤Y料泄露導(dǎo)致密碼泄露。賬號(hào)密碼的申請(qǐng)、回收、審計(jì)等過程操作繁瑣,進(jìn)一步加大了系統(tǒng)被入侵的可能性。
在現(xiàn)有技術(shù)中,關(guān)于賬號(hào)管理,可以預(yù)先將賬號(hào)及其對(duì)應(yīng)的密碼保存在預(yù)定的系統(tǒng)中,待使用時(shí)直接從系統(tǒng)中獲取。例如:通過將用戶的登錄信息(賬號(hào)、密碼)與訪問對(duì)象進(jìn)行關(guān)聯(lián)后存儲(chǔ),當(dāng)用戶指定了需要對(duì)某個(gè)訪問對(duì)象進(jìn)行登錄操作時(shí),通過在系統(tǒng)中讀取出與之關(guān)聯(lián)的用戶名和密碼等信息來執(zhí)行登錄操作,這樣的方式不需要用戶手動(dòng)地輸入登錄信息來完成登錄,由此提高了用戶網(wǎng)絡(luò)活動(dòng)的效率。
但是,上述賬號(hào)管理方式是對(duì)預(yù)先確定好的賬號(hào)和密碼的管理,若系統(tǒng)信息泄露,則賬號(hào)和密碼也將會(huì)泄露,從而造成安全隱患。
本文提供了一種賬戶分配方法,可以在很大程度上防止系統(tǒng)帳號(hào)和密碼的泄漏,并且也降低了維護(hù)的成本,方法的大體流程如下。
在操作員對(duì)設(shè)備進(jìn)行操作前會(huì)先向管理設(shè)備發(fā)起操作請(qǐng)求,管理設(shè)備接收到操作員的請(qǐng)求后會(huì)對(duì)該操作請(qǐng)求進(jìn)行審批,審批通過后為該操作員的本次操作選取一個(gè)賬戶并為這個(gè)賬戶生成一個(gè)臨時(shí)密碼,臨時(shí)密碼是由一系列的隨機(jī)算法計(jì)算得出的一個(gè)隨機(jī)串,此后管理設(shè)備會(huì)向操作員要操作的設(shè)備發(fā)起一個(gè)預(yù)設(shè)密碼請(qǐng)求,將設(shè)備的對(duì)應(yīng)賬戶的密碼修改。其中,管理端選取的賬戶可以是新創(chuàng)建的賬戶,也可以是被操作設(shè)備系統(tǒng)中的現(xiàn)有賬戶,賬戶的臨時(shí)密碼被設(shè)置為具有一個(gè)有效期,僅在某個(gè)時(shí)間窗內(nèi)有效,超出時(shí)間窗后密碼失效。通過采用本文方法,避免了設(shè)備賬戶和密碼在系統(tǒng)中保存而存在的泄漏風(fēng)險(xiǎn),操作審批和密碼有效期的存在也讓操作員對(duì)設(shè)備的操作更加規(guī)范可控,有效地降低了維護(hù)成本。
本文提供了一種賬戶分配方法,采用的賬戶分配裝置的結(jié)構(gòu)圖如圖1所示,以下結(jié)合圖1對(duì)本方法進(jìn)行進(jìn)一步的詳細(xì)說明[1]。
圖1 賬戶分配裝置結(jié)構(gòu)圖
1) 設(shè)備操作單元210,用于針對(duì)要操作的設(shè)備發(fā)起操作請(qǐng)求。
2) 安全管理單元220,用于接收設(shè)備操作單元針對(duì)設(shè)備發(fā)起的操作請(qǐng)求,并對(duì)請(qǐng)求進(jìn)行審批。
3) 密碼管理單元230,用于根據(jù)操作請(qǐng)求,為設(shè)備操作單元生成臨時(shí)賬戶,以及在設(shè)備操作單元基于臨時(shí)賬戶對(duì)設(shè)備操作完畢后,禁止臨時(shí)賬戶繼續(xù)登錄設(shè)備。該單元的具體作用為:向設(shè)備發(fā)送密碼修改指令;接收設(shè)備根據(jù)密碼修改指令所修改的密碼;將設(shè)備反饋的密碼作為臨時(shí)賬戶中的密碼并存入數(shù)據(jù)庫中。臨時(shí)賬戶中的密碼僅在指定的操作終止時(shí)間到達(dá)之前有效。此外,密碼管理單元的作用還包括:從指定的操作開始時(shí)間開始,判斷是否接收到來自設(shè)備操作單元210發(fā)送的密碼回收請(qǐng)求,若是,則禁止密碼登錄設(shè)備,若否,則繼續(xù)判斷,直至達(dá)到操作終止時(shí)間為止;當(dāng)?shù)竭_(dá)操作終止時(shí)間時(shí),判斷設(shè)備操作單元210對(duì)設(shè)備是否有操作,若是,則向安全管理單元220發(fā)送告警信號(hào),若否,則禁止密碼登錄設(shè)備。
4) 平臺(tái)管理單元240,用于在接收設(shè)備操作單元210針對(duì)設(shè)備發(fā)起的操作請(qǐng)求之前,為每個(gè)安全管理單元220關(guān)聯(lián)一個(gè)或多個(gè)設(shè)備;在設(shè)備操作單元210發(fā)起操作請(qǐng)求后,由與設(shè)備關(guān)聯(lián)的安全管理單元220接收操作請(qǐng)求。該安全管理單元接收后并對(duì)設(shè)備操作單元210發(fā)起的操作請(qǐng)求進(jìn)行審批;密碼管理單元230還用于當(dāng)操作請(qǐng)求審批通過后,利用預(yù)設(shè)的密碼生成策略,獲得臨時(shí)賬戶登錄設(shè)備的密碼,其中預(yù)設(shè)密碼的生成策略在管理端采用加密的方式存儲(chǔ)。
5) 密碼傳輸單元250,用于將密碼發(fā)送給設(shè)備操作單元210,以使設(shè)備操作單元210在規(guī)定的時(shí)間內(nèi)基于該密碼登錄設(shè)備進(jìn)行操作。
6) 除了上述單元外,賬戶分配裝置中還有一個(gè)進(jìn)行操作審計(jì)的單元,這個(gè)單元就是審計(jì)管理單元260,用于對(duì)平臺(tái)管理單元240、安全管理單元220和/或設(shè)備操作單元210的操作行進(jìn)行審計(jì)。
圖2給出了該賬戶分配裝置在實(shí)際工作流執(zhí)行時(shí)的應(yīng)用,具體的執(zhí)行步驟如下。
圖2 賬戶分配方法的系統(tǒng)流程圖
圖2是本文賬戶分配方法的流程圖,主要包括四個(gè)步驟,詳細(xì)說明如下。
1) 步驟S110,預(yù)先設(shè)置具有不同權(quán)限的多個(gè)單元。權(quán)限單元包括:平臺(tái)管理單元、安全管理單元、審計(jì)管理單元和設(shè)備操作單元。其中,安全管理單元的數(shù)量、設(shè)備操作單元的數(shù)量可以是一個(gè)或多個(gè)。每個(gè)單元根據(jù)各自的權(quán)限,實(shí)現(xiàn)臨時(shí)賬戶的分配和回收,防止因賬戶信息泄露而引起的安全性問題。進(jìn)一步地,每個(gè)單元可以對(duì)應(yīng)具體的操作用戶。例如:平臺(tái)管理單元可以對(duì)應(yīng)平臺(tái)管理用戶,安全管理單元可以對(duì)應(yīng)安全管理用戶;審計(jì)管理單元可以對(duì)應(yīng)審計(jì)管理用戶;設(shè)備操作單元可以對(duì)應(yīng)設(shè)備操作用戶。
平臺(tái)管理單元用于為每個(gè)安全管理單元關(guān)聯(lián)一個(gè)或多個(gè)設(shè)備,以及用于安全管理單元、審計(jì)管理單元和設(shè)備操作單元各自對(duì)應(yīng)用戶權(quán)限的分配和回收。具體而言,平臺(tái)管理單元能夠在裝置中創(chuàng)建或?qū)朐O(shè)備信息,至少包括主機(jī)名、地址、網(wǎng)元信息和地理位置信息;平臺(tái)管理單元將設(shè)備與安全管理用戶進(jìn)行關(guān)聯(lián),使該安全管理用戶負(fù)責(zé)與其關(guān)聯(lián)的一個(gè)或多個(gè)設(shè)備的安全管理。進(jìn)一步地,當(dāng)需要裝置中設(shè)備的數(shù)量較多時(shí),可以設(shè)置多個(gè)安全管理單元,平臺(tái)管理單元可以將設(shè)備按照區(qū)域或者類型分別劃分為各個(gè)安全管理單元,也就是說,為每個(gè)安全管理單元關(guān)聯(lián)一個(gè)或多個(gè)設(shè)備。更進(jìn)一步地,平臺(tái)管理單元可以指定用戶作為安全管理用戶、審計(jì)管理用戶或設(shè)備操作用戶。例如:現(xiàn)有用戶A、B、C,平臺(tái)管理單元可以指定用戶A作為安全管理用戶,指定用戶B作為審計(jì)管理用戶,指定用戶C作為設(shè)備操作用戶,平臺(tái)管理用戶還可以撤銷用戶所具有的權(quán)限。
當(dāng)需要對(duì)設(shè)備進(jìn)行操作時(shí),設(shè)備操作單元用于向該設(shè)備關(guān)聯(lián)的安全管理單元發(fā)起操作請(qǐng)求,以此來獲得臨時(shí)賬戶,依據(jù)獲得的臨時(shí)賬戶,執(zhí)行設(shè)備操作。例如對(duì)設(shè)備進(jìn)行業(yè)務(wù)升級(jí)、故障排查等。
安全管理單元用于對(duì)設(shè)備操作單元發(fā)起的操作請(qǐng)求進(jìn)行審批[2],以及負(fù)責(zé)所管轄/關(guān)聯(lián)的一個(gè)或多個(gè)設(shè)備的安全,如安全策略下發(fā)、安全監(jiān)控等。
審計(jì)管理單元用于審計(jì)平臺(tái)管理單元、安全管理單元和/或設(shè)備操作單元的操作行為,及時(shí)發(fā)現(xiàn)可疑的操作痕跡,進(jìn)而發(fā)現(xiàn)平臺(tái)管理用戶、安全管理用戶和/或設(shè)備操作用戶的非法操作行為。進(jìn)一步地,審計(jì)管理單元可以對(duì)平臺(tái)管理單元為每個(gè)安全管理單元關(guān)聯(lián)一個(gè)或多個(gè)設(shè)備的操作進(jìn)行審計(jì),對(duì)安全管理單元審批操作請(qǐng)求的操作進(jìn)行審計(jì),以及對(duì)設(shè)備操作單元對(duì)設(shè)備進(jìn)行的操作進(jìn)行審批,進(jìn)而發(fā)現(xiàn)平臺(tái)管理單元、安全管理單元和設(shè)備操作單元的非法操作行為。其中,審計(jì)是指根據(jù)裝置收集的信息,判斷單元(如:平臺(tái)管理單元、安全管理單元和設(shè)備操作單元)針對(duì)設(shè)備執(zhí)行的操作是否合法,并給出判斷結(jié)果。
2) 步驟S120,接收設(shè)備操作單元針對(duì)設(shè)備發(fā)起的操作請(qǐng)求。因?yàn)樵诮邮赵O(shè)備操作單元針對(duì)設(shè)備發(fā)起操作請(qǐng)求之前,平臺(tái)管理單元為每個(gè)安全管理單元關(guān)聯(lián)一個(gè)或多個(gè)設(shè)備,所以,當(dāng)設(shè)備需要操作、維護(hù)時(shí),設(shè)備操作單元需要向與該設(shè)備關(guān)聯(lián)的安全管理單元發(fā)起操作請(qǐng)求,在設(shè)備操作單元發(fā)起操作請(qǐng)求后,由與設(shè)備關(guān)聯(lián)的安全管理單元接收操作請(qǐng)求。操作請(qǐng)求用于請(qǐng)求獲得操作設(shè)備時(shí)所需的臨時(shí)賬戶[3],臨時(shí)賬戶包括登錄設(shè)備所需的賬號(hào)和密碼。
3) 步驟S130,根據(jù)操作請(qǐng)求,為設(shè)備操作單元生成臨時(shí)賬戶。臨時(shí)賬戶是指在指定的時(shí)間段內(nèi)有效的賬戶,在指定時(shí)間段之外的時(shí)間,該賬戶均無效。
在臨時(shí)賬戶中,設(shè)備的賬號(hào)是已知信息,密碼是未知信息。賬號(hào)可以通過查詢每個(gè)設(shè)備對(duì)應(yīng)的賬號(hào)而獲得,密碼可以利用算法來生成。基于查詢獲得的賬號(hào)和生成的密碼形成臨時(shí)賬戶,將臨時(shí)賬戶發(fā)送給設(shè)備操作單元。設(shè)備操作單元利用臨時(shí)賬戶登錄設(shè)備,并對(duì)設(shè)備進(jìn)行操作。
具體而言,安全管理單元接收到該操作請(qǐng)求后,利用預(yù)設(shè)的密碼生成策略,獲得臨時(shí)賬戶中的密碼,或由安全管理單元對(duì)設(shè)備操作單元發(fā)起的操作請(qǐng)求進(jìn)行審批,當(dāng)操作請(qǐng)求審批通過后,利用預(yù)設(shè)的密碼生成策略,獲得臨時(shí)賬戶登錄設(shè)備的密碼。針對(duì)該操作請(qǐng)求進(jìn)行審批,即判斷是否允許該設(shè)備操作單元對(duì)該設(shè)備執(zhí)行操作,以此增加設(shè)備的安全性。進(jìn)一步地,審批通過的操作請(qǐng)求是指允許設(shè)備操作單元對(duì)該設(shè)備執(zhí)行操作,審批未通過的操作請(qǐng)求,則不允許設(shè)備操作單元對(duì)設(shè)備執(zhí)行操作。
裝置將生成的臨時(shí)賬戶中的密碼進(jìn)行存儲(chǔ),但是,該密碼不直接顯示在裝置中,而是加密保存在數(shù)據(jù)庫中[4](加密采用的是3DES算法),對(duì)平臺(tái)管理單元、安全管理單元、審計(jì)管理單元和設(shè)備操作單元都不可見,也就是說,該密碼對(duì)平臺(tái)管理用戶、安全管理用戶、審計(jì)管理用戶和設(shè)備操作用戶都不可見。
利用預(yù)設(shè)的密碼生成策略而生成的密碼可以僅在操作時(shí)間窗口內(nèi)使用有效。該操作時(shí)間窗口為一個(gè)時(shí)間長(zhǎng)度,該時(shí)間長(zhǎng)度可以是經(jīng)驗(yàn)值。安全管理單元可以對(duì)該時(shí)間長(zhǎng)度進(jìn)行設(shè)置。進(jìn)一步地,針對(duì)設(shè)備操作單元的操作請(qǐng)求,為該設(shè)備操作單元指定操作開始時(shí)間和操作終止時(shí)間,允許設(shè)備操作單元在操作開始時(shí)間和操作終止時(shí)間之間的時(shí)間段(操作時(shí)間窗口)內(nèi)進(jìn)行設(shè)備操作。這樣,臨時(shí)賬戶中的密碼僅在指定的操作終止時(shí)間到達(dá)之前有效。
在獲得密碼后,裝置將密碼發(fā)送給設(shè)備操作單元,以使設(shè)備操作單元基于該密碼對(duì)設(shè)備進(jìn)行運(yùn)維操作。裝置通過預(yù)定的方式將臨時(shí)賬戶(密碼)傳送給設(shè)備操作單元。例如,通過郵件、短信等單獨(dú)渠道傳送給設(shè)備操作單元,對(duì)其他單元均不可見。由于臨時(shí)賬戶和密碼具有操作時(shí)間窗口,僅在預(yù)設(shè)的操作終止時(shí)間到達(dá)之前有效,因此設(shè)備操作單元需要在操作時(shí)間窗口內(nèi),利用臨時(shí)賬戶(密碼),執(zhí)行設(shè)備的操作,這種操作為有效操作,否則,該操作為無效操作,且為非法操作。
4) 步驟S140,在設(shè)備操作單元基于臨時(shí)賬戶對(duì)設(shè)備操作完畢后,禁止該臨時(shí)賬戶登錄該設(shè)備。即對(duì)臨時(shí)賬戶進(jìn)行回收,在設(shè)備側(cè)撤銷該臨時(shí)賬戶,當(dāng)再次使用該臨時(shí)賬戶登錄設(shè)備時(shí),則登錄失敗。例如:設(shè)備修改當(dāng)前密碼,則使用原密碼將無法登錄成功。
具體而言,設(shè)備操作單元對(duì)設(shè)備操作完畢后,在裝置中提交密碼回收請(qǐng)求,裝置將再次向設(shè)備發(fā)送密碼修改指令,或者裝置將再次根據(jù)預(yù)先設(shè)置的密碼生成算法生成一個(gè)密碼,使設(shè)備修改當(dāng)前密碼,這樣使用原密碼將無法登錄設(shè)備。設(shè)備密碼修改成功后將修改后的密碼返回裝置,由裝置對(duì)該密碼加密后存入數(shù)據(jù)庫。
由于密碼僅在操作時(shí)間窗口內(nèi)使用有效,則從指定的操作開始時(shí)間開始,判斷是否接收到來自設(shè)備操作單元發(fā)送的密碼回收請(qǐng)求,若是,則禁止密碼登錄設(shè)備;若否,則繼續(xù)判斷,直至到達(dá)操作終止時(shí)間為止;當(dāng)?shù)竭_(dá)操作終止時(shí)間時(shí),判斷設(shè)備操作單元對(duì)設(shè)備是否有操作,若是,則向安全管理單元發(fā)送告警信號(hào),若否,則禁止密碼登錄設(shè)備。安全管理單元接收到告警信號(hào)后,視情況進(jìn)行安全策略下發(fā)。例如:發(fā)現(xiàn)設(shè)備操作單元為可疑單元,則鎖定設(shè)備;若設(shè)備出現(xiàn)不易排查的故障,則延長(zhǎng)操作時(shí)間窗口[5],其中安全策略的下發(fā)是通過Agent代理程序接口從管理端下發(fā)到被管理設(shè)備的,接口傳輸采用的是私有協(xié)議,保證了數(shù)據(jù)傳輸?shù)陌踩?/p>
以下再以一實(shí)施方式進(jìn)行說明:如圖3所示,本實(shí)施方式中賬戶分配裝置(管理平臺(tái))采用如Linux操作系統(tǒng)。被管理的設(shè)備上安裝Agent代理程序模塊,我們稱之為安全代理,管理平臺(tái)與下面管理的設(shè)備通過Agent代理程序的接口進(jìn)行信息交互來保證通訊的安全。管理平臺(tái)主要完成如下任務(wù):處理操作員提出的操作申請(qǐng)并對(duì)這些申請(qǐng)進(jìn)行批準(zhǔn)并準(zhǔn)備好此次操作使用的賬戶和密碼、對(duì)于發(fā)出告警的監(jiān)控設(shè)備下發(fā)相應(yīng)的安全策略。通過應(yīng)用本系統(tǒng)提供的賬戶分配方法,在保證運(yùn)維效率的基礎(chǔ)上整個(gè)系統(tǒng)的安全性和保密性大大加強(qiáng),創(chuàng)造了良好的經(jīng)濟(jì)效益[5]。
圖3 賬戶分配裝置的系統(tǒng)部署圖
本文提到的這種賬戶分配方法引入分權(quán)模式的賬戶管理方式,通過分配六種角色單元,使各個(gè)單元各司其職,防止某一類角色由于對(duì)設(shè)備權(quán)限過大而造成不可控制的安全影響。方法中通過申請(qǐng)臨時(shí)賬號(hào)的方式,有效地解決了大批量設(shè)備賬號(hào)的管理負(fù)擔(dān)問題,降低了維護(hù)成本。除此之外,臨時(shí)賬戶密碼的分配和存儲(chǔ)都由裝置管理,平臺(tái)管理單元、安全管理單元和審計(jì)管理單元均無法獲知密碼,而且設(shè)備操作單元也只能在有限時(shí)間窗內(nèi)使用密碼,有效地避免了密碼泄露造成的安全事件,降低運(yùn)維人員的安全管理負(fù)擔(dān)。
如何對(duì)設(shè)備進(jìn)行安全有效的管理并且在管理過程中對(duì)設(shè)備密碼進(jìn)行有效的控制、保障環(huán)境的安全,是日常運(yùn)維過程中運(yùn)維人員最為關(guān)注的問題,未來運(yùn)維管理中設(shè)備會(huì)越來越多,管理的人員會(huì)越來越少,更加高效安全的賬戶管理系統(tǒng)是一個(gè)必然的發(fā)展趨勢(shì)。傳統(tǒng)的管理方式通過在數(shù)據(jù)庫中預(yù)先存儲(chǔ)設(shè)備密碼的方式會(huì)由于系統(tǒng)信息的泄漏而引發(fā)安全問題,本文針對(duì)運(yùn)維管理的特點(diǎn)并結(jié)合實(shí)際的需求和操作流程引入了賬戶申請(qǐng)和密碼有效期的概念,對(duì)傳統(tǒng)的帳號(hào)管理的缺陷進(jìn)行了分析,通過隨機(jī)生成密碼、操作前申請(qǐng)賬戶、管理員批準(zhǔn)賬戶和賬戶密碼設(shè)置有效期的方式消除了傳統(tǒng)管理方式的安全隱患,在保證了系統(tǒng)安全性的同時(shí)也讓運(yùn)維的管理變得可控且規(guī)范。隨著運(yùn)維管理中設(shè)備數(shù)量的增多及種類的豐富,未來的系統(tǒng)更要關(guān)注設(shè)備的類型,并采用分類的方式,在現(xiàn)有的基礎(chǔ)上根據(jù)設(shè)備的業(yè)務(wù)類型更加有效地管理設(shè)備。
參考文獻(xiàn)
[1]葉永生.基于ITIL方法的運(yùn)維服務(wù)系統(tǒng)研究與設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(3):114-125
[2]鄧集波,洪帆.基于任務(wù)的訪問控制模型[J].軟件學(xué)報(bào),2003,14(1):76-82
[3]陳曦,李振宇,謝高崗.一種基于P2P-SIP的可管理和可運(yùn)維VoIP系統(tǒng)架構(gòu)[J].計(jì)算機(jī)研究與發(fā)展,2010(7):135-146
[4]鄧集波,洪帆.基于任務(wù)的訪問控制模型[J].軟件學(xué)報(bào),2003,14(1):76-82
[5]胡錦敏,張申生.支持企業(yè)動(dòng)態(tài)聯(lián)盟的敏捷工作流系統(tǒng)[J].計(jì)算機(jī)研究與發(fā)展,1999,36(12):1517-1223