一种剪切板数据保护方法及装置
文献发布时间:2023-06-19 10:05:17
技术领域
本申请涉及通信技术领域,尤其涉及一种剪切板数据保护方法及装置。
背景技术
在应用程序的运行中,用户可以通过剪切板快速的复制存储数据,譬如手机号、复杂的用户名密码等。有些应用为了更好的用户体验,还可以自动读取短信中的验证码进行自动填充。但是,由于剪切板缓存数据的功能在便捷用户的同时,也一定程度侵犯到了用户的隐私数据,如果剪切板缓存的数据被攻击者劫持利用,可能造成用户隐私数据的泄漏和经济的损失。因此,需要对剪切板缓存的数据进行保护。
目前,苹果官方在iOS14以上的设备中添加剪切板使用提醒功能,在用户将把复制的信息粘贴到另一应用时,会进行顶部弹窗提醒,以保证用户数据的安全性。或者,在应用程序中设置每隔30或45秒进行一次剪切板数据的清理,以保护应用内的数据安全性。
但是,对于iOS14以下的设备中的剪切板数据或者在清理时间间隔内的剪切板数据依然呈暴露状态,存在很大的不安全性,被劫持的风险依然存在。
发明内容
本申请提供了一种剪切板数据保护方法及装置,以解决剪切板数据的安全性较低的问题。
第一方面,本申请提供了一种剪切板数据保护方法,包括以下步骤:
在剪切板中缓存有数据时,监测所述剪切板的操作类型;
如果所述剪切板的操作类型为剪切操作或复制操作,则对所述剪切板在执行剪切操作或复制操作对应的数据进行加密处理,得到加密数据;
如果所述剪切板的操作类型为粘贴操作,则对所述剪切板的加密数据进行解密处理,得到解密数据,所述解密数据用于由剪切板执行粘贴操作。
本申请一些实施例中,所述在剪切板中缓存有数据时,监测所述剪切板的操作类型,包括:
在剪切板中缓存有数据时,获取所述剪切板的修改动态发生变化时的状态值,所述修改状态是指对所述剪切板中的数据进行操作时产生的动态;
基于所述状态值,监测所述剪切板的修改动态对应的操作类型。
本申请一些实施例中,还包括:
将所述加密数据存储至本地缓存中,所述本地缓存是指调用剪切板的应用程序的缓存。
本申请一些实施例中,所述如果所述剪切板的操作类型为粘贴操作,则对所述剪切板的加密数据进行解密处理,得到解密数据,包括:
如果所述剪切板的操作类型为粘贴操作,则从所述本地缓存中获取剪切板的加密数据;
对所述剪切板的加密数据进行解密处理,得到解密数据。
第二方面,本申请还提供了一种剪切板数据保护方法,包括以下步骤:
在应用程序调用剪切板时,监听调用剪切板的应用程序的生命周期;
若监听到的生命周期函数对应的操作为应用程序进入后台操作,则获取所述剪切板缓存的数据;
将所述剪切板缓存的数据存储到应用程序本地缓存中,以及,将所述剪切板缓存的数据进行清除;
若监听到的生命周期函数对应的操作为应用程序进入前台操作,则在所述剪切板中缓存有数据时,对所述数据进行加密处理,将得到的加密数据输入到所述剪切板中。
本申请一些实施例中,还包括:
若监听到的生命周期函数对应的操作为应用程序进入前台操作,判断所述剪切板中是否存储有数据;
如果所述剪切板中未存储有数据,则判断应用程序本地缓存中是否存储有数据;
如果所述应用程序本地缓存中存储有数据,则获取所述应用程序本地缓存中存储的数据;
将所述数据输入到所述剪切板中。
本申请一些实施例中,所述将所述数据输入到所述剪切板中,包括:
对所述数据进行解密处理,得到解密数据;
将所述解密数据输入到所述剪切板中。
本申请一些实施例中,还包括:将输入到所述剪切板中的数据从所述应用程序本地缓存中清除。
第三方面,本申请还提供了一种剪切板数据保护装置,包括:
操作类型监听模块,用于在剪切板中缓存有数据时,监测所述剪切板的操作类型;
第一数据保护模块,用于如果所述剪切板的操作类型为剪切操作或复制操作,则对所述剪切板在执行剪切操作或复制操作对应的数据进行加密处理,得到加密数据;
第二数据保护模块,用于如果所述剪切板的操作类型为粘贴操作,则对所述剪切板的加密数据进行解密处理,得到解密数据,所述解密数据用于由剪切板执行粘贴操作。
第四方面,本申请还提供了一种剪切板数据保护装置,包括:
生命周期监听模块,用于在应用程序调用剪切板时,监听调用剪切板的应用程序的生命周期;
后台操作保护模块,用于若监听到的生命周期函数对应的操作为应用程序进入后台操作,则获取所述剪切板缓存的数据;
数据处理模块,用于将所述剪切板缓存的数据存储到应用程序本地缓存中,以及,将所述剪切板缓存的数据进行清除;
前台操作保护模块,用于若监听到的生命周期函数对应的操作为应用程序进入前台操作,则在所述剪切板中缓存有数据时,对所述数据进行加密处理,将得到的加密数据输入到所述剪切板中。
第五方面,本申请还提供了一种存储介质,该计算机存储介质可存储有程序,该程序执行时可实现包括本申请提供的剪切板数据保护方法各实施例中的部分或全部步骤。
由以上技术方案可知,本发明实施例提供的一种剪切板数据保护方法及装置,在剪切板中缓存有数据时,根据剪切板的操作类型,对数据进行加解密处理。还可在应用程序进入后台操作时,将剪切板缓存的数据存储到应用程序本地缓存中,并将剪切板缓存的数据进行清除;在应用程序进入前台操作时,将剪切板中缓存的数据进行加密处理,将得到的加密数据重新赋值给剪切板。可见,本发明实施例提供的方法及装置,针对不同的应用场景执行对应的保护策略,增加对剪切板缓存的数据的加密处理,有效的防止数据被读取,即使攻击者劫持剪切板也无法轻易读取真实数据,增加劫持破解的难度。在应用程序进入后台时对剪切板缓存的数据进行清除,再次激活时重新进行赋值操作,可以更好的提高用户体验,保证剪切板在应用内部可正常使用。该方法可保证剪切板数据的安全性,并可保证用户操作数据的一致性,具有良好的操作体验。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的剪切板数据保护方法的一种流程图;
图2为本发明实施例提供的剪切板执行操作时的保护方法的数据流图;
图3为本发明实施例提供的监测剪切板的操作类型的方法流程图;
图4为本发明实施例提供的对加密数据进行解密的方法流程图;
图5为本发明实施例提供的剪切板数据保护方法的另一种流程图;
图6为本发明实施例提供的应用程序进入后台操作时的保护方法的数据流图;
图7为本发明实施例提供的应用程序进入前台操作时的保护方法的数据流图;
图8为本发明实施例提供的应用程序进入前台操作时的保护方法的流程图;
图9为本发明实施例提供的剪切板数据保护装置的一种结构框图;
图10为本发明实施例提供的剪切板数据保护装置的另一种结构框图。
具体实施方式
在应用程序的运行中,用户可以通过剪切板快速的复制存储数据,譬如手机号、复杂的用户名密码等。但由于剪切板在缓存数据时,这些数据属于暴露状态,易被他人劫持利用,因此为了保护用户的隐私数据不被侵犯,可以在应用程序使用时增加剪切板保护功能,加强剪切板缓存数据的安全性。
虽然iOS14设备可以通过顶部弹窗提醒的方式在一定程度上保证用户数据的安全性,但是,在iOS14以下的设备中,剪切板数据还是呈暴露状态,存在很大的不安全性,且弹窗提醒会影响用户的使用体验。另外,采用在时间间隔内将剪切板数据清理的方式,但是,在这时间间隔内的数据还是呈暴露状态,被劫持的风险依然存在,且间段性的数据清理会造成数据的丢失,影响用户的使用操作。
因此,为提高剪切板数据的安全性,使得数据可以一直受到保护,本发明实施例提供一种剪切板数据保护方法,针对不同的应用场景,可通过改写剪切板的复制粘贴的实现,对剪切板缓存的数据进行加解密处理;还可在应用程序进入后台时对剪切板缓存的数据进行清除,应用程序返回前台时重新进行赋值操作。
可见,增加对剪切板缓存的数据的加密处理,有效的防止数据被读取,即使攻击者劫持了剪切板也无法轻易读取真实数据,增加劫持破解的难度。在应用程序进入后台时对剪切板缓存的数据进行清除,再次激活时重新进行赋值操作,可以更好的提高用户体验,保证剪切板在应用内部可正常使用。
本发明实施例提供的方法,对现在的iOS14的剪切板保护功能进行扩充,并填补iOS14以下设备版本剪切板保护的空白。该方法不单一的依赖某一种技术来实现剪切板保护,可针对不同的应用场景执行对应的保护策略,保证剪切板数据的安全性,增加攻击者破解的难度,并可保证用户操作数据的一致性,具有良好的操作体验。
图1为本发明实施例提供的剪切板数据保护方法的一种流程图;图2为本发明实施例提供的剪切板执行操作时的保护方法的数据流图。本发明实施例提供的一种剪切板数据保护方法,应用在安装有应用程序的终端,且该应用程序可调用剪切板执行相应操作。在第一种应用场景中,即在执行剪切板复制、剪切、粘贴操作时,对剪切板缓存的数据进行加解密处理。此时,在进行剪切板数据保护时,参见图1和图2,该方法包括以下步骤:
S11、在剪切板中缓存有数据时,监测剪切板的操作类型。
在第一种应用场景中,在应用程序启动时,为应用程序全局添加剪切板缓存修改的监听通知,以实时监测剪切板的操作类型,操作类型包括复制、剪切、粘贴操作。剪切板的操作类型可根据终端的系统根据用户的操作返回对应的状态值进行确定。
图3为本发明实施例提供的监测剪切板的操作类型的方法流程图。具体地,参见图3,应用程序中配置的监听机制在执行在剪切板中缓存有数据时,监测剪切板的操作类型,包括以下步骤:
S111、在剪切板中缓存有数据时,获取剪切板的修改动态发生变化时的状态值,修改状态是指对剪切板中的数据进行操作时产生的动态。
S112、基于状态值,监测剪切板的修改动态对应的操作类型。
用户在操作应用程序需要进行剪切、复制、粘贴某些内容时,应用程序调用剪切板缓存用户操作的内容,并将缓存的内容作为数据。用户每对该数据进行一次操作,剪切板的修改动态均会对应发生变化。
例如,如果用户想要复制数据,则剪切板的修改动态为“复制”;如果用户想要剪切数据,则剪切板的修改动态为“剪切”;如果用户想要粘贴数据,则剪切板的修改动态为“粘贴”。
剪切板的每种修改动态均对应有状态值,用户进行某种操作,安装有应用程序的终端的系统在响应该操作时会返回对应的状态值。根据状态值,即可确定剪切板的修改动态对应的操作类型。
例如,如果状态值为1,则对应的操作类型为剪切;如果状态值为2,则对应的操作类型为复制;如果状态值为3,则对应的操作类型为粘贴。
S12、如果剪切板的操作类型为剪切操作或复制操作,则对剪切板在执行剪切操作或复制操作对应的数据进行加密处理,得到加密数据。
如果根据状态值确定剪切板的操作类型为剪切操作或复制操作,说明剪切板中缓存的数据为暴露状态,此时,为进行保护,本实施例将剪切操作或复制操作对应的数据进行加密处理,得到加密数据。
加密处理可采用对称加密方法(DES),也可采用非对称加密方法(RSA),具体可根据实际应用情况进行选择,此处不做具体限定。
在完成数据加密后,可将加密数据存储至本地缓存中,便于后续执行粘贴操作时调用,存储到本地缓存中也可进一步对加密数据进行保护,避免被攻击者截获,本地缓存是指调用剪切板的应用程序的缓存。
S13、如果剪切板的操作类型为粘贴操作,则对剪切板的加密数据进行解密处理,得到解密数据,解密数据用于由剪切板执行粘贴操作。
如果根据状态值确定剪切板的操作类型为粘贴操作,则需要将剪切板中的数据输入到应用程序的相应位置。而此时,剪切板中的数据为加密数据,因此,需先对加密数据进行解密处理,将得到的解密数据执行相应的粘贴操作。
图4为本发明实施例提供的对加密数据进行解密的方法流程图。由于加密数据存储在本地缓存中,因此,参见图4,应用程序中配置的监听机制在执行如果剪切板的操作类型为粘贴操作,则对剪切板的加密数据进行解密处理,得到解密数据,包括:
S131、如果剪切板的操作类型为粘贴操作,则从本地缓存中获取剪切板的加密数据。
S132、对剪切板的加密数据进行解密处理,得到解密数据。
在监测到剪切板的操作类型为粘贴操作时,则由应用程序的监听机制从本地缓存中获取剪切板的加密数据。对加密数据进行解密处理后,将得到的解密数据执行相应的粘贴操作。
解密方法可基于前述的加密方法进行确定,即解密方法可采用RDS密钥进行解密,也可利用RSA公钥进行解密,具体可根据加密方法而定,此处不再赘述。
可见,本发明实施例提供的剪切板数据保护方法,通过在应用程序内添加监听机制,对剪切板的操作进行监听,以实时获取剪切板的操作类型。在剪切板中缓存有数据时,先判断操作类型是否为剪切操作(复制操作),如果是,则执行加密数据处理;如果不是,则执行判断操作类型是否为粘贴操作,如果是,则获取加密数据进行解密,以根据解密数据执行粘贴操作;如果不是,则不动作。
该方法可通过改写剪切板的复制粘贴的实现,对剪切板缓存的数据进行加解密处理。通过增加对剪切板缓存数据的加密处理,有效的防止数据被读取,即使攻击者劫持剪切板也无法轻易读取真实数据,增加劫持破解的难度,并可保证用户操作数据的一致性,提高数据保护安全性。
图5为本发明实施例提供的剪切板数据保护方法的另一种流程图;图6为本发明实施例提供的应用程序进入后台操作时的保护方法的数据流图;图7为本发明实施例提供的应用程序进入前台操作时的保护方法的数据流图。本发明实施例提供的一种剪切板数据保护方法,应用在安装有应用程序的终端,且该应用程序可调用剪切板执行相应操作。在第二种应用场景中,即在应用程序进入前台、后台时,对数据进行清除处理。此时,在进行剪切板数据保护时,参见图5、图6和图7,该方法包括以下步骤
S21、在应用程序调用剪切板时,监听调用剪切板的应用程序的生命周期。
在第二种应用场景中,在应用程序启动时,为应用程序添加监听生命周期的通知,以监测应用程序是否进入后台操作或者回到前台操作。
在监听应用程序的生命周期时,判断应用程序进入前台所采用的监听函数为:-(void)applicationDidBecomeActive:(UIApplication*)application。判断应用程序进入后台所采用的监听函数为:-(void)applicationDidEnterBackground:(UIApplication*)application。
S22、若监听到的生命周期函数对应的操作为应用程序进入后台操作,则获取剪切板缓存的数据。
S23、将剪切板缓存的数据存储到应用程序本地缓存中,以及,将剪切板缓存的数据进行清除。
如果终端系统通过监听机制监听到应用程序的生命周期函数发生变化,即应用程序进入后台操作,此时,为避免应用程序调用的剪切板中缓存的数据被暴露,则将剪切板缓存的数据存储到应用程序本地缓存中,同时,将剪切板中缓存的数据进行清除。
也就是说,在这种情况下,将剪切板中的数据移至应用程序本地缓存中进行存储,此时,剪切板中不再缓存有数据,可避免在应用程序进入后台操作时,数据被暴露出来而被攻击者劫持。
S24、若监听到的生命周期函数对应的操作为应用程序进入前台操作,则在剪切板中缓存有数据时,对数据进行加密处理,将得到的加密数据输入到剪切板中。
如果终端系统通过监听机制监听到应用程序的生命周期函数发生变化,即应用程序进入前台操作,此时存在两种情况,即剪切板中缓存有数据和未缓存有数据的情况。
在一些实施例中,如果剪切板中缓存有数据,此时数据呈暴露状态,任何人均可能进行劫持,因此,为保护数据不被劫持,可将剪切板中缓存的数据进行加密处理,将加密数据重新赋值给剪切板,即将得到的加密数据输入到剪切板中。
在一些实施例中,如果剪切板中未缓存有数据,此时,是由于应用程序进入后台时,已将剪切板的数据进行清理,因此,需要在重新进入前台时对剪切板进行重新赋值。
图8为本发明实施例提供的应用程序进入前台操作时的保护方法的流程图。参见图8,具体地,在剪切板中未缓存有数据,本发明实施例提供的剪切板数据保护方法,在上述实施例提供的方法基础上,还包括以下步骤:
S251、若监听到的生命周期函数对应的操作为应用程序进入前台操作,判断剪切板中是否存储有数据。
S252、如果剪切板中未存储有数据,则判断应用程序本地缓存中是否存储有数据。
S253、如果应用程序本地缓存中存储有数据,则获取应用程序本地缓存中存储的数据。
S254、将数据输入到剪切板中。
若生命周期函数对应的操作为应用程序进入前台操作,则先判断剪切板中是否存储有数据,在确定出剪切板中未存储有数据时,需要对剪切板进行重新赋值,此时,需要再判断应用程序本地缓存中是否存储有数据。
剪切板中未存储有数据说明可能在之前执行过应用程序进入后台操作的过程,即将剪切板中的数据移至应用程序本地缓存中进行存储,因此,此时需从应用程序本地缓存中获取存储的数据,该数据即为应用程序进入后台操作时剪切板中的数据移至应用程序本地缓存中进行存储的数据。
在重新获取到数据后,将该数据重新赋值给剪切板,即将数据重新输入到剪切板中,便于剪切板基于当前缓存的数据执行后续操作。由于应用程序本地缓存中的数据已被调取,因此,可将输入到剪切板中的数据从应用程序本地缓存中清除。
由于剪切板缓存的数据具有时效性,且会实时根据用户的操作进行更新,因此,剪切板中缓存的数据和应用程序本地缓存中存储的数据均仅为当前次用户操作产生的最新数据,即仅会存储一组数据,最新数据会覆盖历史数据。因此,在判断出剪切板中缓存有数据,或者,应用程序本地缓存中存储有数据后,可直接调取该数据进行后续对应操作,保证数据的安全性和时效性。
在调取相应数据时,可由终端系统调用剪切板管理类去剪切板或者应用程序本地缓存中调取相应数据。
由于应用程序本地缓存中存储的数据可能为经过加密处理的加密数据,因此,在将数据输入到剪切板中,包括以下步骤:
步骤2541、对数据进行解密处理,得到解密数据。
步骤2542、将解密数据输入到剪切板中。
如果在应用程序本地缓存中获取的数据为加密数据,此时,需对该数据进行解密处理,将得到的加密数据重新赋值给剪切板,即将解密数据再次输入到剪切板中,便于剪切板基于当前缓存的数据执行后续操作。
可见,本发明实施例提供的剪切板数据保护方法,通过添加应用程序的生命周期监听机制,以实时监听应用程序进入后台操作或进入前台操作。在监听到应用程序进入后台操作时,将剪切板中缓存的数据存储到应用程序本地缓存中,并将剪切板中缓存的数据进行清理。在监听到应用程序进入前台操作时,先判断剪切板中是否缓存有数据,如果缓存有数据,则将剪切板中缓存的数据进行加密操作,将加密数据重新赋值给剪切板。如果未缓存有数据,则再判断应用程序本地缓存中是否存储有数据,如果存储有数据,则将应用程序本地缓存中存储的数据重新赋值给剪切板,并将应用程序本地缓存中存储的数据进行清理;如果未存储有数据,则不动作。
该方法还可在应用程序进入后台时对剪切板缓存的数据进行清除,应用程序返回前台(再次激活)时重新进行赋值操作,保证剪切板数据的安全性,并可以更好的提高用户体验,保证用户操作数据的一致性,使得剪切板在应用内部可正常使用。
图9为本发明实施例提供的剪切板数据保护装置的一种结构框图。参见图9,本发明实施例提供的一种剪切板数据保护装置,用于执行图1所示的剪切板数据保护方法的相关步骤,该装置包括:
操作类型监听模块110,用于在剪切板中缓存有数据时,监测所述剪切板的操作类型;
第一数据保护模块120,用于如果所述剪切板的操作类型为剪切操作或复制操作,则对所述剪切板在执行剪切操作或复制操作对应的数据进行加密处理,得到加密数据;
第二数据保护模块130,用于如果所述剪切板的操作类型为粘贴操作,则对所述剪切板的加密数据进行解密处理,得到解密数据,所述解密数据用于由剪切板执行粘贴操作。
图10为本发明实施例提供的剪切板数据保护装置的另一种结构框图。参见图10,本发明实施例提供的一种剪切板数据保护装置,用于执行图5所示的剪切板数据保护方法的相关步骤,该装置包括:
生命周期监听模块210,用于在应用程序调用剪切板时,监听调用剪切板的应用程序的生命周期;
后台操作保护模块220,用于若监听到的生命周期函数对应的操作为应用程序进入后台操作,则获取所述剪切板缓存的数据;
数据处理模块230,用于将所述剪切板缓存的数据存储到应用程序本地缓存中,以及,将所述剪切板缓存的数据进行清除;
前台操作保护模块240,用于若监听到的生命周期函数对应的操作为应用程序进入前台操作,则在所述剪切板中缓存有数据时,对所述数据进行加密处理,将得到的加密数据输入到所述剪切板中。
由以上技术方案可知,本发明实施例提供的一种剪切板数据保护方法及装置,在剪切板中缓存有数据时,根据剪切板的操作类型,对数据进行加解密处理。还可在应用程序进入后台操作时,将剪切板缓存的数据存储到应用程序本地缓存中,并将剪切板缓存的数据进行清除;在应用程序进入前台操作时,将剪切板中缓存的数据进行加密处理,将得到的加密数据重新赋值给剪切板。可见,本发明实施例提供的方法及装置,针对不同的应用场景执行对应的保护策略,增加对剪切板缓存的数据的加密处理,有效的防止数据被读取,即使攻击者劫持剪切板也无法轻易读取真实数据,增加劫持破解的难度。在应用程序进入后台时对剪切板缓存的数据进行清除,再次激活时重新进行赋值操作,可以更好的提高用户体验,保证剪切板在应用内部可正常使用。该方法可保证剪切板数据的安全性,并可保证用户操作数据的一致性,具有良好的操作体验。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的剪切板数据保护方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于剪切板数据保护方法装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。
- 一种剪切板数据保护方法及装置
- 一种实现剪切板数据加密和解密方法、装置及硬件设备