王朝网络
分享
 
 
 

精通PKI网络安全认证技术与编程实现(1CD)

王朝导购·作者佚名
 
精通PKI网络安全认证技术与编程实现(1CD)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  参考价格: 点此进入淘宝搜索页搜索
  分类: 图书,计算机/网络,信息安全,

作者: 马臣云,王彦编著

出 版 社: 人民邮电出版社

出版时间: 2008-7-1字数: 766000版次: 1页数: 452印刷时间: 2008/07/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115178459包装: 平装编辑推荐

PKI,利用公钥加密技术,解决电子商务信息安全需求的成熟体系。

内容充实,技术全面,覆盖了常见的PKI应用开发技术注重应用。强调实战,填补了PKI类书籍只重理论没有实战的空白。

以“步骤+代码”的方式进行讲解,让初学者快速入门实例典型、代码丰富,有极大的应用价值博客专栏支持,解惑答疑,深入交流。

本书直接从实战出发,介绍了PKI应用开发过程和细节。 本书介绍了PKI应用开发常用的技术,包括OpenSSL开发、CrytoAPI开发、Java Security开发、电子商务网站应用、PKI相关技术应用等,涉及C语言、Java语言、Web开发语言(JSP、ASP/ASP.NET、PHP),每个系列都是按照先原理、再讲解、再实战的方式进行。力求读者学完本书后,可进行项目实践。

内容简介

PKI是解决开放式互联网络信息安全需求的成熟体系。PKI体系支持身份认证,信息传输、存储的完整性,消息传输、存储的机密性,以及操作的不可否认性。本书从实战出发,介绍了PKI应用开发过程和细节。全书共32章,分6篇,主要内容包括PKI基础知识、OpenSSL开发、CrytoAPI开发、Java Security开发、电子商务网站应用、PKI技术应用等,涉及C语言、Java语言、JSP、ASP/ASP.NET、PHP等开发语言。为了方便读者深入了解PKI,本书按照先原理、再讲解、再实战的方式进行,并且全部实例和软件都保存在随书赠送的光盘中。

本书适合PKI应用开发人员、企业网络管理人员以及大、中专院校师生阅读。

目录

第1篇PKI技术概述

第1章PKI基础知识

1.1PKI概述

1.2什么是数字证书

1.2.1数字认证的原理

1.2.2数字认证是如何颁发的

1.3为什么要使用数字证书

1.3.1信息传输的保密性

1.3.2交易者身份的确定性

1.3.3发送信息的不可否认性

1.3.4数据交换的完整性

1.4加密技术

1.4.1对称加密技术

1.4.2非对称加密技术

1.5数字签名技术

1.5.1数字签名技术

1.5.2时间戳技术

第2篇OpenSSL开发

第2章OpenSSL入门

2.1OpenSSL概述

2.1.1OpenSSL的组成

2.1.2OpenSSL的优缺点

2.2如何下载编译

2.2.1Windows下编译OpenSSL

2.2.2Linux下编译OpenSSL

2.3如何搭建开发环境

2.3.1Windows下搭建OpenSSL开发环境

2.3.2Linux下搭建OpenSSL开发环境

2.4小结

第3章OpenSSL加密和解密

3.1概述

3.2函数介绍

3.2.1初始化函数EVP_CIPHER_CTX_init

3.2.2加密初始化函数EVP_EncryptInit_ex

3.2.3数据加密Update函数EVP_EncryptUpdate

3.2.4数据加密结束函数EVP_EncryptFinal_ex

3.2.5解密初始化函数EVP_DecryptInit_ex

3.2.6数据解密Update函数EVP_DecryptUpdate

3.2.7数据解密结束函数EVP_DecryptFinal_ex

3.3实例应用——数据加密

3.3.1流程分析

3.3.2实例实现

第4章OpenSSL消息摘要

4.1概述

4.2函数介绍

4.2.1初始化函数EVP_MD_CTX_init

4.2.2设置摘要算法函数EVP_DigestInit_ex

4.2.3摘要Update函数EVP_DigestUpdate

