顯示具有 電子認証 標籤的文章。 顯示所有文章
顯示具有 電子認証 標籤的文章。 顯示所有文章

2012年8月8日 星期三

[電子認証] 程式參考範例

Net 語法:

.NET 非對稱式加密與數位簽章程式設計入門


Android

1.[Android] 建立PKCS10CertificationRequest
2.[Android] 建立及讀取Keystroe

[電子認証] 基本概念 Part2


名詞說明

金鑰 (或稱密鑰, key): 在密碼學演算法裡所需要的一個輸入參數, 依不同演算法而會有不同的金鑰類型與長度. PGP 加密裡, 金鑰類型通常為RSA DSA,長度則為1024~4096 bits

本文件及系統內所用之PGP 金鑰名稱係指可以代表PGP金鑰的廣義稱呼, 它可能為使用者名稱(User Name)、電子郵件(eMail)、或使用者名稱加電子郵件 ( “user name <email>”表示)、或金鑰代號 (Key ID, 是八碼 0-9, A-F組成)、或金鑰指紋(Key Fingerprint, 200-9, A-F組成)

對稱式加密式 (Symmetric Algorithm)

加密解密使用相同金鑰的演算法, 稱為對稱式(Symmetric)加密演算法,,如下圖。



常見之對稱式加密演算法如 DES, Triple-DES, AES 等。

非對稱式加密(Asymmetric Algorithm)

加密解密使用不同的兩個金鑰,且此兩個金鑰是成對的(pair),其一為公鑰 (Public key), 另一為私鑰(Private Key),被公鑰加密的資料必須以相對應的私鑰才能解得開;反之,被私鑰加密的資料必須以相對應的公鑰才能解得開。如下圖


常見的非對稱式加密加密演算法如 RSA, DSA等。

加解密(Encryption and Decryption)是用來防範內容被窺視,若要確定內容沒有被竄改, 或證實內容來源, 則必須再使用以下方法。

雜湊函數(Hash Functions)

雜湊函數是一種數學演算法, 將大量的資料變成小量的亂數值, 如下圖


雜湊函數一定具有兩個特性


1.
不同的input 一定得出不同的hash value (或稱訊息摘要, Message Digest)
2.
無法從hash value 倒推得原來的input

Hash value的長度依不同雜湊函數而定,常見的雜湊函數如 MD2, MD5, SHA-1, SHA-128, SHA-256, SHA-512等。

簽章與驗章(Sign and verify)

簽章及驗章是利用雜湊函數及非對稱式加密的技術來達到確認文件來源(作者)及文件內容是沒被更動過的。如下圖簽章示意圖。
關於PGP加密

PGP 主要使用非對稱式加密,每個使用者都擁有一對私鑰(Private Key) 與公鑰(Public Key),資料使用公鑰加密後只能使用它相配對的私鑰解密,資料若使用私鑰加密, 則任何公鑰的持有者可以驗證資料是否確定由私鑰的使用者所傳送。


由於非對稱式加密速度遠比對稱式加密慢很多, 所以只適合加密少量資料, PGP 實際上是使用一把對稱式的金鑰(Session Key)來加密資料, 再用非對稱式之公要來加密此對稱式的金鑰。

PGP 解密則是先將加過密的Session Key 由私鑰解開, 再用此Session Key來解密資料



[電子認証] 基本概念 Part1

參考資料:
1.http://itgroup.blueshop.com.tw/Gpx1981/gpx1981?n=convew&i=181296
2.http://www.cc.ntu.edu.tw/chinese/epaper/20070620_1011.htm


電子認証主要可以達到以下安全性要求:


安全服務
防制威脅
資料隱密性 (Confidentiality)
竊聽、洩露
資料完整性 (Integrity)
篡改、遺失
資料傳輸身份辨識 (Authentication)
冒名、不明來源
資料傳輸之不可否性 (Non-Repudiation)
否認已收、送資料



  在近年來發表的多個安全電子交易協議或標準中,均採納了一些常用的安全電子交易的方法和手段。典型的方法和手段有以下幾種:

1)、 密碼技術

  採用密碼技術對信息加密,是最常用的安全交易手段。在電子商務中獲得廣泛應用的加密技術有以下兩種:



  A. 公共密鑰和私用密鑰(public key and private key)

  這一加密方法亦稱為RSA編碼法,是由Rivest,ShamirAdlernan 三人所研究發明的。它利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪一個先與原文件編碼相乘,對文件加密,均可由另一個質數再相乘來解密。但要用一個質數來求出另一個質數,則是十分困難的。因此將這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將一個密鑰公開,讓需發信的人員將信息用其公共密鑰加密後發給該用戶,而一旦信息加密後,只有用該用戶一個人知道的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發信息時主動將公共密鑰傳給對方,這樣保證在Internet上傳輸信息的保密和安全。



  B. 數字摘要(digital digest)

  這一加密方法亦稱安全Hash編碼法(SHA:Secure Hash Algorithm)MD5(MD Standards for Message Digest),由Ron Rivest所設計。該編碼法採用單向Hash 函數將需加密的明文"摘要"成一串128bit的密文,這一串密文亦稱為數字指紋(Finger Print),它有固定的長度,且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。這樣這串摘要便可成為驗證明文是否是"真身""指紋"了。

  上述兩種方法可結合起來使用,數字簽名就是上述兩法結合使用的實例。



(2)、 數字簽名(digital signature)

  在書面文件上簽名是確認文件的一種手段,簽名的作用有兩點,一是因為自己的簽名難以否認,從而確認了文件已簽署這一事實;二是因為簽名不易仿冒,從而確定了文件是真的這一事實。數字簽名與書面文件簽名有相同之處,採用數字簽名,也能確認以下兩點:

