基于超文本傳輸協(xié)議的通信方法、服務(wù)器、終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別是涉及一種基于超文本傳輸協(xié)議的通信方法、服務(wù)器、終端。
【背景技術(shù)】
[0002]目前隨著互聯(lián)網(wǎng)越來越深入地影響人們?nèi)粘9ぷ魃?,基于互?lián)網(wǎng)的數(shù)據(jù)通信的安全性就顯的尤為重要。
[0003]在各種影響網(wǎng)絡(luò)通信安全的因素中,重放攻擊(ReplayAttacks)是最為常見的攻擊方式之一。重放攻擊又稱重播攻擊、回放攻擊或新鮮性攻擊(Freshness Attacks),是指攻擊者利用網(wǎng)絡(luò)監(jiān)聽或者其他方式盜取認(rèn)證憑據(jù),之后再把經(jīng)偽裝的數(shù)據(jù)包重新發(fā)給服務(wù)器,來達(dá)到欺騙系統(tǒng)的目的。其多用于身份認(rèn)證過程,破壞認(rèn)證的正確性。這種攻擊會(huì)不斷惡意或欺詐性地重復(fù)一個(gè)有效的數(shù)據(jù)傳輸,重放攻擊可以由發(fā)起者,也可以由攔截并重發(fā)該數(shù)據(jù)的敵方進(jìn)行。從這個(gè)解釋上理解,數(shù)據(jù)加密雖可以有效防止網(wǎng)絡(luò)請(qǐng)求信息被劫持或篡改,但由于重放攻擊是截取有效信息重新發(fā)送,因此即使數(shù)據(jù)加密也無法防止重放攻擊。
[0004]目前的網(wǎng)絡(luò)通信技術(shù)架構(gòu)中,傳輸控制/互聯(lián)協(xié)議(TCP/IP,Transmiss1nControl Protocol/Internet Protocol)是整個(gè)互聯(lián)網(wǎng)通信的基礎(chǔ)。TCP/IP協(xié)議采用了4層的層級(jí)結(jié)構(gòu):網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,其每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。其中,在應(yīng)用層,基于超文本傳送協(xié)議(HTTP,Hypertext TransferProtocol)的數(shù)據(jù)通信是當(dāng)前諸多網(wǎng)絡(luò)應(yīng)用的主要通信方式,如大多數(shù)網(wǎng)站、論壇等。但由于HTTP協(xié)議是一個(gè)無連接、無狀態(tài)的協(xié)議,S卩服務(wù)器每處理完終端請(qǐng)求并收到應(yīng)答后即斷開連接,且該協(xié)議對(duì)事務(wù)處理無記憶能力,因此終端每次給服務(wù)器發(fā)出的HTTP網(wǎng)絡(luò)請(qǐng)求,前后之間是沒有聯(lián)系的。
[0005]HTTP協(xié)議的無狀態(tài)性、無連接性在該協(xié)議設(shè)計(jì)之初就已經(jīng)決定。因?yàn)镠TTP協(xié)議的目的在于支持超文本的數(shù)據(jù)傳輸,那么在終端瀏覽器向HTTP服務(wù)器發(fā)送請(qǐng)求,繼而HTTP服務(wù)器將相應(yīng)的資源發(fā)回給終端這樣一個(gè)過程中,無論對(duì)于終端還是服務(wù)器,都沒有必要記錄這個(gè)過程,因?yàn)槊恳淮握?qǐng)求和響應(yīng)都是相對(duì)獨(dú)立的。一般而言,一個(gè)統(tǒng)一資源定位符(URL,Universal Resource Locator)對(duì)應(yīng)著唯一的超文本,而HTTP服務(wù)器對(duì)任意終端發(fā)送的請(qǐng)求,它都會(huì)根據(jù)接收到的URL請(qǐng)求返回相同的超文本。正是因?yàn)檫@樣的唯一性,使得記錄用戶的行為狀態(tài)變得毫無意義,所以,HTTP協(xié)議被設(shè)計(jì)為無狀態(tài)的連接協(xié)議。
[0006]基于上述原因,一旦終端與服務(wù)器在數(shù)據(jù)傳輸?shù)倪^程中請(qǐng)求信息被攔截,由于服務(wù)器沒有記錄任何有關(guān)請(qǐng)求的狀態(tài)等相關(guān)信息,因此也就無法識(shí)別該請(qǐng)求是否被攔截、重放,也就無法避免重放攻擊的發(fā)生。
[0007]總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:如何防止現(xiàn)有網(wǎng)絡(luò)通信技術(shù)中針對(duì)HTTP協(xié)議通信的重放攻擊。
【發(fā)明內(nèi)容】
[0008]本申請(qǐng)所要解決的技術(shù)問題是提供一種基于超文本傳輸協(xié)議的網(wǎng)絡(luò)通信方法、月艮務(wù)器、終端,以便有效防止因HTTP網(wǎng)絡(luò)請(qǐng)求被截取而造成的重放攻擊,提高了 HTTP網(wǎng)絡(luò)通信的安全性。
[0009]為了解決上述問題,本申請(qǐng)公開了一種基于超文本傳輸協(xié)議的網(wǎng)絡(luò)通信方法,包括:應(yīng)終端請(qǐng)求向終端發(fā)送第一時(shí)間戳;
[0010]接收終端發(fā)送的網(wǎng)絡(luò)請(qǐng)求信息;所述網(wǎng)絡(luò)請(qǐng)求信息中包含所述第一時(shí)間戳和對(duì)應(yīng)的時(shí)間戳密文;所述時(shí)間戳密文由終端根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成;
[0011]按所述預(yù)置加密算法驗(yàn)證所述時(shí)間戳密文是否有效,若無效,則所述網(wǎng)絡(luò)請(qǐng)求信息為無效請(qǐng)求。
[0012]優(yōu)選的,進(jìn)一步包括:
[0013]驗(yàn)證所述網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳與當(dāng)前時(shí)間的間隔是否在有效期內(nèi),若超出,則所述網(wǎng)絡(luò)請(qǐng)求信息無效。
[0014]優(yōu)選的,所述預(yù)置加密算法為簽名加密算法,
[0015]所述終端根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0016]終端根據(jù)所述簽名加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成第一數(shù)字簽名組成時(shí)間戳密文;
[0017]所述驗(yàn)證所述時(shí)間戳密文是否有效包括:
[0018]按所述簽名加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成第二數(shù)字簽名;
[0019]驗(yàn)證所述第二數(shù)字簽名與所述時(shí)間戳密文對(duì)應(yīng)的第一數(shù)字簽名是否一致,若不一致,則所述時(shí)間戳密文無效。
[0020]優(yōu)選的,所述預(yù)置加密算法為對(duì)稱加密算法,
[0021]所述終端根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0022]終端根據(jù)所述對(duì)稱加密算法使用對(duì)應(yīng)的密鑰對(duì)包含所述第一時(shí)間戳的算法因子加密生成間戳密文;
[0023]所述驗(yàn)證所述時(shí)間戳密文是否有效包括:
[0024]使用所述對(duì)稱加密算法對(duì)應(yīng)的密鑰對(duì)所述時(shí)間戳密文進(jìn)行解密獲取其中的時(shí)間戳信息作為第二時(shí)間戳,判斷所述第二時(shí)間戳與網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳是否一致,若不一致,則所述時(shí)間戳密文無效。
[0025]優(yōu)選的,所述預(yù)置加密算法為非對(duì)稱加密算法,
[0026]所述終端根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0027]終端根據(jù)所述非對(duì)稱加密算法使用對(duì)應(yīng)的公鑰對(duì)包含所述第一時(shí)間戳的算法因子加密生成間戳密文;
[0028]所述驗(yàn)證所述時(shí)間戳密文是否有效包括:
[0029]服務(wù)器使用與所述非對(duì)稱加密算法對(duì)應(yīng)的私鑰對(duì)所述時(shí)間戳密文進(jìn)行解密獲取其中的時(shí)間戳信息作為第二時(shí)間戳,判斷所述第二時(shí)間戳與網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳是否一致,若不一致,則所述時(shí)間戳密文無效。
[0030]優(yōu)選的,所述終端發(fā)送的網(wǎng)絡(luò)請(qǐng)求信息中還包括由終端生成的憑證標(biāo)識(shí);且
[0031]所述包含第一時(shí)間戳的算法因子還包括所述憑證標(biāo)識(shí);所述算法因子由所述第一時(shí)間戳和所述憑證標(biāo)識(shí)按預(yù)設(shè)規(guī)則組成。
[0032]優(yōu)選的,所述接收終端發(fā)送的網(wǎng)絡(luò)請(qǐng)求信息之前還包括:
[0033]收到終端的憑證請(qǐng)求信息;
[0034]生成與所述憑證請(qǐng)求信息對(duì)應(yīng)的憑證標(biāo)識(shí);
[0035]向所述終端發(fā)送所述憑證標(biāo)識(shí)。
[0036]優(yōu)選的,
[0037]所述接收的網(wǎng)路請(qǐng)求信息中還包括所述憑證標(biāo)識(shí);
[0038]所述包含第一時(shí)間戳的算法因子還包括所述憑證標(biāo)識(shí);所述算法因子由所述第一時(shí)間戳和所述憑證標(biāo)識(shí)按預(yù)設(shè)規(guī)則組成。
[0039]優(yōu)選的,所述憑證標(biāo)識(shí)動(dòng)態(tài)有效,所述方法還包括:
[0040]若所述終端發(fā)送的網(wǎng)絡(luò)請(qǐng)求信息中包括憑證標(biāo)識(shí),則服務(wù)器驗(yàn)證該憑證標(biāo)識(shí)是否有效,若無效,則所述網(wǎng)絡(luò)請(qǐng)求為無效請(qǐng)求。
[0041]為解決上述問題,本申請(qǐng)還公開了一種基于超文本傳輸協(xié)議的網(wǎng)絡(luò)通信方法,包括:
[0042]從服務(wù)器獲取第一時(shí)間戳;
[0043]向服務(wù)器發(fā)送網(wǎng)絡(luò)請(qǐng)求信息;所述網(wǎng)絡(luò)請(qǐng)求信息中包含所述第一時(shí)間戳和對(duì)應(yīng)的時(shí)間戳密文;所述時(shí)間戳密文是根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成。
[0044]優(yōu)選的,所述預(yù)置加密算法為簽名加密算法,
[0045]所述根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0046]根據(jù)所述簽名加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成第一數(shù)字簽名組成時(shí)間戳密文。
[0047]優(yōu)選的,所述預(yù)置加密算法為對(duì)稱加密算法,
[0048]所述根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0049]使用與所述對(duì)稱加密算法對(duì)應(yīng)的密鑰對(duì)包含所述第一時(shí)間戳的算法因子加密生成間戳密文。
[0050]優(yōu)選的,所述預(yù)置加密算法為非對(duì)稱加密算法,
[0051]所述根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成時(shí)間戳密文包括:
[0052]使用與所述非對(duì)稱加密算法對(duì)應(yīng)的公鑰對(duì)包含所述第一時(shí)間戳的算法因子加密生成間戳密文。
[0053]優(yōu)選的,所述網(wǎng)絡(luò)請(qǐng)求信息中還包括憑證標(biāo)識(shí);且
[0054]所述包含第一時(shí)間戳的算法因子還包括所述憑證標(biāo)識(shí);所述算法因子由所述第一時(shí)間戳和所述憑證標(biāo)識(shí)按預(yù)設(shè)規(guī)則組成。
[0055]優(yōu)選的,所述向服務(wù)器發(fā)送網(wǎng)絡(luò)請(qǐng)求信息之前還包括:
[0056]向服務(wù)器發(fā)送憑證請(qǐng)求信息;
[0057]接收服務(wù)器發(fā)送的憑證標(biāo)識(shí)。
[0058]為解決上述問題,本申請(qǐng)還公開了一種基于超文本傳輸協(xié)議的服務(wù)器,包括:
[0059 ]接收模塊、發(fā)送模塊、時(shí)間戳生成模塊和密文校驗(yàn)?zāi)K;
[0060]其中所述接收模塊包括:
[0061 ]第一接收單元,用于接收時(shí)間戳請(qǐng)求信息;
[0062]第二接收單元,用于接收網(wǎng)絡(luò)請(qǐng)求信息;所述網(wǎng)絡(luò)請(qǐng)求信息中包含第一時(shí)間戳和對(duì)應(yīng)的時(shí)間戳密文;所述時(shí)間戳密文是根據(jù)預(yù)置加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成;
[0063]其中所述時(shí)間戳生成模塊,用于應(yīng)所述時(shí)間戳請(qǐng)求信息生成第一時(shí)間戳;
[0064]其中所述發(fā)送模塊包括:
[0065]第一發(fā)送單元,用于發(fā)送時(shí)間戳生成模塊所生成的第一時(shí)間戳;
[0066]其中所述密文校驗(yàn)?zāi)K,用于按所述預(yù)置加密算法驗(yàn)證所述時(shí)間戳密文是否有效,若無效,則所述網(wǎng)絡(luò)請(qǐng)求信息為無效請(qǐng)求。
[0067]優(yōu)選的,
[0068]所述服務(wù)器還包括:
[0069]時(shí)間戳驗(yàn)證模塊,用于驗(yàn)證第二接收單元接收的網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳與當(dāng)前時(shí)間的間隔是否在有效期內(nèi),若超出,則所述網(wǎng)絡(luò)請(qǐng)求信息無效。
[0070]優(yōu)選的,所述預(yù)置加密算法為簽名加密算法,
[0071 ]所述密文校驗(yàn)?zāi)K還包括:
[0072]簽名生成單元,用于按所述簽名加密算法對(duì)包含所述第一時(shí)間戳的算法因子加密生成第二簽名;
[0073]第一校驗(yàn)單元,用于驗(yàn)證所述簽名生成單元所生成的第二數(shù)字簽名與第二接收單元所接收的時(shí)間戳密文對(duì)應(yīng)的第一數(shù)字簽名是否一致,若不一致,則所述時(shí)間戳密文無效。
[0074]優(yōu)選的,所述預(yù)置加密算法為對(duì)稱加密算法,
[0075]所述密文校驗(yàn)?zāi)K還包括:
[0076]第二校驗(yàn)單元,用于使用所述對(duì)稱加密算法對(duì)應(yīng)的密鑰對(duì)第二接收單元所接收的時(shí)間戳密文進(jìn)行解密獲取其中的時(shí)間戳信息作為第二時(shí)間戳,判斷所述第二時(shí)間戳與第二接收單元所接收的網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳是否一致,若不一致,則所述時(shí)間戳密文無效。
[0077]優(yōu)選的,所述預(yù)置加密算法為非對(duì)稱加密算法,
[0078]所述密文校驗(yàn)?zāi)K還包括:
[0079]第三校驗(yàn)單元,用于使用與所述非對(duì)稱加密算法對(duì)應(yīng)的私鑰對(duì)第二接收單元所接收的時(shí)間戳密文進(jìn)行解密獲取其中的時(shí)間戳信息作為第二時(shí)間戳,判斷所述第二時(shí)間戳與網(wǎng)絡(luò)請(qǐng)求信息中的第一時(shí)間戳是否一致,若不一致,則所述時(shí)間戳密文無效。
[0080]優(yōu)選的,所述接收模塊還包括:
[0081]第三接收單元,用于接收終端的憑證請(qǐng)求;
[0082]所述服務(wù)器還包括:
[0083]憑證標(biāo)識(shí)生成單元,用于根據(jù)第三接收單元所接收的憑證請(qǐng)求生成憑證標(biāo)識(shí);
[0084]所述發(fā)送模塊還包括:
[0085]第二發(fā)送單