基于混合加密技術(shù)的移動(dòng)客戶投訴預(yù)警系統(tǒng)如何設(shè)計(jì)
電信行業(yè)目前爭(zhēng)執(zhí)最厲害的問(wèn)題就是客戶的競(jìng)爭(zhēng)問(wèn)題,為了及時(shí)有效地處理電信客戶的投訴問(wèn)題,以一種形象化的方式顯示與管理投訴熱點(diǎn)地區(qū),通過(guò)對(duì)客戶投訴行為進(jìn)行分析和歸納投訴熱點(diǎn)地區(qū),我們提出了一種基于混個(gè)加密算法的適應(yīng)于某一地理區(qū)域的移動(dòng)客戶投訴預(yù)警系統(tǒng)的設(shè)計(jì)方案。
一、移動(dòng)客戶投訴預(yù)警系統(tǒng)中敏感數(shù)據(jù)的混合加密技術(shù)
移動(dòng)客戶投訴預(yù)警系統(tǒng)基于SQL Server 2008的數(shù)據(jù)加密體系,結(jié)合MD5的改進(jìn)算法,提出使用混合加密的設(shè)計(jì)方案,對(duì)移動(dòng)投訴預(yù)警系統(tǒng)中的敏感數(shù)據(jù)進(jìn)行保護(hù)。
1、MD5安全性論述
MD5 哈希函數(shù)將消息以512位為單位進(jìn)行分組,不足通過(guò)填充方法補(bǔ)齊,每組又被分為16個(gè)32位子分組,經(jīng)過(guò)加載初始化數(shù)據(jù)后,經(jīng)4輪64次循環(huán)運(yùn)算處理,輸出4個(gè)32位分組,將其級(jí)聯(lián)生成一個(gè)128位的散列值。
MD5哈希函數(shù)具有單向、不可逆性,被廣泛的應(yīng)用于數(shù)字簽名、電子商務(wù)及許多密碼協(xié)議中,但其安全性已受到挑戰(zhàn)。有資料證明了包括MD5、SHA-1等在內(nèi)的哈希函數(shù)是可以碰撞的。運(yùn)用模差分和XOR差分相結(jié)合的分析方法對(duì)Hash函數(shù)進(jìn)行碰撞攻擊,獲得了強(qiáng)無(wú)碰撞的匹配消息對(duì),到目前為止還沒(méi)有一種有效的方法找到弱無(wú)碰撞,但構(gòu)建兩個(gè)一樣的MD5摘要已經(jīng)成為可能。
2、三重組合加密基本原理
鑒于MD5的安全性受到挑戰(zhàn),將MD5與一個(gè)可逆加密算法結(jié)合起來(lái)保護(hù)數(shù)據(jù),已成為研究的熱點(diǎn),混合加密策略在身份認(rèn)證、數(shù)字簽名、軟件版權(quán)保護(hù)、路由協(xié)議保護(hù)等領(lǐng)域得到了廣泛地應(yīng)用。從加強(qiáng)標(biāo)準(zhǔn)MD5的安全性考慮出發(fā),將MD5算法與Base64和Blowfish算法混合使用以增強(qiáng)密碼的安全性。將身份認(rèn)證加密與傳統(tǒng)的對(duì)稱加密進(jìn)行組合,從而實(shí)現(xiàn)身份的認(rèn)證。
因AES算法具有運(yùn)算速度快、安全可靠等優(yōu)點(diǎn),本系統(tǒng)選擇AES加密經(jīng)MD5加密過(guò)的密碼,以增強(qiáng)攻擊者破解的難度.但AES在加密時(shí)采用一次一密的密鑰分發(fā)模式,使得應(yīng)用軟件難以對(duì)密鑰進(jìn)行有效的管理,不利于應(yīng)用軟件的開(kāi)發(fā).為解決這個(gè)問(wèn)題,在設(shè)計(jì)預(yù)警系統(tǒng)的過(guò)程中,利用SQL Server2008的密鑰自動(dòng)管理的優(yōu)點(diǎn),使用改進(jìn)的MD5算法和SQL Server 2008的內(nèi)置AES算法、TDE混合實(shí)現(xiàn)系統(tǒng)的身份認(rèn)證策略。系統(tǒng)中的其它敏感信息直接使用SQL Server 2008的內(nèi)置AES算法進(jìn)行字段級(jí)加密,再使用TDE對(duì)數(shù)據(jù)庫(kù)進(jìn)行整體加密。TDE使用AES算法可以對(duì)數(shù)據(jù)和日志文件執(zhí)行實(shí)時(shí)I/O加密和解密,不會(huì)影響軟件的執(zhí)行效率。
MD5算法身份認(rèn)證三重組合加密策略的流程見(jiàn)圖1:首先,加密過(guò)程使用MD5算法將密碼信息和系統(tǒng)隨機(jī)配發(fā)的動(dòng)態(tài)信息一起壓縮為摘要;其次,將摘要經(jīng)AES算法加密后存入SQL Server 2008數(shù)據(jù)庫(kù);最后,使用透明數(shù)據(jù)加密對(duì)數(shù)據(jù)庫(kù)進(jìn)行整體加密。SQL Server 2008優(yōu)異的密鑰管理功能和透明數(shù)據(jù)加密不改變應(yīng)用程序的特性,使得三重組合加密不需要考慮密鑰的管理。在第一重加密時(shí),明文除首先滿足一定的規(guī)則約束外,系統(tǒng)為明文附加了隨機(jī)動(dòng)態(tài)信息,隨機(jī)動(dòng)態(tài)信息經(jīng)AES加密后存放在數(shù)據(jù)庫(kù)中。因此,增加了明文的長(zhǎng)度和復(fù)雜度,提升了攻擊者破解的時(shí)間和成本。
當(dāng)進(jìn)行一致性檢驗(yàn)時(shí),根據(jù)用戶輸入的明文,首先將隨機(jī)動(dòng)態(tài)信息從數(shù)據(jù)庫(kù)中讀取并用AES解密,然后再與用戶輸入的明文一起用MD5算法壓縮成摘要,并將它與存放在數(shù)據(jù)庫(kù)中的摘要進(jìn)行比對(duì),以檢驗(yàn)其身份的合法性。
三重組合加密使用改進(jìn)的MD5算法有效降低了碰撞攻擊的概率,使用SQL Server 2008內(nèi)置AES算法和TDE,不需要專門(mén)實(shí)施密鑰的秘密分配,降低了軟件的開(kāi)發(fā)成本,在不影響軟件運(yùn)行速度的同 時(shí),三重組合加密更有效地保護(hù)了數(shù)據(jù),增加了攻擊者破解的難度。
3、三重組合加密技術(shù)實(shí)現(xiàn)
身份認(rèn)證三重組合加密策略的實(shí)現(xiàn)方法如下:首先在SQL Server 2008中用Transact-SQL命令為投訴預(yù)警系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)主密鑰和用戶自簽名證書(shū)(證書(shū)由數(shù)據(jù)庫(kù)主密鑰保護(hù)),其次選擇“AES256"算法使用證書(shū)加密的方式創(chuàng)建對(duì)稱密鑰,最后使用TDE加密整個(gè)數(shù)據(jù)庫(kù),信息插入數(shù)據(jù)庫(kù)時(shí)的MD5壓縮和AES加密的方法與存儲(chǔ)過(guò)程,用如下的核心代碼實(shí)現(xiàn):
public void Adminlnsert(Admin newAdmin){
cmd.CommandText="InsertAdmin";/*存儲(chǔ)過(guò)程名稱*/
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(" @Name",newAdmin.Name);
cmd.Parameters.AddWithValue(" @Password",MD5.Encrypt(newAdmin.Password+newAdmin.Randinfo,32));
cmd.Parameters.AddWithValue("@Addinfo".newAdmin.Randinfo);
}
在上述代碼中Adminlnsert通過(guò)調(diào)用存儲(chǔ)過(guò)程InsertAdmin實(shí)現(xiàn)把從邏輯層傳遞來(lái)的用戶信息插入到數(shù)據(jù)庫(kù)的功能,在插入到數(shù)據(jù)庫(kù)之前,先將用戶輸入的密碼Password和系統(tǒng)隨機(jī)分配的動(dòng)態(tài)信息Randinfo-起進(jìn)行MD5壓縮,生成摘要并賦給變量@Password.lnsertAdmin的代碼如下:
Create Procedure[dbo].[lnsertAdmin]
@Name nvarchar(50),@Password
nvarchar(50),@Randinfo nvarchar(50)
AS
BEGIN SET NOCOUNT ON;
OPEN SYMMETRIC KEY SymmetricKeyName
/*打開(kāi)對(duì)稱密鑰*/
DECRYPTION BY CERTIFICATE CertificateName
/*證書(shū)保護(hù)密鑰*/
Insert into Admin_userName,Password,Addinfo)
values(@Name,ENCRYPTBYKEY(KEY GUIDCSymmetncKeyName’),@Password),
ENCRYPTBYKEY(KEY_GUID(’SymmetricKeyName’),@Randinfo))
END
在上述代碼中,首先使用證書(shū)打開(kāi)對(duì)稱密鑰,然后使用加密函數(shù)ENCRYPTBYKEY()對(duì)密碼摘要和隨機(jī)動(dòng)態(tài)信息實(shí)施AES加密后插入到數(shù)據(jù)庫(kù),在使用TDE加密整個(gè)數(shù)據(jù)庫(kù)后就完成了三重加密操作,在用戶登錄驗(yàn)證時(shí),先用MD5算法把用戶輸入的信息和己保存在數(shù)據(jù)庫(kù)中的隨機(jī)動(dòng)態(tài)信息,一起壓縮成摘要與經(jīng)AES解密的存儲(chǔ)摘要進(jìn)行比對(duì),隨機(jī)動(dòng)態(tài)信息需從數(shù)據(jù)庫(kù)中讀取并經(jīng)AES解密。
二、移動(dòng)客戶投訴預(yù)警系統(tǒng)工作流程和功能劃分
移動(dòng)客戶投訴的處理流程為:客戶來(lái)電投訴;熱線前臺(tái)工作人員使用工單系統(tǒng)記錄客戶投訴信息;熱線投訴處理人員將未處理的問(wèn)題反饋給職能部門(mén);職能部門(mén)根據(jù)客戶投訴地點(diǎn)和投訴類型將工單派發(fā)給處理部門(mén)進(jìn)行處理;處理部門(mén)對(duì)問(wèn)題進(jìn)行處理后使用工單系統(tǒng)回執(zhí)工單;熱線投訴處理人員將處理結(jié)果反饋給客戶。
基于以上流程,本系統(tǒng)通過(guò)對(duì)客戶投訴問(wèn)題進(jìn)行分析,確定投訴地點(diǎn),然后根據(jù)客戶對(duì)某一區(qū)域投訴的數(shù)量,確定該地點(diǎn)的預(yù)警等級(jí)。本系統(tǒng)將預(yù)警劃分為三個(gè)等級(jí):紅、橙、藍(lán),“紅”代表特別緊急,“橙”代表緊急,“藍(lán)”代表一般緊急,在地圖上顯示時(shí),分別使用三種顏色的標(biāo)注表示。從優(yōu)化投訴處理過(guò)程入手,根據(jù)投訴地點(diǎn),在地圖上自動(dòng)查找附近基站,并調(diào)取性能參數(shù)進(jìn)行分析預(yù)警。
1、移動(dòng)客戶投訴預(yù)警系統(tǒng)工作流程
移動(dòng)客戶投訴預(yù)警系統(tǒng)工作流程分4個(gè)主要步驟:
(1)接收工單
利用工單系統(tǒng)接口API,讀取本地區(qū)的投訴工單,根據(jù)客戶投訴地點(diǎn),設(shè)置投訴熱點(diǎn)和將工單入庫(kù)。
(2)投訴預(yù)警
系統(tǒng)默認(rèn)對(duì)當(dāng)天的投訴工單進(jìn)行自動(dòng)預(yù)警,獲得預(yù)警信息和相應(yīng)基站性能信息,當(dāng)處理一個(gè)投訴工單時(shí),系統(tǒng)自動(dòng)在地圖上找到相應(yīng)地點(diǎn),并給出該地區(qū)的預(yù)警級(jí)別和歷史投訴信息;同時(shí)根據(jù)投訴地點(diǎn)定位到相關(guān)基站,根據(jù)基站性能指標(biāo)進(jìn)行投訴處理和預(yù)警。
(3)投訴處理
根據(jù)系統(tǒng)預(yù)警結(jié)果,投訴處理人員現(xiàn)場(chǎng)測(cè)試處理投訴。當(dāng)投訴歷史庫(kù)中已有該用戶的投訴信息,將信息反饋給投訴處理人員作為處理參考。
(4)工單歸檔
將工單歸入投訴工單庫(kù)。
2、移動(dòng)客戶投訴預(yù)警系統(tǒng)功能劃分
移動(dòng)客戶投訴預(yù)警系統(tǒng)包括以下主要模塊:
(1)工單管理模塊
主要實(shí)現(xiàn)工單的添加和查詢功能,是預(yù)警的基礎(chǔ)數(shù)據(jù);
(2)基站管理模塊
實(shí)現(xiàn)基站實(shí)時(shí)數(shù)據(jù)更新和查詢,基站性能參數(shù)是處理投訴和實(shí)現(xiàn)預(yù)警的關(guān)鍵數(shù)據(jù);
(3)熱點(diǎn)管理模塊
管理熱點(diǎn)的添加、刪除及查詢功能;
(4)綜合預(yù)警模塊
實(shí)現(xiàn)按時(shí)間段、預(yù)警等級(jí),投訴熱點(diǎn)組合預(yù)警;
(5)預(yù)警信息地圖顯示模塊
通過(guò)百度地圖實(shí)現(xiàn)基站自動(dòng)查找定位;
(6)系統(tǒng)維護(hù)模塊
包括數(shù)據(jù)備份、管理員管理功能。
系統(tǒng)的基礎(chǔ)數(shù)據(jù)來(lái)源于移動(dòng)的工單處理系統(tǒng),通過(guò)對(duì)現(xiàn)有投訴工單添加投訴熱點(diǎn)、投訴數(shù)量、預(yù)警等級(jí)等字段構(gòu)建精細(xì)化的預(yù)警統(tǒng)計(jì)分析模塊,運(yùn)用ASP.NET和百度地圖API技術(shù),參考預(yù)警軟件的設(shè)計(jì)方法,選擇c群作為開(kāi)發(fā)語(yǔ)言,后臺(tái)數(shù)據(jù)庫(kù)使用SQL Server 2008,采用三層體系結(jié)構(gòu)對(duì)系統(tǒng)進(jìn)行開(kāi)發(fā)。
三、移動(dòng)客戶投訴預(yù)警系統(tǒng)核心功能模塊
1、熱點(diǎn)添加模塊
該模塊通過(guò)百度地圖實(shí)現(xiàn)熱點(diǎn)的添加、顯示和管理,見(jiàn)圖2。通過(guò)該模塊添加的熱點(diǎn)信息存入系統(tǒng)的數(shù)據(jù)庫(kù)中,打開(kāi)該模塊頁(yè)面,根據(jù)預(yù)警等級(jí),已經(jīng)添加的熱點(diǎn)使用不同顏色進(jìn)行標(biāo)注,當(dāng)需要新增熱點(diǎn)時(shí),通過(guò)鼠標(biāo)在頁(yè)面移動(dòng)會(huì)顯示精確的地理坐標(biāo),協(xié)助管理人員在地圖上快速定位、添加熱點(diǎn)。
2、綜合預(yù)警模塊
該模塊是系統(tǒng)的核心模塊,包括按熱點(diǎn)預(yù)警等級(jí)和時(shí)間段進(jìn)行預(yù)警,見(jiàn)圖3。
管理人員可根據(jù)具體情況按單一或多條件組合進(jìn)行預(yù)警,設(shè)置好預(yù)警條件后,點(diǎn)擊預(yù)警按鈕,系統(tǒng)會(huì)跳轉(zhuǎn)到預(yù)警詳細(xì)信息顯示頁(yè)面,即預(yù)警信息地圖顯示模塊。
3、預(yù)警信息地圖顯示模塊
(1)功能簡(jiǎn)介
圖4中基于百度地圖的預(yù)警信息顯示模塊包括熱點(diǎn)顯示功能、基站自動(dòng)定位功能、預(yù)警信息子模塊和基站性能子模塊,管理人員通過(guò)觀察地圖界面后,能夠快速地了解到投訴熱點(diǎn)的投訴數(shù)量、預(yù)警級(jí)別和投訴類型;以投訴熱點(diǎn)為關(guān)鍵字查找附近基站,在百度地圖上以圖形輻射的方式顯示,管理人員通過(guò)閱讀基站實(shí)時(shí)性能參數(shù),進(jìn)行原因分析,在派發(fā)工單時(shí)將基站信息和原因分析信息交與現(xiàn)場(chǎng)測(cè)試人員。
①熱點(diǎn)顯示功能
通過(guò)調(diào)用百度地圖API中的Map類、Control類和Marker類,實(shí)現(xiàn)地圖的初始化、標(biāo)注和控件功能.熱點(diǎn)標(biāo)注的顏色由投訴數(shù)量及相對(duì)應(yīng)預(yù)警等級(jí)決定。
②基站自動(dòng)定位功能
根據(jù)熱點(diǎn)經(jīng)緯度坐標(biāo)與后臺(tái)數(shù)據(jù)庫(kù)中基站坐標(biāo)匹配。利用百度地圖API的Map類的GetDistance()方法計(jì)算距離,篩選出符合一定距離條件的基站并調(diào)取其實(shí)時(shí)性能參數(shù)。通過(guò)地圖的放大、縮小、拖拽等功能可以詳細(xì)查看熱點(diǎn)和基站附近的地理信息。通過(guò)地圖的拖拽、縮放等功能可以詳細(xì)查看熱點(diǎn)和基站附近的地理信息。
③預(yù)警信息子模塊
顯示投訴熱點(diǎn)地區(qū)的投訴數(shù)量、投訴類型、預(yù)警等級(jí)等信息,因?yàn)橐粋€(gè)投訴熱點(diǎn)區(qū)域投訴的件數(shù)可能很多。故采用AJAX靜態(tài)刷新技術(shù)對(duì)本功能頁(yè)面進(jìn)行分頁(yè)顯示,以避免瀏覽多頁(yè)時(shí)刷新頁(yè)面而造成地圖重新加載。
④基站性能子模塊
該模塊是基站自動(dòng)定位功能的顯示模塊,一方面在地圖上顯示基站的物理位置信息,另一方面在該模塊顯示基站的詳細(xì)性能參數(shù)。把熱點(diǎn)附近符合一定距離條件的基站性能實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)全部讀取并顯示,管理人員能在該頁(yè)面快速閱讀基站信息,確定問(wèn)題基站,并做原因分析。
(2)核心技術(shù)實(shí)現(xiàn)
為理解方便,對(duì)下文代碼中調(diào)用的類、屬性、方法進(jìn)行約束.熱點(diǎn)類命名為Hotspot,位于代碼的邏輯層。Hotspot的屬性名約束如下:HotName表示熱點(diǎn)名稱,HotRemark表示熱點(diǎn)的備注信息,Longitude表示熱點(diǎn)的經(jīng)度坐標(biāo),Latitude表示熱點(diǎn)的緯度坐。Hotspot的方法名約束如下:SelectHot為靜態(tài)公共方法,通過(guò)數(shù)據(jù)層訪問(wèn)數(shù)據(jù)庫(kù)。
熱點(diǎn)顯示功能的關(guān)鍵代碼如下:
<%//接收綜合預(yù)警頁(yè)面?zhèn)鬟f的查詢條件參數(shù)
....
//調(diào)用邏輯層的熱點(diǎn)類的SelectHot方法查詢熱點(diǎn)
List Hotlist Hotspot.SelectHot(四參數(shù));
if (Hotlist.Count>O){%>//標(biāo)注數(shù)組
var markerArr 叫<%foreach (Hotspot Hot inHotlist) { if( Hot. tsnum>5&Hot. tsnum <=10) {%>
{title:"<% Response.Write(Hot.HotName);%>
content:"<% Response.Write(Hot.HotRemark ) ;%>",
point:'k% Response.Write(Hot. Longitude) ;%>}
<% Response.Write(Hot. Latitude);%>¨,
isOpen:O,icon: {w:21,h:21,1:23,t:O,x:6,lb:5 } }
<% } else if( Hot. tsnum<=10) {%>
{title:¨<% Response.Write(Hot.HotName) ;%>",
content:”<% Response.Write(Hot.Hot Remark );%>¨,
point: "<% Response.Write(Hot. Longitude) ;%>l
<% Response.Write(Hot. Latitude) ;%>";
isOpen:O,icon: { w:21,h:21,1:69,t:O,x:6,lb:5}}
{title.fl<% Response.Write(Hot.HotName) ;%>".a
content:¨<% Response.Write(Hot.Hot Remark ) ;%>",
point:"<% Response.Write(Hot. Longitude) ;%>l
<% Response.Write(Hot. Latitude) ;%>",
isOpen:O,icon: {w:21,h:21,1:46,t:O,x:6,lb:5} }
function addMarker() { , . .. ...)//創(chuàng)建 marker
function createlnfoWindow(i) { :.,.,, .}//創(chuàng)建
InfoWindow
function createlcon(json){……)//創(chuàng)建一個(gè)Icon
initMap();//創(chuàng)建和初始化地圖
小知識(shí)之SQLSQL是英文Structured Query Language的縮寫(xiě),意思為結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。