4.2.4摘要结束函数EVP_DigestFinal_ex

4.2.5计算摘要函数EVP_Digest

4.3实例应用

4.3.1流程分析

4.3.2实例实现

第5章OpenSSL签名和验证

5.1函数介绍

5.1.1签名初始化函数EVP_SignInit_ex

5.1.2签名Update函数EVP_SignUpdate

5.1.3签名结束函数EVP_SignFinal

5.1.4验证初始化函数EVP_VerifyInit_ex

5.1.5验证Update函数EVP_VerifyUpdate

5.1.6验证结束函数EVP_VerifyFinal

5.2实例应用

5.2.1流程分析

5.2.2实例实现

第6章OpenSSL Base64编解和解码

6.1函数介绍

6.1.1Base64编码初始化函数EVP_EncodeInit

6.1.2Base64编码Update函数EVP_EncodeUpdate

6.1.3Base64编码结束函数EVP_EncodeFinal

6.1.4Base64编码函数EVP_EncodeBlock

6.1.5Base64解码函数EVP_DecodeBlock

6.1.6Base64解码初始化函数EVP_DecodeInit

6.1.7Base64解码Update函数EVP_DecodeUpdate

6.1.8Base64解码结束函数EVP_DecodeFinal

6.2实例应用

6.2.1流程分析

6.2.2实例实现

第7章OpenSSL证书操作

7.1函数介绍

7.1.1DER编码转换为内部结构体函数d2i_X509

7.1.2获得证书版本函数X509_get_version

7.1.3获得证书序列号函数X509_get_serialNumber

7.1.4获得证书颁发者信息函数X509_get_issuer_name

7.1.5获得证书拥有者信息函数X509_get_subject_name

7.1.6获得证书有效期的起始日期函数X509_get_notBefore

7.1.7获得证书有效期的终止日期函数X509_get_notAfter

7.1.8获得证书公钥函数X509_get_pubkey

7.1.9创建和释放证书存储区函数X509_STORE_new、X509_STORE_free

7.1.10向证书存储区添加证书函数X509_STORE_add_cert

7.1.11向证书存储区添加证书吊销列表函数X509_STORE_add_crl

7.1.12创建证书存储区上下文环境函数X509_STORE_CTX_new

7.1.13释放证书存储区上下文环境函数X509_STORE_CTX_free

7.1.14初始化证书存储区上下文环境函数X509_STORE_CTX_init

7.1.15验证证书函数X509_verify_cert

7.2实例应用

7.2.1流程分析

7.2.2实例实现

第8章SSL/TLS编程

8.1函数介绍

8.1.1初始化SSL算法库函数SSL_library_init

8.1.2初始化SSL上下文环境变量函数SSL_CTX_new

8.1.3释放SSL上下文环境变量函数SSL_CTX_free

8.1.4设置SSL证书函数SSL_CTX_use_certificate_file

8.1.5设置SSL私钥函数SSL_CTX_use_PrivateKey_file

8.1.6设置SSL证书函数SSL_CTX_use_certificate

8.1.7设置SSL私钥函数SSL_CTX_use_PrivateKey

8.1.8检查SSL私钥函数SSL_CTX_check_private_key

8.1.9新建SSL句柄函数SSL_new

8.1.10释放SSL句柄函数SSL_free

8.1.11设置socket句柄函数SSL_set_fd

8.1.12建立SSL链接函数SSL_connect

8.1.13接受SSL链接函数SSL_accept

8.1.14获得SSL链接使用的证书SSL_get_peer_certificate

8.1.15发送SSL数据函数SSL_write

8.1.16读取SSL数据函数SSL_read

8.2实例应用

8.2.1流程分析

8.2.2实例实现

第9章开发实例——文件保险箱

9.1功能预览

9.1.1文件加密

9.1.2文件解密

9.2流程分析

9.2.1文件加密函数Encrypt_File

9.2.2文件解密函数Decrypt_File

9.3功能实现

第10章开发实例——安全通信软件

10.1功能预览

10.2流程分析

10.2.1服务端流程分析

10.2.2客户端流程分析