n   信息是由簽名者發送的。

n   信息自簽發後到收到為止未曾作過任何修改。

  這樣數字簽名就可用來防止電子信息因易被修改而有人作偽;或冒用別人名義發送信息;或發出(收到)信件後又加以否認等情況發生。



  數字簽名並非用"手書籤名"類型的圖形標誌,它採用了雙重加密的方法來實現防偽、防賴。其原理為:

(1)被發送文件用SHA編碼加密產生128bit的數字摘要(見上節)。

(2)發送方用自己的私用密鑰對摘要再加密,這就形成了數字簽名。

(3)將原文和加密的摘要同時傳給對方。

(4)對方用發送方的公共密鑰對摘要解密,同時對收到的文件用SHA 編碼加密產生又一摘要。

(5)將解密後的摘要和收到的文件在接收方重新加密產生的摘要相互對比。如兩者一致,則說明傳送過程中信息沒有被破壞或篡改過。否則不然。

 


 

4.1即表示了數字簽名的過程。



3)、 數字時間戳(digital time-stamp)

  交易文件中,時間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和篡改的關鍵性內容。

  在電子交易中,同樣需對交易文件的日期和時間信息採取安全措施,而數字時間戳服務

  (DTS:digital time-stamp service)就能提供電子文件發表時間的安全保護。

  數字時間戳服務(DTS)是網上安全服務項目,由專門的機構提供。時間戳(time-stamp) 是一個經加密後形成的憑證文檔,它包括三個部分:1)需加時間戳的文件的摘要(digest),2)DTS收到文件的日期和時間,3)DTS的數字簽名。

  時間戳產生的過程為:用戶首先將需要加時間戳的文件用HASH編碼加密形成摘要,然後將該摘要發送到DTS,DTS在加入了收到文件摘要的日期和時間信息後再對該文件加密(數字簽名),然後送回用戶。由Bellcore創造的DTS採用下的過程:加密時將摘要信息歸併到二叉樹的數據結構;再將二叉樹的根值發表在報紙上,這樣更有效地為文件發表時間提供了佐證。注意,書面簽署文件的時間是由簽署人自己寫上的,而數字時間戳則不然,它是由認證單位DTS來加的,以DTS收到文件的時間為依據。因此,時間戳也可作為科學家的科學發明文獻的時間認證。



4)、 數字憑證(digital certificate,digital ID)

  數字憑證又稱為數字證書,是用電子手段來證實一個用戶的身份和對網絡資源的訪問的權限。在網上的電子交易中,如雙方出示了各自的數字憑證,並用它來進行交易操作,那麼雙方都可不必為對方身份的真偽擔心。

  數字憑證可用於電子郵件、電子商務、群件、電子基金轉移等各種用途。

  數字憑證的內部格式是由CCITT X.509國際標準所規定的,它包含了以下幾點:

n   憑證擁有者的姓名,

n   憑證擁有者的公共密鑰,

n   公共密鑰的有效期,

n   頒發數字憑證的單位,

n   數字憑證的序列號(Serial number)

  數字憑證有三種類型:

  個人憑證(Personal Digital ID):它僅僅為某一個用戶提供憑證,以幫助其個人在網上進行安全交易操作。個人身份的數字憑證通常是安裝在客戶端的瀏覽器內的。並通過安全的電子郵件(S/MIME)來進行交易操作。

  企業(服務器)憑證(Server ID):它通常為網上的某個Web服務器提供憑證,擁有Web服務器的企業就可以用具有憑證的萬維網站點(Web Site)來進行安全電子交易。有憑證的Web服務器會自動地將其與客戶端Web瀏覽器通信的信息加密。

  軟件(開發者)憑證(Developer ID):它通常為Internet中被下載的軟件提供憑證,該憑證用於和微軟公司Authenticode技術(合法化軟件)結合的軟件,以使用戶在下載軟件時能獲得所需的信息。

上述三類憑證中前二類是常用的憑證,第三類則用於較特殊的場合,大部分認證中心提供前兩類憑證,能提供各類憑證的認證中心並不普遍。



5)、 認證中心:(CA:Certification Authority)

  在電子交易中,無論是數字時間戳服務(DTS)還是數字憑證(Digital ID)的發放,都不是靠交易的自己能完成的,而需要有一個具有權威性和公正性的第三方(third party)來完成。認證中心(CA)就是承擔網上安全電子交易認證服務、能簽發數字證書、並能確認用戶身份的服務機構。認證中心通常是企業性的服務機構,主要任務是受理數字憑證的申請、簽發及對數字憑證的管理。認證中心依據認證操作規定(CPS:Certification Practice Statement)來實施服務操作。

  目前在全球處於領導地位的認證中心是美國的VeriSign公司,創建於19954 月,總部在美國加州的Mountain View。該公司所提供的數字憑證的服務已遍及全世界50個國家,接受該公司的服務器數字憑證的Web站點服務器已超過45 000個,而使用該公司個人數字憑證的用戶已超過200萬名。

  上述五個方面介紹了安全電子交易的常用手段,各種手段常常是結合在一起使用的,從而構成安全電子交易的體系。



本篇文章來源于職場幫(www.guan8.net) 原文出處︰http://webcache.googleusercontent.com/search?q=cache:dw2FeMhjuDEJ:www.guan8.net/Java/339943.html+&cd=1&hl=zh-TW&ct=clnk&gl=tw