中文字幕无码日韩视频无码三区

一種嵌入式sslvpn的實現方法

文檔序號:7765639閱讀:1143來源:國知局
專利名稱:一種嵌入式ssl vpn的實現方法
技術領域
本發明涉及嵌入式通信系統技術領域,特別是一種使用hternet協議和SSL協議 的嵌入式VPN安全通信系統。
背景技術
隨著hternet和嵌入式技術的迅速發展,嵌入式設備(探測器、智能家居、個人醫 療、移動設備等)連接入網的數量急劇增長,并且這種增長的趨勢將會持續下去。具有通信 功能的嵌入式設備使得計算機技術應用于現場監控、醫療緊急響應、戰場管理和家居自動 化等設備中成為可能,這些設備種類復雜,通過各種不同的方式連入hternet,這些嵌入式 設備都需具備高安全性保障,如果沒有足夠的安全性,攻擊者可能竊取通信數據,破壞數據 完整性,甚至控制這些設備并弓I發災難性的后果。嵌入式設備除了存在一些通信安全問題外,在資源管理方面也有很多問題需要改 進。越來越多的嵌入式設備應用于遠程控制,例如水利系統監控、電力系統監控、油田數據 采集等。在數據采集或監控的過程中,每一個設備節點采集的數據最終被匯集在公司內部 中央數據庫統一管理。隨著遠程化辦公趨勢的到來,工作人員常常希望能夠在世界各地通 過像手機、手持電腦等移動嵌入式設備直接訪問公司內部中央數據庫或者各個設備節點的 數據,這使得解決嵌入式系統資源統一管理的問題迫在眉睫。嵌入式設備所面臨的通信安全問題和資源統一管理問題在全社會各行業應用中 逐漸凸顯。例如銀行作為國家的重要金融機構,位于城市的各個角落,它具有規模多樣、重 要設施繁多、出入人員管理復雜、涉及領域廣等特點。而今高科技犯罪越來越多,因此,銀行 需要建立一套先進、可靠的嵌入式監控系統。該系統保證M小時全天候不間斷地工作,且 進行安全實時的數據傳輸,能滿足擴大營業網點或機構調整,可隨時增大監控的規模。銀行的監控系統主要應用在收銀柜臺監控、儲蓄所現場、ATM機監控等,有了監 控系統能有效地解決搶劫、信息被盜等案件。尤其對ATM業務來說,其犯罪現象越來越多, 在全國各地出現了多起盜取合法持卡人錢款的犯罪活動以及各種破壞ATM的惡性事件,如 何保護用戶的合法財產及銀行的利益,防范各種針對銀行的犯罪行為是一個亟待解決的問 題,因此許多銀行都開始積極推進嵌入式監控系統的深入應用。目前大多數銀行通過專網進行業務傳送,專網的帶寬往往不能支撐監控等視頻信 息的傳送。專網的高帶寬是以高成本為代價,如IM的DDN專線每個月的線路費用為兩千 元,因此用戶無法將監控業務通過網絡集中管理、集中保存監控數據。由于帶寬限制,目前 絕大部分的監控圖像只能在本地保存,這樣一方面由于數據分散,設備的投入和維護工作 量都較大,數據丟失風險就更高;另一方面由于無法實現集中管理,使得系統的隨意性較 大,增加了數據丟失風險。近年來基于hternet協議通過VPN(Virtual Private Network, 虛擬專用網絡)技術來實現的集中監控系統開始逐漸為銀行所接受,由于其廉價的寬帶接 入,并且有足夠的帶寬保證銀行集中監控系統,同時還可通過VPN技術獲得了很好的數據 安全保障,可謂是一舉兩得。目前,Ethernet, ADSL等接入線路一般都能夠提供1 100M的帶寬,完全能滿足傳送多媒體等業務。目前主流的VPN技術主要有兩類IPkc VPN和SSL Secure Socket Layer,安全 套接層)VPN。IPSec VPN是基于IPSec協議的,屬于OSI模型第三層VPN技術,協議定義了完整 的安全機制,對用戶數據的完整性和私密性都有完善的保護措施。過去,大多數公司都是使 用傳統的IPkc VPN來解決遠程接入的問題,但是IPkc VPN最初是為了解決網對網(Lan To Lan)的安全問題而制定的協議,因此在此基礎上建立的遠程接入方案在面臨越來越多 的點對網(End To Lan)或者點對點(End To End)應用情況下已經力不從心。由于IPSec VPN自身的局限性,導致其還存在以下缺點1.部署IPsec VPN網絡時,需要在用戶設備上安裝復雜的客戶端軟件,而遠程用 戶的移動性要求VPN可以快速部署客戶端,并動態建立連接;遠程終端的多樣性還要求VPN 的客戶端具有跨平臺、易于升級和維護等特點,這些問題基于IPSec協議實現VPN技術難度 很大。2.傳統的IPSec解決方案無法檢查用戶設備的安全性。如果用戶通過不安全的嵌 入式終端設備訪問公司內部網絡,可能引起公司內部網絡感染病毒。3.訪問控制不夠細致。由于IPsec是在網絡層實現的,對IP報文的內容無 法識別,因而不能控制高層應用的訪問請求。隨著企業經營模式的改變,企業需要建立 Extranet (外聯網),與合作伙伴共享某些信息資源,以便提高企業的運作效率。對合作伙 伴的訪問必須進行嚴格有效地控制,才能保證企業信息系統的安全,而IPsec VPN很難實現 訪問權限的控制。4.在復雜的組網環境中,II3Sec VPN部署比較困難。在使用NAT的場合,II^sec VPN 需要支持NAT穿越技術,在部署防火墻的網絡環境中,由于msec協議在原TCP/UDP頭的前 面增加了 If3Sec報文頭,因此,需要在防火墻上進行特殊的配置,允許msec報文通過。5.設備支持問題。隨著未來嵌入式技術的發展,嵌入式終端的種類將會越來越多, IPSec客戶端需要有更多的版本來適應這些終端,但隨著終端種類的爆炸性增長,這幾乎是 不可能的。SSL協議是Netscape (美國網景)公司提出一種基于WEB應用的安全協議,主要是 使用公開密鑰體制和數字證書技術保護信息傳輸的機密性和完整性,適用于點對點之間的 信息傳輸。SSL協議位于TCP/IP協議與各種應用層協議之間,它可以為任何基于TCP或UDP 協議的應用層協議提供安全性保證,高層的應用層協議(例如HTTP,FTP,TELNET...)能透 明的建立于SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰 的協商以及服務器認證工作,在此之后應用層協議所傳送的數據都會被加密,從而保證通 信的私密性。如圖2所示為SSL協議分層結構圖,SSL協議本身分為兩層(1)上層為SSL握手協議、SSL改變密碼規則協議和SSL報警協議;(2)底層為 SSL 記錄協議(SSL record protocol)。其中SSL握手協議是SSL協議非常重要的組成部分,用來協商通信過程中使用的加密套件(加密算法、密鑰交換算法和MAC算法等)、在服務器和客戶端之間安全地交換密鑰、實 現服務器和客戶端的身份驗證。SSL密碼變化協議客戶端和服務器端通過密碼變化協議通知對端,隨后的報文 都將使用新協商的加密套件和密鑰進行保護和傳輸。SSL警告協議用來向通信對端報告告警信息,消息中包含告警的嚴重級別和描 述。SSL記錄協議主要負責對上層的數據(SSL握手協議、SSL密碼變化協議、SSL警 告協議和應用層協議報文)進行分塊、計算并添加MAC值、加密,并把處理后的記錄塊傳輸 給對端。SSL VPN是基于SSL協議實現的VPN技術。SSL VPN克服了之前所述的IPsec VPN 技術的缺點,以其跨平臺、免安裝、免維護的客戶端,豐富有效的權限管理而成為遠程接入 方式中的首選。雖然我們可以通過SSL VPN方案來解決嵌入式智能設備的網絡安全及資源的統一 管理問題,但將其應用到嵌入式設備上還存在以下幾個難點1.嵌入式系統可以采用有線或者無線方式接入hternet網絡,在遠程控制中常 采用ZigBee、GPRS, WiFi等無線接入方式,這就很難保證網絡中不同平臺的客戶端之間數 據的安全共享,身份的合法性以及網絡的穩定性。2.嵌入式系統大多會受到資源的嚴格限制,其系統本身經過裁剪定制,安全性和 穩定性有待于長時間的檢測,如果采用復雜的網絡安全協議對于嵌入式智能設備的性能也 是一個新的挑戰。3.嵌入式系統相對傳統PC設備數據處理能力較差、存儲器較小、系統功能單一, 安全性較低,所以更加難以保證網絡通信時其數據的安全性和身份的合法性。如果不能很 好地解決安全問題,這些嵌入式智能設備的安全將成為一個嚴重的漏洞。4.嵌入式系統平臺差異性較大,對于多個不同平臺的嵌入式智能設備要想在同一 個網絡內互聯通信,直接采用傳統的VPN實施部署方案是行不通的。本發明專利針對上述各難點結合不同的嵌入式智能平臺的特點提出相應的解決 方法,從根本上解決了嵌入式系統多平臺、多鏈路網絡通信的安全問題,以及改善嵌入式系 統多平臺資源難以統一管理的問題。

