精通PKI網(wǎng)絡(luò)安全認證技術(shù)與編程實現(xiàn)

出版時間:2008-7-1  出版社:人民郵電出版社  作者:馬臣云  頁數(shù):452  字數(shù):766000  
Tag標簽:無  

內(nèi)容概要

PKI是解決開放式互聯(lián)網(wǎng)絡(luò)信息安全需求的成熟體系。PKI體系支持身份認證,信息傳輸、存儲的完整性,消息傳輸、存儲的機密性,以及操作的不可否認性。本書從實戰(zhàn)出發(fā),介紹了PKI應(yīng)用開發(fā)過程和細節(jié)。全書共32章,分6篇,主要內(nèi)容包括PKI基礎(chǔ)知識、OpenSSL開發(fā)、CrytoAPI開發(fā)、Java Security開發(fā)、電子商務(wù)網(wǎng)站應(yīng)用、PKI技術(shù)應(yīng)用等,涉及C語言、Java語言、JSP、ASP/ASP.NET、PHP等開發(fā)語言。為了方便讀者深入了解PKI,本書按照先原理、再講解、再實戰(zhàn)的方式進行,并且全部實例和軟件都保存在隨書贈送的光盤中。    本書適合PKI應(yīng)用開發(fā)人員、企業(yè)網(wǎng)絡(luò)管理人員以及大、中專院校師生閱讀。

書籍目錄