10.3功能实现

10.3.1服务端

10.3.2客户端

第11章开发实例——安全报文系统

11.1功能预览

11.1.1发送方产生安全报文

11.1.2接收方解密安全报文

11.2流程分析

11.2.1发送方流程分析

11.2.2接收方流程分析

11.3功能实现

11.3.1发送方

11.3.2接收方

第3篇CrytoAPI开发

第12章CryptoAPI开发入门

12.1CryptoAPI的组成

12.2CryptoAPI的优缺点

12.3如何搭建开发环境

第13章密码服务提供者CSP函数

13.1函数介绍

13.1.1连接CSP函数CryptAcquireContext

13.1.2枚举CSP函数CryptEnumProviders

13.1.3获得默认CSP函数CryptGetDefaultProvider

13.1.4设置默认CSP函数CryptSetProvider

13.1.5获得CSP参数属性函数CryptGetProvParam

13.1.6设置CSP参数函数CryptSetProvParam

13.1.7断开CSP函数CryptReleaseContext

13.2实例应用

13.2.1流程分析

13.2.2实例实现

第14章密钥的产生和交换函数

14.1函数介绍

14.1.1生成函数CryptGenKey

14.1.2派生密钥函数CryptDeriveKey

14.1.3销毁密钥函数CryptDestroyKey

14.1.4复制密钥函数CryptDuplicateKey

14.1.5导出密钥函数CryptExportKey

14.1.6导入密钥函数CryptImportKey

14.1.7获得密钥参数函数CryptGetKeyParam

14.1.8获得密钥参数函数CryptSetKeyParam

14.1.9获得密钥参数函数CryptGenRandom

14.2实例应用

14.2.1流程分析

14.2.2实例实现

第15章数据的加密和解密函数

15.1函数介绍

15.1.1数据加密函数CryptEncrypt

15.1.2数据解密函数CryptDecrypt

15.2实例应用

15.2.1流程分析

15.2.2实例实现

第16章哈希和数字签名函数

16.1函数介绍

16.1.1创建哈希函数CryptCreateHash

16.1.2销毁哈希CryptDestroyHash

16.1.3复制哈希函数CryptDuplicateHash

16.1.4获得哈希参数函数CryptGetHashParam

16.1.5设置哈希参数函数CryptSetHashParam

16.1.6哈希会话密钥函数CryptHashSessionKey

16.1.7哈希数据函数CryptHashData

16.1.8对哈希签名函数CryptSignHash

16.1.9对哈希验证签名函数CryptVerifySignature

16.2实例应用

16.2.1流程分析

16.2.2实例实现

第17章证书和证书库函数

17.1函数介绍

17.1.1打开证书库函数CertOpenStore

17.1.2关闭证书库函数CertCloseStore

17.1.3从证书库枚举证书函数CertEnumCertificatesInStore

17.1.4从证书库查找证书函数CertFindCertificateInStore

17.1.5创建证书句柄函数CertCreateCertificateContext

17.1.6释放证书句柄函数CertFreeCertificateContext

17.1.7获得证书句柄属性函数CertGetCertificateContextProperty

17.1.8设置证书句柄属性函数CertSetCertificateContextProperty

17.1.9获得证书主题名称函数CertGetNameString

17.2实例应用

17.2.1流程分析

17.2.2实例实现

第18章开发实例——文件保险箱

18.1功能预览

18.1.1文件加密

18.1.2文件解密

18.2流程分析

18.2.1文件加密函数Encrypt_File

18.2.2文件解密函数Decrypt_File

18.3功能实现

第19章开发实例—安全报文系统

19.1功能预览

19.1.1安全报文发送

19.1.2安全报文接收

19.2流程分析

19.2.1发送方流程分析

19.2.2接收方流程分析

19.3功能实现

19.3.1发送方

19.3.2接收方

第4篇Java Security开发

第20章Java Security开发入门

20.1设计原理和体系结构

20.1.1设计原理

20.1.2体系结构

20.2主要概念

20.2.1引擎类和算法

20.2.2实现和提供者

