电子合同实现了合同的签约方可以通过互联网进行签订,广泛应用于互联网金融、电子商务、O2O等行业,是互联网中一项相当重要的基础性服务,也是从事互联网行业的产品经理必须着重研究学习的领域。电子合同的有效性来自于电子签名,本篇文章将详细解析电子合同及电子签名的原理以及电子合同的产品设计思路。 一、综述 电子合同是《中华人民共和国合同法》规定的书面合同形式的一种,指双方或多方当事人之间通过电子信息网络以电子的形式达成的设立、变更、终止财产性民事权利义务关系的协议。传统的合同签订需要双方同时到场,确认合同内容后进行签字加盖指模(公章),才具有法律承认的有效性,能对合同签约方形成制约。 这种签约方式自然不适应互联网化产品,随着互联网技术进步,相关法律也顺应时代发展,规定了符合要求的电子合同一样具有法律承认的有效性,可以受到法律保护。电子合同的推出极大促进了依赖双方契约订立的互联网产品飞速发展。 对于产品设计中使用电子合同功能,有如下两个要点: 产品功能的最终目标是电子合同的有效性,通过产品设计所订立的电子合同可信度越高,争议性越小,则产品设计越成功。 在保证电子合同有效性的同时,签约过程和签约方式的用户体验设计也体现出产品设计水平。签约过程要尽量简便快捷。签约方式要把握客户心理,适应具体的业务进行选择使用。 电子合同的有效性 电子合同的有效性和合法性来自于电子签名,《中国人民共和国电子签名法》第十四条规定:可靠的电子签名与手写签名或者盖章具有同等的法律效力,同时该法第十三条解释了什么是可靠的电子签名: 电子签名制作数据用于电子签名时,属于电子签名人专有; 签署时电子签名制作数据仅由电子签名人控制; 签署后对电子签名的任何改动能够被发现; 签署后对数据电文内容和形式的任何改动能够被发现。 电子签名的以上四点要求十分重要,是电子合同有效性的基础和成立条件,简称为"真实身份、真实意愿、签名未改、原文未改",是进行产品设计时要考虑的首要因素。 下面将对这四点的技术原理进行阐述: 二、电子签名的技术原理 1. 真实身份 对签约方真实身份的确定,是通过各种实名认证方式来进行保证,所以实名认证是电子合同产品设计中必不可少的一环。实名认证功能可以由电子合同服务提供商提供,也可以由其他第三方符合要求的服务商提供。 实名认证分为多种方式,可靠性和用户体验各有不同,要根据产品需求灵活选用。关于实名认证的解析可参见笔者文章:《全面解析:个人及企业实名认证产品设计》 2. 真实意愿 意愿认证是指在每一次签署前对用户的身份进行确认,保证是用户本人操作的认证方式。我们常见的用户密码登录其实就是一种意愿认证,但由于目前登录密码丢失、被盗取、被破解的风险很高,所以对于涉及金额较大和较重要的电子合同,产品设计中要考虑加入其他意愿认证方式进行可靠性强化。 常见的意愿认证方式有:指纹登入、短信验证码登入、语音验证码登入、人脸识别登入、UKEY登入等。各种意愿认证方式同样可靠性和用户体验各有不同,根据不同产品要求可以进行选用。 3. 签名未改及原文未改 签名未改及原文未改是通过数字签名技术+时间戳+CA机构颁发的数字证书一起保证和实现的,数字签名技术是其中的核心部分,时间戳和数字证书的实现方式都使用到数字签名。 数字签名是非对称算法和哈希算法的联合运用,在此简单讲解如下: 非对称算法:非对称算法是一个神奇的加密算法,它可以生成一对密钥,这对密钥一个称为公钥,一个称为私钥。 公钥是公开的,互联网中任何人都可以取得所有他人的公钥; 私钥是私密的,只有持有人自己才能使用。 非对称算法可以实现防抵赖的目的。原理是A使用自己的私钥加密文件;B收到文件后,使用A的公钥解密;如果能够解密的,证明文件一定来源于A。 哈希算法:任何不同的数据经过哈希算法后得到的哈希值都是不同的,而任何相同的数据经过哈希算法后得到的哈希值都是相同的。因此,哈希值又称为数据的数字指纹。 假设一个用户A执行了电子合同签约,则服务端先对电子合同原文进行哈希算法,得到电子合同原文的哈希值。然后使用用户A的私钥对哈希值进行加密,把加密得到的数字签名连同电子合同一起发送出去。 用户B收到带数字签名的电子合同后,先对原文用哈希算法得到哈希值,然后使用用户A的公钥对数字签名进行解密(对于用户A的公钥可信度是由CA机构的数字证书来保证,只要是国家认证的CA机构颁发的数字证书都认为是可信的,在此不展开讲解),解密得到的哈希值与原文用哈希算法得到哈希值进行比对,如果哈希值一致,则证明电子合同确实是A所签署的,并且没有被纂改过,也就达到验证"签名未改、原文未改"的目的。 时间戳:签订时间同样是电子签名成立和有效性关键环节,电子签名一般使用时间戳技术来对电子合同的签订时间进行有效确认。原理是对电子合同进行一次哈希运算,将哈希值发送给时间戳签发中心,时间戳签发中心使用数字签名技术对哈希值和当前时间进行一次数字签名。 由于对于电子合同哈希值具有唯一性,所以时间戳的数字签名可以确认电子合同签约的时间点,这样就保证了"签名未改"的实现。 三、电子合同的产品设计 1. 功能及接口设计 目前电子合同功能一般使用电子合同服务供应商提供的外部接口进行实现,产品的功能接口设计要点如下: 牢牢记住影响电子签名有效性的四点要求"真实身份、真实意愿、签名未改、原文未改",确保电子合同的可靠性。 用户使用电子合同过程中的预览、合同如何发起签署、签署完成后如何存证、查看和下载,产品经理要进行全流程的考虑。产品测试过程要验证数字证书、时间戳等的完整性。 对于电子合同服务供应商提供的实名验证接口、合同发起接口、合同签署接口、合同查看接口、合同下载接口 、存证保全接口等接口是电子合同的关键接口,要确保对接完整性无遗漏。 2. 用户界面设计 电子合同根据选用的不同签约方式有不同的用户界面设计,这里对于PC端和移动端常用的签约界面进行简单介绍。 PC端 在未签署之前,电子合同必须具有预览界面。对于金额较大或者较为重要的签约时建议采用手机验证码或者人脸识别,加强用户签约意愿的确认,这里给出笔者工作中的简化原型界面供参考。 移动端 移动端建议使用手写签名的形式,强化合同签订的仪式感。这里给出一款保险的电话销售投保后,正式保险合同确认签订的产品UI界面供大家参考。 四、电子合同的使用 当签约双方对签约内容发生争议或者一方出现违约,需要通过法律层面解决的时候,电子合同就会进入业务使用流程。电子合同一般是作为证据链的一环出现的,因此存证取证是否方便,认证是否简便,就对业务开展有很大的影响。 这方面主要体现在电子合同服务提供商提供服务的质量。实务中要尽量使用公证简单、法院或仲裁机构容易采信的电子合同服务供应商进行购买合作,在此不进行赘述。 下图给出国内某一电子合同服务供应商对于电子合同的存证信息,大家可以结合上面所阐述的内容,进行印证参考。 结语 以上是笔者在产品设计工作中对于电子合同的经验总结。笔者主要从事互联网金融产品设计,欢迎同行交流探讨。