1. 程式人生 > >資訊保安理論(1)

資訊保安理論(1)

資訊保安

  • 只要刪除了感染病毒的檔案就可以徹底消除病毒是錯誤的

  • 計算機病毒是能夠侵入計算機系統並在計算機系統上破壞系統正常工作的一種具有繁殖能力的具有破壞性 並可以在計算機中潛伏 傳播的特殊小程式

  • 防止U盤感染的方式是使U盤防寫

  • 巨集病毒主要感染微軟OFFICE系列辦公軟體製作的檔案,尤其流行於MicrosoftWord。它就是利用OFFICE軟體中的“巨集”功能執行的。
     巨集病毒是一種寄存在文件或模板的巨集中的計算機病毒。一旦開啟這樣的文件,其中的巨集就會被執行,於是巨集病毒就會被啟用,轉移到計算機上,並駐留在Normal模板上。從此以後,所有自動儲存的文件都會“感染”上這種巨集病毒,而且如果其他使用者打開了感染病毒的文件,巨集病毒又會轉移到他的計算機上。
     如果某個文件中包含了巨集病毒,我們稱此文件感染了巨集病毒;如果WORD系統中的模板包含了巨集病毒,我們稱WORD系統感染了巨集病毒。由於巨集病毒利用了Word的文件機制進行傳播,所以它和以往的病毒防治方法不同。一般情況下,人們大多注意可執行檔案(.COM、.EXE)的病毒感染情況,而Word巨集病毒寄生於Word的文件中,而且人們一般都要對文件檔案進行備份,因此病毒可以隱藏很長一段時間。

  • 蠕蟲不需要將其自身附著到宿主程式,有兩種型別的蠕蟲:主機蠕蟲與網路蠕蟲。主計算機蠕蟲完全包含在它們執行的計算機中,並且使用網路的連線僅將自身拷貝到其他的計算機中,主計算機蠕蟲在將其自身的拷貝加入到另外的主機後,就會終止它自身(因此在任意給定的時刻,只有一個蠕蟲的拷貝執行),這種蠕蟲有時也叫”野兔”,蠕蟲病毒一般是通過1434埠漏洞傳播。

  • 截獲攻擊是針對機密性的攻擊;阻斷攻擊是針對可用性的攻擊

  • 會話偵聽和劫持技術屬於協議漏洞滲透技術

  • 後門: 是為計算機系統開啟祕密訪問入口的程式

  • 數字認證: 用數字方法確認 鑑定 認證網路上參與資訊交流者或伺服器身份的

  • 身份認證: ①身份認證是授權控制的基礎②身份認證需要進行雙向認證③身份認證需要基於對稱祕鑰加密或者非對稱祕鑰加密的技術④數字簽名是實現身份鑑別的重要機制
  • 電子商務認證授權機構(CA, Certificate Authority),也稱為電子商務認證中心,是負責發放和管理數字證書的權威機構,並作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。
    • CA認證中心負責證書的頒發和管理 並依靠證書證明一個使用者的身份
  • Kerberos這一名詞來源於希臘神話“三個頭的狗——地獄之門守護者”系統設計上採用客戶端/伺服器結構與DES加密技術,並且能夠進行相互認證,即客戶端和伺服器端均可對對方進行身份認證。可以用於防止竊聽、防止replay攻擊、保護資料完整性等場合,是一種應用對稱金鑰體制進行金鑰管理的系統。支援SSO

    Kerberos:網路認證協議
    (Kerberos: Network Authentication Protocol)
    Kerberos 是一種網路認證協議,其設計目標是通過金鑰系統為客戶機 / 伺服器應用程式提供強大的認證服務。該認證過程的實現不依賴於主機作業系統的認證,無需基於主機地址的信任,不要求網路上所有主機的物理安全,並假定網路上傳送的資料包可以被任意地讀取、修改和插入資料。在以上情況下, Kerberos 作為一種可信任的第三方認證服務,是通過傳統的密碼技術(如:共享金鑰)執行認證服務的。
    認證過程具體如下:客戶機向認證伺服器(AS)傳送請求,要求得到某伺服器的證書,然後 AS 的響應包含這些用客戶端金鑰加密的證書。證書的構成為: 1) 伺服器 “ticket” ; 2) 一個臨時加密金鑰(又稱為會話金鑰 “session key”) 。客戶機將 ticket (包括用伺服器金鑰加密的客戶機身份和一份會話金鑰的拷貝)傳送到伺服器上。會話金鑰可以(現已經由客戶機和伺服器共享)用來認證客戶機或認證伺服器,也可用來為通訊雙方以後的通訊提供加密服務,或通過交換獨立子會話金鑰為通訊雙方提供進一步的通訊加密服務。
    上述認證交換過程需要只讀方式訪問 Kerberos 資料庫。但有時,資料庫中的記錄必須進行修改,如新增新的規則或改變規則金鑰時。修改過程通過客戶機和第三方 Kerberos 伺服器(Kerberos 管理器 KADM)間的協議完成。有關管理協議在此不作介紹。另外也有一種協議用於維護多份 Kerberos 資料庫的拷貝,這可以認為是執行過程中的細節問題,並且會不斷改變以適應各種不同資料庫技術。

  • 訪問控制是給出一套方法,將系統中的所有功能標識出來,組織起來,託管起來,將所有的資料組織起來標識出來託管起來, 然後提供一個簡單的唯一的介面,這個介面的一端是應用系統一端是許可權引擎。許可權引擎所回答的只是:誰是否對某資源具有實施 某個動作(運動、計算)的許可權。返回的結果只有:有、沒有、許可權引擎異常了。訪問控制通常用於系統管理員控制使用者對伺服器、目錄、檔案等網路資源的訪問

    • 一、 防止非法的主體進入受保護的網路資源。
    • 二、允許合法使用者訪問受保護的網路資源。
    • 三、防止合法的使用者對受保護的網路資源進行非授權的訪問。
  • 訪問控制是指確認使用者許可權以及實施訪問許可權的過程
  • 對訪問控制影響不大的是主體與客體的型別 影響因素有主體身份 客體身份 訪問型別
  • 為了簡化管理 通常對訪問者分類組織成組 以免訪問控制表過大
  • PKI PKI是Public Key Infrastructure的首字母縮寫,翻譯過來就是公鑰基礎設施;PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平臺的技術和規範。
  • PKI 支援的服務不包括訪問控制服務 支援的服務包括非對稱祕鑰技術以及證書管理,目錄服務,對稱祕鑰的產生與分發
  • PKI 管理物件包括證書 祕鑰 證書撤銷 但是不包括 ID和口令
  • PKI 組成部分包括 證書主體 證書權威認證機構 使用證書的應用和系統 不包括AS
  • PKI 能執行的功能是鑑別計算機訊息的始發者和保守訊息的機密
  • PKI 的理論基礎是公鑰對稱演算法
  • 身份認證是驗證訊息傳送者是真的 而不是冒充的 包括信源 信宿等的認證和識別
  • 訪問控制的目的是為了限制訪問主體對訪問客體的訪問許可權
  • 證書是PKI的核心元素 CA 是PKI的核心執行者
  • 口令攻擊的方式:字典攻擊 強行攻擊 NTCrack(Unix破解程式的一部分 但是在NT的環境下破解 NTCRACK和Unix破解類似 但是其功能有限 它不像其他程式那樣可以雜湊 必須給其一個uerid和要測試的口令組合 然後程式才會告訴使用者是否會車成功) PWDump2(不是一個口令破解程式 但是它可以從資料庫中提取口令進行雜湊

動態口令:
- 目前用於生成動態口令的終端有:硬體令牌 簡訊密碼 手機令牌 軟體令牌
其中硬體令牌 主要是基於時間同步的硬體口令牌 每60秒變換一次動態口令 動態口令一次有效 它產生6位或8位動態口令 手機令牌是手機客戶端軟體 同樣是基於時間同步方式 每隔30秒生成一個隨機6位的動態密碼 口令生成的過程中不會產生通訊費用
- 口令分類:主要包括同步口令技術和非同步口令技術(挑戰-應答方式)
- 時間同步:基於令牌和伺服器的同步 通過運算來生成一致性的動態口令 一般更新頻率為60秒 每隔60秒會產生一個新的口令 對於此種方式應當保護好系統時鐘 不要隨機更改 以免發生同步問題
- 事件同步:基於事件同步的令牌,其原理是通過某一特定的事件次序及相同的種子值作為輸入,在演算法中運算出一致的密碼,其運算機理決定了其整個工作流程同時鍾無關,不受時鐘的影響,令牌中不存在時間脈衝晶振,但由於其演算法的一致性,其口令是預先可知的,通過令牌,你可以預先知道今後的多個密碼,故當令牌遺失且沒有使用PIN碼對令牌進行保護時,存在非法登陸的風險,故使用事件同步的令牌,對PIN碼的保護是十分必要的。
- 對於非同步令牌 由於在令牌和伺服器之間除相同的演算法沒有需要進行同步的條件 故能夠有效解決令牌失步的問題 降低對應用的影響 從而增加系統的了可靠性

靜態口令與動態口令以及PKI技術詳解
1 靜態口令

靜態口令是實現對使用者進行身份認證的一種技術,指使用者登入系統的使用者名稱和口令是一次性產生,在使用過程中總是固定不變的,使用者輸入使用者名稱和口令,使用者名稱和口令通過網路傳輸給伺服器,伺服器提取使用者名稱和口令,與系統中儲存的使用者名稱和口令進行匹配,檢查是否一致,實現對使用者的身份驗證。
靜態口令已經存在多年了,但是隨著網路的不斷普及、計算機的運算能力不斷提高,靜態口令已經越來越不適合基於網際網路絡應用的安全要求,存在下列問題:

(1)口令建立

一般應用系統中,終端使用者都被要求建立一個口令,他們能夠記住但別人不能猜到,從而也留下一個難以解決的矛盾:在建立一個不容易猜到的口令的同時他們自己也不容易記住。而且,當用戶需要登入多個系統的時候,這個問題就變得非常嚴重,每個使用者都擁有多個使用者名稱和口令會給使用者帶來很多麻煩,這些因素嚴重影響到當前身份驗證系統的推廣。

(2)口令驗證

口令是怎樣被驗證來說明確實是真實的使用者?通常,口令採用快取技術,因此舊的或非法的口令可以代替正確的口令使用。在有些環境中,軟體採用行為驗證,通過訪問控制和許可進行驗證。這可能跳過身份驗證機制,允許已經過期的身份成功訪問受保護的資源。

(3)口令傳輸

在驗證使用者口令的時候,需要將用口令傳輸到伺服器端進行驗證,而目前系統一般都不採取加密手段來傳輸或者採用安全強度低的加密機制來傳輸使用者名稱和口令,大大增加了口令被擷取的安全風險。

(4)口令儲存

口令在系統中是怎樣被儲存的?有四個級別的儲存:明文、加密、隱藏明文,隱藏並加密。在過去許多軟體工具已經採用簡單的加密儲存,但他們一般採用強度不高的加密或允許從系統外獲得檔案。一些簡單的強行破解程式很容易解密。許多流行的程式的破解程式已經被開發出來了,如多種版本的UNIX、Windows NT、95、98、2K的使用者口令和快取口令均被破解了。其它一些程式也很輕鬆地從瀏覽器或應用中獲取口令,如Word、Excel、甚至是Zip檔案。

(5)口令輸入

使用者在輸入口令時,也會存在安全風險。一方面,通過鍵盤上的手勢就大致能夠猜出輸入的口令。另一方面,本地計算機的木馬程式,或者鍵盤監控程式,可以將使用者輸入的口令記錄下來。

(6)口令猜測

使用者的使用者名稱和口令的長度是有限的,很容易通過字典攻擊的方式進行破解。

(7)口令維護困難

系統維護員的維護工作大部分花費在使用者的口令支援上,一旦使用者忘記自己的口令,系統維護員需要重新為使用者設定口令;

(8)安全實現

使用靜態口令僅僅實現了身份認證環節的基本需求,無法實現其他的安全需求,如加密、資訊完整、數字簽名等。

基於上述考慮,對於安全級別要求不高的系統,可以採用靜態口令的方式來認證使用者的身份,對於高安全性要求的系統,不能夠採用靜態口令方式。

2 動態口令

事實上,基於口令的身份認證技術也在隨著實際應用需求的發展而發展,雙因數動態口令技術即是對傳統的靜態口令的演進,目前該技術已在國內外獲得專家和使用者的認可,並已有許多成功案例。

所謂動態口令技術是對傳統的靜態口令技術的改進,它採用雙因數認證的原理,即使用者既要擁有一些東西如系統頒發的token(something you have),又要知道一些東西如啟用token的口令(something you know)。當用戶要登入系統時,首先要輸入啟用token的口令,其次還要將token上所顯示的數字作為系統的口令輸入。Token上的數字是不斷變化的,而且與認證伺服器是同步的,因此使用者登入到系統的口令也是不斷地變化的(即所謂的“一次一密”)。

雙因素認證比基於靜態口令的認證方法增加了一個認證要素,攻擊者僅僅獲取了使用者口令或者僅僅拿到了使用者的令牌訪問裝置,都無法通過系統的認證。而且令牌訪問裝置上所顯示的數字不斷地變化,這使得攻擊變得非常困難。因此,這種方法比基於口令的認證方法具有更好的安全性,在一定程度上解決了基於靜態口令的認證方法所面臨的威脅。

動態口令技術有兩種解決方案:即所謂的同步方式,非同步方式(challenge/response方式):

在同步方式中,在伺服器端初始化客戶端token時,即對客戶端token和伺服器端軟體進行了金鑰、時鐘和/或事件計數器同步,爾後客戶端token和伺服器端軟體基於上述同步資料分別進行密碼運算,分別得到一個運算結果;使用者欲登入系統時,就將運算結果傳送給認證伺服器並在伺服器端進行比較,若兩個運算值一致,即表示是使用者是合法使用者;整個過程中,認證伺服器和客戶端token沒有互動過程。

而在非同步過程中,認證伺服器需要和客戶端token進行互動:在伺服器端初始化客戶端token即對客戶端token和伺服器端軟體進行了金鑰、時鐘和/或事件計數器同步之後,一旦使用者要登入系統,認證伺服器首先要向用戶傳送一個隨機數(challenge),使用者將這個challenge輸入到客戶端token中,並獲得一個response,然後將這個response返送給認證伺服器,認證伺服器將這個response與其自己計算得出的response進行比較,如果兩者匹配,則證明使用者為合法使用者。這種機制雖然能夠為系統提供比靜態口令更高強度的安全保護,但也存在如下安全風險且是先天性的:

(1) 只能進行單向認證,即系統可以認證使用者,而使用者無法對系統進行認證。攻擊者可能偽裝成系統騙取使用者的口令;

(2) 即使口令是動態變化的,但是動態變化的口令存在一個時間週期,因此,還是可以通過網路監聽等方式竊取動態變化的口令,進行身份的假冒;

(3) 不能對要傳輸的資訊進行加密,敏感的資訊可能會洩密出去;

(4) 不能保證資訊的完整性,也即不能保證資訊在傳輸過程中沒有被修改;

(5) 不支援使用者方和伺服器方的雙方抗抵賴;

(6) 代價比較大,通常需要在客戶端和伺服器端增加相應的硬體裝置。

(7) 存在單點故障,一旦認證伺服器出問題,整個系統就不可用。

總結起來,動態口令方式解決了靜態口令存在的安全弱點,在身份認證方面提供了靜態口令固有的安全漏洞,但是,使用動態口令不能實現資料加密、保障資料完整和數字簽名等。如果想解決這些問題,可採用更先進的安全機制,如數字證書和公鑰技術

3 PKI技術

3.1 傳統密碼技術

在PKI技術產生之前,人們研究了一種傳統密碼技術(也叫對稱密碼技術),用於實現資料加密、保障資料完整。傳統密碼技術的實現是指資訊的傳送方和接收方在傳送資訊之前,共享一個對稱的金鑰,使用該金鑰加密的資料只能使用該金鑰來進行解密。這樣,傳送方和接收方共享了一個對稱金鑰之後,就可以加密傳送資料,實現資料的加密傳輸,並保障資料的完整。由於傳統密碼技術使用了一個共享的私密,因此,也被應用於實現對使用者的身份認證,即使用者和伺服器之間共享一個對稱金鑰(私密),使用者訪問伺服器時使用對稱金鑰對伺服器返回的隨機數進行加密,伺服器端使用共享的對稱金鑰解密隨機數,來實現對使用者的身份驗證。採用傳統密碼技術進行身份認證時,可以解決口令方式存在的安全弱點,並且對稱金鑰的長度很長,別人無法進行破解。但是,這種方式存在一些問題:

(1) 對稱金鑰在分發和管理時存在問題,對於一個系統,會存在很多使用者,因此,系統需要產生和儲存多個對稱金鑰;

(2) 在進行對稱金鑰驗證時存在問題,如果系統存在很多使用者,在進行解密運算時,需要進行重複多次運算,響應速度將是一個十分嚴重問題;

(3) 由於使用者和伺服器之間共享了對稱金鑰,不是使用者或伺服器單獨擁有的私密,因此無法實現雙向的抗抵賴。

3.2 公開密碼技術

為了解決傳統密碼技術存在的問題,人們又研究一種公開密碼技術(又叫非對稱密碼技術),用於實現資料加密、保障資料完整和實現數字簽名。公開密碼技術的實現是基於下列原理:

(1) 每個人都具有一對金鑰,一個金鑰公開發布,叫做公鑰,另一個金鑰自己留著,叫做私鑰,任何人都可以得到自己的公鑰,但是私鑰不會給別人;

(2) 公鑰和私鑰一一對應,並且從公鑰無法推出自己的私鑰;

(3) 公鑰和私鑰在進行加密運算時,也是一一對應,即:用公鑰加密的資料只能由對應的私鑰進行解密,用私鑰加密的資料只能由對應的公鑰解密。

這樣,可以利用公開密碼技術,進行資料的加密傳輸,即傳送方使用接收方的公鑰,加密傳輸資料,接收方用自己的私鑰來進行解密,確保只有自己才能看到加密的資料。另外,由於公開密碼技術中,每個人都具有自己單獨儲存的私密——私鑰,因此,可以使用私鑰來實現數字簽名,實現資訊傳輸的抗抵賴。在進行數字簽名時,使用傳送方的私鑰對資料進行加密運算,接收方使用傳送方的公鑰來進行鑑別,即使用傳送方的公鑰對加密資料進行解密,如果解開的資料和傳送方傳送的原始資料相同,並可以保障傳送的資料是傳送方傳送的,原因是任何別人是無法得到傳送方的私鑰的,只有傳送方自己才能使用私鑰做相應的加密運算。

3.3 PKI技術

使用公開密碼技術,可以實現資料加密、資料完整和數字簽名。但是,單純的金鑰是不能建立相互之間的信任關係,而在“互不信任”的電子業務活動中,驗證信任關係至關重要。因為,一方面,得到一個公鑰時根本不知道到底是誰的公鑰,另一方面,即使註明了公鑰屬於誰,在“互不信任”網路中也不能相信。在規模不大的網路或較為封閉的網路中,通訊主體“主管”關係比較明確的系統中,通過金鑰分配中心(KDC),可以可靠地獲得通訊對方的公鑰,但在較大的網路環境中,特別在Internet環境下,KDC難以適用,因而大規模網路系統中最突出的問題,就是公鑰的信任問題。PKI的本質就是實現了公鑰的分發和管理等問題,是建立相互信任的基礎。

PKI是Public Key Infrastructure的縮寫,它是一種遵循既定標準的金鑰管理平臺,它能夠為所有網路應用提供加密和數字簽名等密碼服務及所必需的金鑰和證書管理體系,從字面上理解,PKI就是利用公鑰理論和技術為網路建立的提供安全服務的基礎設施,是網際網路資訊保安技術的核心。舉個例子,如現實中的電力基礎設施,它提供的服務是電能,任何電器(電燈、電視等等)都是電力系統的一些應用。PKI作為網路安全的基礎設施,為各種網路應用提供了安全服務。

PKI的核心是信任關係的管理。第三方信任和直接信任是所有網路安全產品實現的基礎。所謂第三方信任是指兩個人可以通過第三方間接地達到彼此信任。當兩個陌生人都和同一個第三方彼此信任並且第三方也擔保他們的可信度時,這兩個陌生人就可以做到彼此信任。在任何大規模的網路裡,基於第三方的信任是必要並且有效的。當在很多人中建立第三方信任時,就需要有一個權威中心來確保信任度。

CA(Certification Authority,認證中心)就是這樣一個確保信任度的權威實體,它的主要職責是頒發證書、驗證使用者身份的真實性。我們可以把CA看成是一個國家的護照簽發中心。護照是由權威中心(護照簽發中心)頒發的一種安全檔案,它是護照持有者的一種紙質身份證明,任何信任該國護照簽發中心的其他國家也會信任該國護照簽發中心所簽發的護照。

由CA簽發的網路使用者電子身份證明——證書就像護照一樣,任何相信該CA的人,按照第三方信任原則,也都應當相信持有證明的該使用者。當然,就像護照需要防偽一樣,CA也要採取一系列相應的措施來防止電子證書被偽造或篡改。構建一個具有較強安全性的CA是至關重要的,這不僅與密碼學有關係,而且與整個PKI系統的構架和模型有關。此外,靈活性也是CA能否得到市場認同的一個關鍵,它必須支援各種通用的國際標準,能夠很好地和其他廠家的CA產品相容。

什麼叫“數字證書”?通俗地說,數字證書是網路世界中的身份證。利用數字證書能夠進行身份認證和數字簽名,其持有者在網路上的操作具有不可抵賴性,不僅保證了操作的可靠性,而且為事後追蹤、明確責任和解決糾紛提供了依據。

“數字簽名”指證書擁有者用自己的私鑰對要簽名信息的指紋進行數學運算的相關技術。因為證書對應的私鑰只有證書擁有者才有,其它任何人都不能獲得,因此保證只有證書擁有者本人能夠對資訊進行簽名。對應的是,證書中包括簽名的公鑰,因此很容易鑑別簽名信息的真偽。因為簽名速度非常慢,實際中採用的是對資訊的特徵值(指紋)進行運算。獲取資訊的特徵值所採取的數學運算,我們稱為資訊摘要,他據有下面二個特徵,相同的資訊,特徵值總是相同的,即使僅差一個bit的資訊,特徵值也會差別很大;已知資訊明文很容易獲得特徵值,如果知道特徵值是不可能推出原文的。

所有這些技術保證了數字簽名具有和手工簽名一樣的作用,目前已有不少國家制定了數字簽名法,認定數字簽名和當面簽名具有同等的法律效力。我國也於2004-8-28通過了《中華人民共和國電子簽名法》的立法工作。

這樣,在使用者訪問系統時,系統出示CA為伺服器發放的證書(叫伺服器證書),使用者就可以驗證訪問的系統的身份,使用者出示自己的證書(叫使用者證書),伺服器就可以驗證使用者的身份,實現了使用者和系統的雙向身份認證。通過數字證書相對於的公私鑰對,可以對資料進行加密簽名,從而實現了資料加密、保障資料完整和資料傳輸的抗抵賴性等安全需求。

如何解決重放攻擊?

重放攻擊是有效資料傳輸有惡意或欺騙性地被重複或延遲網路攻擊的表。它是嘗試由記錄合法通訊並且重複他們為了扮演有效使用者的人推翻安全和打亂或者導致合法連線的負面影響

  • 基於timestamp的方案

    每次HTTP請求,都需要加上timestamp引數,然後把timestamp和其他引數一起進行數字簽名。因為一次正常的HTTP請求,從發出到達伺服器一般都不會超過60s,所以伺服器收到HTTP請求之後,首先判斷時間戳引數與當前時間相比較,是否超過了60s,如果超過了則認為是非法的請求。

  • 基於nonce的方案
    nonce的意思是僅一次有效的隨機字串,要求每次請求時,該引數要保證不同,所以該引數一般與時間戳有關,我們這裡為了方便起見,直接使用時間戳的16進位制,實際使用時可以加上客戶端的ip地址,mac地址等資訊做個雜湊之後,作為nonce引數。
    我們將每次請求的nonce引數儲存到一個“集合”中,可以json格式儲存到資料庫或快取中。
    每次處理HTTP請求時,首先判斷該請求的nonce引數是否在該“集合”中,如果存在則認為是非法請求。
  • 基於timestamp和nonce的方案

    那我們如果同時使用timestamp和nonce引數呢?
    nonce的一次性可以解決timestamp引數60s的問題,timestamp可以解決nonce引數“集合”越來越大的問題。
    我們在timestamp方案的基礎上,加上nonce引數,因為timstamp引數對於超過60s的請求,都認為非法請求,所以我們只需要儲存60s的nonce引數的“集合”即可。
    -基於timestamp和nonce的方案
    那我們如果同時使用timestamp和nonce引數呢?
    nonce的一次性可以解決timestamp引數60s的問題,timestamp可以解決nonce引數“集合”越來越大的問題。
    我們在timestamp方案的基礎上,加上nonce引數,因為timstamp引數對於超過60s的請求,都認為非法請求,所以我們只需要儲存60s的nonce引數的“集合”即可。

  • IC卡的攻擊手段:

    • 使用電子顯微鏡對儲存器或晶片內部邏輯進行掃描 直接進行分析提取
    • 通過測試探頭讀取儲存器內容
    • 通過外部獲取的介面直接對儲存器或處理器進行資料存取
  • IC卡的安全保護措施:

    • 通過燒斷熔絲 使測試功能不可再啟用
    • 高/低電壓的檢測
    • 低時鐘工作頻率的檢測
    • 防止地址和資料匯流排的擷取
  • IC卡的保護方面:
    • 晶片的物理安全技術
    • 卡片製造的安全技術
    • 卡的安全通訊技術

      這三個方面共同構成卡的安全體系 保證卡片從生產到使用的安全 公開祕鑰基礎設施PKI能使世界上任何地方的兩個人通過網際網路進行通訊 而且能夠保證通訊雙方身份的真實性以及相互交換資訊的安全性 IC和PKI的之間的聯絡在於祕鑰以及相關數字證書的儲存 可通過PKI技術實現身份識別和資訊的加密傳輸 這種技術對於實現智慧卡的安全交易提供了更多的選擇

  • 針對不同的IC卡的保護措施:
    • 儲蓄IC卡:使用先進的資料通訊加密和雙向驗證密碼系統
    • 單程IC卡:使用UID祕鑰防止偽造,用動態MAC鎖定防止篡改 用祕鑰系統來保證祕鑰的安全
  • 實際保護IC卡安全的措施:
    • 對持卡人 卡和介面裝置的合法性進行相互校驗
    • 重要的資料要加密傳輸
    • 卡和介面裝置中設定安全區 在安全區內包含有邏輯電路或外部不可讀的儲存區 任何有害的不規範的操作 將會被自動禁止進一步進行
    • 應設定止付名單(黑名單)
  • 身份認證方式:
    • 單向認證方式
    • 雙向認證方式
    • 信任的第三方認證方式(Kerberos protocol 認證 MIT 雅典娜計劃)
  • 簡述認證機構的嚴格層次模型的性質?

>層次結構中多有的實體都信任唯一的根CA 在認證機構的嚴格層次機構中 每個實體(包括中介CA和終端實體)都必須擁有根CA的公鑰 該公鑰的安裝在這個模型中為對吼進行的所有通訊進行證書處理的基礎 因此 它必須通過一種安全的方式來完成 值得注意的是 在一個多層的嚴格層次結構中 終端主體直接被上層的CA認證,但是他們的新人錨是另一個不同的CA(根CA) 總結一下,多有實體都信任根CA,在認證機構中都有根的祕鑰 終端實體雖然被上層CA認證 但是都是基於根CA的

  • 數字簽名:

    數字簽名給報文一個可以核實或鑑別的標識 它應該具有如下的性質:能夠識別簽名者的身份 簽名日期和時間 能用於證實被籤訊息的內容 可以由第三方驗證 可以解決通訊雙方的爭議

  • 基於訊息認證碼的數字簽名:

    訊息認證首先需要提供訊息認證符 認證符是標識訊息的資料 按照它的產生 可以分為訊息認證碼(Message Authentication,MAC)和雜湊函式(Hash Function)兩大類。

訊息驗證碼也稱為密碼校驗和,是一個定長的n位元資料 MAC=CK(M)

資料認證演算法:典型的鑑別碼生成演算法主要是基於DES的認證演算法那,該演算法採用CBC(Cipher Block chining)模式 使用MAC函式可以在較長的報文上操作
報文按照64位分組
- MD5演算法和SHA(secure Hash Alogrithm)的區別與聯絡:

MD5算法佔128位,SHA1算法佔1600位置 相對來說SHA演算法更加的安全 但是相對來說也會更慢

金鑰管理

證書管理由哪三個階段組成,每個接單包括哪些具體內容?

  • (1)初始化階段
    • 終端實體註冊:包括RA和CA過程,終端實體註冊是線上執行的使用登錄檔格的交換來說明 註冊過程中一般要求將一個或更多的共享祕密賦給終端實體以便於以後在初始化過程中確定哪個實體
    • 金鑰對的產生 每個終端實體的祕鑰被用來支援分離和截然不同的服務是可以的 比如一個金鑰對支援不可否認性服務而另一個金鑰對可以被支援機密性或者祕鑰管理功能(雙金鑰對模型)
    • 證書的建立和金鑰/證書分發
    • 金鑰分發
    • 金鑰備份和託管
  • (2)頒佈階段
    • 證書檢索
    • 證書驗證
    • 金鑰恢復
    • 金鑰更新
  • (3) 取消階段

    • 證書過期
    • 證書恢復(相同的金鑰加入新的有效期的新的證書)
    • 證書更新
    • 證書撤銷
    • 金鑰歷史
    • 金鑰檔案

    簡述X.509證書包含的內容?

  • 版本號 Version

  • 證書的版本序列號 Serial Number
  • 簽名演算法識別符號 Signature Alogrithm
  • 頒發者名稱 Issure
  • 有效期 Validity
  • 主體名稱(X.500標準 以命名樹來確保使用者名稱稱的唯一性) Subject
  • 主體公鑰資訊(演算法標識 公鑰值) Subject Public Key Info
  • 頒發者唯一識別符號
  • 主義者唯一識別符號
  • 擴充套件項
  • 頒佈者的簽名

    關於X.509的雙向認證過程

  • 客戶傳送請求 經過狀態到CA狀態 CA根據自身維護的狀態字判斷髮出請求的客戶是否經過認證環節 若未經過認證環節 執行認證 若經過認證環節 進入AZS(授權)狀態 其執行過程與AS類似,只有經過授權的服務才可以進入app狀態
    假設A與B進行雙向認證?(KAB為雙方的回話金鑰,Cert為A的X.509公鑰證書,ri:i產生的現時值,KUi,if方的公鑰,KRi,i放的私鑰)
    • (1) EKUB(CertA,rA,kAB)
    • (2) EKUA(rB,KAB)
    • (3) EKAB(OK)
    • 上述資訊詳解 A向B傳送自己的證書,現時rA,以及AES會話密匙KAB,所有這些資訊使用B的公鑰加密 B收到資訊之後通過私鑰解密 先檢查合法使用者證書列表 若有則隨機產生新的現時,然後再進行加密使用a的公鑰加密 通過B在傳送訊息給A,若A在一個超時內沒有收到訊息 則重發 否則收到訊息則使用私鑰解出KAB,比較兩次的Kab是否一致,若一致則用新的現時值 並向B傳送KAB加密的OK資訊 同時啟動定時器Timer 定時器訊息也可以使用Kab加密 B收到訊息之後 如果是OK,則更改現在儲存的現時,認證過程結束
      X.509在PKI中的作用?它定義了公鑰證書的基本結構
      注意CRL(證書撤銷列表)
  • 假設使用一種加密演算法 它的加密演算法很簡單 將每個字母加5,加密稱f 這種演算法的金鑰就是5,它屬於對稱加密演算法

    數字簽名是傳送者通過傳送者的私鑰進行數字簽名 通過接收者的公鑰進行解密

    數字簽名使用單向雜湊函式進行處理的原因是 縮小簽名密文的長度 加快數字簽名和驗證數字簽名的運算速度

    設雜湊函式H有128個可能的輸出(即輸出長度為128位),如果H的k個隨機輸入中至少有兩個產生相同輸出的概率大於0.5,則k約等於_B_。
    A.2128 B.264 C.232 D.2256
    密碼系統包括明文空間 密文空間 金鑰空間 金鑰演算法

    公開金鑰加密演算法的主要用途在於金鑰分配和數字簽名

    金鑰管理主要包括金鑰生成 分配 使用 儲存 備份 恢復 和銷燬

    金鑰生成方式:中心集中和個人分散

    金鑰分配是指產生並使使用者獲得金鑰的過程

    金鑰分配中心 KDS

    數字簽名是筆跡簽名的模擬,是一種防止源點或終點否認的認證技術 數字簽名是交易安全的核心技術之一

    MAC 函式類似於加密 它與加密的區別在於其MAC函式不可逆

    >Hash函式 可接受變長資料輸入 並生成定長的輸出函式

    對稱加密演算法與公鑰j加密演算法的優點與缺點:

    對稱加密:雙方使用的同一個金鑰,既可以加密又可以解密,這種加密方法稱為對稱加密,也稱為單金鑰加密。

    優點:速度快,對稱性加密通常在訊息傳送方需要加密大量資料時使用,演算法公開、計算量小、加密速度快、加密效率高。 缺點:在資料傳送前,傳送方和接收方必須商定好祕鑰,然後 使雙方都能儲存好祕鑰。其次如果一方的祕鑰被洩露,那麼加密資訊也就不安全了。另外,每對使用者每次使用對稱加密演算法時,都需要使用其他人不知道的唯一祕 鑰,這會使得收、發雙方所擁有的鑰匙數量巨大,金鑰管理成為雙方的負擔。 在對稱加密演算法中常用的演算法有:DES、AES等。 AES:金鑰的長度可以為128、192和256位,也就是16個位元組、24個位元組和32個位元組 DES:金鑰的長度64位,8個位元組。 非對稱加密:一對金鑰由公鑰和私鑰組成(可以使用很多對金鑰)。私鑰解密公鑰加密資料,公鑰解密私鑰加密資料(私鑰公鑰可以互相加密解密)。 私鑰只能由一方保管,不能外洩。公鑰可以交給任何請求方。 在非對稱加密演算法中常用的演算法有: RSA等 缺點:速度較慢 優點:安全 **AES加密演算法**

    高階加密標準(AES,Advanced Encryption Standard)為最常見的對稱加密演算法(微信小程式加密傳輸就是用這個加密演算法的)。對稱加密演算法也就是加密和解密用相同的密高階加密標準(AES,Advanced Encryption Standard)為最常見的對稱加密演算法(微信小程式加密傳輸就是用這個加密演算法的)。
    對稱加密演算法也就是加密和解密用相同的金鑰

    AES加密演算法涉及4種操作:位元組替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪金鑰加(AddRoundKey)

    • 具有N個節點的網路如果使用公開金鑰密碼演算法,每個節點的金鑰有多少?網路中的金鑰共有多少?
      每個節點的金鑰是2個,網路中的金鑰共有2N個。
    • 在非對稱密碼體系中,第三方如何斷定通訊者有無抵賴或偽造行為 通過數字摘要、數字簽名等技術
    • 關於流密碼和分組密碼的區別和聯絡?

      序列密碼又稱為流密碼,是將明文訊息字串逐位的加密成密文字元。以二元加法序列密碼為例。設m1, m2,…,mk,…是明文字元,z1, z2,…, zk,…是金鑰流,那麼ck = mk⊕zk是加密變換,c1, c2,…, ck,…是密文字元序列。
      分組密碼就是將明文訊息序列:
      m1, m2,…,mk,…
      分成等長度的訊息組:
      (m1, m2,…,mn), (mn+1,…,m2n),…
      在金鑰的控制下按固定的加密演算法Ek,一組一組地進行加密。加密後輸出等長的密文組:
      (c1, c2,…,cn), (cn+1,…,c2n),…
      分組密碼和序列密碼的本質區別在於其加密方式:序列密碼是逐位元加密,而分組密碼是按照訊息組一組一組地加密,每一組加密的變換是相同的,因而相同的明文組對應的密文組必然是相同的。
      我們最喜歡使用的加密方式是序列密碼或流密碼,因為他在計算機處理方面更簡易一些。但其安全程度相對於分組密碼卻略低一籌。常用的流密碼為RC4。分組密碼常用的是AES。
      -常規加密金鑰的分配方式

      • 集中式金鑰分配方案 使用者只需要儲存同中心節點的加密主金鑰,用於安全傳送由中心節點產生的即將用於與第三方通訊的會話金鑰 這種方式是通訊量大同事需要鑑別中心節點和通訊方 常見的如KDC

    - 分散式金鑰分配方案

    • 資訊隱藏的嵌入和檢測過程?
      • 對主訊號進行正交變換,對原始主訊號進行感知分析,在原步驟上 基於實現給定的關鍵字 在變換域上嵌入主訊號
    • 雜湊碼和報文鑑別碼(MAC)的區別?
      • MAC 需要對全部資料進行加密 MAC速度慢 Hash是一種直接產生鑑別碼的方法
    • SET(安全電子交易協議)協議的交易流程:
      • SET交易過程中要對商家,客戶,支付閘道器等交易各方進行身份認證,因此它的交易過程相對複雜。
        (1)客戶在網上商店看中商品後,和商家進行磋商,然後發出請求購買資訊。
        (2)商家要求客戶用電子錢包付款。
        (3)電子錢包提示客戶輸入口令後與商家交換握手資訊,確認商家和客戶兩端均合法。
        (4)客戶的電子錢包形成一個包含訂購資訊與支付指令的報文傳送給商家。
        (5)商家將含有客戶支付指令的資訊傳送給支付閘道器。
        (6)支付閘道器在確認客戶信用卡資訊之後,向商家傳送一個授權響應的報文。
        (7)商家向客戶的電子錢包傳送一個確認資訊。
        (8)將款項從客戶帳號轉到商家帳號,然後向顧客送貨,交易結束。
        從上面的交易流程可以看出,SET交易過程十分複雜性,在完成一次S ET協議交易過程中,需驗證電子證書9次,驗證數字簽名6次,傳遞證書7次,進行簽名5次,4次對稱加密和非對稱加密。通常完成一個SET協議交易過程大約要花費1.5-2分鐘甚至更長時間。由於各地網路設施良莠不齊,因此,完成一個SET協議的交易過程可能需要耗費更長的時間。
    • DDos攻擊破壞了資訊的可用性
    • 在網路攻擊中 攻擊者竊取系統的訪問權並盜用資源的攻擊屬於資訊竊取
    • 引導型病毒指寄生在磁碟引導區或主引導區的計算機病毒。此種病毒利用系統引導時,不對主引導區的內容正確與否進行判別的缺點,在引導型系統的過程中侵入系統,駐留記憶體,監視系統執行,待機傳染和破壞。按照引導型病毒在硬碟上的寄生位置又可細分為主引導記錄病毒和分割槽引導記錄病毒。主引導記錄病毒感染硬碟的主引導區,如大麻病毒、2708病毒、火炬病毒等;分割槽引導記錄病毒感染硬碟的活動分割槽引導記錄,如小球病毒、Girl病毒等。
    • 計算機病毒是一種可執行的程式 它不單獨存在 經常是附著在正常程式的開始 末端或磁碟引導分配表等儲存區域內
    • DDos攻擊形式主要是流量攻擊 和資源資料攻擊
    • 漏洞掃描是對計算機系統或其他網路裝置進行與安全相關的檢測 找出安全隱患和可被黑客利用的漏洞

    - 計算機病毒是一組指令或者程式程式碼 能夠自我複製 通常嵌在計算機程式中,能夠破壞計算機功能或資料 影響計算機的使用

    • 竊取機密的方式:
      • 網路踩點(Footprinting):攻擊者先收集目標的資訊 通常採用whois,Figner,NsLookup,Ping等攻擊獲得目標的一些資訊
      • 掃描攻擊(Scanning):指進行埠掃描 通常採用Nmap等埠掃描工具 可以獲得目標計算機的有效資訊 比如打開了哪些埠 這樣就知道開設了哪些網路服務 利用服務的漏洞進行攻擊
      • 協議棧指紋(StackFingerPringting)鑑別(也稱為作業系統探測) 確定目標主機的os
      • 資訊流嗅探:通過使用一個嗅探器 且將共享區域網中網絡卡社這位混雜 模式 對網路資訊流進行監視 從而收集賬號資訊 和口令的資訊
      • 會話劫持 (SessionHajcking) 所謂會話劫持 就是在一次正常資訊通訊過程中 將資料篡改或者將雙方通訊模式進行改變 真正攻擊的一種
    • 非法訪問的攻擊方式:
      • 口令破解
      • IP欺騙
      • DNS欺騙
      • 重放

    - 特洛伊木馬

    • 路由欺騙

    路由欺騙是如何實現,技術上如何應付? TCP/TP網路中,IP資料包的傳輸路徑完全由路由表決定。若攻擊者通過各種手段改變路由表,使目標主機發送的IP包到達攻擊者能控制的主機或路由器,就可以完成嗅探監聽,篡改等攻擊方式

    **防火牆技術**
    • 包過濾防火牆無法檢測和解決TCP/IP攻擊 如 SYN Flooding(洪流) 和IP欺騙