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