基于口令的身份認證技術
口令
利用口令來確認用戶的身份,是當前最常用的認證技術,通常,每當用戶要上機時,系統中的登錄程式都首先要求用戶輸入用戶名,登錄程式利用用戶輸入的名字去查找一張用戶注冊表或口令檔案, 在該表中,每個已注冊用戶都有一個表目, 其中記錄有用戶名和口令等,登錄程式從中找到匹配的用戶名后,再要求用戶輸入口令,如果用戶輸入的口令也與注冊表中用戶所設定的口令一致,系統便認為該用戶是合法用戶,于是允許該用戶進入系統;否則將拒絕該用戶登錄,
口令是由字母或數字、或字母和數字混合組成的,它可由系統產生,也可由用戶自己選定, 系統所產生的口令不便于用戶記憶,而用戶自己規定的口令則通常是很容易記憶的字母、數字,例如生日、住址、電話號碼, 以及某人或寵物的名字等等,這種口令雖便于記憶, 但也很容易被攻擊者猜中,
對口令機制的基本要求
基于用戶識別符號和口令的用戶認證技術, 其最主要的優點是簡單易行,因此,在幾乎所有需要對資料加以保密的系統中, 都引入了基于口令的機制,但這種機制也很容易受到別有用心者的攻擊,攻擊者可能通過多種方式來獲取用戶識別符號和口令,或者猜出用戶所使用的口令, 為了防止攻擊者猜出口令,在這種機制中通常應滿足以下幾點要求:
(1) 口令長度要適中,
通常的口令是由一串字母和數字組成, 如果口令太短, 則很容易被攻擊者猜中,例如,一個由四位十進制數所組成的口令,其搜索空間僅為104,在利用一個專門的程式來破解時,平均只需5000次即可猜中口令,假如每猜一次口令需花費0.1 ms的時間,則平均每猜中一個口令僅需0.5 s, 而如果采用較長的口令,假如口令由ASCII碼組成,則可以顯著地增加猜中一個口令的時間,例如,口令由7位ASCII碼組成, 其搜索空間變為957(95是可列印的ASCII碼),大約是7×1013,此時要猜中口令平均需要幾十年,
(2) 自動斷開連接,
為了給攻擊者猜中口令增加難度,在口令機制中還應引入自動斷開連接的功能,即只允許用戶輸入有限次數的不正確口令,通常規定3~5次,如果用戶輸入不正確口令的次數超過規定的次數時,系統便自動斷開該用戶所在終端的連接, 當然, 此時用戶還可能重新撥號請求登錄,但若在重新輸入指定次數的不正確口令后,仍未猜中,系統會再次斷開連接,這種自動斷開連接的功能,無疑又給攻擊者增加了猜中口令的難度,
(3) 不回送顯示,
在用戶輸入口令時,登錄程式不應將該口令回送到螢屏上顯示,以防止被就近的人發現,
(4) 記錄和報告,
該功能用于記錄所有用戶登錄進入系統和退出系統的時間;也用來記錄和報告攻擊者非法猜測口令的企圖及所發生的與安全性有關的其它不軌行為,這樣便能及時發現有人在對系統的安全性進行攻擊,
一次性口令(One time Passward)
為了把由于口令泄露所造成的損失減到最小, 用戶應當經常改變口令,例如,一個月改變一次,或者一個星期改變一次, 一種極端的情況是采用一次性口令機制,在利用該機制時, 用戶必須提供記錄有一系列口令的一張表,并將該表保存在系統中, 系統為該表設定一指標用于指示下次用戶登錄時所應使用的口令,這樣,用戶在每次登錄時,登錄程式便將用戶輸入的口令與該指標所指示的口令相比較,若相同,便允許用戶進入系統,并將指標指向表中的下一個口令,在采用一次性口令的機制時,即使攻擊者獲得了本次用戶上機時所使用的口令,他也無法進入系統,必須注意,用戶所使用的口令表,必須妥善保存好,
口令檔案
通常在口令機制中,都配置有一份口令檔案, 用于保存合法用戶的口令和與口令相聯系的特權, 該檔案的安全性至關重要, 一旦攻擊者成功地訪問了該檔案,攻擊者便可隨心所欲地訪問他感興趣的所有資源,這對整個計算機系統的資源和網路,將無安全性可言,顯然,如何保證口令檔案的安全性,已成為系統安全性的頭等重要問題,
保證口令檔案安全性的最有效的方法是, 利用加密技術, 其中一個行之有效的方法是選擇一個函式來對口令進行加密, 該函式f(x)具有這樣的特性:在給定了x值后,很容易算出f(x); 然而, 如果給定了f(x)的值,卻不能算出x的值,利用f(x)函式去編碼(即加密)所有的口令,再將加密后的口令存入口令檔案中,當某用戶輸入一個口令時,系統利用函式f(x)對該口令進行編碼,然后將編碼(加密)后的口令與存盤在口令檔案中的已編碼的口令進行比較,如果兩者相匹配,便認為是合法用戶,順便說明一下,即使攻擊者能獲取口令檔案中的已編碼口令,他也無法對它們進行譯碼,因而不會影響到系統的安全性,