第1篇 PKI技術(shù)概述 第1章 PKI基礎(chǔ)知識   1.1 PKI概述   1.2 什么是數(shù)字證書    1.2.1 數(shù)字認證的原理    1.2.2 數(shù)字認證是如何頒發(fā)的   1.3 為什么要使用數(shù)字證書    1.3.1 信息傳輸?shù)谋C苄浴   ?.3.2 交易者身份的確定性    1.3.3 發(fā)送信息的不可否認性    1.3.4 數(shù)據(jù)交換的完整性   1.4 加密技術(shù)    1.4.1 對稱加密技術(shù)    1.4.2 非對稱加密技術(shù)   1.5 數(shù)字簽名技術(shù)    1.5.1 數(shù)字簽名技術(shù)    1.5.2 時間戳技術(shù) 第2篇 OpenSSL開發(fā) 第2章 OpenSSL入門   2.1 OpenSSL概述    2.1.1 OpenSSL的組成    2.1.2 OpenSSL的優(yōu)缺點   2.2 如何下載編譯    2.2.1 Windows下編譯OpenSSL    2.2.2 Linux下編譯OpenSSL   2.3 如何搭建開發(fā)環(huán)境    2.3.1 Windows下搭建OpenSSL開發(fā)環(huán)境    2.3.2 Linux下搭建OpenSSL開發(fā)環(huán)境   2.4 小結(jié)  第3章 OpenSSL加密和解密   3.1 概述   3.2 函數(shù)介紹    3.2.1 初始化函數(shù)EVP_CIPHER_CTX_init    3.2.2 加密初始化函數(shù)EVP_EncryptInit_ex    3.2.3 數(shù)據(jù)加密Update函數(shù)EVP_EncryptUpdate    3.2.4 數(shù)據(jù)加密結(jié)束函數(shù)EVP_EncryptFinal_ex    3.2.5 解密初始化函數(shù)EVP_DecryptInit_ex    3.2.6 數(shù)據(jù)解密Update函數(shù)EVP_DecryptUpdate    3.2.7 數(shù)據(jù)解密結(jié)束函數(shù)EVP_DecryptFinal_ex   3.3 實例應(yīng)用——數(shù)據(jù)加密    3.3.1 流程分析    3.3.2 實例實現(xiàn)  第4章 OpenSSL消息摘要   4.1 概述   4.2 函數(shù)介紹    4.2.1 初始化函數(shù)EVP_MD_CTX_init    4.2.2 設(shè)置摘要算法函數(shù)EVP_DigestInit_ex    4.2.3 摘要Update函數(shù)EVP_DigestUpdate    4.2.4 摘要結(jié)束函數(shù)EVP_DigestFinal_ex    4.2.5 計算摘要函數(shù)EVP_Digest   4.3 實例應(yīng)用    4.3.1 流程分析    4.3.2 實例實現(xiàn)  第5章 OpenSSL簽名和驗證   5.1 函數(shù)介紹    5.1.1 簽名初始化函數(shù)EVP_SignInit_ex    5.1.2 簽名Update函數(shù)EVP_SignUpdate    5.1.3 簽名結(jié)束函數(shù)EVP_SignFinal    5.1.4 驗證初始化函數(shù)EVP_VerifyInit_ex    5.1.5 驗證Update函數(shù)EVP_VerifyUpdate    5.1.6 驗證結(jié)束函數(shù)EVP_VerifyFinal   5.2 實例應(yīng)用    5.2.1 流程分析    5.2.2 實例實現(xiàn)  第6章 OpenSSL Base64編解和解碼   6.1 函數(shù)介紹       6.1.1 Base64編碼初始化函數(shù)EVP_EncodeInit    6.1.2 Base64編碼Update函數(shù)EVP_EncodeUpdate    6.1.3 Base64編碼結(jié)束函數(shù)EVP_EncodeFinal    6.1.4 Base64編碼函數(shù)EVP_EncodeBlock    6.1.5 Base64解碼函數(shù)EVP_DecodeBlock    6.1.6 Base64解碼初始化函數(shù)EVP_DecodeInit    6.1.7 Base64解碼Update函數(shù)EVP_DecodeUpdate    6.1.8 Base64解碼結(jié)束函數(shù)EVP_DecodeFinal   6.2 實例應(yīng)用    6.2.1 流程分析    6.2.2 實例實現(xiàn)  第7章 OpenSSL證書操作   7.1 函數(shù)介紹    7.1.1 DER編碼轉(zhuǎn)換為內(nèi)部結(jié)構(gòu)體函數(shù)d2i_X509    7.1.2 獲得證書版本函數(shù)X509_get_version    7.1.3 獲得證書序列號函數(shù)X509_get_serialNumber    7.1.4 獲得證書頒發(fā)者信息函數(shù)X509_get_issuer_name    7.1.5 獲得證書擁有者信息函數(shù)X509_get_subject_name    7.1.6 獲得證書有效期的起始日期函數(shù)X509_get_notBefore    7.1.7 獲得證書有效期的終止日期函數(shù)X509_get_notAfter    7.1.8 獲得證書公鑰函數(shù)X509_get_pubkey    7.1.9 創(chuàng)建和釋放證書存儲區(qū)函數(shù)X509_STORE_new、X509_STORE_free    7.1.10 向證書存儲區(qū)添加證書函數(shù)X509_STORE_add_cert    7.1.11 向證書存儲區(qū)添加證書吊銷列表函數(shù)X509_STORE_add_crl    7.1.12 創(chuàng)建證書存儲區(qū)上下文環(huán)境函數(shù)X509_STORE_CTX_new    7.1.13 釋放證書存儲區(qū)上下文環(huán)境函數(shù)X509_STORE_CTX_free    7.1.14 初始化證書存儲區(qū)上下文環(huán)境函數(shù)X509_STORE_CTX_init    7.1.15 驗證證書函數(shù)X509_verify_cert   7.2 實例應(yīng)用    7.2.1 流程分析    7.2.2 實例實現(xiàn)  第8章 SSL/TLS編程   8.1 函數(shù)介紹    8.1.1 初始化SSL算法庫函數(shù)SSL_library_init    8.1.2 初始化SSL上下文環(huán)境變量函數(shù)SSL_CTX_new    8.1.3 釋放SSL上下文環(huán)境變量函數(shù)SSL_CTX_free    8.1.4 設(shè)置SSL證書函數(shù)SSL_CTX_use_certificate_file    8.1.5 設(shè)置SSL私鑰函數(shù)SSL_CTX_use_PrivateKey_file    8.1.6 設(shè)置SSL證書函數(shù)SSL_CTX_use_certificate    8.1.7 設(shè)置SSL私鑰函數(shù)SSL_CTX_use_PrivateKey    8.1.8 檢查SSL私鑰函數(shù)SSL_CTX_check_private_key    8.1.9 新建SSL句柄函數(shù)SSL_new    8.1.10 釋放SSL句柄函數(shù)SSL_free    8.1.11 設(shè)置socket句柄函數(shù)SSL_set_fd    8.1.12 建立SSL鏈接函數(shù)SSL_connect    8.1.13 接受SSL鏈接函數(shù)SSL_accept    8.1.14 獲得SSL鏈接使用的證書SSL_get_peer_certificate    8.1.15 發(fā)送SSL數(shù)據(jù)函數(shù)SSL_write    8.1.16 讀取SSL數(shù)據(jù)函數(shù)SSL_read   8.2 實例應(yīng)用    8.2.1 流程分析    8.2.2 實例實現(xiàn)  第9章 開發(fā)實例——文件保險箱   9.1 功能預(yù)覽    9.1.1 文件加密    9.1.2 文件解密   9.2 流程分析    9.2.1 文件加密函數(shù)Encrypt_File    9.2.2 文件解密函數(shù)Decrypt_File   9.3 功能實現(xiàn)   第10章 開發(fā)實例——安全通信軟件   10.1 功能預(yù)覽   10.2 流程分析    10.2.1 服務(wù)端流程分析    10.2.2 客戶端流程分析   10.3 功能實現(xiàn)    10.3.1 服務(wù)端    10.3.2 客戶端  第11章 開發(fā)實例——安全報文系統(tǒng)   11.1 功能預(yù)覽    11.1.1 發(fā)送方產(chǎn)生安全報文    11.1.2 接收方解密安全報文   11.2 流程分析    11.2.1 發(fā)送方流程分析    11.2.2 接收方流程分析     11.3 功能實現(xiàn)    11.3.1 發(fā)送方    11.3.2 接收方 第3篇 CrytoAPI開發(fā) 第12章 CryptoAPI開發(fā)入門   12.1 CryptoAPI的組成   12.2 CryptoAPI的優(yōu)缺點   12.3 如何搭建開發(fā)環(huán)境  第13章 密碼服務(wù)提供者CSP函數(shù)   13.1 函數(shù)介紹    13.1.1 連接CSP函數(shù)CryptAcquireContext    13.1.2 枚舉CSP函數(shù)CryptEnumProviders    13.1.3 獲得默認CSP函數(shù)CryptGetDefaultProvider    13.1.4 設(shè)置默認CSP函數(shù)CryptSetProvider    13.1.5 獲得CSP參數(shù)屬性函數(shù)CryptGetProvParam    13.1.6 設(shè)置CSP參數(shù)函數(shù)CryptSetProvParam    13.1.7 斷開CSP函數(shù)CryptReleaseContext   13.2 實例應(yīng)用    13.2.1 流程分析    13.2.2 實例實現(xiàn)  第14章 密鑰的產(chǎn)生和交換函數(shù)   14.1 函數(shù)介紹    14.1.1 生成函數(shù)CryptGenKey    14.1.2 派生密鑰函數(shù)CryptDeriveKey    14.1.3 銷毀密鑰函數(shù)CryptDestroyKey    14.1.4 復(fù)制密鑰函數(shù)CryptDuplicateKey    14.1.5 導(dǎo)出密鑰函數(shù)CryptExportKey    14.1.6 導(dǎo)入密鑰函數(shù)CryptImportKey    14.1.7 獲得密鑰參數(shù)函數(shù)CryptGetKeyParam    14.1.8 獲得密鑰參數(shù)函數(shù)CryptSetKeyParam    14.1.9 獲得密鑰參數(shù)函數(shù)CryptGenRandom   14.2 實例應(yīng)用    14.2.1 流程分析    14.2.2 實例實現(xiàn)  第15章 數(shù)據(jù)的加密和解密函數(shù)   15.1 函數(shù)介紹    15.1.1 數(shù)據(jù)加密函數(shù)CryptEncrypt    15.1.2 數(shù)據(jù)解密函數(shù)CryptDecrypt   15.2 實例應(yīng)用    15.2.1 流程分析    15.2.2 實例實現(xiàn)  第16章 哈希和數(shù)字簽名函數(shù)   16.1 函數(shù)介紹    16.1.1 創(chuàng)建哈希函數(shù)CryptCreateHash    16.1.2 銷毀哈希CryptDestroyHash    16.1.3 復(fù)制哈希函數(shù)CryptDuplicateHash    16.1.4 獲得哈希參數(shù)函數(shù)CryptGetHashParam    16.1.5 設(shè)置哈希參數(shù)函數(shù)CryptSetHashParam    16.1.6 哈希會話密鑰函數(shù)CryptHashSessionKey    16.1.7 哈希數(shù)據(jù)函數(shù)CryptHashData    16.1.8 對哈希簽名函數(shù)CryptSignHash    16.1.9 對哈希驗證簽名函數(shù)CryptVerifySignature   16.2 實例應(yīng)用    16.2.1 流程分析    16.2.2 實例實現(xiàn)  第17章 證書和證書庫函數(shù)   17.1 函數(shù)介紹    17.1.1 打開證書庫函數(shù)CertOpenStore    17.1.2 關(guān)閉證書庫函數(shù)CertCloseStore    17.1.3 從證書庫枚舉證書函數(shù)CertEnumCertificatesInStore    17.1.4 從證書庫查找證書函數(shù)CertFindCertificateInStore    17.1.5 創(chuàng)建證書句柄函數(shù)CertCreateCertificateContext    17.1.6 釋放證書句柄函數(shù)CertFreeCertificateContext    17.1.7 獲得證書句柄屬性函數(shù)CertGetCertificateContextProperty    17.1.8 設(shè)置證書句柄屬性函數(shù)CertSetCertificateContextProperty    17.1.9 獲得證書主題名稱函數(shù)CertGetNameString   17.2 實例應(yīng)用    17.2.1 流程分析    17.2.2 實例實現(xiàn)  第18章 開發(fā)實例——文件保險箱   18.1 功能預(yù)覽    18.1.1 文件加密    18.1.2 文件解密   18.2 流程分析    18.2.1 文件加密函數(shù)Encrypt_File    18.2.2 文件解密函數(shù)Decrypt_File   18.3 功能實現(xiàn)  第19章 開發(fā)實例—安全報文系統(tǒng)   19.1 功能預(yù)覽    19.1.1 安全報文發(fā)送    19.1.2 安全報文接收   19.2 流程分析    19.2.1 發(fā)送方流程分析    19.2.2 接收方流程分析   19.3 功能實現(xiàn)    19.3.1 發(fā)送方    19.3.2 接收方 第4篇 Java Security開發(fā) 第20章 Java Security開發(fā)入門   20.1 設(shè)計原理和體系結(jié)構(gòu)    20.1.1 設(shè)計原理    20.1.2 體系結(jié)構(gòu)   20.2 主要概念    20.2.1 引擎類和算法    20.2.2 實現(xiàn)和提供者    20.2.3 獲得實現(xiàn)實例的factory(工廠)方法   20.3 主要類和接口   20.4 搭建開發(fā)環(huán)境  第21章 Java消息摘要   21.1 MessageDigest類函數(shù)介紹    21.1.1 構(gòu)造方法    21.1.2 生成實例對象函數(shù)getInstance(1)    21.1.3 生成實例對象函數(shù)getInstance(2)    21.1.4 獲得密碼服務(wù)提供者函數(shù)getProvider    21.1.5 計算摘要函數(shù)update(1)    21.1.6 計算摘要函數(shù)update(2)    21.1.7 計算摘要函數(shù)update(3)    21.1.8 計算摘要函數(shù)update(4)    21.1.9 完成計算摘要函數(shù)digest(1)    21.1.10 完成計算摘要函數(shù)digest(2)    21.1.11 完成計算摘要函數(shù)digest(3)    21.1.12 比較摘要值函數(shù)isEqual    21.1.13 對象重置函數(shù)reset    21.1.14 獲得摘要算法函數(shù)getAlgorithm    21.1.15 獲得摘要值長度函數(shù)getDigestLength   21.2 實例應(yīng)用    21.2.1 流程分析    21.2.2 實例實現(xiàn)  第22章 Java加密和解密   22.1 KeyGenerator類函數(shù)介紹    22.1.1 構(gòu)造方法    22.1.2 生成實例對象函數(shù)getInstance(1)    22.1.3 生成實例對象函數(shù)getInstance(2)    22.1.4 獲得對象密碼算法函數(shù)getAlgorithm    22.1.5 獲得密碼服務(wù)提供者函數(shù)getProvider    22.1.6 初始化密鑰生成器函數(shù)init(1)    22.1.7 初始化密鑰生成器函數(shù)init(2)    22.1.8 初始化密鑰生成器函數(shù)init(3)    22.1.9 初始化密鑰生成器函數(shù)init(4)    22.1.10 初始化密鑰生成器函數(shù)init(5)    22.1.11 生成密鑰函數(shù)generateKey   22.2 Cipher類函數(shù)介紹    22.2.1 構(gòu)造方法    22.2.2 生成實例對象函數(shù)getInstance(1)    22.2.3 生成實例對象函數(shù)getInstance(2)    22.2.4 獲得密碼服務(wù)提供者函數(shù)getProvider    22.2.5 獲得密碼算法函數(shù)getAlgorithm    22.2.6 獲得密碼算法分組長度函數(shù)getBlockSize    22.2.7 獲得輸出數(shù)據(jù)的長度函數(shù)getOutputSize    22.2.8 獲得初始化向量函數(shù)getIV    22.2.9 密碼對象初始化函數(shù)init(1)    22.2.10 密碼對象初始化函數(shù)init(2)    22.2.11 密碼對象初始化函數(shù)init(3)    22.2.12 密碼對象初始化函數(shù)init(4)    22.2.13 計算加密或解密函數(shù)update(1)    22.2.14 計算加密或解密函數(shù)update(2)    22.2.15 計算加密或解密函數(shù)update(3)    22.2.16 計算加密或解密函數(shù)update(4)    22.2.17 結(jié)束加密或解密函數(shù)doFinal(1)    22.2.18 結(jié)束加密或解密函數(shù)doFinal(2)   22.3 實例應(yīng)用    22.3.1 流程分析    22.3.2 實例實現(xiàn)  第23章 Java數(shù)字簽名和驗證   23.1 KeyPairGenerator類函數(shù)介紹   23.1.1 構(gòu)造方法    23.1.2 獲得密碼算法函數(shù)getAlgorithm    23.1.3 生成實例對象函數(shù)getInstance(1)    23.1.4 生成實例對象函數(shù)getInstance(2)    23.1.5 密碼對象初始化函數(shù)initialize(1)    23.1.6 密碼對象初始化函數(shù)initialize(2)    23.1.7 生成非對稱密鑰對函數(shù)genKeyPair和generateKeyPair     23.2 Signature類函數(shù)介紹    23.2.1 構(gòu)造方法    23.2.2 獲得簽名對象算法函數(shù)getAlgorithm    23.2.3 生成實例對象函數(shù)getInstance(1)    23.2.4 生成實例對象函數(shù)getInstance(2)    23.2.5 初始化驗證對象函數(shù)initVerify(1)    23.2.6 初始化驗證對象函數(shù)initVerify(2)    23.2.7 初始化簽名對象函數(shù)initSign(1)    23.2.8 初始化簽名對象函數(shù)initSign(2)    23.2.9 更新簽名或驗證數(shù)據(jù)函數(shù)update(1)    23.2.10 更新簽名或驗證數(shù)據(jù)函數(shù)update(2)    23.2.11 更新簽名或驗證數(shù)據(jù)函數(shù)update(3)    23.2.12 簽名函數(shù)sign(1)    23.2.13 簽名函數(shù)sign(2)    23.2.14 驗證簽名函數(shù)verify(1)    23.2.15 驗證簽名函數(shù)verify(2)     23.3 實例應(yīng)用     23.3.1 數(shù)字簽名實現(xiàn)    23.3.2 數(shù)字簽名驗證實現(xiàn)    23.3.3 實例實現(xiàn)   第24章 keytool和證書類   24.1 keytool命令介紹    24.1.1 產(chǎn)生密鑰對命令genkey    24.1.2 向密鑰倉庫導(dǎo)入證書命令import    24.1.3 導(dǎo)出證書請求命令certreq    24.1.4 導(dǎo)出證書命令export    24.1.5 枚舉倉庫數(shù)據(jù)命令list    24.1.6 管理密鑰倉庫命令storepasswd    24.1.7 管理密鑰倉庫命令keypasswd    24.1.8 管理密鑰倉庫命令delete   24.2 X509Certificate類函數(shù)介紹    24.2.1 構(gòu)造方法    24.2.2 檢查證書有效期函數(shù)checkValidity(1)    24.2.3 檢查證書有效期函數(shù)checkValidity(2)    24.2.4 獲得證書版本函數(shù)getVersion    24.2.5 獲得證書序列號函數(shù)getSerialNumber    24.2.6 獲得證書頒發(fā)者函數(shù)getIssuerX500Principal    24.2.7 獲得證書主題信息函數(shù)getSubjectX500Principal    24.2.8 獲得證書有效起始日期函數(shù)getNotBefore    24.2.9 獲得證書有效期終止日期函數(shù)getNotAfter    24.2.10 獲得DER編碼的證書內(nèi)容函數(shù)getTBSCertificate    24.2.11 獲得證書簽名值函數(shù)getSignature    24.2.12 獲得證書簽名算法名稱函數(shù)getSigAlgName    24.2.13 獲得證書密鑰用途函數(shù)getKeyUsage   24.3 X509CRL類函數(shù)介紹    24.3.1 構(gòu)造方法    24.3.2 getEncoded    24.3.3 驗證CRL簽名函數(shù)verify    24.3.4 獲得CRL版本函數(shù)getVersion    24.3.5 獲得CRL頒發(fā)者函數(shù)getIssuerX500Principal    24.3.6 獲得CRL本次更新時間函數(shù)getThisUpdate    24.3.7 獲得CRL下次更新時間函數(shù)getNextUpdate    24.3.8 獲得被吊銷的證書函數(shù)getRevokedCertificate(1)    24.3.9 獲得被吊銷的證書函數(shù)getRevokedCertificate(2)    24.3.10 獲得被吊銷的證書函數(shù)getRevokedCertificate(3)    24.3.11 獲得DER編碼的CRL信息函數(shù)getTBSCertList    24.3.12 獲得簽名值函數(shù)getSignature    24.3.13 獲得簽名算法名稱函數(shù)getSigAlgName   24.4 實例應(yīng)用    24.4.1 流程分析    24.4.2 實例實現(xiàn)  第25章 Java開發(fā)實例—文件保險箱   25.1 功能預(yù)覽   25.2 流程分析   25.3 功能實現(xiàn)  第26章 Java開發(fā)實例——安全報文系統(tǒng)   26.1 功能預(yù)覽    26.1.1 安全報文發(fā)送    26.1.2 安全報文接收   26.2 流程分析    26.2.1 發(fā)送方流程分析    26.2.2 接收方流程分析   26.3 功能實現(xiàn)    26.3.1 密鑰和證書keystore的生成方法    26.3.2 安全報文發(fā)送方    26.3.3 安全報文接收方 第5篇 PKI電子商務(wù)網(wǎng)站應(yīng)用 第27章 ASP/ASP.Net電子商務(wù)網(wǎng)站應(yīng)用   27.1 配置IIS的SSL服務(wù)器證書    27.1.1 生成證書請求    27.1.2 安裝證書    27.1.3 啟用SSL   27.2 基于數(shù)字證書的用戶身份認證    27.2.1 基于數(shù)字證書的用戶身份認證的方法    27.2.2 ASP/ASP.NET頁面獲取客戶端證書的方法   27.3 數(shù)據(jù)簽名處理—基于   CAPICOM的應(yīng)用    27.3.1 CAPICOM簡介    27.3.2 CAPICOM對象——Certificate對象    27.3.3 CAPICOM對象——Certificates對象    27.3.4 CAPICOM對象——CertificateStatus對象    27.3.5 CAPICOM對象——Store對象    27.3.6 CAPICOM對象——SignedData對象    27.3.7 CAPICOM對象——Signer對象    27.3.8 CAPICOM對象——Signers對象    27.3.9 CAPICOM對象——EnvelopedData對象    27.3.10 CAPICOM對象——Recipients對象    27.3.11 CAPICOM對象——Algorithm對象    27.3.12 CAPICOM對象——其他對象    27.3.13 如何在客戶端安裝部署和調(diào)用    27.3.14 如何在服務(wù)器端安裝部署和調(diào)用     27.4 基于自開發(fā)控件應(yīng)用    27.4.1 開發(fā)ActiveX控件    27.4.2 如何在客戶端部署和調(diào)用    27.4.3 代碼示例   27.5 開發(fā)實例——安全登錄    27.5.1 登錄處理頁面(login.apsx.cs)    27.5.2 用戶頁面(main.apsx.cs)    27.5.3 出錯顯示頁面(err.apsx.cs)    27.5.4 測試功能   27.6 開發(fā)實例——訂單簽名    27.6.1 簽名頁面前臺(Sign.aspx)    27.6.2 簽名頁面后臺(Sign.aspx.cs)    27.6.3 簽證簽名頁面前臺(verifySign.aspx)    27.6.4 驗證簽名后臺頁面(verifySign.aspx.cs)   27.7 小結(jié)  第28章 JSP電子商務(wù)網(wǎng)站應(yīng)用   28.1 配置JSP Web服務(wù)器的SSL證書    28.1.1 生成證書請求文件(CSR)    28.1.2 導(dǎo)入證書    28.1.3 設(shè)置Tomcat支持SSL    28.1.4 使用瀏覽器訪問SSL服務(wù)器   28.2 基于數(shù)字證書的用戶身份認證    28.2.1 基于數(shù)字證書的用戶身份認證的方法    28.2.2 JSP頁面獲取客戶端證書的方法   28.3 數(shù)據(jù)簽名處理    28.3.1 JSP前臺提交簽名    28.3.2 JSP后臺處理簽名   28.4 開發(fā)實例——安全登錄    28.4.1 SSL登錄處理頁面(login.jsp)    28.4.2 用戶主頁面(main.jsp)    28.4.3 出錯處理頁面(err.jsp)    28.4.4 測試代碼   28.5 開發(fā)實例——訂單簽名    28.5.1 簽名頁面(Sign.jsp)    28.5.2 驗證簽名頁面(verifySign.jsp)  第29章 PHP電子商務(wù)網(wǎng)站應(yīng)用   29.1 配置Apache的SSL證書    29.1.1 安裝Apache+PHP+SSL    29.1.2 配置Apache的SSL證書   29.2 基于數(shù)字證書的用戶身份認證    29.2.1 基于數(shù)字證書的用戶身份認證的方法    29.2.2 PHP頁面獲取客戶端證書的方法   29.3 數(shù)據(jù)簽名處理    29.3.1 PHP前臺提交簽名    29.3.2 PHP后臺處理簽名   29.4 開發(fā)實例——安全登錄    29.4.1 登錄頁面(login.php)    29.4.2 用戶主頁面(main.php)    29.4.3 出錯處理頁面(err.php)    29.4.4 測試代碼  29.5 開發(fā)實例——訂單簽名   29.5.1 簽名頁面(Sign.php)   29.5.2 驗證簽名頁面(verifySign.php)   29.5.3 測試代碼 第6篇 其他PKI技術(shù)應(yīng)用 第30章 頒發(fā)和獲取數(shù)字證書   30.1 利用OpenSSL頒發(fā)數(shù)字證書    30.1.1 準備工作    30.1.2 建立根證書    30.1.3 頒發(fā)用戶證書   30.2 利用Windows證書服務(wù)頒發(fā)   數(shù)字證書    30.2.1 準備工作    30.2.2 安裝證書服務(wù)并設(shè)置CA    30.2.3 提交證書請求    30.2.4 證書頒發(fā)機構(gòu)處理請求    30.2.5 下載證書   30.3 通過CA機構(gòu)獲取數(shù)字證書  第31章 安全電子郵件應(yīng)用指南   31.1 Foxmail安全電子郵件應(yīng)用    31.1.1 為Foxmail郵箱賬戶配置證書    31.1.2 發(fā)送和閱讀安全電子郵件   31.2 Outlook安全電子郵件應(yīng)用    31.2.1 為Outlook郵箱賬戶配置證書    31.2.2 發(fā)送和閱讀安全電子郵件  第32章 代碼簽名應(yīng)用指南   32.1 什么是代碼簽名   32.2 Windows應(yīng)用程序代碼簽名    32.2.1 申請代碼簽名證書    32.2.2 使用SignCode.exe對代碼簽名    32.2.3 查看代碼簽名證書   32.3 Java代碼簽名    32.3.1 下載簽名工具    32.3.2 申請簽名證書    32.3.3 執(zhí)行代碼簽名    32.3.4 驗證Java代碼簽名   32.4 移動代碼簽名    32.4.1 主流移動操作系統(tǒng)對代碼簽名的要求    32.4.2 代碼簽名的操作方法

