数字签名,数字时代的签名技术
在我们的日常工作、生活中时不时需要签字画押:各种申请、报销;工作合同、买卖合同;举不胜举……签名证明了签署者的身份;签署者签名表示对所签署内容已知、认同所签署内容;当出现纠纷时,可以由公正部门进行鉴定、仲裁……
在数字时代,数字处理技术使得我们的手写签名更容易被伪造、从一个文档挪到另一个文档……
随着电子商务、电子政务、各种在线交易的发展,数字时代的签名技术——数字签名(电子签名)应运而生。
数字签名是公钥密码学中最重要的概念之一,可以提供其他方式难以实现的安全性。
例如,在通信中,当其中一方收到一个消息时往往需要验证:
1.消息在传输过程中有没有被篡改
2.需要确认消息来自真正的发送者
这些要求就可以通过数字签名来实现。
又如,对存储数据或程序进行数字签名,可以用来验证数据或程序的完整性。它和传统手写签名类似,应具有以下特征:
(1)不可伪造性:除了签名者外,任何人都不能伪造签名者的合法签名。
(2)消息源认证:接收者确信这份签名来自签名者。
(3)不可重用性:一消息的签名不能用于其他消息(同一消息不同时刻的签名也不一样)。
(4)不可修改性:消息在签名后不能被修改。
(5)不可抵赖性:签名者事后不能否认自己的签名。
数字签名作为公钥密码技术,在使用时签名者必须事先生成一对公/私秘钥对;把公钥向公众公开;同时必须安全地保存好对应的私钥,这是数字签名的关键。
在对文档进行签名时首先用单向(不可逆)的散列函数将文档压缩成固定长度的摘要值,然后结合使用私钥和签名算法计算出数字签名结果。原始文本加上数字签名结果就构成了签名以后的文档。
图1:数字签名、验证的基本过程
任何验证者要验证签名先得查到签名者的公钥,提取原始文档及其签名结果。然后把原始文档用同样的压缩算法压缩到一个摘要值,并结合公钥、签名结果通过签名验证算法来验证它们是否满足签名方程。如果满足则文件确实是签发者签发的,否则就拒绝者签名文档。
在上述的过程中, 对于验证者必须保证公钥信息的真实性(确实是文件签发者的公钥),防止中间人攻击,这一点通常用数字证书来保证。另外,任意第三方拿到签名者的私钥就可以用它来对任意文档伪造签名,因此对于签名者而言,必须保护好自己的私钥。
PKI技术,软硬件系统的集合
PKI(PublicKeyInfrastructure)翻译过来就是公钥基础设施,可以理解为利用公钥技术为网络应用提供加密和数字签名等密码服务以及必需的密钥和证书管理体系。
从广义上来说,全部提供公钥加密和数字签名服务的系统,都可归结为PKI系统的一部分,PKI的主要目的是通过自己主动管理密钥和证书,为用户建立起一个安全的网络执行环境,使用户能够在多种应用环境下方便地使用加密和数字签名技术,从而保证网上数据的机密性、完整性、有效性。
图2:广义的PKI系统
·证书机构CA是PKI的信任基础,它管理公钥的整个生命周期。其作用包含:发放证书、规定证书的有效期和通过公布证书废除列表(CRL)确保必要时能够废除证书。
·注册机构RA提供用户和CA之间的一个接口。它获取并认证用户的身份,向CA提出证书请求。这里指的用户,是指将要向认证中心(即CA)申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。RA可作为CA的一部分,也能够独立,其功能包含个人身份审核、CRL管理、密钥产生和密钥对备份等。
·PKI存储库包含LDAP文件夹server和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行存储和管理,并提供一定的查询功能。X.500目录服务器用于”发布”用户的证书和黑名单信息,用户可通过标准的LDAP协议查询自己或其他人的证书和下载黑名单信息。
领取专属 10元无门槛券
私享最新 技术干货