您现在的位置是: 首页 > 名人语录 名人语录

签名的概念是什么

ysladmin 2024-08-08 人已围观

简介签名的概念是什么       很高兴有机会和大家一起谈论签名的概念是什么的话题。这个问题集合包含了一些常见和深入的问题,我将详细回答每一个问题,并分享我的见解和观点。1.法律上署名和签

签名的概念是什么

       很高兴有机会和大家一起谈论签名的概念是什么的话题。这个问题集合包含了一些常见和深入的问题,我将详细回答每一个问题,并分享我的见解和观点。

1.法律上署名和签名的区别

2.浅谈数字签名|数字签名是什么

3.请解释“数字签名”的概念及工作原理?

4.APK签名机制原理详解

签名的概念是什么

法律上署名和签名的区别

       署名一般是知识产权法的概念 即作者的署名权 作者的署名是对著作权的明示。而签名是一种对法律行为的确认。

法律分析

       在日常生活中,常常会遇到需要签名的情况,对于签名也应该严肃对待,虽然在签署合同时,有时候是可以签其他的姓名,比如别人的姓名,但是要注意的是该姓名的所有者必须经过授权,否则该行为则涉嫌“伪造”。虽然合同的有效性也不总是取决于是否与上的姓名相符,但是签名者必须严肃对待,不可以损害他人的利益,比如签署他人的姓名和名。法院对此进行了规定:签名必须至少有完整的姓氏、字迹可辨识,只有“线”或“钩”是不够的。在其他情况下,比如警方和官方机构的要求下,应该签署官方认证姓名。比如欠条上的签名 承认自己借了钱,简单来说就是具有产生变更 消灭 法律行为的意义,署名排列方式决定权主要指在数人作品中,作者姓名如何排列,由作者协商决定。排名顺序的不同,往往对本人的影响也很大。就一般情况而言,排名往往能得到人们较高的评价。如有的单位在评定职称时,对合作作品,只承认排在首位的作者可以作为其著作成果来参评职称。署名方式决定权即署其本名、笔名、别名或名的选择决定权。署名方式的选择往往反映作者公开或隐瞒其身份及相应程度的选择。署其本名或笔名,则是将其身份公之于众;署其他为人较少知道或不知道的名字,则往往是部分隐瞒或完全隐瞒自己身份。

法律依据

       《中华人民共和国民法典》 第四百九十条 当事人用合同书形式订立合同的,自当事人均签名、盖章或者按指印时合同成立。在签名、盖章或者按指印之前,当事人一方已经履行主要义务,对方接受时,该合同成立。法律、行政法规规定或者当事人约定合同应当用书面形式订立,当事人未用书面形式但是一方已经履行主要义务,对方接受时,该合同成立。

浅谈数字签名|数字签名是什么

       《电子签名法》中,电子签名的定义是“数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。通过技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性”。

       种类:

       在第三方电子平台上常见的方式有:

       附着于电子文件的手写签名的数字化图像,包括用生物笔记辨别法所形成的图像;

       向收件人发出的证实发送人身份的密码、计算机口令;

       用特定生物技术识别的工具,如指纹等。

       目前,企业正在用的电子签名主要有电子签名和电子签章。

       其中电子签名有两种形式,一种是第三方电子平台自动生成的电子签名,另外一种是手绘的电子签名,具有个性化。

