一、小白剧场
大东:小白,生活当中,你有没有过签名的经历?
小白:怎么没有?这个行为太日常了!签名可是起到认证、核准与生效的作用呢。传统的数媒形式有手签、印章、指印等。
数字签名(图片来自网络)
大东:那你可知道计算机通信过程中也可以签名?
小白:是采用数字签名吗?
大东:不错,随着办公自动化、电子邮件、电子货币、电子银行的广泛使用,数字签名的安全性显得日益重要。完善的签名应具备发方不能抵赖、他人不能伪造以及能在公证人面前验证签名真伪的能力。
二、RSA算法
小白:前数字签名普遍采用公开钥密码技术来实现。1994年,美国标准与技术协会公布了数字签名标准(DSS),这是美国政府首次正式采用公钥密码。DSS的出现是公钥密码走向广泛应用的标志。公开密钥可以方便地实现数字签名,这是传统密码所不及的。
大东:看来你还了解的不少。数字签名技术是公开密钥加密技术和报文分解函数相结合的产物。与加密不同,数字签名的目的是为了保证信息的完整性和真实性。必须保证三点:一是接受者能够核实发送者对消息的签名;二是发送者这时候不能抵赖对消息的签名;三是接受者不能伪造对消息的签名。
小白:数字签名有很多方法,比如,利用数学函数从信息中提取摘要值作为签名内容,这一点与信息的完整性验证相一致,因此,单向散列函数是实现数字签名的方法之一。此外,由于数字签名的基本原理就是在信息中嵌入发送者本人的身份信息,而且这种身份信息应该具有唯一性,而公钥密码中的私钥恰好符合这种特性,所以,RSA算法也是数字签名的常用算法。
大东:RSA算法数字签名的过程是:发送方用自己的私钥对信息签名,并将信息和签名一并发送给接收方;接收方收到密文后,利用发送方的公钥采用相应的验证方程对签名进行验证,判断其是否有效。
RSA算法数字签名的过程(图片来自网络)
小白:RSA签名仍然使用了原来的加密解密算法,但公钥与私钥的用法不同。
大东:那你知道认证技术吗?
小白:认证又称为鉴别或确认,用来证实被认证对象(人与事)是否名符其实或是否有效的一种过程。即用来确保数据的真实性,防止入侵者主动攻击,如假冒、篡改等。认证一般是许多应用系统安全保障的第一道防线。
大东:认证是通过验证被认证对象(人与事)的一个或多个参数的真实性与有效性,来确定被认证对象是否名符其实。因此,被认证对象与要验证的参数之间应存在严格的对应关系,最好是唯一的。
小白:目前,计算机通信中采用的参数有口令、标识符、密钥、随机数等。而且使用基于密码的认证技术一般来说,用人的生理特征参数(如指纹、声纹、视网膜纹等)进行认证的安全性很高,但目前这种技术实现困难、成本很高而难以普及。
大东:现在已有多种实现各种数字签名的方法,但采用公开密钥算法要比常规算法更容易实现。其具体方法是:发送者A用其私人密钥对报文摘要进行加密(即签字),将原始报文与签名的摘要一同传送给接收者B,B用已知A的公开密钥对签名摘要解密,并将结果与原始报文的摘要比较。
小白:因为只有A的公开密钥能对此报文进行解密,而除A外没有别人具有A的私人密钥,即没有别人能产生这样的报文,所以此报文一定是由A加密的。这样,报文就被签名了。
三、认证字
大东:由上可知,采用公开密钥法进行通信时,通信的一方需要有另外一方的公开密钥。公开密钥是很容易得到的,如:从签了名的邮件。但如何确定你所获得的公开密钥是真的属于对方?
小白:在认证系统中,这个问题是通过认证字(Certificate)来解决的。一个认证字包括用户的信息(如:用户名、国家、单位等)、用户的公钥以及一个认证机构(CA)的签名。由认证机构担保认证字中的信息是属于该用户的。
大东:在建立SSL连接和给邮件签名时,用户需出示自己的认证字,使对方相信所得到的公开密钥是正确的。
小白:常见的强制用户认证方式有哪些?
大东:加密口令、一次性口令系统、令牌认证和其它的基于双因素的认证方式。
小白:用户身份认证是网络操作系统安全保密的第一道设防。如果非法入侵者攻破了这一道防线,则许多其它保护措施将被瓦解。
大东:目前,多数网络操作系统对用户的身份认证采用口令方式,然而许多口令系统是不安全的。采用单向函数和数据签名技术可以提高口令系统的安全性。
小白:完善的身份认证应该是用户身份和系统身份的对等相互认证。基于用户生理特征的身份认证是安全性极高的认证方法。
大东:然而由于技术复杂、成本高而不能普遍应用。一种安全性和成本都较适合的身份认证是基于智能卡的身份认证,它可实现一种基于零知识证明的人机交互认证。
小白:这项技术相关的事件呢?
四、时间标记
大东:有的,那就是文件前面中的时间标记(时间戳)。
小白:哦,这我没有了解过,大东你快说说。
大东:假如,Alice 交给 Bob 一张 10000 美元的签名数字支票,Bob将支票拿到银行进行验证签名,验证成功后将钱转移至自己的账户。接下来,Bob 保存了数字支票的副本,过了一周又拿着数字支票去银行兑换。
小白:这里只要 Alice 不对支票本进行清账,这种行为就可能一直持续。
大东:所以,数字签名里是应该包括时间标记的,将日期和时间的签名附在消息之中,并与消息中的其它部分一起签名。银行就会将时间标记存储在数据库当中了。
小白:这样的话,Bob再想第二次兑换 Alice的支票时,银行就会检查时间标记是否和数据库当中的一样,这样一来 Bob的行为就无法得逞,并会为此付出代价。
大东:还有就是数字指纹的运用。
小白:数字指纹对应的是信息摘要应用,从明文摘要转成秘文,能够唯一验证消息的真假。有了图章和指纹之后就能够生成数字签名。
数字签名组成(图片来源:上海国家会计学院)
大东:简单而言,数字签名能够被拆解为电子图章与数字指纹两项技术,电子图章是基于非对称加密算法的产品,作用是防止泄密。
小白:非对称加密算法,即双方分别有公钥私钥两套非对称的秘钥,加密时用公钥加密,解密时用私钥解密。
小白:这就跟现实生活中的图章非常相似,当你拥有了私钥,只有你知道保密算法,只要保密好,拿在自己手上,不告诉任何人,这就是你的图章。如果你用这个图章盖任何东西之后,那么就可以证明这个东西是你的,实现的是防止篡改功能。
五、最新消息
大东:随着会计信息化的不断发展,业财一体化的不断融合,会计的前端是否信息化,成为影响会计全智能的关键环节,而会计前端的信息化后,必须确保数据的完整性、真实性、合法性,数字签名技术将起决定性和基础性的作用。
大东:具体而言,云计算、业财一体化、财务全智能化,财务共享中心等技术实际上后台的运作早已经成熟了,前端的原始数据的真实性、完整性、合法性问题阻碍了这些技术的全面铺开。如果能解决这个问题,那么财务全数字化、全智能化、全自动化就非常容易实现,而真实性、完整性、合法性恰好与数字签名防伪造、防篡改、不可抵赖的特征相符。