章節(jié)摘錄

  第1篇 PKI技術(shù)概述  第1章 PKI基礎(chǔ)知識  本章將介紹PKI的基礎(chǔ)知識、PKI的用途、數(shù)字證書等技術(shù),并介紹一下PKI常用術(shù)語。由于本書專注實戰(zhàn),所以這里對密碼理論知識不做深入介紹?! ?.1 PKI概述  PKI是Public Key Infrastructure的縮寫,即公開密鑰基礎(chǔ)設(shè)施,它是國際上解決開放式互聯(lián)網(wǎng)絡(luò)信息安全需求的一套體系。PKI體系支持身份認證,信息傳輸、存儲的完整性,消息傳輸、存儲的機密性,以及操作的不可否認性。“基礎(chǔ)設(shè)施”的作用,就是只要遵從必要的原則,不同的實體都可以方便地使用基礎(chǔ)設(shè)施提供的服務(wù)。使用PKI安全基礎(chǔ)設(shè)施就像將電器接通電源一樣簡單?! KI的核心是認證中心(cA)。CA就像公安局發(fā)放身份證一樣,發(fā)放一個叫“數(shù)字證書”的身份證明。這個數(shù)字證書包含了用戶身份的部分信息,以及用戶持有的公鑰。像公安局對身份證蓋章一樣,CA利用本身的私鑰為數(shù)字證書加上了數(shù)字簽名。PKI的核心技術(shù)基礎(chǔ)是公鑰密碼學的“加密”和“簽名”技術(shù)?! ?.2 什么是數(shù)字證書  數(shù)字證書就是網(wǎng)絡(luò)通信中標志通信各方身份信息的一系列數(shù)據(jù),其作用類似于現(xiàn)實生活中的身份證。它是由一個權(quán)威機構(gòu)發(fā)行的,人們可以在交往中用它來識別對方的身份?! ∽詈唵蔚淖C書包含一個公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。一般情況下證書中還包括密鑰的有效時間、發(fā)證機關(guān)(證書授權(quán)中心)的名稱、該證書的序列號等信息,證書的格式遵循ITUTX.509國際標準,如圖1.1所示。  一個標準的X.509數(shù)字證書包含以下一些內(nèi)容。  證書的版本號?! ∽C書的序列號。每個證書對于特定的CA來說都有一個唯一的證書序列號。  證書所使用的簽名算法?! ∽C書的發(fā)行機構(gòu)名稱,命名規(guī)則一般采用X.500格式?! ∽C書的有效期?,F(xiàn)在通用的證書一般采用UTC時間格式,它的計時范圍為l950~2049?! ∽C書所有人的名稱,命名規(guī)則一般采用X.500格式?! ∽C書所有人的公開密鑰?! ∽C書發(fā)行者對證書的簽名。在Windows下可以方便地查看證書,打開證書可以看到類似圖l.2所示的證書內(nèi)容?! ?.2.1 數(shù)字認證的原理  數(shù)字證書采用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶可以設(shè)定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設(shè)定一把公共密鑰(公鑰)并由本人公開,為一組用戶所共享,用于加密和驗證簽名。當發(fā)送一份保密文件時,發(fā)送方使用接收方的公鑰對數(shù)據(jù)加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。通過數(shù)字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密?! ≡诠_密鑰密碼體制中,常用的一種是RSA加密算法。其數(shù)學原理是將一個大數(shù)分解成兩個質(zhì)數(shù)的乘積,加密和解密用的是兩個不同的密鑰。即使已知明文、密文和加密密鑰(公鑰),想要推導(dǎo)出解密密鑰(私鑰),在計算上是不可能的。按現(xiàn)在的計算機技術(shù)水平,要破解目前采用的1024位RSA密鑰,需要上千年的計算時間。公開密鑰技術(shù)解決了密鑰發(fā)布的管理問題,商家可以公開其公開密鑰,而保留其私有密鑰。購物者可以用人人皆知的公開密鑰對發(fā)送的信息進行加密,安全地傳送給商家,然后由商家用自己的私有密鑰進行解密。  如果用戶需要發(fā)送加密數(shù)據(jù),則需要使用接收方的數(shù)字證書(公鑰)對數(shù)據(jù)進行加密,而接收方則使用自己的私鑰進行解密,從而保證數(shù)據(jù)的安全保密性?! ×硗?,用戶可以通過數(shù)字簽名實現(xiàn)數(shù)據(jù)的完整性和有效性,只需采用私鑰對數(shù)據(jù)進行加密處理,由于私鑰僅為用戶個人擁有,因此能夠保證簽名文件的唯一性,即保證數(shù)據(jù)由簽名者自己簽名發(fā)送,簽名者不能否認或難以否認;數(shù)據(jù)自簽發(fā)到接收這段過程中未曾作過任何修改,簽發(fā)的文件是真實的?! ?.2.2 數(shù)字認證是如何頒發(fā)的  數(shù)字證書是由認證中心頒發(fā)的,該證書是認證中心與用戶建立信任關(guān)系的基礎(chǔ)。在用戶使用數(shù)字證書之前必須首先下載和安裝?! ≌J證中心是一家能向用戶簽發(fā)數(shù)字證書以確認用戶身份的管理機構(gòu)。為了防止數(shù)字憑證的偽造,認證中心的公鑰必須是可靠的。認證中心必須公布其公鑰,或由更高級別的認證中心提供一個電子憑證來證明其公鑰的有效性。后一種方法導(dǎo)致了多級別認證中心的出現(xiàn)?! ?shù)字證書頒發(fā)過程如下:用戶產(chǎn)生了自己的密鑰對,并將公鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份后,將執(zhí)行一些必要的步驟,以確信請求確實由用戶發(fā)送而來。然后,認證中心將發(fā)給用戶一個數(shù)字證書。該證書內(nèi)附有用戶和他的密鑰等信息,還附有對認證中心公鑰加以確認的數(shù)字證書。當用戶想證明其公鑰的合法性時,就可以提供該數(shù)字證書。  1.3 為什么要使用數(shù)字證書  雖然因特網(wǎng)電子商務(wù)系統(tǒng)技術(shù)可以使在網(wǎng)上購物的顧客能夠極其方便地獲得商家和企業(yè)的信息,但同時也增加了對某些敏感或有價值的數(shù)據(jù)被濫用的風險。買方和賣方都必須保證在因特網(wǎng)上進行的一切金融交易運作都是真實可靠的,并且顧客、商家和企業(yè)等交易各方都具有絕對的信心,因而因特網(wǎng)電子商務(wù)系統(tǒng)必須保證具有十分可靠的安全保密技術(shù),也就是說,必須保證網(wǎng)絡(luò)安全的四大要素,即信息傳輸?shù)谋C苄浴?shù)據(jù)交換的完整性、發(fā)送信息的不可否認性、交易者身份的確定性。  1.3.1 信息傳輸?shù)谋C苄浴 〗灰字械纳虅?wù)信息均有保密的要求。例如,若信用卡的賬號和用戶名被人知悉,就可能被盜用;訂貨和付款的信息被競爭對手獲悉,就可能喪失商機。因此,在電子商務(wù)的信息傳播中,數(shù)據(jù)一般均有加密的要求。  1.3.2 交易者身份的確定性  網(wǎng)上交易的雙方很可能素昧平生,相隔千里。要使交易成功,首先要確認對方的身份。商家要考慮客戶端是不是騙子,而客戶也會擔心網(wǎng)上的商店是一個欺騙消費者的黑店。因此,能方便而可靠地確認對方身份是交易的前提條件?! ?.3.3 發(fā)送信息的不可否認性  由于商情的千變?nèi)f化,交易一旦達成是不能被取消的,否則必然會損害一方的利益。例如,訂購黃金時,訂貨時金價較低,但收到訂單后金價上漲了。這時,如果收單方否認收到訂單的實際時間,甚至否認收到訂單的事實,則訂貨方就會蒙受損失。因此,電子交易通信過程的各個環(huán)節(jié)都必須是不可否認的。