20.2.3获得实现实例的factory(工厂)方法

20.3主要类和接口

20.4搭建开发环境

第21章Java消息摘要

21.1MessageDigest类函数介绍

21.1.1构造方法

21.1.2生成实例对象函数getInstance(1)

21.1.3生成实例对象函数getInstance(2)

21.1.4获得密码服务提供者函数getProvider

21.1.5计算摘要函数update(1)

21.1.6计算摘要函数update(2)

21.1.7计算摘要函数update(3)

21.1.8计算摘要函数update(4)

21.1.9完成计算摘要函数digest(1)

21.1.10完成计算摘要函数digest(2)

21.1.11完成计算摘要函数digest(3)

21.1.12比较摘要值函数isEqual

21.1.13对象重置函数reset

21.1.14获得摘要算法函数getAlgorithm

21.1.15获得摘要值长度函数getDigestLength

21.2实例应用

21.2.1流程分析

21.2.2实例实现

第22章Java加密和解密

22.1KeyGenerator类函数介绍

22.1.1构造方法

22.1.2生成实例对象函数getInstance(1)

22.1.3生成实例对象函数getInstance(2)

22.1.4获得对象密码算法函数getAlgorithm

22.1.5获得密码服务提供者函数getProvider

22.1.6初始化密钥生成器函数init(1)

22.1.7初始化密钥生成器函数init(2)

22.1.8初始化密钥生成器函数init(3)

22.1.9初始化密钥生成器函数init(4)

22.1.10初始化密钥生成器函数init(5)

22.1.11生成密钥函数generateKey

22.2Cipher类函数介绍

22.2.1构造方法

22.2.2生成实例对象函数getInstance(1)

22.2.3生成实例对象函数getInstance(2)

22.2.4获得密码服务提供者函数getProvider

22.2.5获得密码算法函数getAlgorithm

22.2.6获得密码算法分组长度函数getBlockSize

22.2.7获得输出数据的长度函数getOutputSize

22.2.8获得初始化向量函数getIV

22.2.9密码对象初始化函数init(1)

22.2.10密码对象初始化函数init(2)

22.2.11密码对象初始化函数init(3)

22.2.12密码对象初始化函数init(4)

22.2.13计算加密或解密函数update(1)

22.2.14计算加密或解密函数update(2)

22.2.15计算加密或解密函数update(3)

22.2.16计算加密或解密函数update(4)

22.2.17结束加密或解密函数doFinal(1)

22.2.18结束加密或解密函数doFinal(2)

22.3实例应用

22.3.1流程分析

22.3.2实例实现

第23章Java数字签名和验证

23.1KeyPairGenerator类函数介绍

23.1.1构造方法

23.1.2获得密码算法函数getAlgorithm

23.1.3生成实例对象函数getInstance(1)

23.1.4生成实例对象函数getInstance(2)

23.1.5密码对象初始化函数initialize(1)

23.1.6密码对象初始化函数initialize(2)

23.1.7生成非对称密钥对函数genKeyPair和generateKeyPair

23.2Signature类函数介绍

23.2.1构造方法

23.2.2获得签名对象算法函数getAlgorithm

23.2.3生成实例对象函数getInstance(1)

23.2.4生成实例对象函数getInstance(2)

23.2.5初始化验证对象函数initVerify(1)

23.2.6初始化验证对象函数initVerify(2)

23.2.7初始化签名对象函数initSign(1)

23.2.8初始化签名对象函数initSign(2)

23.2.9更新签名或验证数据函数update(1)

23.2.10更新签名或验证数据函数update(2)

23.2.11更新签名或验证数据函数update(3)

23.2.12签名函数sign(1)

23.2.13签名函数sign(2)

23.2.14验证签名函数verify(1)

23.2.15验证签名函数verify(2)

23.3实例应用

23.3.1数字签名实现

23.3.2数字签名验证实现

23.3.3实例实现

第24章keytool和证书类

24.1keytool命令介绍

24.1.1产生密钥对命令genkey

24.1.2向密钥仓库导入证书命令import

24.1.3导出证书请求命令certreq

