專利名稱:C/s架構(gòu)客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法
C/S架構(gòu)客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法技術(shù)領(lǐng)域
本發(fā)明公開一種C/S架構(gòu)客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法,屬于 企業(yè)信息化安全領(lǐng)域。
背景技術(shù):
在電子商務(wù)中,為了實現(xiàn)高度的安全性目前仍有大量的系統(tǒng)采用傳統(tǒng)的C/S架 構(gòu)開發(fā)。C/S架構(gòu)的程序如需要與數(shù)據(jù)庫通訊大都采用ODBC或OLEDB方式建立與數(shù) 據(jù)庫服務(wù)器的連接。由于建立與數(shù)據(jù)庫服務(wù)器的連接需要提供詳細的連接參數(shù)信息,現(xiàn) 有的實現(xiàn)方式一般是通過一個文本格式的配置文件,來保存數(shù)據(jù)庫連接信息,如果有多 個客戶端程序,則每個客戶端均會保存一份數(shù)據(jù)庫配置信息。這種通過文本文件保存數(shù) 據(jù)連接信息的做法,存在兩大不足
一數(shù)據(jù)庫連接信息容易暴露。如果數(shù)據(jù)庫連接信息以明文方式存放,“非 法”用戶通過查看文本格式的配置文件后可以輕易的獲取數(shù)據(jù)庫連接信息,然后便可以 采用其它的數(shù)據(jù)庫連接工具與數(shù)據(jù)庫建立連接,并對數(shù)據(jù)庫進行數(shù)據(jù)檢索,甚至是破壞 性操作。通過密文方式保存數(shù)據(jù)庫連接信息,在程序中用解密,可以解決明文方式容易 泄密的不足。
二 C/S客戶端一般有十幾個到上百個不等,由于安全上的考慮,企業(yè)數(shù)據(jù) 庫管理員會定期更新數(shù)據(jù)庫連接密碼,這樣一來所有的客戶端都需要更新數(shù)據(jù)庫連接信 息,否則系統(tǒng)便無法連接數(shù)據(jù)庫。如果客戶端個數(shù)較多,信息系統(tǒng)管理人員將需要花費 相當多的時間對各個客戶端的連接信息進行修改。如果客戶端部署在一個基于集團內(nèi)網(wǎng) 的分地域辦公環(huán)境,修復配置的工作將需要花費更多的時間與成本。發(fā)明內(nèi)容
針對上述提到的現(xiàn)有技術(shù)中C/S客戶機通過在本機保存數(shù)據(jù)庫連接信息,而帶 來問題,本發(fā)明提供一種新的C/S客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法,C/S 客戶機通過一個功能模塊與連接信息提供者通訊動態(tài)的獲取數(shù)據(jù)庫的連接信息。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案是一種C/S架構(gòu)客戶機安全獲取數(shù)據(jù) 庫服務(wù)器連接信息的方法,包括設(shè)有相互連接的客戶機端和服務(wù)器端,客戶機端包括
數(shù)據(jù)庫連接信息獲取模塊數(shù)據(jù)庫連接信息獲取模塊能夠根據(jù)信息系統(tǒng)管理員 設(shè)置的與連接信息提供者的通訊參數(shù),與連接信息提供者建立Socket連接,并調(diào)用連接 信息提供者中的數(shù)據(jù)庫連接信息代理進程組件,從數(shù)據(jù)庫連接信息代理進程組件中獲取 加密的數(shù)據(jù)庫連接信息后,用系統(tǒng)內(nèi)置的解密算法和預先設(shè)定的解密密鑰,解密獲取的 數(shù)據(jù)庫連接信息,并傳遞給數(shù)據(jù)庫連接模塊;
數(shù)據(jù)庫連接模塊從數(shù)據(jù)庫連接信息獲取模塊獲取數(shù)據(jù)庫連接信息,通過編寫 方式在內(nèi)存中動態(tài)設(shè)置數(shù)據(jù)庫連接信息,并與服務(wù)器端的數(shù)據(jù)庫進行連接;
所述的服務(wù)器端包括有代理進程模塊用于響應(yīng)c/s系統(tǒng)中的客戶機端的Socket調(diào)用,并將數(shù)據(jù)庫連接信息,通過內(nèi)置的加密算法和預先設(shè)定的加密密鑰進行加密,傳 送給客戶機端的數(shù)據(jù)庫連接信息獲取模塊。本發(fā)明的有益效果是采用本發(fā)明C/S客戶機不再需要保存數(shù)據(jù)庫連接信息, 同時在通過網(wǎng)絡(luò)傳輸數(shù)據(jù)庫連接信息時采用了加密傳輸,由于加密、解密算法對外不公 開,因此除了負責初始化連接信息提供者的系統(tǒng)管理員外,各個C/S客戶機用戶均無法 得知數(shù)據(jù)庫連接信息,這在很大程度上提高了數(shù)據(jù)庫的安全性。由于連接信息提供者的 連接信息相對穩(wěn)定不變,因此數(shù)據(jù)庫管理員可以給予安全的需要隨時更新數(shù)據(jù)庫連接密 碼,甚至是數(shù)據(jù)庫服務(wù)器的IP與端口,由于連接信息是通過連接信息提供者動態(tài)提供因 此不會對各個客戶機端的數(shù)據(jù)庫連接造成任何影響。下面將結(jié)合附圖和具體實施方式
對本發(fā)明做進一步說明。
圖1為本發(fā)明的系統(tǒng)架構(gòu)示意圖。
具體實施例方式本實施例為本發(fā)明優(yōu)選實施方式,其他凡其原理和基本結(jié)構(gòu)與本實施例相同或 近似的,均在本發(fā)明保護范圍之內(nèi)。請參看附圖1,本發(fā)明中的C/S系統(tǒng)主要包括設(shè)有相互連接的客戶機端和服務(wù)器 端組 成,本發(fā)明中客戶機端主要包括下面兩個部分(1)數(shù)據(jù)庫連接信息獲取模塊數(shù)據(jù)庫連接信息獲取模塊能夠根據(jù)信息系統(tǒng)管 理員設(shè)置的與連接信息提供者的通訊參數(shù),與連接信息提供者建立Socket連接,并調(diào)用 連接信息提供者中的數(shù)據(jù)庫連接信息代理進程組件,從數(shù)據(jù)庫連接信息代理進程組件中 獲取加密的數(shù)據(jù)庫連接信息后,用系統(tǒng)內(nèi)置的解密算法和預先設(shè)定的解密密鑰,解密獲 取的數(shù)據(jù)庫連接信息,并傳遞給數(shù)據(jù)庫連接模塊;(2)數(shù)據(jù)庫連接模塊用于動態(tài)設(shè)置數(shù)據(jù)庫連接信息,并進行與服務(wù)器端的數(shù) 據(jù)庫連接;本發(fā)明中的服務(wù)器端包括有數(shù)據(jù)庫連接信息代理進程組件用于響應(yīng)C/S系統(tǒng) 客戶機端的Socket調(diào)用,并將數(shù)據(jù)庫連接信息,通過內(nèi)置的加密算法和預先設(shè)定的加密 密鑰進行加密,傳送給客戶機端的數(shù)據(jù)庫連接信息獲取模塊。本實施例中,連接信息提供者是一種特定功能的Socket (Socket:所謂socket通
常也稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。應(yīng)用程序通常通 過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。)服務(wù)器程序,調(diào)用者通過與它進行 通信,可以獲得需要連接的數(shù)據(jù)庫服務(wù)器的連接配置信息,這些信息通常包括數(shù)據(jù)庫 服務(wù)器IP地址、端口、用戶名、密碼、實例名等。密鑰密鑰是一種參數(shù),它是在明文 轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入的數(shù)據(jù)。本發(fā)明中密鑰的位數(shù)可根據(jù)實際 采用的算法具體有所不同。數(shù)據(jù)加密數(shù)據(jù)加密就是對原來為明文的文件或數(shù)據(jù)按某種 算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應(yīng) 的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達到保護數(shù)據(jù)不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。本發(fā)明 采用“對稱”加密,既加密與解密采用同樣的密鑰。加密算法可選,但是加密算法內(nèi)置 在編寫好的程序里,且對外界保密。信息系統(tǒng)管理員為管理整個數(shù)據(jù)庫系統(tǒng)的人。
本發(fā)明的實現(xiàn)過程如下
A、客戶機端啟動C/S程序,客戶機端的數(shù)據(jù)庫連接信息獲取組件生成隨機字符 串,并將生成的隨機字符串保存在內(nèi)存中,然后采用加密算法,用內(nèi)置在系統(tǒng)中的密鑰 進行加密后,調(diào)用數(shù)據(jù)庫連接信息代理服務(wù)器中的數(shù)據(jù)庫連接信息代理進程;
B、數(shù)據(jù)連接代理服務(wù)器中的數(shù)據(jù)庫連接信息代理進程被調(diào)用后,采用內(nèi)置在系 統(tǒng)中的密鑰(此處的密鑰與客戶機端內(nèi)置的密鑰相對應(yīng))對數(shù)據(jù)庫連接信息獲取組件生成 的加密后的隨機字符串進行解密,獲取客戶機端生成的隨機字符串,并將數(shù)據(jù)庫連接信 息,即用戶名和密碼用隨機字符串作為密鑰進行加密后返回客戶機端;
C、客戶機端的數(shù)據(jù)庫連接信息獲取組件從數(shù)據(jù)庫連接信息代理進程獲取加密信 息后,用保存在內(nèi)存中的隨機字符串解密后獲取數(shù)據(jù)庫連接信息,并調(diào)用數(shù)據(jù)庫連接組 件,在程序中動態(tài)設(shè)置數(shù)據(jù)庫連接信息,進行數(shù)據(jù)庫連接。
采用本發(fā)明C/S客戶機不再需要保存數(shù)據(jù)庫連接信息,同時在通過網(wǎng)絡(luò)傳輸數(shù) 據(jù)庫連接信息時采用了加密傳輸,由于加密、解密算法對外不公開,因此除了負責初始 化連接信息提供者的系統(tǒng)管理員外,各個C/S客戶機用戶均無法得知數(shù)據(jù)庫連接信息, 這在很大程度上提高了數(shù)據(jù)庫的安全性。由于連接信息提供者的連接信息相對穩(wěn)定不 變,因此數(shù)據(jù)庫管理員可以給予安全的需要隨時更新數(shù)據(jù)庫連接密碼,甚至是數(shù)據(jù)庫服 務(wù)器的IP與端口,由于連接信息是通過連接信息提供者動態(tài)提供因此不會對各個客戶機 端的數(shù)據(jù)庫連接造成任何影響。
權(quán)利要求
1. 一種C/S架構(gòu)客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法,包括設(shè)有相互連接 的客戶機端和服務(wù)器端組成的C/S系統(tǒng),其特征是所述的客戶機端包括數(shù)據(jù)庫連接信息獲取模塊數(shù)據(jù)庫連接信息獲取模塊能夠根據(jù)信息系統(tǒng)管理員設(shè)置 的與連接信息提供者的通訊參數(shù),與連接信息提供者建立Socket連接,并調(diào)用連接信息 提供者中的數(shù)據(jù)庫連接信息代理進程組件,從數(shù)據(jù)庫連接信息代理進程組件中獲取加密 的數(shù)據(jù)庫連接信息后,用系統(tǒng)內(nèi)置的解密算法和預先設(shè)定的解密密鑰,解密獲取的數(shù)據(jù) 庫連接信息,并傳遞給數(shù)據(jù)庫連接模塊;數(shù)據(jù)庫連接模塊用于動態(tài)設(shè)置數(shù)據(jù)庫連接信息,并進行與服務(wù)器端的數(shù)據(jù)庫連接;所述的服務(wù)器端包括有數(shù)據(jù)庫連接信息代理進程組件用于響應(yīng)C/S系統(tǒng)客戶機端 的Socket調(diào)用,并將數(shù)據(jù)庫連接信息,通過內(nèi)置的加密算法和預先設(shè)定的加密密鑰進行 加密,傳送給客戶機端的數(shù)據(jù)庫連接信息獲取模塊。
全文摘要
一種C/S架構(gòu)客戶機安全獲取數(shù)據(jù)庫服務(wù)器連接信息的方法,客戶機端包括數(shù)據(jù)庫連接信息獲取模塊根據(jù)通訊參數(shù),與連接信息提供者建立Socket連接,并調(diào)用連接信息提供者中的數(shù)據(jù)庫連接信息代理進程組件,從數(shù)據(jù)庫連接信息代理進程組件中獲取加密的數(shù)據(jù)庫連接信息后,用系統(tǒng)內(nèi)置的解密算法和預先設(shè)定的解密密鑰,解密獲取的數(shù)據(jù)庫連接信息,并傳遞給數(shù)據(jù)庫連接模塊;數(shù)據(jù)庫連接模塊用于動態(tài)設(shè)置數(shù)據(jù)庫連接信息,并進行與服務(wù)器端的數(shù)據(jù)庫連接;數(shù)據(jù)庫連接信息代理進程組件用于響應(yīng)C/S系統(tǒng)客戶機端的Socket調(diào)用,并將數(shù)據(jù)庫連接信息,通過內(nèi)置的加密算法和預先設(shè)定的加密密鑰進行加密,傳送給客戶機端的數(shù)據(jù)庫連接信息獲取模塊。
文檔編號H04L29/06GK102025722SQ20101051332
公開日2011年4月20日 申請日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者王遠 申請人:深圳市拜特科技股份有限公司