请解释“数字签名”的概念及工作原理?

       [摘 要]随着网络通信的发展,数字签名作为信息安全技术认证技术中的一项关键技术,可以解决否认、伪造、篡改及冒充问题,用来保证信息传输过程中的完整性,提供信息发送者的身份认证和不可抵赖性。具有其它技术所无法替代的作用,在信息安全领域得到广泛的应用。

       [关键词]计算机技术 数字签名 应用

       [中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)03-0050-02

       目前,随着越来越多的部门和企业机构开始应用Internet,他们的信息共享程度与网上业务不断增加。与此同时,网络攻击和犯罪活动也日益猖獗。如何防止机密信息在网络中被泄露或窜改、如何有效地抵制和打击信息犯罪、保障网络与信息安全等,给人们提出了严峻的挑战。

       在因特网这个虚拟的世界中,该通过何种措施来使人们相信因特网信息的准确性呢?当然可以用强大的安全保障机制,来保证网上的信息不被那些“非法分子”入侵。目前有许多种技术来保证信息的安全不受侵犯,例如加密技术,访问控制技术、认证技术以及安全审计技术等,但这些技术大多数是用来预防用的,而且一旦被攻破,我们就不能保证信息的完整性。为此,只有在信息本身的安全上作出努力,数字签名技术应运而生。

       1 数字签名的概念

       数字签名不是指将你的签名扫描成数字图像,或者用触摸板获取的签名,更不是你的落款。数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。其验证的准确度是一般手工签名和图章的验证而无法比拟的。

       简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法。一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能签名等,它与具体应用环境密切相关。

       “数字签名”是目前电子商务、电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。它用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。这样数字签名就可用来防止有人修改信息;或冒用别人名义发送伪造信息;或发出(收到)信息后又加以否认等情况的发生。

       2 数字签名的工作原理及实现

       一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

       通常要验证文档未被篡改,而不必加密文档。数字签名可以验证文档未被篡改和确实来自有关方面。

       数字签名有两个基本组件:安全散列函数和公用密钥加密。安全散列算法取一块数据并将其分解成小位块。这个算法每次运行时对特定位模式产生相同的散列值。这样,发送文件之间计算散列时,接收计算相同的散列值。一个好的散列算法在文档少量改变时也能使结果大大改变。这样,别人篡改文档之后就很难保持相同的散列值。

       例如,创设散列算法根据文档中的各个字符计算数值,不管字符顺序。这样,ABC与CBA有相同散列值。因此别人可以把文档内容做顺序上的调整,面散列值却不变,从而使数字签名仍然有效。

       MD5和SHA之类的安全散列算法考虑字节顺序,几乎不可能对文档进行小改而散列值不变。这两种广泛应用的签名算法都是基于非对称加密即公钥密码学,目前已被破解。

       这样,数字签名的第二个部分就是某种逆公用密钥算法。通常,使用公用密钥算法时,用公用密钥加密数据,用专用密钥解密数据。对于数字签名正好相反,用专用密钥加密文本块的散列值,任何人要验证签名有效性时,就使用公用密钥验证该散列值是用相应的专用密钥加密的。

       在公钥密码学中,密钥是由公开密钥和私有密钥组成的密钥对。数字签名就是用私有密钥进行加密,接受方用公开密钥进行解密,由于从公开密钥不能推算出私有密钥,所以公开密钥不会损害私有密钥的安全。公开密钥无需保密,可以公开传播,而私有密钥必须保密。因此,当某人用其私有密钥加密消息时,能够用他的公开密钥正确解密,就可以肯定该消息是某人签字的,这就是数字签名的基本原理。因为其他人的公开密钥不可能正确解密该加密过的消息,其他人也不可能拥有该人的私有密钥而制造出该加密过的消息。

       3 数字签名的常用算法

       数字签名用到的算法很多,大体上可以分为密钥算法和单向散列算法,除上文提到的最常用的单向散列算法MD5和SHA,应用最为广泛的三种是: Hash签名、DSS签名、RSA签名。

       (1)Hash签名

       Hash签名不属于强计算密集型算法,应用较广泛。很多少量现金付款系统,如DEC的Millicent和CyberCash的CyberCoin等都使用Hash签名。使用较快的算法,可降低服务器消耗,减轻中央服务器负荷。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。如果中央或用户计算机中有一个被攻破,那么其安全性就受到了威胁。

       (2)DSS和RSA签名

       DSS和RSA用了公钥算法,不存在Hash的局限性。RSA是最流行的一种加密标准,许多产品的内核中都有RSA的软件和类库,早在Web飞速发展之前,RSA数据安全公司就负责数字签名软件与Macintosh操作系统的集成,在Apple的协作软件PowerTalk上还增加了签名拖放功能,用户只要把需要加密的数据拖到相应的图标上,就完成了电子形式的数字签名。RSA与Microsoft、IBM、Sun和Digital都签订了许可协议,使在其生产线上加入了类似的签名特性。与DSS不同,RSA既可以用来加密数据,也可以用于身份认证。和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。

       4 数字签名的用途

       在网络应用中,凡事要解决伪造、抵赖、冒充、篡改与身份鉴别的问题,都可运用数字签名来处理。

       例如:网上银行通过Internet向客户提供信息查询、对账、网上支付、资金划转、信贷业务以及投资理财等金融业务。网上银行将对传统银行业带来巨变,有人估计:网上银行将使劳动生产率年均增长54%。比如工商银行发给客户的U盾,就存储了代表你身份的数字证书与其他信息,其交易过程就需要数字签名的支持。

       电子商务能完成企业之间、企业与消费者之间在网上的交互活动。网上证券能在网上完成股票交易、网上证券信息服务、网上银行/证券转账业务等。这些业务需要身份鉴别防篡改等功能,也要使用数字签名。

       还有电子政务。加入一个没有身份认证服务的电子政务系统,任何人都可随便签发文件散布,而不用担心事发后的追查,因为无法甄别出签字者,该电子政务系统的危害性可想而知。电子政务系统必须提供身份认证服务、权限控制服务、信息保密服务、数据完整和不可否认服务。

       [参考文献]

       [1] 熊德健.用数字签名及时保障网络通信安全应用研究[J].甘肃科技,2008(22):p25~26.

       [2] 陈赫贝,阮飞.XML数字签名及其应用研究[J].微机发展,2005(2):p53~54.

       [3] 罗清元,王晓晓.数字签名技术的研究及应用[J].计算机安全,20084(2):p72~73.

       [4] 李红艳.浅析数字签名及其在电子商务中的应用[J].胜利油田职工大学学报,2005(4):p71.

        本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