24.1.4导出证书命令export

24.1.5枚举仓库数据命令list

24.1.6管理密钥仓库命令storepasswd

24.1.7管理密钥仓库命令keypasswd

24.1.8管理密钥仓库命令delete

24.2X509Certificate类函数介绍

24.2.1构造方法

24.2.2检查证书有效期函数checkValidity(1)

24.2.3检查证书有效期函数checkValidity(2)

24.2.4获得证书版本函数getVersion

24.2.5获得证书序列号函数getSerialNumber

24.2.6获得证书颁发者函数getIssuerX500Principal

24.2.7获得证书主题信息函数getSubjectX500Principal

24.2.8获得证书有效起始日期函数getNotBefore

24.2.9获得证书有效期终止日期函数getNotAfter

24.2.10获得DER编码的证书内容函数getTBSCertificate

24.2.11获得证书签名值函数getSignature

24.2.12获得证书签名算法名称函数getSigAlgName

24.2.13获得证书密钥用途函数getKeyUsage

24.3X509CRL类函数介绍

24.3.1构造方法

24.3.2getEncoded

24.3.3验证CRL签名函数verify

24.3.4获得CRL版本函数getVersion

24.3.5获得CRL颁发者函数getIssuerX500Principal

24.3.6获得CRL本次更新时间函数getThisUpdate

24.3.7获得CRL下次更新时间函数getNextUpdate

24.3.8获得被吊销的证书函数getRevokedCertificate(1)

24.3.9获得被吊销的证书函数getRevokedCertificate(2)

24.3.10获得被吊销的证书函数getRevokedCertificate(3)

24.3.11获得DER编码的CRL信息函数getTBSCertList

24.3.12获得签名值函数getSignature

24.3.13获得签名算法名称函数getSigAlgName

24.4实例应用

24.4.1流程分析

24.4.2实例实现

第25章Java开发实例—文件保险箱

25.1功能预览

25.2流程分析

25.3功能实现

第26章Java开发实例——安全报文系统

26.1功能预览

26.1.1安全报文发送

26.1.2安全报文接收

26.2流程分析

26.2.1发送方流程分析

26.2.2接收方流程分析

26.3功能实现

26.3.1密钥和证书keystore的生成方法

26.3.2安全报文发送方

26.3.3安全报文接收方

第5篇PKI电子商务网站应用

第27章ASP/ASP.Net电子商务网站应用

27.1配置IIS的SSL服务器证书

27.1.1生成证书请求

27.1.2安装证书

27.1.3启用SSL

27.2基于数字证书的用户身份认证

27.2.1基于数字证书的用户身份认证的方法

27.2.2ASP/ASP.NET页面获取客户端证书的方法

27.3数据签名处理—基于 CAPICOM的应用

27.3.1CAPICOM简介

27.3.2CAPICOM对象——Certificate对象

27.3.3CAPICOM对象——Certificates对象

27.3.4CAPICOM对象——CertificateStatus对象

27.3.5CAPICOM对象——Store对象

27.3.6CAPICOM对象——SignedData对象

27.3.7CAPICOM对象——Signer对象

27.3.8CAPICOM对象——Signers对象

27.3.9CAPICOM对象——EnvelopedData对象

27.3.10CAPICOM对象——Recipients对象

27.3.11CAPICOM对象——Algorithm对象

27.3.12CAPICOM对象——其他对象

27.3.13如何在客户端安装部署和调用

27.3.14如何在服务器端安装部署和调用

27.4基于自开发控件应用

27.4.1开发ActiveX控件

27.4.2如何在客户端部署和调用

27.4.3代码示例

27.5开发实例——安全登录

27.5.1登录处理页面(login.apsx.cs)

27.5.2用户页面(main.apsx.cs)

27.5.3出错显示页面(err.apsx.cs)

27.5.4测试功能

27.6开发实例——订单签名

27.6.1签名页面前台(Sign.aspx)

27.6.2签名页面后台(Sign.aspx.cs)

27.6.3签证签名页面前台(verifySign.aspx)

