1开放API接口的安全问题 开放API接口如果没有经过安全处理,则很容易出现三类安全问题,包括信息截获、篡改与泄露。首先是用户密码容易被截获,比如某家公司在开发开放式……
开放API接口如果没有经过安全处理,则很容易出现三类安全问题,包括信息截获、篡改与泄露。首先是用户密码容易被截获,比如某家公司在开发开放式API时,没有对其进行安全控制,那么该公司的客户信息很容易被黑客截获,黑客在掌握客户的用户名、密码等相关信息与资料后,便能够利用客户的身份来登录,使得客户的隐私信息泄露,黑客便可以轻易地盗刷客户信用卡,使得客户承受损伤;其次是表单数据很容易被篡改,比如某家公司所开发的开放API并没有进行过防篡改控制,有客户在购买1000元产品后,其提交表单被黑客利用技术手段篡改为10块钱,从而使得公司产生了经济损失;最后是业务数据会被轻易泄露,黑客有种程序叫爬虫程序,如果公司在开发开放式API时,其接口没有采取安全控制措施,那么该程序便能够对开放式API进行调用,进而能够查询到客户信息的接口。同时,如果公司没有安全处理开放式API接口,那么黑客在调用客户信息接口时也不需要安全验证,从而黑客能够利用客户信息查询API来大量搜集客户数据,而该公司的竞争对手有了该客户数据后,会对该公司的利用产生影响[1]。上述三例问题都是因为开放API没有对数据以及用户信息进行安全处理所造成的,因此软件开发开放API接口的安全处理就显得尤为重要。
2开放API接口的安全问题解决策略
2.1非对称加密
(1)非对称加密概述:非对称加密是加密算法中的一种,和对称加密算法只有一个密钥文件不同的是,非对称加密有两个密钥文件,也就是公钥与私钥。顾名思义,公钥是对外公开状态,而私钥则是属于保密状态,如果黑客只有公钥而没有私钥,及时截取到报文也没有任何影响[2]。在1978年,RonRivest、AdiShamir、LeonardAdleman三人共同提出了RSA非对称加密技术,该技术的名字便是取自于这三人的首字母。以现在的情况来看,RSA非对称加密技术属于最有影响力的加密算法,因为该技术能够抵御已知大多数的密码攻击,所以被推荐为加密数据的标准[3]。开放API平台在应用非对称加密后,公钥公开给那些需要对接API的人,这些对接API的人然后通过公钥将用户的相关数据进行加密和传输。如果想要对其解密,那么就必须要用API平台的私钥,这个过程中,即便有黑客利用抓包工具将报文截取、即便是报文相关数据被泄露出去,对方没有私钥来解密,那么就算有报文数据也没有任何意义。因此,为了防止用户的一些敏感信息被泄露,便可以将非对称加密应用其中,能够很好地解决问题。(2)非对称加密流程:如果在有条件的情况下,开放API接口则是可以使用HTTPS协议来将数据进行传输,因为相比于RSA加密技术,HTTPS的传输更为安全。HTTPS解决传输数据安全问题的方式是对双方身份进行确定,从而在两者之间建立其安全通道,而且HTTPS协议相比于RSA非对称加密技术要更为完善,后者所具备的技术,前者都能够实现,并且前者还应用到了对称加密。不过该项技术也有着一定的不足,主要包括需要购买证书、服务器开销大、维护成本高、性能较低等,所以在考虑成本的情况下,HTTPS不是最优选,而RSA加密算法是最适宜的选择[4]。
2.2信息摘要算法5
(1)信息摘要算法5概述:信息摘要算法5(Message-DigestAlgorithm5)最大的特点就是其算法不可逆,主要方法是对任意一段字符串生成摘要,所以,信息摘要算法5大多时候是被用来存储用户的登录密码,并且还能够用来比对信息是否一致。信息摘要算法5在目前是不会被真正破解的,所谓的破解方法也只不过是利用非常庞大的一个数据量来对其进行碰撞,简单一点说,就是一个拥有着巨大数据的彩虹表中存了许多与信息摘要算法5字符串相对应的字符串,因此在破解信息摘要算法5时,需要在这个基础数据非常庞大的表里检索加密好的信息摘要算法5字符串,检索的时间是与该表中的数据成正比的,因此检索所需要的时间会非常漫长,就算是通过反推法来破解信息摘要算法5的密码,那也要耗费大量的精力与时间,所以信息摘要算法5算是比较安全的加密算法。(2)信息摘要算法5方法:一般情况下,API设计者首先需要在对外接口文档中约定好信息摘要算法5的加密字段和顺序,在对API接口进行调用时,则需要通过文档中API设计者所约定好的顺序来对信息摘要算法5进行加密,而且为了能够保证对比有意义,API后台也需要根据约定的顺序进行加密。在对比时,如果发现接收到的信息摘要算法5摘要和获取参数所生成的信息摘要算法5摘要不一致,如果不是在调用API接口时出现操作错误,那么便能够确定与之相关的数据已经处于篡改状态,因此便需要拒绝处理这批数据[5]。相反的,如果所接收到的信息摘要算法5摘要和获取参数生成的信息摘要算法5摘要一致,那么便能够确认数据并未被篡改。举例来说,某家公司对外提供了客户下订单的接口,接口中含有产品的编码参数与购买数目的参数。产品的编码参数是能够确定所购买的产品信息,同时公司需要将一个信息摘要算法5参数加入数据当中来预防数据被篡改的可能性,而且需要规定在调用API接口时需要按照产品编码与购买数据来进行信息摘要算法5摘要,摘要文件也就是信息摘要算法5乘以产品编码加购买数量之和。所以,在调用API接口时,需要按照公司的要求传入产品编码、购买数量以及信息摘要算法5摘要3个参数。公司在接到传来的相关参数之和,需要通过同样的方法来进行信息摘要算法5,之后对两者之间的摘要文件进行比对,不对等则表示有篡改风险,需要放弃该接口请求[6]。
2.3令牌鉴权
(1)令牌鉴权概述:公网暴露开放API接口之后,便相当于豪宅的大门被敞开了一般,任何人都能够自由出入,这也就使得豪宅内的财产变得非常不安全,因此就需要有安保人员来查看进出人员的通行证,令牌便可以理解为该通行证,只有获得了令牌的人才能够进出,而没有令牌的人则严禁入内,一律拦截在大门外。(2)令牌鉴权机制:放API接口服务器会用户在登录之后生成一组不重复的字符,从而形成登录人的令牌,令牌作为KET在REDIS缓存放置在服务器。而VALUE则存放登录用户的基本信息,同时对token失效时间进行设置。(3)令牌鉴权校验:在调用开放API时需要携带令牌,而服务器来对令牌进行校验,包括存在与否、过期与否等,如果令牌过期或者不存在,则直接返回异常信息,强制客户重新登录获取新令牌。
3结束语
简而言之,数据安全是一场攻防持久战,需要不断对其进行改进与完善,才能够有效保障客户权益与数据安全。
还没有评论呢,快来抢沙发~