两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

安全的網(wǎng)關(guān)接口的制作方法

文檔序號:6411170閱讀:216來源:國知局
專利名稱:安全的網(wǎng)關(guān)接口的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及供網(wǎng)絡(luò)用的安全的網(wǎng)關(guān)接口,及更具體地涉及但不限于一種安全的網(wǎng)關(guān)接口,用于允許外部網(wǎng)絡(luò)用戶啟動一個使用內(nèi)部資源的特許事務(wù)而不破壞安全防火墻。


圖1闡述一個現(xiàn)有技術(shù)安全的網(wǎng)關(guān)接口(SGI)9,它具有用于處理來自外部網(wǎng)絡(luò)(例如INTERNET)上任何用戶的用戶/顧客請求2的外服務(wù)器4(例如超文本傳送協(xié)議守護器HTTPD)和用于處理來自內(nèi)部網(wǎng)絡(luò)上的任何用戶(例如為具體公司工作的任何人)的請求的內(nèi)服務(wù)器7和內(nèi)數(shù)據(jù)庫8。SGI9還包括用于阻止從外部啟動內(nèi)數(shù)據(jù)庫8上內(nèi)部事務(wù)的防火墻6。因此防火墻6禁止外部顧客對內(nèi)部網(wǎng)絡(luò)(即內(nèi)服務(wù)器7和內(nèi)數(shù)據(jù)庫8)啟動直接連接。此限制禁止有效事務(wù),例如產(chǎn)品和服務(wù)購買請求,因顧客就是不能自外部網(wǎng)絡(luò)啟動內(nèi)部事務(wù)。
對上面描述的問題的常規(guī)解法包括在防火墻6中開一個供內(nèi)向通信用的特定端口(例如端口84)。然而此解法明顯地使內(nèi)部網(wǎng)絡(luò)易受外部攻擊。另一個解法是將全部所需資源(即數(shù)據(jù)庫8)放置于外服務(wù)器4上。然而,此解法仍然禁止執(zhí)行內(nèi)部事務(wù)。此外,外服務(wù)器4可能沒有足夠大的存儲器以保持全部所需資源或者資源可能保密性太強而不能放置于外服務(wù)器上(如顧客數(shù)據(jù)),因而限制可提供的服務(wù)。
因此十分需要一種技術(shù),用于允許顧客啟動一個使用內(nèi)部業(yè)務(wù)資源的特許業(yè)務(wù)事務(wù)而不破壞安全防火墻。
因此,一種由計算機實施的方法,獨特地編程的計算機系統(tǒng)和包括計算機可讀程序裝置的制造產(chǎn)品允許外部網(wǎng)絡(luò)顧客啟動一個使用內(nèi)部網(wǎng)絡(luò)上的內(nèi)部業(yè)務(wù)資源的特許業(yè)務(wù)事務(wù)而不破壞安全防火墻。
具體地說,該方法操作一個內(nèi)計算機系統(tǒng)以允許一個外計算機系統(tǒng)啟動一個使用內(nèi)部資源的事務(wù)請求而不破壞內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的安全防火墻。該方法包括對由內(nèi)計算機啟動的內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的連接進行認證,從而建立一個認證的連接的第一步。第二步包括由外計算機系統(tǒng)調(diào)用一個外計算機系統(tǒng)收到的事務(wù)請求。第三步包括響應(yīng)于對事務(wù)請求的調(diào)用,由外計算機系統(tǒng)建立一個包括事務(wù)請求和用于執(zhí)行事務(wù)請求的過程環(huán)境變量的串。第四步包括由外計算機系統(tǒng)通過認證的連接將串傳送至內(nèi)計算機系統(tǒng)。第五步包括由內(nèi)計算機系統(tǒng)確認該事務(wù)請求。第六步包括由內(nèi)計算機系統(tǒng)重建初始過程環(huán)境。最后一步包括由內(nèi)計算機系統(tǒng)執(zhí)行事務(wù)請求從而生成一個輸出。
因此,本發(fā)明的一個目的是建立一個對用戶和實際事務(wù)程序都透明的安全的網(wǎng)關(guān)接口。
另一個目的是允許用戶有效地通過防火墻向使用內(nèi)部資源的內(nèi)部網(wǎng)絡(luò)啟動一個事務(wù)。
又一個目的是允許用戶只啟動特許事務(wù)的有效集合。
還有一個目的是在外計算機系統(tǒng)收到來自用戶的事務(wù)請求之前安全地特許內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的一個連接。
再有一個目的是將事務(wù)程序存放于防火墻內(nèi)部而不必修改它們。
現(xiàn)參照附圖只通過例子描述本發(fā)明,附圖中圖1闡述用于實施本發(fā)明的常規(guī)網(wǎng)絡(luò)系統(tǒng)的框圖;圖2闡述用于實施本發(fā)明的代表性硬件配置;圖3闡述根據(jù)優(yōu)選實施例的安全的網(wǎng)關(guān)接口(SGI)的框圖;以及圖4闡述先前在圖3中闡述的SGI的更詳細過程流程圖。
優(yōu)選實施例包括一個由計算機實施的方法,一個獨特地編程的計算機系統(tǒng)和一個存儲器,該存儲器所包括的詳細邏輯用于操作一個內(nèi)計算機系統(tǒng)以允許一個外部用戶/顧客啟動一個使用內(nèi)部業(yè)務(wù)資源的特許業(yè)務(wù)事務(wù)而不破壞安全防火墻。
本發(fā)明實現(xiàn)于圖2中闡明的計算機系統(tǒng)上。計算機系統(tǒng)100包括中央處理單元(CPU)10,例如用于處理高速緩存15的IBM的PowerPC601或Intel的486微處理器,隨機存取存儲器(RAM)14,只讀存儲器16和非易失性RAM(NVRAM)32。由I/O適配器18控制的一個或更多盤20提供長期存儲??刹捎闷渌煌鎯橘|(zhì),包括帶,CD-ROM,和WORM驅(qū)動器。也可提供可卸存儲介質(zhì)以存放數(shù)據(jù)或計算機過程指令。(IBM和Power PC是國際商業(yè)機器公司的注冊商標和Intel是英特爾公司的注冊商標)。
合適的臺式機操作系統(tǒng),如Sun Solaris,微軟的Windows NT,IBM的OS/2或APPle的System 7中來自RAM14的指令和數(shù)據(jù)用于控制CPU10。因此臺式機由RAM14運行。然而在優(yōu)選實施例中,IBM RISC System/6000運行AIX操作系統(tǒng),它是IBM公司實現(xiàn)的UNIX操作系統(tǒng)。如前所描述的,熟悉技術(shù)的人明確地知道可利用其它硬件平臺和操作系統(tǒng)實施本發(fā)明。(Solaris是Sun微系統(tǒng)公司的注冊商標,Windows NT是微軟公司的注冊商標,System 7是蘋果計算機公司的注冊商標及OS/2,RISC System/6000和AIX是IBM公司的注冊商標。UNIX是在美國和其它國家內(nèi)唯一得到X/Open有限公司許可證的注冊商標)。
用戶通過由用戶接口適配器22控制的I/O設(shè)備(即用戶控制設(shè)備)與計算機系統(tǒng)100通信。顯示器38向用戶顯示信息,而鍵盤24,指示設(shè)備26和揚聲器28允許用戶操縱計算機系統(tǒng)。通信適配器34控制此計算機系統(tǒng)與其它連至網(wǎng)絡(luò)的處理單元間的通信。顯示適配器36控制此計算機系統(tǒng)和顯示器38之間的通信。
圖3闡明根據(jù)優(yōu)選實施例的安全的網(wǎng)關(guān)接口(SGI)的框圖和過程流。SGI位于一對服務(wù)器310和320上,每個服務(wù)器在計算機系統(tǒng)100上實施(見圖1)。外服務(wù)器310位于防火墻300之外,而內(nèi)服務(wù)器320位于防火墻300之內(nèi)。防火墻300利用任何合適的常規(guī)防火墻實施,該常規(guī)防火墻阻止外部事務(wù)通過它進入內(nèi)服務(wù)器320。在優(yōu)選實施例中,防火墻300是一個網(wǎng)絡(luò)路由選擇器(如Cisco路由選擇器)。然而熟悉技術(shù)的人明確地知道防火墻300可位于內(nèi)服務(wù)器320內(nèi)部。
外服務(wù)器310管理與外部網(wǎng)絡(luò),例如INTERNET上的用戶/顧客的通信。然而熟悉技術(shù)的人知道可用任何類型的通信協(xié)議,例如任何公共或?qū)S镁W(wǎng)絡(luò)上的SNA或X.25。內(nèi)服務(wù)器320管理內(nèi)部網(wǎng)絡(luò)例如內(nèi)部集合信息網(wǎng)絡(luò)上內(nèi)部資源(如數(shù)據(jù)庫330)的通信。外服務(wù)器310執(zhí)行一個外守護程序312,而內(nèi)服務(wù)器320執(zhí)行一個內(nèi)守護程序322,從而允許跨過防火墻300進行通信。守護程序是一個長期運行的計算機程序,它等待外部事件并當任何時候發(fā)生這些事件時執(zhí)行一系列預(yù)定動作。守護程序偵聽服務(wù)請求并在被請求時完成這些請求。外服務(wù)器310也執(zhí)行守護程序314,后者偵聽來自外部網(wǎng)絡(luò)的服務(wù)請求。內(nèi)服務(wù)器320包括用于執(zhí)行所需內(nèi)部事務(wù)的服務(wù)程序324。服務(wù)程序324和內(nèi)數(shù)據(jù)庫330代表一套實施業(yè)務(wù)事務(wù)的計算機程序(此處將更詳細地描述)。
圖4闡明圖3中先前闡明的SGI的更詳細的過程流。外服務(wù)器310包括任何合適的常規(guī)通信協(xié)議守護程序314,cgi-bin 415,sgi_client子程序416,和外守護程序312。外守護程序312包括用于與sgi_client子程序416和內(nèi)守護程序322通信的客戶/服務(wù)器軟件。sgi_client子程序416包括用于與外守護程序312通信的客戶/服務(wù)器軟件。Cgi_bin415是一個由守護程序314執(zhí)行的軟件的目錄。具體地說,在此例中cgi-bin 415包括的example.pl 462是一個用于與sgi_client子程序416通信的特殊程序原本(此處將更詳細地描述)。在優(yōu)選實施例中,守護程序314是一個常規(guī)超文本傳送協(xié)議守護器(httpd)(一般也稱為web服務(wù)器)。
內(nèi)服務(wù)器320包括內(nèi)守護程序322,服務(wù)程序324,和cgi-bin 426。服務(wù)程序324與外守護程序312和內(nèi)守護程序322通信,同時執(zhí)行cgi-bin子程序(例如example.pl 480)。在此例中,example.pl 480與內(nèi)部集合數(shù)據(jù)庫(例如圖3中的集合數(shù)據(jù)庫330)通信以便授權(quán)給用戶/顧客并執(zhí)行業(yè)務(wù)事務(wù)。
在顧客/用戶能成功地在410處請求一個事務(wù)之前,內(nèi)服務(wù)器320與外服務(wù)器310必須恰當?shù)剡B接。為此,外操作系統(tǒng)執(zhí)行外守護程序312,對它標識一個通信端口和位于外服務(wù)器310上文件系統(tǒng)(未示出)中的密碼文件的位置。接下來,對守護程序312自密碼文件中讀取一個八字符密碼,在所標識的通信端口處建立一個插口并在該插口處偵聽來自內(nèi)守護程序322的連接調(diào)用。因此外守護程序312擔當服務(wù)器的角度并在430處等待來自內(nèi)守護程序322的連接調(diào)用,而后者擔當客戶的角色。此外,外守護程序312在第二端口(守護程序312的通信端口加1)上建立一個插口并在432處等待來自sgi_client子程序416的連接要求(此處將更詳細地描述)。
內(nèi)操作系統(tǒng)執(zhí)行內(nèi)守護程序322,對它標識一個用于將內(nèi)守護程序322連至外守護程序312的通信端口,外服務(wù)器310的宿主名稱,位于內(nèi)服務(wù)器320中文件系統(tǒng)(未示出)中的密碼文件位置和位于內(nèi)服務(wù)器320上文件系統(tǒng)(未示出)中的有效服務(wù)文件位置。接下來,內(nèi)守護程序322自密碼文件中讀取一個八字符密碼,讀取服務(wù)文件并在存儲器中存放一個有效服務(wù)表,在標識的通信端口上建立一個插口,及最后在450處生成一個在430處偵聽的跨過防火墻300對外守護程序312的標準連接調(diào)用。因為連接是由內(nèi)服務(wù)器所啟動的,所以防火墻300允許該連接。
在內(nèi)守護程序322與外守護程序312連接以后,內(nèi)守護程序322與外守護程序312必須彼此恰當?shù)卣J證。為此,內(nèi)守護程序322向內(nèi)操作系統(tǒng)啟動一個調(diào)用以檢索當前時標,將該時標發(fā)送至外守護程序312并等待回答的認證串。外守護程序312接收時標并將其八字符密碼與由內(nèi)守護程序322提供的時標攪拌(改變,下面將描述)以建立認證串,用標準UNIX加密命令(或任何合適的加密算法,如DES)將此攪拌的字符串加密,然后在431處將所得認證串送至內(nèi)守護程序322。下列C語言碼闡述將八字符密碼與時標攪拌的過程。此“create-auth”碼需要三個參量第一個是時標(即auth_time),第二個是密碼(即“cred”,它是指向密碼的指針),及第三個是用以存放所生成的認證串的緩存<pre listing-type="program-listing"><![CDATA[int create_auth(time_t,char*cred,char*p){charbuf[9]; /*暫時緩存*/inti;   bzero (buf,sizeof(buf));/*清緩存*/   strcpy (buf,cred); /*將口令裝入緩存*/   /*破壞緩存中的每個字符*/   for(i=0;i<8;i++){  buf[i]^=(auth_time&amp;0177);/*邏輯“與”時間標記,   然后與緩存中的每個字   符進行異或;每個循環(huán)   修改時間標記*/   auth time>>=4; /*移位時間標記  {  for(i=0;i<8;i++)   if(buf[i]=0) /*因為有效字符串不能含有空字符,將所有   空字符改為1*/   buf[i]=1;  strcpy(p,crpyt(buf,“aa”)+2);/*對于密鑰利用aa加密緩存*/   /*跳過加密結(jié)果的前兩個字符(是   密鑰aa)*/   /*將加密結(jié)果復(fù)制到P所指的用   戶應(yīng)用緩存*/   return 0;  }]]></pre>同樣地內(nèi)守護程序322將其密碼與時標攪拌,將它加密并將它與由外守護程序312提供的認證串比較。如兩個認證串相匹配,則執(zhí)行逆過程,類似地由外守護程序312認證內(nèi)守護程序322(也即,自外操作系統(tǒng)中獲取一個新時標,將該時標傳送至內(nèi)守護程序322,內(nèi)守護程序322將其密碼與新時標攪拌,將它加密,及將它送回至外守護程序312以供驗證之用)。
此認證過程使用一個外部和內(nèi)部守護程序312和322雙方都知道的八字符密碼,一個用時標隨機化的字符攪拌功能和一個加密過程。由于此攪拌功能,上述過程為每次認證和每個事務(wù)產(chǎn)生不同的加密認證串。這顯著地減少了它遭受襲擊的可能性,因為偶然獲取到的認證串對隨后的事務(wù)是無用的。
在內(nèi)守護程序322和外守護程序312已彼此認證之后,先前擔當客戶角色的內(nèi)守護程序322現(xiàn)擔當服務(wù)器角度,在452處等待外守護程序312在453處提供一個服務(wù)串。外守護程序312在標識的第二端口上建立另一個插口并在432處等待(偵聽)來自sgi_client子程序416的連接要求。因此,外守護程序312擔當雙重角度對于內(nèi)守護程序322講是偽客戶(在它們之間傳送信息)而對sgi_client子程序416講是服務(wù)器。
守護程序314現(xiàn)準備接收顧客請求410。例如,顧客請求可以是一個在特定期貨或現(xiàn)鈔市場上購買研究信息的事務(wù)。在410處,顧客決定通過在其中正運行著http客戶應(yīng)用程序用戶接口的顧客系統(tǒng)上點擊特定圖標或加亮句,而執(zhí)行下列事務(wù)請求http//external_server/cgi-bin/example.pl?stock1+stock2該http客戶用戶接口通常向用戶要求詳細的事務(wù)信息(如哪一個期貨或現(xiàn)鈔市場),還有交費信息(如信用卡號)。如所請求的服務(wù)只向特許用戶提供,則還要求用戶輸入他或她的用戶識別碼和密碼。
傳送的用戶輸入格式?jīng)Q定于用于實施事務(wù)的超文本標志語言(HTML)形式的類型。有兩種常規(guī)HTML形式一種“GET”形式將全部用戶輸入置于命令行中。因此,stock1,stock2和任何其它用戶輸入都成為命令行的一部分.../cgi-bin/example.pl?stock1+stock2+chargecardnumber+expdate然而由于命令行應(yīng)以純凈文本形式傳送過網(wǎng)絡(luò),所以不希望將顧客的付費卡號和失效日期傳送過網(wǎng)絡(luò)。因此使用加密的“PUT”類型的HTML形式以便將付費卡號和失效日期安全地送過網(wǎng)絡(luò)。在提供所有這些信息后,http客戶應(yīng)用程序通過http將請求送至外服務(wù)器310的410處。
在460處,守護程序314根據(jù)大家知道的安裝的HTTP認證技術(shù)認證顧客密碼(例如用標準UNIX加密命令將顧客密碼加密并將結(jié)果與位于守護程序314中的http密碼文件中的密碼項目相比較)。在461處,如用戶識別碼和密碼是合法的,則守護程序314識別“PUT”形式,自動將字符流解密及建立一個合適UNIX過程環(huán)境。守護程序314包含一個眾所周知的常規(guī)http配置文件(未示出),用于建立一個標準過程環(huán)境,包括PATH,USERNAME,LOGNAME和AUTHTYPE變量。然后,httpsvc 470在471處重建此過程環(huán)境(此處將描述)。一旦建立過程環(huán)境后,守護程序314執(zhí)行example.pl 462(它應(yīng)位于cgi-bin 415中),向它傳送任何所需參量(如stock1和stock2)和向example.pl 462的標準輸入流傳送用戶輸入。
假定example.pl 462的確位于cgi-bin中,如不存在防火墻300,則example.pl 462將與內(nèi)數(shù)據(jù)庫330直接通信(見圖3)并完成所需事務(wù)。然而,由于的確存在著防火墻300并且它阻止example.pl 462直接與內(nèi)數(shù)據(jù)庫330通信,所以example.pl不是實際的事務(wù)程序。相反地,實際事務(wù)程序是位于cgi-bin 426內(nèi)在防火墻300內(nèi)部的example.pl 480。因此,cgi-bin 415包含“特殊”程序原本(例如example.pl 462),執(zhí)行它時所用命令是用于執(zhí)行位于cgi-bin 426中的實際事務(wù)程序時的同一命令。另一替代方案是,當外服務(wù)器310提供許多服務(wù)及它們中的每一個服務(wù)要求一個“特殊”程序原本以便用同一方式調(diào)用sgi_client子程序416時,example.pl 462可能是與位于cgi-bin 415內(nèi)的單個程序原本相連的符號鏈(即間接文件名稱引用)。重要的是顧客可用的請求限于程序原本和分別位于cgi-bin 415和cgi-bin 426中的相應(yīng)事務(wù)性程序。
程序原本example.pl 462將自守護程序314送給它的所有參量都置于過程環(huán)境(例如SGIARG1=stock1;SGIARG2=stock2)中,將其名稱(賴以調(diào)用的名稱,此例中為example.pl)置于過程環(huán)境(例如SGICMD=example.pl)中,執(zhí)行一個UNIX env命令(它將過程環(huán)境變量轉(zhuǎn)儲)并最后將全部過程環(huán)境變量置入頭部串中。例如,頭部串看起來如下<pre listing-type="program-listing"><![CDATA[“PATH=/bin/Usr/bin\nAUTHTYPE=PEM\nUSERNAME   =John Doe\nSGIARG1=stock1\nSGIARG2=stock2\   =nSGICMD=example.pl”。]]></pre>其次,在463處,程序原本example.pl 462調(diào)用外操作系統(tǒng)以檢索指定的第二端口(守護程序312通信端口加1),執(zhí)行sgi_client子程序416,向它傳送所請求服務(wù)的類型(例如httpsvc),指定的第二端口,外服務(wù)器宿主名稱,頭部串,和顧客的用戶識別碼。example.pl 462也將任何標準輸入字符流(例如用戶輸入的文本)作為標準輸入傳送至sgi_client子程序416。接著,example.pl 462在469處將自sgi_client子程序416接收的任何輸出量送至守護程序314。
當sgi-client子程序在463處使用傳送給它的信息運行時,sgi_client子程序416建立一個與外守護程序312的認證的連接。為此,在417處sgi_client子程序416自位于外服務(wù)器310上的私有客戶密碼文件(未示出)中讀取一個八字符密碼并在指定的第二端口處建立與外守護程序312的連接,它在432處偵聽來自第二插口的連接。在433處,外守護程序312建立一個它本身的復(fù)制程序并執(zhí)行它(例如一個UNIX過程分叉)。父過程將插口連接給予子過程并回至430偵聽來自內(nèi)守護程序322的另一個調(diào)用。
在434處,子過程認證sgi_client子程序416。為此,外守護程序312也自位于外服務(wù)器310上的私有客戶密碼文件(未示出)中讀取一個八字符密碼。外守護程序312向外操作系統(tǒng)啟動一個調(diào)用以檢索一個當前時標,在432處將時標傳送至sgi_client子程序416及等待回答的認證串。sgi_client子程序416接收時標及將其八字符密碼與由外守護程序312提供的時標攪拌以建立一個認證串,用標準UNIX加密命令將此攪拌的字符串加密,然后在434處將所得認證串傳送至外守護程序312。類似地外守護程序312將其密碼與時標攪拌,將它加密,并將它與由sgi_client子程序416提供的認證串相比較。如這兩個認證串相匹配,則sgi_client子程序416即被認證。
在419處,如認證成功,則sgi-Client子程序416將請求的服務(wù)的類型傳送至外守護程序312。在此例中,sgi_client子程序416總是請求一個HTTP服務(wù),因為sgi-client子程序416是由HTTP守護程序314所間接調(diào)用的。先前該特殊程序原本(例如example.pl 462)使用一個標明請求的服務(wù)是“httpsvc”的參量執(zhí)行sgi_client子程序416。接下來外守護程序312在435處將“httpsvc”服務(wù)請求傳送至內(nèi)守護程序322。
在452處,內(nèi)守護程序322等待自外守護程序312接收的服務(wù)請求。在453處,內(nèi)守護程序322接收來自外守護程序312的服務(wù)請求,建立它本身的復(fù)制映象并執(zhí)行它(例如UNIX過程分叉)。父過程將網(wǎng)絡(luò)插口連接給予子過程并回至450以啟動對外守護程序312的另一個連接。在454處,子過程使用位于存儲器表中的有效可執(zhí)行服務(wù)(例如httpsvc)列表和到達這些服務(wù)的全目錄路徑來驗證請求的服務(wù)。如請求的服務(wù)不在有效服務(wù)列表之內(nèi),則它將被否決。因此,即使一個未授權(quán)用戶能夠通過外守護程序312訪問內(nèi)守護程序322,他/她也只能限于訪問位于有效服務(wù)列表內(nèi)的服務(wù)。
如該服務(wù)請求有效,則在455處內(nèi)守護程序322調(diào)用一個UNIX執(zhí)行命令執(zhí)行(即用新服務(wù)程序覆蓋它本身而執(zhí)行)請求的服務(wù)并將網(wǎng)絡(luò)插口連接給予httpsvc 470。Httpsvc 470將一個附加環(huán)境變量加至作為外守護程序312名稱的過程環(huán)境上。SGI加上附加的環(huán)境變量以便在需要時能由example.pl 480決定SGI執(zhí)行example.pl 480而不是http守護程序314。
附帶提一下,外守護程序312,內(nèi)守護程序322,sgi_client子程序416和httpsvc 470中每個都具有統(tǒng)計和錯誤記錄文件。每個都具有查錯和跟蹤參量,這些參量使不同數(shù)量的信息放于錯誤和統(tǒng)計記錄文件中。此外,如跟蹤參量是由sgi_client子程序416設(shè)置的,則外守護程序312,內(nèi)守護程序322和httpsvc 470將全部在它們相應(yīng)的錯誤記錄文件中跟蹤該具體事務(wù)而不必考慮初始執(zhí)行每個程序時如何將跟蹤設(shè)置的。
在436處,外守護程序312將先前建立的頭部傳送至服務(wù)程序324,后者在471處接收它。作為響應(yīng),服務(wù)程序324將頭部(它包含初始過程環(huán)境變量)釋義為variable=value串并重建在example.pl 462中定義的初始過程環(huán)境。服務(wù)程序324自頭部變量SGICMD=example.pl中確定cgi-bin 426中應(yīng)調(diào)用的合適程序,建立用于與example.pl 480通信的通信信道(例如管道),和在472處調(diào)用example.pl 480。在437處,外守護程序312將標準輸入字符流(例如文本)傳送至服務(wù)程序324。在473處,服務(wù)程序324將文本傳送至example.pl 480的標準輸入端。
在這點上,由于服務(wù)程序324在471處重建初始過程環(huán)境(它是初始地在462處建立的),所以example.pl 480相信它是由http守護程序314在472處執(zhí)行的,而不是SGI(雖然可選方案是它可確定SGI從由httpsvc 470加至頭部的附加環(huán)境變量中調(diào)用它的)。因此SGI對顧客和http守護程序314兩者都是透明的,及實際事務(wù)程序位于example.pl 480中。因此位于exam ple.pl 480中的http守護程序314和事務(wù)程序兩者都不必改變。
所有信息現(xiàn)已齊全以供example.pl 480在481處執(zhí)行數(shù)據(jù)庫330上的內(nèi)部事務(wù)。一旦在481處完成事務(wù)(不論成功與否),事務(wù)的輸出即退回給顧客。在482處,example.pl 480自該事務(wù)接收輸出并將它輸送至服務(wù)程序324的管道474。在474處,服務(wù)程序324將輸出傳送至外守護程序312。在438處,外守護程序312將輸出傳送至sgi_client子程序416。在464處,sgi_client子程序416將輸出傳送至特殊程序原本example.pl 462。在465處,example.pl 462將輸出傳送至守護程序314。在466處,守護程序314將輸出傳送給顧客。
因此,一個由顧客啟動的事務(wù)可自守護程序314安全地傳送至外守護程序312,自外守護程序312至內(nèi)守護程序322供在454處驗證和在481處處理,最后在466處輸出退回給顧客。顧客請求和文本通過防火墻300可供內(nèi)部事務(wù)處理所使用,全部在SGI完全控制之下,但仍對顧客完全透明。因為內(nèi)守護程序322在451處完成認證,嚴格地迫使服務(wù)在454處供外部網(wǎng)絡(luò)使用,及可選地在481處完成用戶認證,外服務(wù)器310的妥協(xié)帶來非常小的內(nèi)部安全風險而根本不會造成內(nèi)部網(wǎng)絡(luò)的妥協(xié)。
使用此具體實施例,現(xiàn)有http服務(wù)器能實施SGI而只需對現(xiàn)有cgi-bin命令做很少或不做修改。SGI是完全隱藏的,能自動地支持即使復(fù)雜的http服務(wù)器。人們可以對現(xiàn)有http服務(wù)器做極少修改而為業(yè)務(wù)事務(wù)增加附加的安全和支持。因為外部網(wǎng)絡(luò)可用的事務(wù)(類似于example.pl的程序)限于分別位于cgi-bin 415和cgi-bin 426內(nèi)的程序原本和事務(wù)程序,又因為內(nèi)服務(wù)器320正常時處于嚴格集合控制之下而不能輕易地被內(nèi)部開發(fā)程序修改,因此SGI也使內(nèi)部開發(fā)程序在沒有集合審查和同意的情況下難于將內(nèi)部事務(wù)供外部顧客使用。
雖然已參照本發(fā)明具體實施例顯示和描述了本發(fā)明,但熟悉技術(shù)的人知道可在不背離只由下列權(quán)利要求書定義的本發(fā)明實質(zhì)和范圍的情況下對它在形式和細節(jié)上進行前述和其它修改。例如,一個可替代的實施例將sgi_client子程序416和外守護程序的功能包括在守護程序314內(nèi)。這將能提供更好性能,但將使httpd實施成為獨占及對它的改進難于實現(xiàn)。
權(quán)利要求
1.一種用于操縱內(nèi)計算機系統(tǒng)(320)以允許外計算機系統(tǒng)(310)啟動一個使用內(nèi)部資源(330)的事務(wù)請求(2)而不破壞內(nèi)計算機系統(tǒng)和外計算機系統(tǒng)間的安全防火墻(300)的方法,包括以下步驟認證(451)由內(nèi)計算機系統(tǒng)啟動的內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的連接,從而建立一條認證的連接;由外計算機系統(tǒng)調(diào)用(461)一個外計算機系統(tǒng)收到的事務(wù)請求;由外計算機系統(tǒng)對事務(wù)請求的調(diào)用作出響應(yīng),建立一個包含過程環(huán)境變量的初始過程環(huán)境,及建立一個包括事務(wù)請求和用于執(zhí)行該事務(wù)請求的過程環(huán)境變量的串;由外計算機系統(tǒng)通過認證的連接傳送(435,436,437)串至內(nèi)計算機系統(tǒng);由內(nèi)計算機系統(tǒng)驗證(454)該事務(wù)請求;由內(nèi)計算機系統(tǒng)重建(471)初始過程環(huán)境;以及由內(nèi)計算機系統(tǒng)執(zhí)行(472)該事務(wù)請求,從而生成(482)一個輸出。
2.如權(quán)利要求1中所要求的方法,還包括以下步驟(a)由外計算機系統(tǒng)(310)讀取第一密碼和第一通信端口;(b)由外計算機系統(tǒng)在第一通信端口處建立第一插口并在該第一插口處偵聽來自內(nèi)計算機系統(tǒng)(320)的連接調(diào)用;(c)由內(nèi)計算機系統(tǒng)讀取第二密碼和第二通信端口;以及(d)由內(nèi)計算機系統(tǒng)在第二通信端口處建立第二插口并通過第二插口發(fā)送一個連接調(diào)用至外計算機系統(tǒng),從而建立一個連接。
3.如權(quán)利要求1中所要求的方法,其中認證步驟包括以下步驟(e)由內(nèi)計算機系統(tǒng)(320)通過第二插口發(fā)送獨特的時標至外系統(tǒng)(310);(f)由外計算機系統(tǒng)將第一密碼與收到的時標攪拌;(g)用加密算法將攪拌的第一密碼加密,從而建立第一密碼串;(h)由外計算機系統(tǒng)傳送第一密碼串至內(nèi)計算機系統(tǒng);(i)由內(nèi)計算機系統(tǒng)使用第二密碼重復(fù)步驟(f)至(g),從而建立第二密碼串;以及(j)由內(nèi)計算機系統(tǒng)將第一密碼串與第二密碼串進行比較。
4.如權(quán)利要求3中所要求的方法,其中攪拌步驟包括以下步驟將時標與十六進制數(shù)0177進行邏輯“與”運算以產(chǎn)生一個獨特結(jié)果;以及將該獨特結(jié)果與第一密碼的每個字符進行邏輯“異”運算從而產(chǎn)生攪拌的第一密碼。
5.如權(quán)利要求3中所要求的方法,其中加密步驟包括以下步驟用關(guān)鍵碼將攪拌的第二密碼中每個字符加密,從而建立密碼串。
6.如權(quán)利要求1中所要求的方法,其中調(diào)用步驟包括以下步驟由外部網(wǎng)絡(luò)發(fā)送事務(wù)請求(2)至外計算機系統(tǒng)(310),其中該事務(wù)請求包含輸入的數(shù)據(jù),參量,和一條用于執(zhí)行事務(wù)程序的命令;以及對外計算機系統(tǒng)收到的事務(wù)請求作出響應(yīng),由第一守護程序確定包含過程環(huán)境變量的過程環(huán)境。
7.如權(quán)利要求6中所要求的方法,還包括以下步驟對由外計算機系統(tǒng)(310)調(diào)用的事務(wù)請求(2)作出響應(yīng),調(diào)用該命令;對命令的調(diào)用作出響應(yīng),執(zhí)行程序原本,向它傳送用戶輸入數(shù)據(jù),參量和事務(wù)請求;以及由程序原本建立串,其中該串包括命令,參量和用于執(zhí)行該事務(wù)請求的環(huán)境變量。
8.如權(quán)利要求7中所要求的方法,還包括以下步驟由程序原本調(diào)用一個位于外計算機系統(tǒng)(310)上的客戶子程序,將用戶輸入數(shù)據(jù),用于連接至位于外計算機系統(tǒng)上的第二守護程序的第三通信端口,用于標識事務(wù)請求(2)類型的標識符和該串傳送給它。
9.如權(quán)利要求8中所要求的方法,還包括以下步驟由第二守護程序?qū)τ沙绦蛟臼盏降恼{(diào)用作出響應(yīng),認證該客戶子程序;由第二守護程序執(zhí)行分叉操作,將第三插口連接傳送至子過程,以便父過程在第一插口連接處偵聽來自內(nèi)計算機系統(tǒng)的調(diào)用;以及由子過程對客戶子程序的認證作出響應(yīng),傳送事務(wù)請求類型至位于內(nèi)計算機系統(tǒng)上的第三守護程序。
10.如權(quán)利要求1中所要求的方法,其中驗證步驟包括以下步驟由第三守護程序讀取外計算機系統(tǒng)的存儲器中存放的一個有效服務(wù)表;以及將自子過程收到的事務(wù)請求類型與有效服務(wù)表相比較,其中如在有效服務(wù)表中找到該類型,則事務(wù)請求得到驗證。
11.一種用于操縱內(nèi)計算機系統(tǒng)(320)以允許外計算機系統(tǒng)(310)啟動一個使用內(nèi)部資源(330)的事務(wù)請求(2)而不破壞內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的安全防火墻(300)的獨特地編程的系統(tǒng),包括用于認證一個由內(nèi)計算機系統(tǒng)啟動的內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)間的連接從而建立一個認證的連接的裝置;外計算機系統(tǒng)用于調(diào)用外計算機系統(tǒng)收到的事務(wù)請求的裝置;外計算機系統(tǒng)用于對事務(wù)請求的調(diào)用作出響應(yīng),建立一個包含過程環(huán)境變量的初始過程環(huán)境的裝置,及用于建立一個包括事務(wù)請求、參量和用于執(zhí)行事務(wù)請求的過程環(huán)境變量的串的裝置;外計算機系統(tǒng)用于通過認證的連接傳送串至內(nèi)計算機系統(tǒng)的裝置;內(nèi)計算機系統(tǒng)用于驗證事務(wù)請求的裝置;內(nèi)計算機系統(tǒng)用于重建初始過程環(huán)境的裝置;以及內(nèi)計算機系統(tǒng)用于執(zhí)行事務(wù)請示從而產(chǎn)生輸出的裝置。
12.一種制造產(chǎn)品,包括一種在其中收錄了計算機可讀程序碼工具的計算機可用介質(zhì),用于使內(nèi)計算機系統(tǒng)允許外計算機系統(tǒng)啟動一個使用內(nèi)部資源的事務(wù)請求而不破壞內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)之間的安全防火墻,所述制造產(chǎn)品中的計算機可讀程序碼工具包括用于認證由內(nèi)計算機系統(tǒng)啟動的在內(nèi)計算機系統(tǒng)與外計算機系統(tǒng)間的連接從而建立一個認證的連接的計算機可讀程序工具;外計算機系統(tǒng)用于調(diào)用外計算機系統(tǒng)收到的事務(wù)請求的計算機可讀程序工具;外計算機系統(tǒng)用于對事務(wù)請求的調(diào)用和作出響應(yīng),建立一個包含過程環(huán)境變量的初始過程環(huán)境的計算機可讀程序工具,及用于建立一個包括事務(wù)請求和用于執(zhí)行事務(wù)請求的過程環(huán)境變量的串的計算機可讀程序工具;外計算機系統(tǒng)用于通過認證的連接傳送串至內(nèi)計算機系統(tǒng)的計算機可讀程序工具;內(nèi)計算機系統(tǒng)用于驗證事務(wù)請求的計算機可讀程序工具;內(nèi)計算機系統(tǒng)用于重建初始過程環(huán)境的計算機可讀程序工具;以及內(nèi)計算機系統(tǒng)用于執(zhí)行事務(wù)請求從而生成輸出的計算機可讀程序工具。
全文摘要
允許外部網(wǎng)絡(luò)(310)顧客啟動一個使用內(nèi)部網(wǎng)絡(luò)(320)上內(nèi)部業(yè)務(wù)資源(330)的特許業(yè)務(wù)事務(wù)而不破壞安全防火墻(300)的方法,包括認證內(nèi)計算機系統(tǒng)(320)與外計算機系統(tǒng)(310)之間的連接;由外計算機系統(tǒng)調(diào)用所收到的事務(wù)請求(2),建立一個包括事務(wù)請求(2)、參量和用于執(zhí)行事務(wù)請求(2)的過程環(huán)境變量的串,向內(nèi)計算機系統(tǒng)傳送;由內(nèi)計算機系統(tǒng)驗證事務(wù)請求(2),重建初始過程環(huán)境;執(zhí)行事務(wù)請求(2)從而產(chǎn)生輸出。
文檔編號G06F15/00GK1201573SQ96197998
公開日1998年12月9日 申請日期1996年3月20日 優(yōu)先權(quán)日1995年10月31日
發(fā)明者羅伯特·塞西爾·戈爾, 約翰·弗雷德里克·霍 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
叶城县| 保山市| 西安市| 阿勒泰市| 花莲市| 米林县| 宝鸡市| 阜阳市| 武安市| 洱源县| 普宁市| 雷州市| 林州市| 朝阳市| 正定县| 广宁县| 鄱阳县| 乐至县| 建瓯市| 宜宾县| 繁昌县| 宁河县| 贵定县| 萍乡市| 防城港市| 红安县| 大足县| 高阳县| 石门县| 威远县| 桦甸市| 双柏县| 汶川县| 灵山县| 疏勒县| 关岭| 长白| 拜城县| 横峰县| 无极县| 图木舒克市|