Unix操作系統(tǒng)自動傳輸數(shù)據(jù)的安全問題
今天,我們來學(xué)習(xí)下自動傳輸數(shù)據(jù)的安全問題。在Unix操作系統(tǒng)中自動批量發(fā)送數(shù)據(jù)文件的方法主要有兩種:一種方法是在用戶的宿主目錄下增加.netrc文件,并在文件中加入遠(yuǎn)程機(jī)器的host名、用戶名和密碼,然后在建有.netrc文件的用戶登錄后用ftp自動批量發(fā)送文件;另一種方法是用Unix的shell編寫一個批處理的腳本文件, 以執(zhí)行該腳本文件來自動批量發(fā)送數(shù)據(jù)。
Unix操作系統(tǒng)中上述兩種方法雖然都可以實現(xiàn)自動批量發(fā)送數(shù)據(jù)文件的目的,但卻存在一些安全隱患。這兩種方法都使用了純文本文件的方式來存放遠(yuǎn)程機(jī)器的host名、IP地址、用戶名和密碼,因此只要用簡單的Unix命令如cat、vi、more等就可以對遠(yuǎn)程機(jī)器的主要秘密一覽無遺。
為增加Unix操作系統(tǒng)安全性,必須對這些秘密信息進(jìn)行隱藏和加密。筆者用C語言程序的二進(jìn)制代碼封裝遠(yuǎn)程機(jī)器的IP地址、host名、用戶名和密碼以增加其安全性。在用C語言進(jìn)行編程封裝時,注意不能在程序中把遠(yuǎn)程機(jī)器的IP地址、host名、用戶名和密碼等重要信息直接賦值給字符串變量。
如果直接賦值給字符串變量,就很容易被人用Unix命令strings、hd和的常用pctools從C程序的二進(jìn)制代碼中找到上述重要信息。還要注意不能在Unix操作系統(tǒng)程序執(zhí)行過程中產(chǎn)生帶有上述遠(yuǎn)程機(jī)器重要信息的中間文件。
如果出現(xiàn)這些中間文件,雖然可以在程序結(jié)束前刪除它們,但遇到發(fā)送的數(shù)據(jù)文件數(shù)量多時間長時, 這些中間文件就有可能被調(diào)看而泄密,所以***不要在程序中產(chǎn)生中間文件。
下面這個簡短的Unix操作系統(tǒng)程序例子是從本地機(jī)器的超級用戶中把數(shù)據(jù)文件發(fā)送到另一臺機(jī)器的超級用戶中, 可以實現(xiàn)多個文件的連續(xù)自動批量發(fā)送。盡管該程序使用了超級用戶進(jìn)行數(shù)據(jù)發(fā)送,但由于編程時進(jìn)行了巧妙的設(shè)計,所以當(dāng)它被編譯成可執(zhí)行代碼后,很難從這些二進(jìn)制代碼中發(fā)現(xiàn)有關(guān)本地計算機(jī)和遠(yuǎn)程計算機(jī)的安全方面的重要信息。同時,該程序采用了管道方法從而在執(zhí)行過程中不會產(chǎn)生任何中間文件,安全性相對較高。實現(xiàn)代碼如下:
- file://安全發(fā)送數(shù)據(jù)
- mainint argc,char *argv[]
- FILE *fftp
- printf“\f 從本機(jī)數(shù)據(jù):\n”
- sprintfftpcmd,“%sCMD\n”,ftpcmd
- printf“\n正在發(fā)送……\n”
關(guān)于Unix操作系統(tǒng)中的自動傳輸數(shù)據(jù)的安全問題我們就講解到這里了。
【編輯推薦】