27.6.4验证签名后台页面(verifySign.aspx.cs)

27.7小结

第28章JSP电子商务网站应用

28.1配置JSP Web服务器的SSL证书

28.1.1生成证书请求文件(CSR)

28.1.2导入证书

28.1.3设置Tomcat支持SSL

28.1.4使用浏览器访问SSL服务器

28.2基于数字证书的用户身份认证

28.2.1基于数字证书的用户身份认证的方法

28.2.2JSP页面获取客户端证书的方法

28.3数据签名处理

28.3.1JSP前台提交签名

28.3.2JSP后台处理签名

28.4开发实例——安全登录

28.4.1SSL登录处理页面(login.jsp)

28.4.2用户主页面(main.jsp)

28.4.3出错处理页面(err.jsp)

28.4.4测试代码

28.5开发实例——订单签名

28.5.1签名页面(Sign.jsp)

28.5.2验证签名页面(verifySign.jsp)

第29章PHP电子商务网站应用

29.1配置Apache的SSL证书

29.1.1安装Apache+PHP+SSL

29.1.2配置Apache的SSL证书

29.2基于数字证书的用户身份认证

29.2.1基于数字证书的用户身份认证的方法

29.2.2PHP页面获取客户端证书的方法

29.3数据签名处理

29.3.1PHP前台提交签名

29.3.2PHP后台处理签名

29.4开发实例——安全登录

29.4.1登录页面(login.php)

29.4.2用户主页面(main.php)

29.4.3出错处理页面(err.php)

29.4.4测试代码

29.5开发实例——订单签名

29.5.1签名页面(Sign.php)

29.5.2验证签名页面(verifySign.php)

29.5.3测试代码

第6篇其他PKI技术应用

第30章颁发和获取数字证书

30.1利用OpenSSL颁发数字证书

30.1.1准备工作

30.1.2建立根证书

30.1.3颁发用户证书

30.2利用Windows证书服务颁发 数字证书

30.2.1准备工作

30.2.2安装证书服务并设置CA

30.2.3提交证书请求

30.2.4证书颁发机构处理请求

30.2.5下载证书

30.3通过CA机构获取数字证书

第31章安全电子邮件应用指南

31.1Foxmail安全电子邮件应用

31.1.1为Foxmail邮箱账户配置证书

31.1.2发送和阅读安全电子邮件

31.2Outlook安全电子邮件应用

31.2.1为Outlook邮箱账户配置证书

31.2.2发送和阅读安全电子邮件

第32章代码签名应用指南

32.1什么是代码签名

32.2Windows应用程序代码签名

32.2.1申请代码签名证书

32.2.2使用SignCode.exe对代码签名

32.2.3查看代码签名证书

32.3Java代码签名

32.3.1下载签名工具

32.3.2申请签名证书

32.3.3执行代码签名

32.3.4验证Java代码签名

32.4移动代码签名

32.4.1主流移动操作系统对代码签名的要求

32.4.2代码签名的操作方法

书摘插图

第1篇PKI技术概述

第1章PKI基础知识

本章将介绍PKI的基础知识、PKI的用途、数字证书等技术,并介绍一下PKI常用术语。由于本书专注实战,所以这里对密码理论知识不做深入介绍。

1.1PKI概述

PKI是Public Key Infrastructure的缩写,即公开密钥基础设施,它是国际上解决开放式互联网络信息安全需求的一套体系。PKI体系支持身份认证,信息传输、存储的完整性,消息传输、存储的机密性,以及操作的不可否认性。“基础设施”的作用,就是只要遵从必要的原则,不同的实体都可以方便地使用基础设施提供的服务。使用PKI安全基础设施就像将电器接通电源一样简单。

PKI的核心是认证中心(cA)。CA就像公安局发放身份证一样,发放一个叫“数字证书”的身份证明。这个数字证书包含了用户身份的部分信息,以及用户持有的公钥。像公安局对身份证盖章一样,CA利用本身的私钥为数字证书加上了数字签名。PKI的核心技术基础是公钥密码学的“加密”和“签名”技术。