發明內容


圖1所示,一種嵌入式SSL VPN的實現方法所闡述的主要思想為利用虛擬網卡 統一封裝技術解決多嵌入式平臺多鏈路數據包封裝格式不統一的問題;利用自定義VPN通 信協議解決嵌入式資源難以統一管理的問題,簡化VPN服務器同時支持基于MAC地址和IP 地址進行數據轉發的實現方法,方便兼容多協議版本的VPN客戶端;利用抽象接口技術解 決嵌入式設備通過多鏈路進行數據通信時難以統一通信設備接口的問題。一、虛擬網卡嵌入式平臺種類繁多,個體差異性較大。不同的嵌入式平臺之間可能會使用不同 的通信鏈路進行通信,按照不同的鏈路協議標準,最終在數據鏈路層封裝的數據幀格式也 各不相同。如果采用傳統方式實現SSL VPN系統,在進行數據轉發時就會出現如下問題
6
(I)VPN服務器一般只能針對多臺使用相同鏈路協議的嵌入式設備進行數據轉發。 如果多臺設備使用不同鏈路協議通信,服務器需要針對每種協議的數據幀進行解析、重組, 構造新的數據幀進行轉發。如果服務器能夠支持各種協議幀的轉換,并假設鏈路層協議共 有M種,那么服務器則需要實現M* (M-I)種轉換模塊。然而由于很多鏈路協議標準決定了 協議幀的格式不能夠進行二次轉換,所以要實現這樣的服務器轉發模塊成本太高,甚至無 法實現。( VPN服務器針對不同的通信鏈路傳遞過來的數據幀采用所對應的通信協議標 準進行解析、轉發,而現有的鏈路協議標準就達10種以上,隨著電子信息技術的發展,新技 術、新協議、新標準產生的更快。如果依然采用傳統方式進行數據幀轉發,VPN服務器端的 數據轉發模塊將會因為無限制的增加新協議解析而會出現模塊過度膨脹,代碼激增,這都 將導致VPN服務器的穩定性下降,效率降低。VPN服務器是VPN系統的核心模塊,如果服務 器的穩定性和效率無法保證,整個VPN系統將會十分脆弱和低效。(3)安裝了 VPN客戶端的主機上的數據包可以分為兩類一類是屬于VPN專用隧 道內的數據包,另一類是普通數據包,如何區分這兩類數據包,是實現VPN系統的一個重 點。常見的做法是對數據包加上標志位,通過標志位來進行判別,或者使用NDIS中間層驅 動進行過濾操作,但是前一種做法會讓數據包的解析變的十分復雜,后一種做法會導致整 個系統架構十分混亂,不利于系統的擴展。針對以上問題,本發明提出了一種虛擬網卡的解決方法解決了嵌入式SSL VPN的 關鍵性問題。使用虛擬網卡解決方案,特點如下(1)通過使用虛擬網卡使所有的VPN數據包統一封裝為以太網數據包格式,這樣 就避免了 VPN服務器需要對數據包進行復雜的協議格式轉換,并且VPN服務器針對不同的 通信鏈路傳遞過來的數據幀不需要分類處理。這樣,就在很大程度上降低了 VPN服務器的 負荷,簡化了 VPN服務器的轉發規則,提高了轉發效率。(2)由于SSL VPN系統可以方便地使用虛擬網卡從TCP/IP協議棧獲取相關的數據 包,不需要另外編寫程序來區分是否為VPN數據包,并且將這些數據包送入系統的VPN專用 隧道,從而可以保證數據包在公網中的安全傳輸。使用了虛擬網卡解決方案,對數據包的過 濾是在驅動層進行,對數據包的處理(含加解密)是在應用層進行,這種架構設計保證了系 統的穩定性和在嵌入式平臺的可擴展性。(3)所有VPN客戶端的虛擬網卡在分配了一個虛擬IP之后,可以方便系統定位到 每一臺VPN客戶端,這種方式較其他方式更為方便、快捷。虛擬網卡的設計原理如下虛擬網卡一般包括兩個部分,一部分是虛擬網卡驅動,負責與TCP/IP協議棧進行交互;另一部分是交互驅動,負責與處于用戶態的VPN處理進程 進行交互。交互驅動與虛擬網卡驅動進行數據包傳遞的方式在不同平臺下是不同的,取決 于交互驅動的具體實現。交互驅動在不同的平臺下實現也是不同的,如在Linux平臺下是 字符驅動,在WinCE平臺下是NDIS協議驅動。總之,虛擬網卡驅動和交互驅動需要一起完 成數據包在用戶態VPN處理進程和對應的應用程序之間的傳遞。虛擬網卡的設計原理如圖3所示,數據在整個系統中的流向是雙向可逆的,單獨 的發送和接收數據是單向不可逆。
虛擬網卡的工作流程如下(1)發送數據包當應用程序發送一個數據包之后,這個數據包會被傳送到TCP/ IP協議棧。在這個協議棧中,數據包會根據自身的目的IP進行分流,從而選擇被發送到虛 擬網卡還是物理網卡。當對應的數據包進入虛擬網卡之后,交互驅動會將數據包從虛擬網 卡的緩沖區中讀取出來,并傳遞到VPN處理進程。(2)接收數據包當物理網卡從VPN虛擬專用隧道收到數據包之后,物理網卡會將 數據包通過TCP/IP協議棧提交給VPN處理進程,然后由交互驅動從VPN處理進程讀取這個 數據包,并傳送到虛擬網卡驅動。虛擬網卡驅動收到數據包之后,會由自身的回調函數將數 據包經TCP/IP協議棧傳遞給對應的應用程序。虛擬網卡的具體實現取決于各個平臺,不同平臺虛擬網卡的實現是有差異的。在Linux平臺下,虛擬網卡驅動包括兩個組成部分,交互驅動部分對應字符設備 驅動,還有一部分是網卡驅動部分。利用網卡驅動部分接收來自TCP/IP協議棧的網絡分包 并發送,同時將接收到的網絡分包傳給TCP/IP協議棧進行處理,而字符驅動部分則負責網 絡分包在內核與用戶態之間傳送,模擬物理鏈路的數據接收和發送。網卡驅動的設備結構
見代碼清單1。
程序清單1網卡驅動的設備結構示意代碼
struct virnic—struct{
charname[8];/*設備名*/
struct fasync—struct氺fasync ;/*文件異步通知結構*/
wait_queue—head—tread_wait ;/*等待隊列*/
struct net—devicedev ;/^linux抽象網絡設備結構*/
struct sk—buff—heaktxq ;/*網絡緩沖區隊列*/
struct net—device—statsstats ;/*網卡狀態信息結構*/
};
struct net—device ^ Linux 豐亥 Ι Λ白勺■一-網絡設備結構,定義了系統統
一的訪問接口。網卡驅動中需要實現的處理例程見程序清單2。程序清單2網卡驅動實現的處理例程示意代碼
/*網絡設備初始化例程*/int net_init (struct net_device*dev);/*打開網絡設備*/static int net_open(struct net_device氺dev);/*數據包發送例程*/static int net—send (struct sk_buff氺skb, struct net—device氺dev);/*數據包接收例程*/static int ent_recv(struct sk_buff氺skb, struct net—device氺dev);/*關閉網絡設備/*static int net_close(struct net_device氺dev);在Linux中,字符設備和塊設備統一以文件的方式訪問,都是使用openO函數打開設備文件或普通文件,用read()和writeO函數實現讀寫文件等等。虛擬網卡驅動部分 定義的字符設備的訪問接口見程序清單3。程序清單3LinuX驅動字符設備訪問接口示意代碼static struct file_operations fops = {owner :THIS_M0DULE,llseek :chr_lseek,reda :chr_read,write :chr_write ;poll :chr_poll,ioctl :chr_ioctl ;open :chr_open,release :chr_close,fasync :chr_fasync};在WinCE平臺下,虛擬網卡驅動也包括兩個組成部分,一部分是NDIS協議驅動,另 一部分是NDIS小端口驅動。類似于Linux下虛擬網卡驅動的實現,利用NDIS小端口驅動 部分接收來自TCP/IP協議棧的網絡分包并發送,同時將接收到的網絡分包傳給TCP/IP協 議棧處理,而NDIS協議驅動部分則將網絡分包在內核與用戶態之間傳送,模擬物理鏈路的 數據接收和發送。NDIS協議驅動需要實現的處理例程見程序清單4。程序清單4NDIS協議驅動實現例程示意代碼pDriverObject- > MajorFunction[IRP_MJ_CREATE] = NdisProtOpen ;pDriverObject- > MajorFunction[IRP_MJ_CL0SE] = NdisProtClose ;pDriverObject- > MajorFunction[IRP_MJ_READ] = NdisProtRead ;pDriverObject- > MajorFunction[IRP_MJ_WRITE] = NdisProtffrite ;pDriverObject- > MajorFunction[IRP_MJ_CLEANUP] = NdisProtCleanup ;pDriverObject- > Ma j orFunc t i on [ I RP_M J_DEV I CE_C0NTR0L]= NdisProtIoControl ;pDricerObject- > DriverUnload = NdisProtUnload ;NDIS協議驅動需要實現的一些回調函數見程序清單5。程序清單5NDIS協議驅動需要實現的回調函數protocolChar. OpenAdapterCompleteHandler = NdisProtOpenAdapterCompIete ;protocolChar. CloseAdapterCompleteHandler = NdisProtCloseAdapterCompIete ;protocolChar. SendCompleteHandler= NdisProtSendCompIete ;protocolChar. TransferDataCompleteHandler = NdisProtTransferDataCompIete ;protocolChar. ResetCompleteHandler= NdisProtResetCompIete ;0101]protocolChar. RequestCompleteHandler=NdisProtRequestCompIete0102]protocolChar. ReceiveHandler=NdisProtReceive ;0103]protocolChar. ReceiveCompleteHandler=NdisProtReceiveCompIete0104]protocolChar. StatusHandler=NdisProtStatus ;0105]protocolChar. StatusCompleteHandler=NdisProtStatusCompIete ;0106]protocolChar. BindAdapterHandler=NdisProtBindAdapter ;0107]protocolChar. UnbindAdapterHandler=NdisProtUnbindAdapter ;0108]protocolChar. UnloadHandler=NULL ;0109]protocolChar. ReceivePacketHandler=NdisProtReceivePacket ;0110]protocolChar. PnPEventHandler=NdisProtPnPEventHandler0111]NDIS小端口驅動需要實現的回調函數見程序清單6。0112]程序清單6NDIS小端驅動需要實現的回調函I 0113]MPChar. InitializeHandler = MPInitialize ;0114]MPChar. HaltHandler = MPHalt ;0115]MPChar. SetInformationHandler = MPSetInformation ;0116]MPChar. QueryInformationHandler =MPQueryInformation ;0117]MPChar. SendPacketsHandler =MPSendPackets ;0118]MPChar. ReturnPacketHandler =MPReturnPacket ;0119]MPChar. ResetHandler =MPReset ;0120]MPChar. CheckForHangHandler =MPCheckForHang ;//optional0121]#ifdef NDIS51—MINIP0RT0122]MPChar. CancelSendPacketsHandler=MPCanceISendPackets ;0123]MPChar. PnPEventNotifyHandler=MPPnPEventNotify ;0124]MPChar. AdapterShutdownHandler=MPShutdown ;0125]#endif0126]二、通信協議0127]嵌入式VPN通信協議是自定義通信協議,基于該協議可以實現系統資源統
理,客戶端IP動態分配,獲取客戶端實時狀態信息等功能。采用協議的方式實現VPN系統 的第三方功能擴展只需要在協議的基礎上進行,有些功能只需要一個命令就能實現,這很 大程度上降低了 VPN系統功能擴展的開發難度,提高了開發效率,同時也方便代碼的統一 化管理。為了保證該系統的可擴展性,該協議在制定過程中還另外增加了相應的預留域。VPN協議封裝數據包結構如圖4所示。1.VPN封裝數據包格式客戶端與服務器通信過程中所有標志信息封裝在數據包頭部,經過封裝后的數據 包結構如下所示。
協議頭I數據包I外帶數據_2. VPN協議頭格式VPN協議頭大小為8字節,VPN協議頭詳細組織結構如下所示。
權利要求
1.一種嵌入式SSL VPN的實現方法,具備由網絡連接的VPN服務器及多個嵌入式設備 中的VPN客戶端,其特征在于所述VPN服務器按照自定義VPN通信協議標準進行通信;所述 VPN客戶端使用虛擬網卡獲取相關數據包并進行統一封裝,并通過虛擬網卡定位虛擬局域 網中嵌入式設備的位置;所述VPN客戶端通過統一抽象接口,針對不同的鏈路通信模塊和 嵌入式主板之間的接口進行統一化處理。
2.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于VPN客戶端與 服務器基于所述VPN通信協議的通信步驟如下(1)客戶端從虛擬網卡中讀取原始數據幀;(2)由VPN處理模塊對原始數據幀添加上VPN協議頭和附加數據段;(3)客戶端通過物理網卡將再封裝的數據幀發送到服務器端;(4)服務器接收到客戶端發送過來的數據,解析數據幀的VPN協議頭,根據協議頭命令 碼段判斷是否為命令數據幀,如果是命令數據幀,則將該數據幀轉交給服務器端的命令處 理模塊處理,如果不是命令數據幀,則按照步驟5處理;(5)根據協議版本號,解析數據幀的IP地址或MAC地址,查找IP或MAC轉發表獲取相 關的上下文轉發給對應的客戶端;(6)接收到轉發數據幀的客戶端將數據寫入客戶端虛擬網卡做相應處理。
3.根據權利要求1或2所述的一種嵌入式SSLVPN的實現方法,其特征在于所述自定 義的VPN通信協議,能夠對客戶端動態分配虛擬IP地址,步驟如下(1)客戶端向服務器發送IP動態分配的請求幀,該數據幀的VPN協議頭命令碼字段的 值為IP動態分配的請求命令;(2)服務器接收到該請求幀,解析VPN協議頭,得知該數據幀為請求命令幀,請求命令 為IP動態分配,服務器根據該命令計算獲取給客戶端分配的IP地址,并在服務器端的數據 轉發表中記錄下IP地址;(3)服務器構造返回數據幀,填充VPN協議頭命令字段的值為IP動態分配的請求命令, 最終發送給請求的客戶端。
4.根據權利要求1或2所述的一種嵌入式SSLVPN的實現方法,其特征在于所述自定 義的VPN通信協議,可在服務器端根據客戶端的接入系統情況自動形成網絡拓撲圖,步驟 如下(1)服務器以廣播的形式向客戶端發送命令請求,請求客戶端的屬性,包括物理地 址、硬件標識,軟件標識;(2)客戶端收到請求幀,解析VPN協議頭判斷該數據幀為請求命令幀,請求命令為獲取 客戶端所有狀態的請求命令,客戶端根據該命令獲取所有狀態信息;(3)客戶端構造返回數據幀,填充VPN協議頭命令字段的值為獲取客戶端所有狀態的 請求命令,最終發送給服務器端;(4)服務器匯集所有客戶端的信息,將該信息在服務器端分類,以該信息作為源信息生 成拓撲圖。
5.根據權利要求1或2所述的一種嵌入式SSLVPN的實現方法,其特征在于所述自定 義的VPN通信協議,可在服務器端根據客戶端的版本信息,決定根據虛擬MAC地址或者虛擬 IP地址進行數據幀轉發,步驟如下(1)客戶端向服務器發送轉發數據幀;(2)服務器接收到客戶端的數據幀,解析VPN協議頭部分,判斷版本號字段的值,如果 該值為根據MAC地址轉發的協議版本號,服務器接下來根據MAC轉發表進行轉發數據,如果 該值為根據IP地址轉發的協議版本號,服務器接下來根據IP轉發表進行轉發數據。
6.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于所述虛擬網卡 對多種嵌入式平臺不同數據鏈路的數據包統一封裝為以太網數據幀。
7.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于所述虛擬網卡 自動識別并獲取用戶發送的VPN原始數據,再將該數據傳遞到用戶態處理程序進行處理。
8.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于所述虛擬網卡 通過自身的虛擬IP,能夠在嵌入式SSL VPN整個系統虛擬的局域網中定位每一臺設備。
9.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于所述虛擬網卡 包括兩個部分,一部分是虛擬網卡驅動,負責與TCP/IP協議棧進行交互,另一部分是交互 驅動,負責與處于用戶態的VPN處理進程進行交互。
10.根據權利要求1或9所述的一種嵌入式SSLVPN的實現方法,其特征在于所述虛擬 網卡的工作步驟如下(1)應用程序發送一個數據包至TCP/IP協議棧,數據包根據自身的目的IP進行分流, 選擇被發送到虛擬網卡或物理網卡,對應的數據包進入虛擬網卡后,交互驅動從虛擬網卡 的緩沖區中讀取數據包,并將其傳遞到VPN處理進程;(2)物理網卡從VPN虛擬專用隧道收取數據包,將其通過TCP/IP協議棧提交給VPN處 理進程,由交互驅動從VPN處理進程讀取此數據包,并傳送到虛擬網卡驅動,虛擬網卡驅動 收到數據包之后,由自身的回調函數將數據包經TCP/IP協議棧傳遞給對應的應用程序。
11.根據權利要求1所述的一種嵌入式SSLVPN的實現方法,其特征在于在SSL VPN客 戶端中通過采用抽象接口技術,結合客戶端配置文件通過軟件枚舉的方式實現客戶端針對 不同鏈路接口進行選擇通信,其中抽象接口技術工作的基本步驟如下(1)配置本地系統文件;(2)VPN客戶端啟動時首先讀取本地的配置文件;(3)讀取完配置文件信息,客戶端調用InitInterface接口進行初始化硬件接口信息, 調用SendData接口向通信模塊發送數據,調用RecvData接口從終端模塊讀數據,在VPN客 戶端結束時調用Uninithterface做系統接口清除處理。
全文摘要
本發明涉及嵌入式通信系統技術領域,采用嵌入式SSL VPN的方法解決了在不同嵌入式設備之間通信的數據安全性問題和資源的統一管理性問題。本發明的特征在于(1)VPN服務器通過自定義的VPN通信協議標準進行通信;(2)VPN客戶端通過采用虛擬網卡技術獲取相關數據包并進行統一封裝,同時,可以通過虛擬網卡定位虛擬局域網中嵌入式設備的位置;(3)VPN客戶端通過采用統一抽象接口技術,針對不同的鏈路通信模塊和嵌入式主板之間的接口進行了統一化的處理。由于本發明在嵌入式領域實現了SSL VPN方法,保證了數據傳輸的安全性,并在很大程度上優化了多嵌入式平臺資源管理的現狀,所以對于嵌入式領域的發展有著重要的影響。
文檔編號H04L29/08GK102065125SQ20101054971
公開日2011年5月18日 申請日期2010年11月18日 優先權日2010年11月18日
發明者周立功 申請人:廣州致遠電子有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1