<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁>軟件介紹>設(shè)備管理系統(tǒng)維護(hù)技巧:在SSL內(nèi)加密任意TCP連接 查詢:
               
          設(shè)備管理系統(tǒng)維護(hù)技巧:在SSL內(nèi)加密任意TCP連接

          大多數(shù)有網(wǎng)絡(luò)意識(shí)的程序都應(yīng)該使用密碼術(shù)保護(hù)數(shù)據(jù),以免數(shù)據(jù)被偷窺,但許多程序都沒有這樣做,可能是因?yàn)槌绦虮旧硎桥f應(yīng)用程序,或者因?yàn)榘踩捉幼謱樱⊿ecureSocketsLayer,SSL)很難加入到應(yīng)用程序中。Stunnel是一種程序,使程序員和系統(tǒng)管理員可以很輕松地對(duì)任意TCP會(huì)話加密。您可以很輕松地在客戶機(jī)和服務(wù)器上啟用SSL而且這樣做不會(huì)影響程序源代碼。SSL挑戰(zhàn)在大多數(shù)開發(fā)環(huán)境中,并不是在產(chǎn)品的整個(gè)生命周期中都考慮安全性而是在出現(xiàn)安全性問題后才采取補(bǔ)救措施。從傳統(tǒng)的觀點(diǎn)來看,這是壞事事后亡羊補(bǔ)牢很困難,就象向一個(gè)寫得馬馬虎虎的軟件添加一個(gè)可靠性模塊來除去錯(cuò)誤一樣困難。象這些亡羊補(bǔ)牢技術(shù)從安全性立場來看好像是可行的,但實(shí)際上不太可靠。例如,您可以寫一段代碼,建立網(wǎng)絡(luò)連接,然后連接到一個(gè)庫該庫用執(zhí)行加密和認(rèn)證的版本代替所有的傳統(tǒng)網(wǎng)絡(luò)調(diào)用。實(shí)際上,這種集成的容易性是安全套接字層,或稱為SSL(用于secureHTTP連接的協(xié)議)的最初目的之一。SSL的幾種實(shí)現(xiàn)已經(jīng)在試圖順便替代標(biāo)準(zhǔn)BerkeleyUNIXsocketAPI,或者帶有盡可能相似接口的庫。OpenSSL庫(請(qǐng)參閱參考資料)是嘗試后一種方法的一個(gè)很好的示例。在OpenSSL庫中,相似的API模仿傳統(tǒng)的套接字調(diào)用,使用SSL上下文對(duì)象代替文件描述符。例如,傳統(tǒng)的寫入套接字的調(diào)用具有以下特征:*Returnsthenumberofcharacterssuccessfullywritten*size_twrite(intfile_descriptor,void*buf,size_tlen)OpenSSL更改每個(gè)參數(shù)的類型,但每個(gè)參數(shù)的語義不變:*Returnsthenumberofcharacterssuccessfullywritten*intSSL_write(SSL*socket_info,char*buf,intlen)實(shí)際上,除SSL對(duì)象之外,其它所有的類型與初始調(diào)用都是兼容的。理想情況下,開發(fā)者能夠?qū)Τ绦蜻M(jìn)行較小的修改,只需添加一些代碼從文件描述符初始化SSL上下文即可。而事實(shí)上,SSL庫都不容易使用。例如,開發(fā)者要寫許多附加代碼才能使OpenSSL在多線程環(huán)境下工作。實(shí)際上,為將這個(gè)庫集成到代碼中去,大多數(shù)開發(fā)組織花費(fèi)的精力都比他們預(yù)計(jì)的要多的多,而結(jié)果還常常是一片混亂。Stunnel幸運(yùn)的是,有一種方法可以將加密功能無縫添加到網(wǎng)絡(luò)連接中,而不會(huì)將您原來的代碼段基址搞亂。Stunnel是一個(gè)程序,可以使用OpenSSL庫對(duì)任意TCP會(huì)話進(jìn)行加密。它作為服務(wù)器運(yùn)行在程序外部。Stunnel服務(wù)器主要執(zhí)行兩個(gè)功能:一,首先,接收未加密的數(shù)據(jù)流,進(jìn)行SSL加密,然后將其通過網(wǎng)絡(luò)發(fā)送;二,對(duì)已進(jìn)行SSL加密的數(shù)據(jù)流進(jìn)行解密,并將其通過網(wǎng)絡(luò)發(fā)送給另一個(gè)程序(該程序通常駐留在同一機(jī)器上,以避免本地網(wǎng)絡(luò)上的窺探攻擊)。這樣,在必要時(shí),您就可以很容易地運(yùn)行未加密的程序,當(dāng)您想要嗅探網(wǎng)絡(luò),看看到底有什么東西正在通過網(wǎng)絡(luò)時(shí),這一點(diǎn)很有用。即使您是一個(gè)系統(tǒng)管理員,而不是一個(gè)開發(fā)者,Stunnel對(duì)您來說也是一個(gè)強(qiáng)大的武器,因?yàn)樗梢韵虿粏⒂肧SL的服務(wù)器端軟件添加SSL。例如,我已經(jīng)使用Stunnel來保護(hù)POP、SMTP和IMAP服務(wù)器。唯一不太盡人意的地方是要使用這些服務(wù)器的安全版本,客戶機(jī)必須是可識(shí)別SSL的。Stunnel要求已經(jīng)安裝了OpenSSL。它已被移植到了Windows,以及大多數(shù)UNIX平臺(tái)。一旦安裝了Stunnel,用它來保護(hù)服務(wù)器就很輕松。例如,您可以通過將常規(guī)服務(wù)綁定到本地主機(jī)使IMAP服務(wù)器啟用SSL,然后在外部IP地址(假設(shè)IMAP服務(wù)器已經(jīng)在運(yùn)行,且外部地址為192.168.100.1)運(yùn)行Stunnel:stunnel-d192.168.100.1:imap2-r127.0.0.1:imap2-d標(biāo)志指定我們希望用來運(yùn)行自己的安全服務(wù)的端口。imap2字符串指定使用標(biāo)準(zhǔn)IMAP端口;我們也可以將其設(shè)為143。Stunnel檢查etcervices文件以便將符號(hào)名映射到端口號(hào)。并非所有的機(jī)器都擁有這個(gè)文件(有些機(jī)器并不列出所有的標(biāo)準(zhǔn)服務(wù)),所以使用數(shù)字比使用服務(wù)名更方便。-r標(biāo)志指定未加密的IMAP服務(wù)器運(yùn)行所在的端口。這個(gè)解決方案要求您的IMAP服務(wù)器只在回送(loopback)接口上偵聽。如果IMAP服務(wù)器綁定到IP地址0.0.0.0,那么它將偵聽機(jī)器上每個(gè)IP地址上的信息,包括192.168.100.1;這會(huì)導(dǎo)致出現(xiàn)一條出錯(cuò)消息,指出我們的安全服務(wù)端口已在使用中。大多數(shù)服務(wù)都可以配置為只綁定到一個(gè)接口。不然的話,可能要更改一行代碼。另外,您可以將一個(gè)未加密的服務(wù)器設(shè)在一個(gè)非標(biāo)準(zhǔn)端口上。例如,您可以在端口1143上運(yùn)行IMAP,然后將安全的IMAP數(shù)據(jù)流轉(zhuǎn)發(fā)到該端口。一般情況下,您不希望其它機(jī)器上的用戶訪問您未加密的服務(wù)。運(yùn)行服務(wù)的機(jī)器上的個(gè)人防火墻可以加強(qiáng)這種策略。使用Stunnel來保護(hù)如IMAP等服務(wù)面臨的一個(gè)問題是服務(wù)器只接收來自我們提供的Stunnel服務(wù)器的連接。因此,所有的連接都看起來好象是來自本地機(jī)器。在Linux上,可以通過傳遞-T標(biāo)志避開這個(gè)問題,傳遞-T標(biāo)志可以使Stunnel服務(wù)器透明地代理信息包,這樣真正的服務(wù)器就可以得到接收到的所有信息包中的正確的源地址。用于客戶機(jī)的Stunnel還可以使用客戶機(jī)的Stunnel與服務(wù)器連接,不過要多做一些工作。首先,必須生成Stunnel作為外部進(jìn)程。在基于UNIX的系統(tǒng)上,執(zhí)行這個(gè)操作的最好方法是fork()客戶機(jī),并讓子進(jìn)程execv()stunnel。父進(jìn)程必須準(zhǔn)備兩套文件描述符用來與子進(jìn)程通信一對(duì)用于從Stunnel進(jìn)程讀取數(shù)據(jù),另一對(duì)用于通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。這個(gè)工作量不小。實(shí)現(xiàn)這項(xiàng)功能的示例代碼,提供一個(gè)簡單的函數(shù)調(diào)用run_cmd,掩蓋潛在的復(fù)雜性;run_cmd使用一個(gè)字符串指出要運(yùn)行的命令,并返回一個(gè)PIPE對(duì)象,該對(duì)象有一個(gè)文件描述符,套接字使用該文件描述符進(jìn)行讀寫操作:pipe.h:#ifndefPOPEN_H__#definePOPEN_H__#include#include#defineEX設(shè)備管理系統(tǒng)VAL127typedefstructpipe_st{FILE*read_ptr;FILE*write_ptr;pid_tpid;}PIPE;PIPE*run_cmd(char*cmd);intpipe_close(PIPE*p);#endifPOPEN_H__pipe.c:#include#include#include#include#include#include#includepipe.h*Weallowdoublequotesandtoescapespaces.*Allbackslashesareprocessed,despitethevalue*ofthenextcharacter.(Though-).*Wedon"tcareifthere"samissingtrailingquote,*evenifitshouldreallybeasyntaxerror.*staticchar**to_words(char*arg){char**arr;char*p=arg;intnw=1;intslc=0;intslm=0;charc;shortquote=0;char*cur;*Buildaroughapproximationofthenumberofwords,*simplysowedon"tmalloctoolow.*while((c=*p++)){if(c==""||c==""){nw++;if(slmslc)slm=slc;slc=0;}}arr=(char**)malloc(sizeof(char*)*(nw+1));quote=nw=slc=0;p=arg;cur=(char*)malloc(sizeof(char)*(slm+1));arr[nw++]=cur;while((c=*p++)){switch(c){case"":quote=!quote;continue;case"":if(quote){*cur++=c;slc++;continue;}else{if(!slc)continue;*cur=0;cur=(char*)malloc(sizeof(char)*(slm+1));arr[nw++]=cur;slc=0;continue;}case"":if(*p){*cur++=*p++;slc++;continue;}default:*cur++=c;slc++;continue;}}*cur=0;arr[nw]=0;returnarr;}PIPE*run_cmd(char*cmd){intprpd[2];intpwpd[2];pid_tpid;char**args;PIPE*ret;args=to_words(cmd);if(pipe(prpd)0||pipe(pwpd)0){return0;*Pipefailed.*}pid=fork();switch(pid){case-1:close(prpd[STDIN_FILENO]);close(prpd[STDOUT_FILENO]);close(pwpd[STDIN_FILENO]);close(pwpd[STDOUT_FILENO]);return0;*Forkfailed.**Herewecanonlyexitonerror.*case0:*Child...*if(dup2(pwpd[STDIN_FILENO],STDIN_FILENO)0){exit(EX設(shè)備管理系統(tǒng)VAL);}if(dup2(prpd[STDOUT_FILENO],STDOUT_FILENO)0){exit(EX設(shè)備管理系統(tǒng)VAL);}close(pwpd[STDIN_FILENO]);close(pwpd[STDOUT_FILENO]);close(prpd[STDIN_FILENO]);close(prpd[STDOUT_FILENO]);execv(args[0],args);exit(EX設(shè)備管理系統(tǒng)VAL);default:ret=(PIPE*)malloc(sizeof(PIPE));ret-read_ptr=ret-write_ptr=0;ret-pid=pid;close(pwpd[0]);fcntl(pwpd[1],F_SETFD,FD_CLOEXEC);ret-write_ptr=fdopen(pwpd[1],wb);if(!ret-write_ptr){intold=errno;kill(pid,SIGKILL);close(pwpd[1]);waitpid(pid,0,0);errno=old;free(ret);return0;}close(prpd[1]);fcntl(prpd[0],F_SETFD,FD_CLOEXEC);ret-read_ptr=fdopen(prpd[0],rb);if(!ret-read_ptr){intold=errno;kill(pid,SIGKILL);close(prpd[0]);waitpid(pid,0,0);errno=old;free(ret);return0;}returnret;}}intpipe_close(PIPE*p){intstatus;if(!(p-read_ptr||p-write_ptr)){return-1;}if(p-read_ptrfclose(p-read_ptr)){return-1;}if(p-write_ptrfclose(p-write_ptr)){return-1;}if(waitpid(p-pid,status,0)!=p-pid){return-1;}p-read_ptr=p-write_ptr=0;returnstatus;}例如,要使用此函數(shù)建立一個(gè)連接到上面啟用SSL的IMAP服務(wù)器的客戶機(jī),我們可以編寫如下代碼:PIPE*p;p=run_cmd(stunnel-c-r192.168.100.1:imap2-Aetcca_certs-v3);在上面的代碼中,我們這樣調(diào)用Stunnel:stunnel-c-r192.168.100.1:imap2-Aetcca_certs-v3最后兩個(gè)選項(xiàng)并非必需;客戶機(jī)可以不考慮這兩個(gè)選項(xiàng)進(jìn)行連接。但是,如果我們省去了這兩個(gè)選項(xiàng),客戶機(jī)將無法對(duì)服務(wù)器證書進(jìn)行充分的驗(yàn)證,會(huì)使客戶機(jī)隨時(shí)可能遭到man-in-the-middle攻擊。在這種攻擊中,有人創(chuàng)建了一個(gè)虛假服務(wù)器,使客戶機(jī)把它當(dāng)作真正的服務(wù)器,而與之進(jìn)行通信。虛假服務(wù)器代理到真正的服務(wù)器的連接,讀取所有的數(shù)據(jù)。使用現(xiàn)成的工具如Dsniff(請(qǐng)參閱參考資料)很容易發(fā)動(dòng)這種攻擊。v參數(shù)指定驗(yàn)證級(jí)別。缺省值為0,適用于使用其它方法驗(yàn)證客戶機(jī)的服務(wù)器,也是如此。但級(jí)別1和級(jí)別2更好一些。級(jí)別1檢查(非強(qiáng)制地)服務(wù)器證書是否有效,但可與無證書的服務(wù)器連接。級(jí)別2要求有效的服務(wù)器證書,但并不檢查證書是否由權(quán)威認(rèn)證中心如VeriSign簽署。A參數(shù)指定一個(gè)必須包含可信證書列表的文件。一個(gè)服務(wù)器證書要被接受,它必須是在A參數(shù)指定的文件內(nèi),或者是一個(gè)用于簽署推薦證書(通常是來自權(quán)威認(rèn)證中心,或稱CA,如VeriSign的證書)的證書,該證書必須在指定的文件內(nèi)。在參考資料部分,您會(huì)找到幾個(gè)主要認(rèn)證中心的當(dāng)前有效證書的鏈接,您可以將它作為必需內(nèi)容放在這個(gè)文件中。在使用大型CA時(shí),甚至這種方法也會(huì)出現(xiàn)問題。例如,確保某個(gè)特定的證書是由VeriSign簽署的是不錯(cuò)的。但您如何確保證書是來自您想要連接的站點(diǎn)呢?不幸的是,在寫這篇文章的時(shí)候,Stunnel還不能使調(diào)用程序訪問驗(yàn)證過的證書的信息。因此,您無法確定服務(wù)器正在使用的是誰的證書。例如,您可能如愿以償被連接到Amazon,或者可能被連接到一個(gè)服務(wù)器,該服務(wù)器使用的是偷來的(但有效的)Microsoft證書。由于這種局限性,您只能局限于下面四個(gè)選擇:希望沒有人發(fā)動(dòng)man-in-the-middle攻擊(不正確的想法)。在客戶機(jī)端對(duì)每個(gè)可能的服務(wù)器證書進(jìn)行硬編碼(Hardcode)。運(yùn)行自己的認(rèn)證中心,這樣可以動(dòng)態(tài)地添加可信的服務(wù)器。在應(yīng)用程序中使用SSL代替外部的通道,這樣可以通過編程檢查。即使這些解決方案都可使用,也沒有一個(gè)理想的。結(jié)論安全性問題要比我們想象的困難的多。理想情況是,我們單擊一下按鈕就可保證自己的應(yīng)用程序安全。在對(duì)網(wǎng)絡(luò)連接加密時(shí),值得稱贊的是Stunnel接近了單擊安全的理想境界,允許我們向在其它方面已經(jīng)完整的應(yīng)用程序添加安全性。不幸的是,Stunnel有一些局限性。在服務(wù)器端,它當(dāng)前只能夠透明地代理Linux客戶機(jī)。在客戶機(jī)端,不容易執(zhí)行充分的證書驗(yàn)證。盡管如此,Stunnel仍是實(shí)用價(jià)值很高的實(shí)用程序,應(yīng)該成為程序員,同樣也是系統(tǒng)管理員的看家法寶。如果您正在開發(fā)自己的軟件,應(yīng)該能夠很容易地將Stunnel集成到程序中。服務(wù)器代碼不需修改,使用本文中提供的框架通??梢院苋菀椎貙?duì)客戶機(jī)代碼進(jìn)行改寫。參考資料OpenSSLProject依靠大家的共同努力旨在開發(fā)一個(gè)健壯的、商務(wù)級(jí)的、全功能的開放源代碼工具箱,用來實(shí)現(xiàn)安全套接字層(SSLv2v3)和傳輸層安全(TLSv1)協(xié)議以及功能強(qiáng)大的通用加密庫??蓮墨@取Stunnel。要獲取CA證書列表,請(qǐng)?jiān)L問~arielgood-certsns45。這里有用來導(dǎo)出Netscape的CA證書的Perl腳本。您可以在monkey.org找到DugSong的dsniff2.3發(fā)行版。LarryLoeb的關(guān)于dsniff的developerWorks系列(分兩部分)向您展示了最近的更新是怎樣增加man-in-the-middle攻擊風(fēng)險(xiǎn)的。第1部分介紹了這個(gè)網(wǎng)絡(luò)探測工具的原理,以及如何識(shí)別是否有人在嗅探您。第2部分提供對(duì)抗嗅探器的工具和策略。參閱IBM"sManagedSecurityServices可以幫助您識(shí)別和解決使用證實(shí)過的連續(xù)管理進(jìn)程帶來的實(shí)時(shí)安全性風(fēng)險(xiǎn)。查找最新的IBMsecuritynews。IntelCommonDataSecurityArchitecture可通過減少上市時(shí)間和提供測試過性能的互操作性提高您的提供加強(qiáng)安全性解決方案的能力。

          推薦閱讀】

          設(shè)備管理系統(tǒng)運(yùn)維管理專區(qū)

          管理人員如何過網(wǎng)絡(luò)拓?fù)鋱D實(shí)現(xiàn)查詢

          中小型數(shù)據(jù)安全和管理安全應(yīng)對(duì)之策

          企業(yè)設(shè)備管理系統(tǒng)運(yùn)維管理軟件趨勢

          設(shè)備管理軟件軟件專區(qū)

          本文來自互聯(lián)網(wǎng),僅供參考


          基于VB界面RFID讀寫器的串口通信上位機(jī)軟件設(shè)計(jì)名易一卡通梯控管理系統(tǒng)設(shè)計(jì)方案簡要介紹
          好用的十大移動(dòng)oa智能辦公軟件系統(tǒng)公司網(wǎng)址完善智能布線系統(tǒng)之解決策略非常重要
          淺談安防系統(tǒng)的設(shè)計(jì)及施工經(jīng)驗(yàn)基于RFID技術(shù)的不停車收費(fèi)系統(tǒng)的設(shè)計(jì)
          大型常用的最基本辦公管理軟件系統(tǒng)服務(wù)器安裝有哪幾種門禁管理軟件安防七大技術(shù)
          全自動(dòng)化辦公軟件車牌識(shí)別系統(tǒng)在智能交通系統(tǒng)中的應(yīng)用
          信息化系統(tǒng)管理軟件門禁管理系統(tǒng)售后服務(wù)的說明
          安裝智能停車場收費(fèi)系統(tǒng)注意事項(xiàng)智能小區(qū)安防系統(tǒng)及門禁系統(tǒng)
          網(wǎng)絡(luò)系統(tǒng)如何進(jìn)行可靠性測試?系統(tǒng)管理員的六大鐵律
          信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 国产精彩视频免费观看 | 成人午夜精品视频在线观看 | 亚洲国产精品视频免费看 | 国产女人叫床高潮大片免费 | 中国一级黄片免费视频 | 夜夜免费视频 | 豆花无码在线 | 激情乱伦文学 | 欧美五月婷婷 | 伊人成仁网站 |