APK签名机制原理详解

       数字签名(digital signature )概念:以电子形式存在于数据信息之中的,或作为其附件的或逻辑上与之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可。

       数字签名的工作原理:“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。 数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”这报文鉴别的描述!数字签名没有那么复杂。 数字签名: 发送方用自己的密钥对报文X进行D运算,生成不可读取的密文Dsk,然后将Dsx传送给接收方,接收方为了核实签名,用发送方的密钥进行E运算,还原报文。

       每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。

        众所周知,Android系统在安装Apk的过程中,会对Apk进行签名校验,校验通过后才能安装成功。那你知道签名校验的机制是什么?具体校验的是什么内容吗?申请第三方SDK(如微信支付)时填入的SAH1值是什么?目前众多的快速批量打包方案又是如何绕过签名检验的?

        我将通过一系列的文章来解开这些疑惑:

        这篇文章先来介绍Apk签名相关的基本知识。

        要知道签名是什么,先来看为什么需要签名 。大家都知道,在消息通信时,必须至少解决两个问题:一是确保消息来源的真实性,二是确保消息不会被第三方篡改。在安装Apk时,同样需要确保Apk来源的真实性,以及Apk没有被第三方篡改。如何解决这两个问题呢?方法就是开发者对Apk进行签名:在Apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。

        要了解如何实现签名,需要了解两个基本概念:数字摘要和数字证书。

        简单来说,就是对一个任意长度的数据,通过一个Hash算法计算后,都可以得到一个固定长度的二进制数据,这个数据就称为“摘要”。摘要具有下面的几个特征:

        前面已经说到,可以通过签名来确保数据来源的可靠性和数据的不可篡改性。签名就是在摘要的基础上再进行一次加密,对摘要加密后的数据就可以当作数字签名,在安装Apk需要对签名进行验证,验证通过才能继续安装。

        这里有两个过程:签名过程 和 校验过程。

        先来说签名过程:

        再来看校验过程:

        这里有一个前提:接收方必须要知道发送方的公钥和所使用的算法。如果数字签名和公钥一起被篡改,接收方无法得知,还是会校验通过。如何保证公钥的可靠性呢?答案是数字证书,数字证书是身份认证机构(Certificate Authority)颁发的,包含了以下信息:

        接收方收到消息后,先向CA验证证书的合法性(根据证书的签名、绑定的域名等信息。CA机构是权威的,可以保证这个过程的可靠性。)再进行签名校验。

        需要注意的是,Apk的证书通常的自签名的,也就是由开发者自己制作,没有向CA机构申请。Android在安装Apk时并没有校验证书本身的合法性,只是从证书中提取公钥和加密算法,这也正是对第三方Apk重新签名后,还能够继续在没有安装这个Apk的系统中继续安装的原因。

        我们在对Apk签名时并没有直接指定私钥、公钥和数字证书,而是使用keystore文件,这些信息都包含在了keystore文件中。根据编码不同,keystore文件分为很多种,Android使用的是Ja标准keystore格式JKS(Ja Key Storage),所以通过Android Studio导出的keystore文件是以.jks结尾的。

        keystore使用的证书标准是X.509,X.509标准也有多种编码格式,常用的有两种:pem(Privacy Enhanced Mail)和der(Distinguished Encoding Rules)。jks使用的是der格式,Android也支持直接使用pem格式的证书进行签名,我们下面会介绍。

        两种证书编码格式的区别:

       

        X.509证书格式:

        Android提供了两种对Apk的签名方式,一种是基于JAR的签名方式,另一种是基于Apk的签名方式,它们的主要区别在于使用的签名文件不一样:jarsigner使用keystore文件进行签名;apksigner除了支持使用keystore文件进行签名外,还支持直接指定pem证书文件和私钥进行签名。

        不知道大家有没有注意一个问题,我们通过keytool或者AS生成一个keystore的时候( 签署您的应用 ),除了要输入keystore的密码外,还要输入一个alias和key的密码。在签名时,除了要指定keystore文件和密码外,也要指定alias和key的密码,这是为什么呢?

        原因是keystore是一个密钥库,也就是说它可以存储多对密钥和证书,keystore的密码是用于保护keystore本身的,一对密钥和证书是通过alias来区分的。从这里可以看出jarsigner是支持使用多个证书对Apk进行签名的。apksigner也同样支持,关于apksigner的使用介绍可以参考官方文档 apksigner 。

        ok,签名的基本概念和校验过程就介绍到这里,关于JAR签名和V2签名机制的详细介绍,参考下面两篇文章:

       非常高兴能与大家分享这些有关“签名的概念是什么”的信息。在今天的讨论中,我希望能帮助大家更全面地了解这个主题。感谢大家的参与和聆听,希望这些信息能对大家有所帮助。