email:janins@163.com
安全的基礎知識
在高度保證企業應用程序安全的過程中我們不免會考慮到如下的安全需求,然后我們針對這些安全需求提出各種安全技術:
1、完整性驗證(IntegrityVerification)。也就是以防止我們需要的內容不被篡改。
2、機密性保持(ConfidentialityPReservation)。通俗的說就是防止內容被別人讀懂。
3、認證和訪問授權(AuthenticityPermission)。通俗的說就是對來訪者提供的信息進行分析和判定,從而確定來訪者身份,然后根據身份決定該來訪者具有什么權限。
4、不可抵賴的證據(NonrepudiationEvidence)。舉個很簡單的例子,假如你去銀行交費,銀行必須該你一個交過費的憑證,不然被別人私通怎么辦?題外話:假如我們的銀行弄假的話,我們肯定被欺無疑^^。
5、審計證據(AuditingEvidence)。對一些安全性十分重要的數據操作進行紀錄和觀察,相當于銀行的那個攝像頭,在需要的時候他們的作用你就知道。
針對上面提到的需求列表對各個技術進行比較粗略地介紹。具體內容請從email:janins@163.com獲取。
加密技術(包括防止篡改技術)
加密技術是其它安全服務技術的基礎,其他安全穿插使用相當廣泛。所以在學習軟件安全技術之前了解各種加密技術是相當重要的。
加密技術的分類
消息摘要主要用于保持數據的完整性,我們經常聽到的校驗和就是消息摘要的一個特例。它的算法是一個單項函數。也就是直接將輸入的數據進行消息摘要提取,但絕不能從消息摘要生成原數據。消息摘要的算法分為如下幾類(最常用的是md5和SHA-1):
我們可能經常會疑問,我們有了消息摘要為什么還要認證碼呢?聽我給你舉個例子,前面提到的消息摘要的算法可以確保消息摘要和具體的消息之間的一一對應,也就是只要你有相同的消息,采用相同的算法肯定能產生相同的消息摘要,但有時為了非凡的目的我們需要只有特定的人才能生成這個摘要,這時候我們可以通過在生成消息摘要的過程中加入相應的密鑰,從而使生成的消息摘要在沒有密鑰的情況下難以生成。
鑒于消息摘要的一一對應,經常在一些保護用戶密碼的地方我們采用了這種算法。例如,在銀行系統,為了不讓治理數據庫的員工把你的密碼看到,系統本身在你的密碼存入庫中之前就做了消息摘要的提取,這樣庫中別人看到的是一串希奇的串,他也沒法逆向獲得你的明文密碼。當然,假如銀行的安全系統被控制,那什么事情都可以做。
對稱密鑰應該是相當強壯的信息加密算法。這和我們生活中的鑰匙極為相像。例如你家的門鎖可以有好幾把鑰匙,并且這些鑰匙都相同。在現實生活中,你可以將做好的鑰匙手遞手交給你的親人,指要有了鑰匙,你就可以打開你家的門。我們經常登陸網站用的用戶名和密碼的原理就是這樣的。但密碼等在網絡傳輸中很輕易被竊聽和截取,為了確保傳輸安全我們必須和后面提到的傳輸相關的加密算法配合進行,例如我們在登陸時使用https。下面是一些最普通的對稱密鑰算法:
新聞熱點
疑難解答