1.2什么是数字证书

数字证书就是网络通信中标志通信各方身份信息的一系列数据,其作用类似于现实生活中的身份证。它是由一个权威机构发行的,人们可以在交往中用它来识别对方的身份。

最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间、发证机关(证书授权中心)的名称、该证书的序列号等信息,证书的格式遵循ITUTX.509国际标准,如图1.1所示。

一个标准的X.509数字证书包含以下一些内容。

证书的版本号。

证书的序列号。每个证书对于特定的CA来说都有一个唯一的证书序列号。

证书所使用的签名算法。

证书的发行机构名称,命名规则一般采用X.500格式。

证书的有效期。现在通用的证书一般采用UTC时间格式,它的计时范围为l950~2049。

证书所有人的名称,命名规则一般采用X.500格式。

证书所有人的公开密钥。

证书发行者对证书的签名。在Windows下可以方便地查看证书,打开证书可以看到类似图l.2所示的证书内容。

1.2.1数字认证的原理

数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户可以设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。

在公开密钥密码体制中,常用的一种是RSA加密算法。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公钥),想要推导出解密密钥(私钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商家可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商家,然后由商家用自己的私有密钥进行解密。

如果用户需要发送加密数据,则需要使用接收方的数字证书(公钥)对数据进行加密,而接收方则使用自己的私钥进行解密,从而保证数据的安全保密性。

另外,用户可以通过数字签名实现数据的完整性和有效性,只需采用私钥对数据进行加密处理,由于私钥仅为用户个人拥有,因此能够保证签名文件的唯一性,即保证数据由签名者自己签名发送,签名者不能否认或难以否认;数据自签发到接收这段过程中未曾作过任何修改,签发的文件是真实的。

1.2.2数字认证是如何颁发的

数字证书是由认证中心颁发的,该证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。

认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公钥必须是可靠的。认证中心必须公布其公钥,或由更高级别的认证中心提供一个电子凭证来证明其公钥的有效性。后一种方法导致了多级别认证中心的出现。

数字证书颁发过程如下:用户产生了自己的密钥对,并将公钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来。然后,认证中心将发给用户一个数字证书。该证书内附有用户和他的密钥等信息,还附有对认证中心公钥加以确认的数字证书。当用户想证明其公钥的合法性时,就可以提供该数字证书。

1.3为什么要使用数字证书

虽然因特网电子商务系统技术可以使在网上购物的顾客能够极其方便地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。买方和卖方都必须保证在因特网上进行的一切金融交易运作都是真实可靠的,并且顾客、商家和企业等交易各方都具有绝对的信心,因而因特网电子商务系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四大要素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性。

1.3.1信息传输的保密性

交易中的商务信息均有保密的要求。例如,若信用卡的账号和用户名被人知悉,就可能被盗用;订货和付款的信息被竞争对手获悉,就可能丧失商机。因此,在电子商务的信息传播中,数据一般均有加密的要求。

1.3.2交易者身份的确定性

网上交易的双方很可能素昧平生,相隔千里。要使交易成功,首先要确认对方的身份。商家要考虑客户端是不是骗子,而客户也会担心网上的商店是一个欺骗消费者的黑店。因此,能方便而可靠地确认对方身份是交易的前提条件。

1.3.3发送信息的不可否认性

由于商情的千变万化,交易一旦达成是不能被取消的,否则必然会损害一方的利益。例如,订购黄金时,订货时金价较低,但收到订单后金价上涨了。这时,如果收单方否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此,电子交易通信过程的各个环节都必须是不可否认的。

……

精通PKI网络安全认证技术与编程实现(1CD)

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
更多商品
Ajax高级程序设计(第2版)
探索数码摄影的奥秘(第二版)(彩印)
M时代——手机与你
Solidworks 2007宝典(1CD)
精通Adobe Audition 2.0音频处理(1CD)
新型电磁炉电路图集
数码人像摄影——主题摄影(彩印)
电路设计与制版——Protel 99入门与提高(修订版)(1CD)
Casio fx50F编程计算器原理与测量程序
*工程机械管理
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有