編輯推薦

  PKI,利用公鑰加密技術(shù),解決電子商務(wù)信息安全需求的成熟體系?! ?nèi)容充實,技術(shù)全面,覆蓋了常見的PKI應(yīng)用開發(fā)技術(shù)注重應(yīng)用。強調(diào)實戰(zhàn),填補了PKI類書籍只重理論沒有實戰(zhàn)的空白?! ∫浴安襟E+代碼”的方式進行講解,讓初學者快速入門實例典型、代碼豐富,有極大的應(yīng)用價值博客專欄支持,解惑答疑,深入交流。  本書直接從實戰(zhàn)出發(fā),介紹了PKI應(yīng)用開發(fā)過程和細節(jié)。 本書介紹了PKI應(yīng)用開發(fā)常用的技術(shù),包括OpenSSL開發(fā)、CrytoAPI開發(fā)、Java Security開發(fā)、電子商務(wù)網(wǎng)站應(yīng)用、PKI相關(guān)技術(shù)應(yīng)用等,涉及C語言、Java語言、Web開發(fā)語言(JSP、ASP/ASP.NET、PHP),每個系列都是按照先原理、再講解、再實戰(zhàn)的方式進行。力求讀者學完本書后,可進行項目實踐。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    精通PKI網(wǎng)絡(luò)安全認證技術(shù)與編程實現(xiàn) PDF格式下載