盡管對口令進行加密是一個很好的方法, 但它也不是絕對的安全可靠, 其主要威脅來自于兩個方面:
(1) 當攻擊者已掌握了口令的解密密鑰時, 就可用它來破譯口令,
(2) 利用加密程式來破譯口令, 如果運行加密程式的計算機速度足夠快, 則通常只要幾個小時便可破譯口令,
因此,人們還是應該妥善保管好已加密的口令檔案,來防止攻擊者輕意地獲取該檔案,
基于物理標志的認證技術
基于磁卡的認證技術
根據資料記錄原理,可將當前使用的卡分為磁卡和IC卡兩種,磁卡是基于磁性原理來記錄資料的,目前世界各國使用的信用卡和銀行現金卡等,都普遍采用磁卡,這是一塊其大小和名片大小相仿的塑料卡,在其上貼有含若干條磁道的磁條, 一般在磁條上有三條磁道,每條磁道都可用來記錄不同標準和不同數量的資料,磁道上可有兩種記錄密度,一種是每英寸含有15位元的低密度磁道;另一種是每英寸含有210位元的高密度磁道,如果在磁條上記錄了用戶名、賬號和金額,這就是金融卡或銀行卡;而如果在磁條上記錄的是有關用戶的資訊,則該卡便可作為識別用戶身份的物理標志,
在磁卡上所存盤的資訊,可利用磁卡讀寫器將之讀出: 只要將磁卡插入或劃過磁卡讀寫器,便可將存盤在磁卡中的資料讀出,并傳送到相應的計算機中,用戶識別程式便利用讀出的資訊去查找一張用戶資訊表(該表中包含有若干個表目, 每個用戶占有一個表目,表目中記錄了有關該用戶的資訊), 若找到匹配的表目,便認為該用戶是合法用戶;否則便認為是非法用戶, 為了保證持卡者是該卡的主人,通常在基于磁卡認證技術的基礎上,又增設了口令機制,每當進行用戶身份認證時,都要求用戶輸入口令,
基于IC卡的認證技術
IC卡即集成電路卡的英文縮寫,在外觀上IC卡與磁卡并無明顯差別,但在IC卡中可裝入CPU和存盤器芯片,使該卡具有一定的智能,故又稱為智能卡或靈巧卡,IC卡中的CPU用于對內部資料的訪問和與外部資料進行交換,還可利用較復雜的加密演算法,對資料進行處理,這使IC卡比磁卡具有更強的防偽性和保密性,因而IC卡會逐步取代磁卡,根據在磁卡中所裝入芯片的不同可把IC卡分為以下三種型別:
(1) 存盤器卡,在這種卡中只有一個E2PROM(可電擦、可編程只讀存盤器)芯片,而沒有微處理器芯片, 它的智能主要依賴于終端,就像IC電話卡的功能是依賴于電話機一樣,由于此智能卡不具有安全功能,故只能用來存盤少量金額的現金與資訊,常見的智能卡有電話卡、 健康卡,其只讀存盤器的容量一般為4~20 KB,
(2) 微處理器卡,它除具有E2PROM外,還增加了一個微處理器,只讀存盤器的容量一般是數千位元組至數萬位元組;處理器的字長主要是8位的,在這種智能卡中已具有一定的加密設施, 增強了IC卡的安全性,
(3) 密碼卡,在這種卡中又增加了加密運算協處理器和RAM,之所以把這種卡稱為密碼卡,是由于它能支持非對稱加密體制RSA;所支持的密鑰長度可長達1024位,因而極大地增強了IC卡的安全性,一種專門用于確保安全的智能卡,在卡中存盤了一個很長的用戶專門密鑰和數字證明書,完全可以作為一個用戶的數字身份證明,當前在Internet上所開展的電子交易中, 已有不少密碼卡是使用了基于RSA的密碼體制,
將IC卡用于身份識別的方法,明顯地優于使用磁卡,這一方面是因為,磁卡是將資料存盤在磁條上,比較易于用一般設備將其中的資料讀出、修改和進行破壞;而IC卡則是將資料保存在存盤器中,使用一般設備難于讀出,這使IC卡具有更好的安全性, 另一方面,在IC卡中含有微處理器和存盤器, 可進行較復雜的加密處理,因此,IC卡具有非常好的防偽性和保密性; 此外,還因為IC卡所具有的存盤容量比磁卡的大得多, 通常可大到100倍以上,因而可在IC卡中存盤更多的資訊, 從而做到“一卡多用”,換言之,一張IC卡,既可作為數字身份證, 又可作為信用卡、電話卡及健康卡等等,
指紋識別技術
(1) 指紋,
指紋有著“物證之首”的美譽,盡管目前全球已有近60億人口, 但絕對不可能找到兩個完全相同的指紋, 因而利用指紋來進行身份認證是萬無一失的,而且非常方便,又因為它不會像其它一些物理標志那樣出現用戶忘記攜帶或丟失等問題,而且使用起來也特別方便,因此,利用指紋來進行身份識別是有廣闊前景的一種識別技術,世界上已有愈來愈多的國家開展了對指紋識別技術的研究,
(2) 指紋識別系統,
早在80年代,美國及其它發達國家便開始了對指紋識別技術的研究,并取得了一定的進展,在所構成的指紋識別系統中包括:指紋輸入、指紋影像壓縮、 指紋自動比較等8個子系統,但他們的指紋識別系統是建立在大型計算機系統的基礎上的,而且由于系統的龐大、價格的昂貴, 始終使該技術難于普及;直至近幾年,隨著VLSI的迅速發展, 才使指紋識別系統小型化, 使該技術進入了廣泛應用的階段,
基于公開密鑰的認證技術
申請數字證書
由于SSL所提供的安全服務,是基于公開密鑰證明書(數字證書)的身份認證,因此,凡是要利用SSL的用戶和服務器, 都必須先向認證機構(CA)申請公開密鑰證明書,
(1) 服務器申請數字證書,
首先由服務管理器生成一密鑰對和申請書,服務器一方面將密鑰和申請書的備份保存在安全之處;另一方面則向CA提交包括密鑰對和簽名證明書申請(即CSR)的加密檔案,通常以電子郵件方式發送, CA接收并檢查該申請的合法性后,將會把數字證書以電子郵件方式寄給服務器,
(2) 客戶申請數字證書,
首先由瀏覽器生成一密鑰對,私有密鑰被保存在客戶的私有密鑰資料庫中,將公開密鑰連同客戶提供的其它資訊,一起發往CA,如果該客戶符合CA要求的條件, CA將會把數字證書以電子郵件方式寄給客戶,
SSL握手協議
(1) 身份認證,
SSL協議要求通信的雙方都利用自己的私用密鑰對所要交換的資料進行數字簽名,并連同數字證書一起發送給對方, 以便雙方相互檢驗,如上節所述,通過數字簽名和數字證書的驗證可以認證對方的身份是否真實,
(2) 協商加密演算法,
為了增加加密系統的靈活性,SSL協議允許采用多種加密演算法,客戶和服務器在通信之前,應首先協商好所使用的某一種加密演算法,通常先由客戶提供自己能支持的所有加密演算法清單,然后由服務器從中選擇出一種最有效的加密演算法, 并通知客戶,此后,雙方便可利用該演算法對所傳送的資訊進行加密,
(3) 協商加密密鑰,
先由客戶機隨機地產生一組密鑰,再利用服務器的公開密鑰對這組密鑰進行加密后,送往服務器,由服務器從中選擇4個密鑰,并通知客戶機,將之用于對所傳輸的資訊進行加密,
資料加密和檢查資料的完整性
(1) 資料加密,
在客戶機和服務器間傳送的所有資訊,都應利用協商后所確定的加密演算法和密鑰進行加密處理,以防止被攻擊,
(2) 檢查資料的完整性,
為了保證經過長途傳輸后所收到的資料是可信任的,SSL協議還利用某種演算法對所傳送的資料進行計算, 以產生能保證資料完整性的資料識別碼(MAC),再把MAC和業務資料一起傳送給對方;而收方則利用MAC來檢查所收到資料的完整性,
歡迎大家加我微信交流討論(請備注csdn上添加)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350829.html
標籤:其他
