本發(fā)明總體涉及計算機安全領(lǐng)域,更具體地涉及在管理程序模式下安全執(zhí)行代碼的系統(tǒng)和方法。
背景技術(shù):
計算機惡意軟件(例如特洛伊木馬、病毒和蠕蟲)以不斷增加的速度日益發(fā)展,并且使用多種方法來規(guī)避抗病毒應(yīng)用程序。一種這樣的方法是向正在執(zhí)行抗病毒檢查的抗病毒應(yīng)用程序隱藏計算機系統(tǒng)的某些資源(例如文件或注冊分支)。按照反病毒公司的分類,使用這樣的方法的惡意程序被稱為隱匿程式,或者這些惡意程序使用隱匿技術(shù)。如果可以利用在操作系統(tǒng)(Operating System,OS)的工作在內(nèi)核級下的組成部分中的漏洞,則隱匿技術(shù)變成甚至更加危險的。這不允許現(xiàn)在的抗病毒應(yīng)用程序檢測使用這類技術(shù)的惡意程序。
解決這類情況的一種途徑是使用管理程序,該管理程序?qū)⒉煌腛S彼此隔離、對不同運行的OS之間的資源進行劃分、以及管理資源。同時,相比于在內(nèi)核級下對代碼的執(zhí)行,在管理程序模式下對代碼的執(zhí)行發(fā)生在甚至更低的級上。不必驚訝的是,制作抗病毒應(yīng)用程序的公司對這樣的途徑感興趣。然而,當(dāng)前的解決方案是低效的,并且在一些情況下不可能采用。
技術(shù)實現(xiàn)要素:
公開了用于在管理程序模式下安全執(zhí)行代碼的系統(tǒng)和方法。一種示例性方法包括:加載管理程序,所述管理程序配置成檢查受保護的虛擬內(nèi)存頁面的完整性;加載可信程序,所述可信程序配置成進行對所述管理程序的超級調(diào)用;通過所述可信程序進行對所述管理程序的第一超級調(diào)用;響應(yīng)于所述第一超級調(diào)用,通過所述管理程序生成令牌,所述令牌被所述管理程序用來在隨后的超 級調(diào)用期間識別所述可信程序;分配用于存儲所述令牌和所述管理程序的內(nèi)存地址的內(nèi)存頁面;以及將所分配的內(nèi)存頁面的地址返回給所述可信程序。
在一個示例性方面中,所述可信程序是抗病毒應(yīng)用程序的組成部分。
在一個示例性方面中,加載管理程序包括:在加載一個或多個客戶操作系統(tǒng)之前加載所述管理程序。
在一個示例性方面中,通過所述管理程序生成令牌包括:針對每個客戶操作系統(tǒng)隨機地生成唯一的令牌。
在一個示例性方面中,該方法還包括:針對所述內(nèi)存頁面設(shè)置禁止重寫所述內(nèi)存頁面的安全參數(shù)。
在一個示例性方面中,該方法還包括:通過所述可信程序進行第二超級調(diào)用,其中,所述第二超級調(diào)用包括由所述管理程序生成的所述令牌;通過所述管理程序驗證所述令牌以確認所述第二超級調(diào)用來自于所述可信程序;如果所述令牌被驗證,則通過所述可信程序向所述管理程序提供用于完整性檢查的一個或多個受保護的內(nèi)存頁面的地址;以及通過所述管理程序執(zhí)行所述受保護的內(nèi)存頁面的循環(huán)冗余校驗。
在一個示例性方面中,該方法還包括:通過所述管理程序建立所述受保護的內(nèi)存頁面的反復(fù)的循環(huán)冗余校驗。
一種用于安全執(zhí)行管理程序的示例性系統(tǒng)包括:硬件處理器,所述硬件處理器配置成:加載管理程序,所述管理程序配置成檢查受保護的虛擬內(nèi)存頁面的完整性;加載可信程序,所述可信程序配置成進行對所述管理程序的超級調(diào)用;通過所述可信程序進行對所述管理程序的第一超級調(diào)用;響應(yīng)于所述第一超級調(diào)用,通過所述管理程序生成令牌,所述令牌被所述管理程序用來在隨后的超級調(diào)用期間識別所述可信程序;分配用于存儲所述令牌和所述管理程序的內(nèi)存地址的內(nèi)存頁面;以及將所分配的內(nèi)存頁面的地址返回給所述可信程序。
以上對示例性方面的簡要概述用于提供對本發(fā)明的基本理解。該概述不是對所有預(yù)期方面的廣泛綜述,并且既不旨在標識所有方面的關(guān)鍵要素或主要要素,也不旨在勾畫本發(fā)明的任何方面或所有方面的范圍。該概述的唯一目的是 以簡化的形式呈現(xiàn)一個或多個方面,作為隨后的對本發(fā)明的更詳細的描述的前奏。為了實現(xiàn)前述目的,本發(fā)明的一個或多個方面包括在權(quán)利要求中所描述的且特別指出的特征。
附圖說明
并入本說明書中并構(gòu)成本說明書的一部分的附圖示出了本發(fā)明的一個或多個示例性方面,以及連同詳細的描述一起用來闡述這些示例性方面的原理和實現(xiàn)方式。
圖1示出實現(xiàn)在管理程序模式下對代碼的可信調(diào)用的機制的示例性系統(tǒng)。
圖2示出向可信程序提供管理程序調(diào)用地址的示例性方法。
圖3示出包含對于來自可信程序的調(diào)用的管理程序地址的內(nèi)存頁面的示例。
圖4示出使用管理程序保護內(nèi)存頁面的示例性方法。
圖5示出可實施所公開的系統(tǒng)和方法的方面的通用計算機系統(tǒng)的示例。
具體實施方式
本文在用于在管理程序模式下安全執(zhí)行代碼的系統(tǒng)、方法和計算機程序產(chǎn)品的背景下描述了示例性方面。本領(lǐng)域的普通技術(shù)人員將認識到,以下描述僅僅是說明性的,而不旨在以任何方式進行限制。其它方面將容易地將其自身暗示給了解本發(fā)明的優(yōu)點的本領(lǐng)域的技術(shù)人員?,F(xiàn)在將詳細地參考如附圖中所示的示例性方面的實現(xiàn)方式。貫穿附圖和以下描述將盡可能地使用相同的附圖標記來指代相同或類似的項目。
管理程序是能夠在同一個計算機上同時并行執(zhí)行幾個操作系統(tǒng)(OS)的程序。管理程序分為兩種類型:第一類型具有其自身內(nèi)置的設(shè)備驅(qū)動器和調(diào)度器,因此不依賴于特定的OS;而第二類型在與主OS的內(nèi)核相同的環(huán)內(nèi)工作(內(nèi)核模式或環(huán)0)。第一類型的管理程序也被稱為裸機并且是用于實現(xiàn)本發(fā)明中的管理程序的優(yōu)選示例。相比于在內(nèi)核模式或環(huán)0下對代碼的執(zhí)行,在管理程序模式下對代碼的執(zhí)行發(fā)生在甚至更低的級上。
對在管理程序模式下正在執(zhí)行的代碼的調(diào)用(超級調(diào)用)是朝向在管理程序模式下對代碼的執(zhí)行(也簡稱為“執(zhí)行”)的轉(zhuǎn)變,這需要處理器的一部分上的虛擬技術(shù)的硬件支持。
可信OS是在不違背訪問權(quán)限的情況下使用足夠的硬件和軟件來使一組用戶能夠同時處理具有不同保密程度的信息的操作系統(tǒng)。通常,可信OS能夠提供用戶數(shù)據(jù)的機密性和完整性。在文獻“A Guide to Understanding Configuration Management in Trusted Systems”(1988年)中可以獲知關(guān)于可信系統(tǒng)的更多內(nèi)容。
對代碼的可信調(diào)用是對外部代碼的調(diào)用,在此期間確保該調(diào)用來自可信源(屬于可信應(yīng)用程序的進程的內(nèi)存頁面),這排除了對來自惡意程序或不可信程序的外部代碼的調(diào)用的可能性。可信應(yīng)用程序是這樣的程序:該程序的可執(zhí)行文件具有數(shù)字簽名并且不是惡意的。
圖1示出實現(xiàn)在管理程序模式下對代碼的可信調(diào)用的機制的系統(tǒng)的示例。操作系統(tǒng)110執(zhí)行各種應(yīng)用程序130以及可信程序150和惡意程序140。應(yīng)用程序130包括各種用戶應(yīng)用程序,例如瀏覽器、文字處理器等。惡意程序140(例如病毒、蠕蟲、特洛伊木馬等)可以使用不同的隱藏其在操作系統(tǒng)中存在的方式(例如,使用隱匿技術(shù)),使得其可以避免被抗病毒應(yīng)用程序(在圖1中未示出,但可以是應(yīng)用程序130中的一者)檢測到。該事實意味著,OS 110不能被視為可信的,而且它對于用戶數(shù)據(jù)來說是個威脅。可以在各種來源(例如https://en.wikipedia.org/wiki/Rootkit)中讀取在操作系統(tǒng)中隱藏惡意程序的存在的方式。
為了檢測惡意程序140的存在以及防止惡意程序140訪問用戶信息的可能性,可以使用可信程序150和管理程序120??尚懦绦?50可以采用單獨的應(yīng)用程序的形式和采用抗病毒應(yīng)用程序的組成部分的形式二者來實現(xiàn)??尚懦绦?50的關(guān)鍵特征是其進行對于管理程序120的代碼的執(zhí)行的調(diào)用的能力。如上所述,相比于在內(nèi)核模式下對代碼的執(zhí)行,在管理程序模式下對代碼的執(zhí)行發(fā)生在甚至更低的級上,這使得可以忽視由惡意程序140所使用的可能的隱匿技術(shù)。在內(nèi)核模式(環(huán)0)下正在執(zhí)行的代碼無權(quán)訪問將在管理程序模式下執(zhí)行的代碼。 同樣地,在用戶模式(環(huán)3)下正在執(zhí)行的代碼無權(quán)訪問在內(nèi)核模式下執(zhí)行的代碼。可以在各種公開物(例如Russinovich,Mark E.;David A.Solomon(2005).Microsoft Windows Internals(4ed.).Microsoft Press)中找到關(guān)于保護環(huán)的更多細節(jié)。應(yīng)當(dāng)注意,在環(huán)0中對代碼的執(zhí)行也被稱為在內(nèi)核級上的執(zhí)行,并且在環(huán)3中對代碼的執(zhí)行為在用戶級上的執(zhí)行。
如已經(jīng)提及的,可信程序150進行對于管理程序120(其代碼將在管理程序模式下被執(zhí)行)的代碼的執(zhí)行的調(diào)用,即可信程序150進行超級調(diào)用。假設(shè)OS 110初始是可信的,但惡意程序140危害了OS的信任級別。另外據(jù)推測,惡意程序140具有復(fù)雜的邏輯(例如隱匿功能),使得可以避免安裝在OS 110中的抗病毒應(yīng)用程序(在圖1中未示出)對惡意程序140的檢測。因此,需要保護機密的用戶信息免受惡意程序140的危害。
在當(dāng)前的OS中,可以采用如下幾種方式保護信息:使用加密,控制對數(shù)據(jù)存儲器的訪問,以及提供對與用戶數(shù)據(jù)一起工作的那些進程的虛擬內(nèi)存的保護。本發(fā)明總體涉及用于保護進程的虛擬內(nèi)存的系統(tǒng)和方法。
保護進程的虛擬內(nèi)存的方法是已知的。例如,NX位使得可以設(shè)置禁止執(zhí)行內(nèi)存頁面的位,從而實現(xiàn)防止執(zhí)行作為可執(zhí)行代碼的數(shù)據(jù)的可能。例如,共同擁有的美國專利No.8990934(其通過引用并入本文)描述了控制對于內(nèi)存頁面的執(zhí)行位和寫入位的互斥設(shè)置從而防止開發(fā)的寫入和執(zhí)行的技術(shù)。
然而,已知的技術(shù)具有如下缺點:這些技術(shù)工作在OS內(nèi)核級上,這脫離了執(zhí)行處于同級特權(quán)的惡意代碼的可能,但是在計算機開機之后啟動(初始化)OS期間過早地開始工作。這樣的惡意代碼可以斷開或者甚至更糟地控制上述內(nèi)存保護算法,在這些情況下,這還是不能對用戶信息提供保護。可以在各種公開物(例如Russinovich,Mark E.;David A.Solomon(2005);Microsoft Windows Internals(4ed.);Microsoft Press)中找到關(guān)于在打開計算機之后對OS的啟動(初始化)的更多細節(jié)。
在管理程序模式下對代碼的執(zhí)行使得可以在惡意代碼的一部分上檢查內(nèi)存變化,即使該惡意代碼在內(nèi)核模式下被執(zhí)行。然而,在管理程序模式下對于代 碼執(zhí)行的調(diào)用(進行超級調(diào)用)需要單獨的應(yīng)用程序,該應(yīng)用程序的代碼將進行這樣的超級調(diào)用。在本發(fā)明中,該應(yīng)用程序是可信程序150,其可以為抗病毒應(yīng)用程序。
重要的是要注意,通常在管理程序120模式下以單片代碼區(qū)段的形式制碼是非常困難的,這將包含運行在OS 110中的進程的虛擬內(nèi)存頁面的驗證,造成困難的幾個原因如下:
●管理程序代碼變?yōu)椤俺d的”(其證明是過于復(fù)雜的而無法寫入和調(diào)試),它開始消耗過多的系統(tǒng)資源,尤其是處理器時間;
●管理程序代碼工作過“低”(在管理程序級別上),即,它不“知道”O(jiān)S(內(nèi)核級)的工作機制,該OS“高于”管理程序而工作,該問題的特征是裸機管理程序。
因此,可以期望的是,將某些功能從管理程序120移出而進入可信程序150,而在管理程序120中僅留下內(nèi)存頁面驗證功能??尚懦绦?50可以被實施成允許OS 110的實現(xiàn)的多個細節(jié)(例如,允許Windows OS的虛擬內(nèi)存頁面組織),使得能夠使該管理程序120作為跨平臺的管理程序120。
在一個示例性方面中,在可信程序150和管理程序120之間應(yīng)當(dāng)具有受保護的通信信道。為了提供這樣的通信信道,必需的是,僅可信程序150可以進行對管理程序120的代碼的調(diào)用(超級調(diào)用)??紤]到管理程序120代碼被存儲在RAM中,需要確保調(diào)用該代碼所用的地址的機密性。
圖2示出向可信程序150提供管理程序120調(diào)用地址的示例性方法。在步驟205中,在計算機系統(tǒng)開機后立即加載管理程序120,甚至在OS 110的初始化之前。通常,在主機OS開啟之前將裸機類型的管理程序初始化。主機OS指的是在管理程序的初始化之后開啟的任何OS,在給定情況下,這是OS 110。在步驟207中,加載可信程序150,這通常以O(shè)S 110的驅(qū)動器的形式來實現(xiàn),并且盡可能快地加載該可信程序150。該要求是必需的,以便在步驟207中仍然將OS 110視為可信的,這是因為可信程序150的及早啟動使得能夠在開啟惡意程序140之前開啟該可信程序150。在步驟210中,可信程序150執(zhí)行管理程序 120代碼的第一調(diào)用(超級調(diào)用),在此之后將管理程序120的地址返回到內(nèi)存(所謂的安全的超級調(diào)用地址)。接著,需要保護該地址免受未授權(quán)的訪問,為此,在步驟220中,創(chuàng)建內(nèi)存頁面300,該內(nèi)存頁面300的示例性結(jié)構(gòu)在圖3中示出。該內(nèi)存頁面本身包括一組內(nèi)存地址,可以通過這組內(nèi)存地址進行超級調(diào)用。在一個示例性方面中,僅一個調(diào)用將立即導(dǎo)致超級調(diào)用,而其它調(diào)用將引起OS 110的工作中的異常和錯誤以及隨后的OS 110的重啟。該內(nèi)存頁面300可以由可信程序150創(chuàng)建,或直接由管理程序120在其第一調(diào)用期間創(chuàng)建。在步驟230中,管理程序120完成通過代碼用調(diào)用填充頁面。內(nèi)存頁面可以額外地通過例如在步驟240中設(shè)置安全參數(shù)(例如安全位)來保護,該安全參數(shù)指示該內(nèi)存頁面不能被重寫。在各個方面中,該安全參數(shù)可以由可信程序150或由管理程序120來設(shè)置。
考慮向可信程序150發(fā)送管理程序120的正確調(diào)用地址的機制。由于地址本身存儲在可信程序150的進程的內(nèi)存中可能不安全,因此既然不能排除惡意程序140的介入從而得到該地址,則可信程序150也存儲隨機生成的密鑰的形式的令牌,該令牌可以用于進行超級調(diào)用。該令牌本身由管理程序120在其第一調(diào)用時(圖2中的步驟210)生成,并被發(fā)送到可信程序150以便在超級調(diào)用期間比較令牌的值,從而防止對管理程序120惡意調(diào)用的情況。令牌在計算機系統(tǒng)的工作期間(在接通電源之后)生成一次,并且令牌對于OS 110是唯一的。因此,如果其它主機OS存在于計算機系統(tǒng)中,則管理程序120針對這些主機OS中的每一者生成獨自的令牌。
圖4示出使用管理程序保護內(nèi)存頁面的示例性方法。在步驟410中,可信程序150進行超級調(diào)用,在此之后,在步驟420中,檢查令牌,如果可信程序150的令牌匹配保存的管理程序120的令牌(在步驟430中檢查),則在步驟450中,可信程序150發(fā)送需要保護的內(nèi)存頁面的地址。內(nèi)存保護涉及設(shè)置用于禁止/允許各種操作的位,即讀取代碼、寫入代碼和執(zhí)行代碼。在步驟460中,針對存儲在受保護的內(nèi)存頁面中的數(shù)據(jù)執(zhí)行校驗和驗證(循環(huán)冗余校驗(Cyclic Redundancy Check,CRC))。在步驟470中,管理程序120通過針對受保護的內(nèi) 存頁面計算校驗和而指示周期性的驗證,這是因為攻擊可能涉及利用線性地址的操作。周期性的驗證可以由管理程序120或可信程序150通過按等時間間隔使用超級調(diào)用來初始化。管理程序120也可以檢查可信程序150的完整性以便確保該可信程序150還未被惡意程序140更改。完整性檢查包括計算校驗和并將該校驗和與先前保存的值相比較以確定可信程序150的變化。該檢查發(fā)生在步驟420中。如果可信程序150的代碼已經(jīng)被改變,則管理程序可以通過從磁盤加載該可信程序150而在內(nèi)存中恢復(fù)該可信程序150。
下文是涉及利用線性地址的操作的攻擊的示例。例如,OS 110的中斷調(diào)度表(Interrupt Dispatch Table,IDT)位于線性地址0xF1D10000,該線性地址0xF1D10000是物理地址0x123000的映射(即,虛擬內(nèi)存頁面的地址到物理地址上的映射)。管理程序120可以為在地址0x123000處的物理頁面建立上述保護(不損失性能)。但是惡意程序140可以挑出物理頁面(例如0x321000)、在其中復(fù)制原始頁面0x123000的內(nèi)容(此處已經(jīng)替換必備要素(在給定示例中,這將是中斷處理程序))、以及建立映射0xF1D10000->0x321000,從而管理程序120不能檢測到變化,不具有關(guān)于OS 110中的虛擬內(nèi)存的工作邏輯的信息。因此,可信程序150應(yīng)當(dāng)從OS 110內(nèi)周期性地檢查頁面表的正確性,從而如在給定示例中,0xF1D1000確實對應(yīng)于0x123000而非其它。
考慮在加載管理程序120之前存儲管理程序120的示例。管理程序120的代碼可以被存儲在統(tǒng)一的可擴展固件接口(Unified Extensible Firmware Interface,UEFI)服務(wù)中或者被存儲在PCI或PCIe板上的單獨的設(shè)備中,該設(shè)備未被限定在OS 110中(例如,管理程序120或可信程序150獨立地處理與該設(shè)備的中斷),或者管理程序120的代碼可以通過使用磁盤虛擬化而被存儲(管理程序120排除磁盤的其上存儲管理程序120的代碼的區(qū)段,改變磁盤驅(qū)動器基本功能)。
圖5示出其上可實施所公開的系統(tǒng)和方法的通用計算機系統(tǒng)(其可以是個人計算機或服務(wù)器)的示例。如所示,該計算機系統(tǒng)包括中央處理單元21、系統(tǒng)存儲器22和連接各種系統(tǒng)組件的系統(tǒng)總線23,各種系統(tǒng)組件包括與中央處理單元21相關(guān)聯(lián)的存儲器。系統(tǒng)總線23像從現(xiàn)有技術(shù)已知的任何總線結(jié)構(gòu)一樣 來實現(xiàn),依次包括總線存儲器或總線存儲器控制器、外圍總線和本地總線,系統(tǒng)總線23能夠與任何其它的總線架構(gòu)交互。系統(tǒng)存儲器包括永久性存儲器(ROM)24和隨機存取存儲器(Random-Access Memory,RAM)25?;据斎?輸出系統(tǒng)(Basic Input/Output System,BIOS)26包括確保在個人計算機20的元件之間的信息傳輸?shù)幕境绦?,例如在使用ROM 24加載操作系統(tǒng)時的那些基本程序。
個人計算機20依次包括用于數(shù)據(jù)的讀取和寫入的硬盤27、用于在可移動磁盤29上讀取和寫入的磁盤驅(qū)動器28以及用于在可移動光盤31(例如CD-ROM、DVD-ROM和其它的光學(xué)信息媒介)上讀取和寫入的光盤驅(qū)動器30。硬盤27、磁盤驅(qū)動器28和光盤驅(qū)動器30分別通過硬盤接口32、磁盤接口33和光盤驅(qū)動器接口34而連接到系統(tǒng)總線23。驅(qū)動器和對應(yīng)的計算機信息媒介為用于存儲個人計算機20的計算機指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的電源獨立的模塊。
本發(fā)明提供了使用硬盤27、可移動磁盤29和可移動光盤31的系統(tǒng)的實現(xiàn)方式,但是應(yīng)當(dāng)理解的是,可以采用能夠以計算機可讀的形式存儲數(shù)據(jù)的其它類型的計算機信息媒介56(固態(tài)驅(qū)動器、閃存卡、數(shù)字盤、隨機存取存儲器(RAM)等等),計算機信息媒介56經(jīng)由控制器55連接到系統(tǒng)總線23。
計算機20具有保留所記錄的操作系統(tǒng)35的文件系統(tǒng)36,并且還具有額外的程序應(yīng)用37、其它程序模塊38和程序數(shù)據(jù)39。用戶能夠通過使用輸入設(shè)備(鍵盤40、鼠標42)將命令和信息輸入到個人計算機20中??梢允褂闷渌妮斎朐O(shè)備(未示出):麥克風(fēng)、操縱桿、游戲控制器、掃描器等等。這些輸入設(shè)備通常通過串行端口46插入到計算機系統(tǒng)20中,串行端口46轉(zhuǎn)而連接到系統(tǒng)總線,但是這些輸入設(shè)備可以以其它的方式連接,例如在并行端口、游戲端口或通用串行總線(Universal Serial Bus,USB)的幫助下得以連接。監(jiān)控器47或其它類型的顯示設(shè)備也可以通過接口(例如視頻適配器48)連接到系統(tǒng)總線23。除了監(jiān)控器47,個人計算機還可以裝備有其它的外圍輸出設(shè)備(未示出),例如揚聲器、打印機等等。
個人計算機20能夠使用與一個或多個遠程計算機49的網(wǎng)絡(luò)連接而工作在 網(wǎng)絡(luò)環(huán)境中。一個或多個遠程計算機49也是個人計算機或服務(wù)器,其具有在描述個人計算機20的性質(zhì)時使用的上述元件中的大多數(shù)元件或全部元件,如圖5所示。其它的設(shè)備也可以存在于計算機網(wǎng)絡(luò)中,例如路由器、網(wǎng)站、對等設(shè)備或其它的網(wǎng)絡(luò)節(jié)點。
網(wǎng)絡(luò)連接可以形成局域計算機網(wǎng)絡(luò)(Local-Area computer Network,LAN)50和廣域計算機網(wǎng)絡(luò)(Wide-Area computer Network,WAN)。這些網(wǎng)絡(luò)用在企業(yè)計算機網(wǎng)絡(luò)和公司內(nèi)部網(wǎng)絡(luò)中,并且這些網(wǎng)絡(luò)通常有權(quán)訪問因特網(wǎng)。在LAN或WAN網(wǎng)絡(luò)中,個人計算機20通過網(wǎng)絡(luò)適配器或網(wǎng)絡(luò)接口51連接到局域網(wǎng)50。當(dāng)使用網(wǎng)絡(luò)時,個人計算機20可以采用調(diào)制解調(diào)器54或其它的用于提供與廣域計算機網(wǎng)絡(luò)(例如因特網(wǎng))的通信的模塊。調(diào)制解調(diào)器54是內(nèi)部設(shè)備或外部設(shè)備,通過串行端口46連接到系統(tǒng)總線23。應(yīng)當(dāng)注意的是,網(wǎng)絡(luò)連接僅僅是示例并且不需要描述網(wǎng)絡(luò)的準確配置,即實際上具有通過技術(shù)通信模塊建立一個計算機到另一個計算機的連接的其它方式。
在各個方面中,本文所描述的系統(tǒng)和方法可以以硬件、軟件、固件或它們的任何組合來實施。如果以軟件來實施,則上述方法可以作為一個或多個指令或代碼而被存儲在非易失性計算機可讀媒介上。計算機可讀媒介包括數(shù)據(jù)存儲器。以示例性而非限制性的方式,這種計算機可讀媒介可以包括RAM,ROM,EEPROM,CD-ROM,閃存或其它類型的電存儲媒介、磁存儲媒介或光存儲媒介,或可用來攜帶或存儲所期望的指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼并可以被通用計算機的處理器訪問的任何其它媒介。
在各個方面中,本發(fā)明中所描述的系統(tǒng)和方法可以按照模塊來處理。本文所使用的術(shù)語“模塊”指的是例如現(xiàn)實世界的設(shè)備、組件、或使用硬件(例如通過專用集成電路(Application Specific Integrated Circuit,ASIC)或現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)實現(xiàn)的組件的布置,或者指的是硬件和軟件的組合,例如通過微處理器系統(tǒng)和實現(xiàn)模塊功能的指令組(該指令組(在被執(zhí)行時)將微處理器系統(tǒng)轉(zhuǎn)換成專用設(shè)備)來實現(xiàn)這樣的組合。一個模塊還可以被實施為兩個模塊的組合,其中單獨地通過硬件促進某些功能, 并且通過硬件和軟件的組合促進其它功能。在某些實現(xiàn)方式中,模塊的至少一部分(以及在一些情況下,模塊的全部)可以被執(zhí)行在通用計算機(例如上文在圖5中更詳細描述的通用計算機)的處理器上。因此,每個模塊可以以各種適合的配置來實現(xiàn),而不應(yīng)受限于本文所列舉的任何特定的實現(xiàn)方式。
為了清楚起見,本文沒有公開各個方面的所有例程特征。應(yīng)當(dāng)領(lǐng)會的是,在本發(fā)明的任何實際的實現(xiàn)方式的開發(fā)中,必須做出許多特定實現(xiàn)方式的決定,以便實現(xiàn)開發(fā)者的特定目標,并且這些特定目標將對于不同的實現(xiàn)方式和不同的開發(fā)者變化。應(yīng)當(dāng)理解的是,這種開發(fā)努力會是復(fù)雜的且費時的,但對于了解本發(fā)明的優(yōu)點的本領(lǐng)域的普通技術(shù)人員來說仍然是工程的例行任務(wù)。
此外,應(yīng)當(dāng)理解的是,本文所使用的措辭或術(shù)語出于描述而非限制的目的,從而本說明書的術(shù)語或措辭應(yīng)當(dāng)由本領(lǐng)域技術(shù)人員根據(jù)本文所提出的教導(dǎo)和指導(dǎo)結(jié)合相關(guān)領(lǐng)域技術(shù)人員的知識來解釋。此外,不旨在將本說明書或權(quán)利要求中的任何術(shù)語歸于不常見的或特定的含義,除非明確如此闡述。
本文所公開的各個方面包括本文以說明性方式所引用的已知模塊的現(xiàn)在和未來已知的等同物。此外,盡管已經(jīng)示出并描述了各個方面和應(yīng)用,但是對于了解本發(fā)明的優(yōu)點的本領(lǐng)域技術(shù)人員將顯而易見的是,在不脫離本文所公開的發(fā)明構(gòu)思的前提下,相比于上文所提及的內(nèi)容而言的更多的修改是可行的。