用戶評論 (總計22條)

 
 

  •   如果徹底不懂得pki又想快速寫出代碼的話,可以參考一下
  •   書的作者給了我很多的幫助。唯一的缺陷在于,書中對于私鑰的相關(guān)操作沒有提到
  •   很實用,適合初學者,簡單易懂。
  •   內(nèi)容易懂,有基礎(chǔ)的人很容易上手
  •   就像作者說的,很多例子可以拿來就用。
  •   此書對于初學PKI的程序員來說,是本難得的好書。她的實例能讓你很快就能掌握PKI編程技術(shù)。
  •   學PKI這本書很不錯,懂得了很多底層的現(xiàn)實過程。比單純的操作要好得多,其實這個挺不錯的。
  •   挺好的這本書講得比較詳細是一本經(jīng)典的PKI的教程
  •   直接可以用這本書作vc++下的開發(fā)
  •   適合搞開發(fā)的人使用就是里邊平臺太多專業(yè)知識反倒不夠全面
  •   雖然講的都是基礎(chǔ)和應(yīng)用,但是確實是讓我對加密應(yīng)用入門了
  •   這本書很不錯,能夠幫你快速入門。
  •   很經(jīng)典,很適合我們初學者學
  •   雖然知識點是比較淺,但是體系很完善,是本打基礎(chǔ)的好書
  •   但有一點沒有講清楚,即瀏覽器對SLL是如何支持的,沒有講清楚。比如IE什么時候會彈出SLL證書框,
  •   還是比較不錯的一本書,當然,更適合搞C/C++方面的安全開發(fā)工作者。從另一個角度來講,很適合OpenSSL的實踐!
  •   實現(xiàn)更多一些,有ejbca的就好了.可是講的openssl.各類語言包括的太多
  •   函數(shù)使用不是問題,關(guān)鍵是對安全原理的過程理解。。。
  •   暈,,我收到書看后才知道印刷有問題,,我的書共有四頁面無字情況。

    你能把P26,P27,P30,P31傳電子版本給我吧! 本人郵箱為290467588@qq.com

    把書發(fā)回去再又發(fā)回來太麻煩了! 謝謝
  •   可以作為參考書放在桌子上隨手翻一翻,但講的不深入;想深入研究不要買此書
  •   我收到書后,發(fā)現(xiàn)光盤已經(jīng)破碎了,請問怎么獲取新的光盤?
  •   很一般的書,有點作用
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7