• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 50
    • 下载费用:30 金币  

    重庆时时彩网投系统: 一种由简单用户密码生成多因素个性化服务器强密钥的系统及其方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201180037077.0

    申请日:

    2011.07.28

    公开号:

    CN103370688A

    公开日:

    2013.10.23

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 7/04申请日:20110728|||公开
    IPC分类号: G06F7/04 主分类号: G06F7/04
    申请人: 尼尔默尔·朱萨尼
    发明人: 尼尔默尔·朱萨尼
    地址: 印度孟买
    优先权: 2010.07.29 IN 2166/MUM/2010
    专利代理机构: 北京海虹嘉诚知识产权代理有限公司 11129 代理人: 周晓娜
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201180037077.0

    授权公告号:

    ||||||

    法律状态公告日:

    2016.11.09|||2013.11.20|||2013.10.23

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明提供了一种用简单密码生成多因素加密密钥的方法,以对通过至少一个通讯网络从第一实体存储在第二实体的信息进行控制。一个实施例中,该方法通过以下方式实现:请求第一实体通过通讯网络从第二实体接收应用程序;激活第一实体生成共享密钥,其中共享密钥根据第一实体专用ID和第一与第二实体生成的随机数计算得出;允许用户由第一实体注册第二实体的应用程序,其中注册包括输入个人PIN(个人识别码)和个人信息等。

    权利要求书

    权利要求书
    1.  一种由简单密码生成多因素加密密钥的方法,以对通过至少一个通讯网络从第一实体存储在第二实体的信息进行控制,该方法包括:
    具有预安装的应用程序或请求通过通讯网络在第一实体从第二实体接收应用程序;
    激活第一实体生成共享密钥,其中共享密钥根据第一实体专用ID和第一实体和第二实体处生成的随机数计算得出;及
    使用户由第一实体注册第二实体应用程序,其中注册包括输入个人识别号(PIN)、个人信息等。

    2.  根据权利要求1所述的方法,其特征在于,存储的信息包括代金卡账户、信用卡账户、忠诚账户(loyalty account)和/或银行账户的交易相关数据或身份验证相关数据或加密相关数据。

    3.  根据权利要求1所述的方法,其特征在于,激活还包括如下步骤:
    第一实体生成随机数,其中随机数由标准密码随机数生成器生成;
    计算第一实体专用ID,其中专用ID对于每个实体均不同;及
    将随机数和第一实体专用ID传递给第二实体。

    4.  根据权利要求3所述的方法,其特征在于,还包括:
    第二实体从第一实体接收随机数和第一实体专用ID;
    第二实体生成随机数,其中随机数由标准密码随机数生成器生成;及
    根据第一实体专用ID、第二实体随机数、第一实体处生成的随机数生成激活码;及
    将激活码通过至少一个可用通信网络传递给第一实体。

    5.  根据权利要求3所述的方法,其特征在于,还包括:
    从第二实体接收激活码;
    通过校验第一实体专用ID来验证接收到的激活码;及
    存储第一和第二实体的生成随机数。

    6.  根据权利要求1所述的方法,其特征在于,第一实体注册第二实体应用程序的步骤包括:
    初始化第一和第二实体以使用密码随机字符串生成器生成随机有序项目集,其中随机有序项目集包括字节、图像、声音、字符等;
    按照有序项目集中的项目位置将第一实体接收的用户密码映射到索引位置的有序列表;
    将索引位置的列表传递至第二实体;
    将接收到的索引位置的列表映射到第二实体随机有序字符数组中对应的字符,以破译第二实体查看到的由用户在第一实体输入的密码并推导出用户专用第二实体密钥;及
    在每次输入密码后和第二实体每次身份验证尝试后,分别对第一实体和第二实体的随机有序项目数组进行伪随机洗牌,以使洗牌与第一实体同步。

    7.  根据权利要求6所述的方法,其特征在于,第一实体接收的用户密码用于生成屏蔽一次性密码(MOTP),其中,MOTP是根据在服务器端破译服务器端所看到的用户密码的验证者。

    8.  根据权利要求6所述的方法,其特征在于,第一实体处用户密码接收成旋转格式布局,包括字符、图形、字节、图案、声音等。

    9.  根据权利要求6所述的方法,其特征在于,用户输入的密码在传递给服务器之前在用户设备上的始终使用变换矩阵进行转换,且服务器使用另一变换矩阵推导出与客户端同步生成的不同密码。

    10.  根据权利要求1所述的方法,其特征在于,该方法决不将密码以原始的形式存储在客户端设备或服务器上。

    11.  根据权利要求1所述的方法,其特征在于,第一实体是用户和/或商户,第二实体是服务器,所述服务器包括一个或多个应用???。

    12.  一种通过在客户端设备上生成一次性使用动态密码进行支付交易的安全支付方法,其中,该方法包括:
    激活客户端设备生成共享密钥,其中共享密钥根据客户专用ID和客户端设备和服务器处生成的随机数计算得出;及
    使用户由客户端设备向服务器注册,其中注册包括输入PIN、个人签名信息和资金来源等;及
    在客户端设备上生成时间同步的一次性使用财务授权,其中,财务授权为授权财务交易的与时间相关的一次性使用密码,且财务授权取决于用户PIN。

    13.  根据权利要求12所述的方法,其特征在于,还包括:
    具有预安装的应用程序或请求通过至少一个通讯网络在客户端设备从服务器接收应用程序。

    14.  根据权利要求12所述的方法,其特征在于,客户端设备生成的财务授权包括虚拟账号,其中财务授权可表示为动态虚拟信用卡或TAN。

    15.  根据权利要求14所述的方法,其特征在于,若财务授权用于信用卡网络,则财务授权包括动态虚拟信用卡号、到期日、CVV或信用卡其它相关信息。

    16.  根据权利要求14所述的方法,其特征在于,若财务授权用于具有应用程序的商户,则财务授权为TAN,其中TAN用条形码表示。

    17.  根据权利要求12所述的方法,其特征在于,还包括:
    服务器上,根据财务授权为交易识别并验证客户端设备。

    18.  根据权利要求12所述的方法,其特征在于,其中注册包括如下步骤:
    服务器向客户端分配与时间相关的客户识别号(TCID)加密密钥、唯一用户识别号、唯一用户识别密钥映射布局,其中,唯一识别密钥映射布局包括特定时隙处的唯一用户识别号和密钥映射的组合。

    19.  根据权利要求18所述的方法,其特征在于,时间相关的客户识别号加密密钥用于在将其插入到虚拟信用卡号前对与时间相关的客户识别号加密。

    20.  根据权利要求19所述的方法,其特征在于,还包括:
    根据与时间相关的客户识别号计算校验位,其中,校验位值用于确定与时间有关的加密的客户识别号和MOTP的一部分在虚拟账号中的分布方案。

    21.  根据权利要求19所述的方法,其特征在于,与时间相关的客户识别号在虚拟账号中是6至8位。

    22.  根据权利要求16所述的方法,其特征在于,还包括:
    扫描读取条形码或输入第三方实体在客户端设备生成的TAN;
    将扫描的条形码或TAN传递给服务器;及
    服务器验证TAN触发对交易结果进行确认。

    23.  根据权利要求22所述的方法,其特征在于,扫描步骤包括通过有线或无线通信手段接收TAN,其中无线通信手段包括近场通讯。

    24.  根据权利要求22所述的方法,其特征在于,客户端设备和第三方实体接收交易结果的即时确认,其中即时确认可通过来自于相同通讯网路的短讯服务(SMS)、电子邮件或其它任何实时确认方式发送给用户。

    25.  根据权利要求24所述的方法,其特征在于,实时确认信息包括用户个人签名信息的一部分,以验证最终用户的真实性。

    26.  根据权利要求24所述的方法,其特征在于,客户端设备是用户,第三方实体是商户,而商户可为另一用户。

    27.  根据权利要求16所述的方法,其特征在于,条形码为一维或二维条形码,包括EZ码、数据矩阵码(a data matrix code)和快速响应(QR)码。

    28.  一种使用用户设备兑现多个商户发行的优惠券的优惠券安全提供和兑现方法,其中,所述多个优惠券存储在服务器中,该方法包括:
    在用户设备上激活优惠券应用程序后以便看到多个优惠券兑现选项消息,其中优惠券兑现选项消息包括用于识别商户的信息和优惠券价值;
    生成优惠券授权号(CAN),图示与条形码相同,其中CAN是一种授权优惠券兑现的与时间相关的一次性使用密码;
    扫描读取条形码或输入商户在客户端设备生成的CAN;以及
    服务器对CAN验证触发用户设备和商户对交易结果确认。

    29.  根据权利要求28所述的优惠券安全提供和兑现方法,其特征在于,CAN验证步骤包括:
    根据生成的优惠券授权号(CAN)识别用户;
    获取服务器存储的有关该特定用户的多个优惠券;及
    仅发送该商户可兑现的相关优惠券。

    30.  根据权利要求29所述的优惠券安全提供和兑现方法,其特征在于,还包括:
    商户仅按照接收到的优惠券给用户所购产品打折。

    说明书

    说明书一种由简单用户密码生成多因素个性化服务器强密钥的系统及其方法
    技术领域
    本发明涉及密码?;ず蜕矸菅橹?,特别涉及一种由简单身份验证密码生成多因素强安全加密密钥的系统及其方法。
    背景技术
    在线数据和服务的安全性和保密性是大多数互联网用户最关心的一个问题。目前有很多系统和方法能为互联网用户提供安全性和保密性。身份验证系统常用于对试图访问在线存储的数据的用户的身份进行验证。
    互联网使用户可从实际的任何地方快速有效地利用各种服务?;チ辖灰滓坏┓⑸?,用户需要向第三方网站和应用程序说明保密信息。为简化和加快以后与第三方供应商的交易,此类保密信息会被第三方供应商储存起来。目前,第三方服务器应用程序将用户的保密信息,如信用卡号等,存储在他们的数据库中。用户的保密或敏感信息存储在第三方供应商的存储器中的一个缺点是,用户的保密或敏感信息可能会被未授权方访问、修改或拦截。为避免出现此类问题,第三方应用程序供应商采用数据加密方法,这样敏感信息以加密的形式存储起来。然而,只有当加密数据的密钥安全时,这种方法才安全。另外,由于服务器上所有用户的数据加密使用的是同一个服务器密钥,若密钥泄露,会丢失所有用户的保密数据。
    克服上述问题的一个解决方案是,使用不同的密钥,如密码,来?;さジ鲇没У氖?,密钥由最终用户选择。然后使用密码对用户的保密数据进行加密,密码不存储在服务器上。但需要一个安全的方法将密码传送给服务器。使用密码?;ぴ谙咦试匆延邢嗟背さ囊欢问奔?。但众所周知,使用密码也有它的缺点。例如,用户密码在使用时,尤其是在传送时,很容易被盗。另一个问题是,由于密码实际上是静态的,因此很容易被攻击者猜到。密码由一个因素构成,如“用户知道什么”。为提高安全性,用户应使用更多的因素以增强身份要求,这靠硬件令牌或其它用户持有的东西来实现。因此,第二个因素是“用户持有的东西?”。硬件令牌充当密钥来访问敏感在线数据。但用户必须保管好硬件令牌,它很容易丢失或损坏。例如,对某个设备或共享密钥信息,如PIN,进行物理访问的令牌可能是一把与同步服务器密钥相匹配的转动钥匙。此类系统除需要“用户知道什么”,即密码,外,还需要“用户持有的东西”,即令牌,因此它是“二因素”身份验证系统。不幸的是,此类二因素身份验证系统的每个令牌价格昂贵、容易丢失,且通常仅限用于特定计算机网络的一种或多种网络资源。另外,对于用户来说,携带硬件令牌或网格卡等小工具并不是很方便,因此很多公司开始考虑使用用户的已有设备来替代该小工具,包括在用户的个人设备上安装软件,如笔记本电脑、台式电脑、 移动设备或iPod。软件安装到用户设备上后会产生一个一次性密码(OTP),OTP对用户身份进行验证。OTP仅对一次使用有效,因此对于克服静态密码的缺点,OTP是一个比较合适的解决方案。
    现有验证系统中存在的另一个问题是,用户设备(如笔记本电脑或移动设备)可能会被盗而落入不法之手,这种情况下甚至诈骗者可能使用用户设备上的软件生成OTP。常使用个人识别码(PIN)或密码来防止非法访问软件。只有设备的所有者知道该PIN/密码,因此诈骗者无法访问用户设备上的软件。现在为让该解决方案产生预期作用,用户设备上的软件应能对PIN/密码进行验证。由于用户设备未设置安全?;?,因此存储在用户设备上的PIN/密码可被未授权人员发现。?;IN/密码的一个解决方案是使用单向散列函数。众所周知,不可能根据哈希值反向求出密码/PIN。但攻击者可从用户设备上复制软件应用程序或哈希值并将其输入个人电脑(PC)??沙⑹允淙隤IN/密码的不同组合,直至输入正确的PIN密码。为克服这一问题,可写入用户设备应用程序以限制尝试次数并在连续多次输入错误PIN时禁用该软件。但这一限制很容易通过复制电脑中的应用程序和重新启动来克服。因此,将PIN/密码存储在客户端设备上,甚至以加密的形式存储的解决方案并不安全。
    即使用OTP解决了静态密码的问题,但仍然面临着使用多样化的用户专用密钥对服务器上的数据进行加密的问题。由于OTP每次均会改变,因此它本身不能用于对服务器上的数据进行加密。因此,一个可行的解决方案是使用OTP验证用户并使用第二个密码加密服务器上的敏感数据。这里将第二密码传递给服务器同样面临上述相同问题。另外,用户需要记住两个密码/PIN很不方便,一个是客户端设备的密码/PIN,另一个是服务器端加密的密码/PIN。用户已需要记住各种的在线服务密码,因此增加需要记住的密码并不是一个好主意。
    鉴于以上所述,需要一种改进的多因素身份验证系统以克服上述一个或多个当前身份验证系统的前述的缺点。
    发明内容
    本发明的一个方面是解决至少一个上述问题和/或缺点并提供至少一个下述优势。
    因此,本发明的一方面是提供一种用简单用户密码生成多因素加密密钥的方法,以对通过至少一个通讯网络从第一实体存储在第二实体的信息进行控制,该方法包括:请求第一实体通过通讯网络从第二实体接收应用程序;激活第一实体生成共享密钥,其中共享密钥根据第一实体专用ID和第一与第二实体生成的随机数计算得出;允许用户由第一实体登记第二实体的应用程序,其中注册包括输入个人PIN(个人识别码)和个人签名信息等。
    本发明的另一方面是提供一种通过在客户端设备上生成一次性使用动态密码进行支付交易的安全支付方法,该方法包括:激活客户端设备生成共享密钥,其中共享密钥根据客户 端专用ID、客户端和服务器生成的随机数计算得出;允许用户通过客户端注册服务器,其中注册包括输入PIN(个人识别码)、个人签名信息和资金来源等;在客户端设备上生成时间同步的一次性使用财务授权,其中财务授权是用于财务交易的与时间有关的一次性使用密码,财务授权根据用户PIN确定。
    本发明的另一个方面是提供一种使用用户设备兑现多个商户发放的优惠券的优惠券安全提供和兑现方法,其中所述多个优惠券存储在服务器中,该方法包括:激活用户设备上的优惠券应用程序以识别多个优惠券兑现选项消息,其中优惠券兑现选项消息包括识别商户和优惠券价值的信息;在条形码中生成相同图示和优惠券授权号(CAN),其中CAN是一种用于授权兑现优惠券的与时间有关的一次性使用密码;扫描读取条形码或手动输入商户在用户设备上生成的CAN;服务器验证CAN触发在用户设备和m上对交易结果进行确认。
    以下结合附图通过对本发明的示例性实施例进行详细说明,该技术领域的技术人员可清楚理解本发明的其它方面、优点和显著特征。
    附图说明
    以下结合附图进行详细说明,可清楚理解本发明某些示例性实施例的上述及其它方面、特征和优点。
    图1为适合于实施本发明实施例的客户端-服务器结构的总体框图。
    图2为根据本发明一个实施例的设备激活过程的流程图。
    图3为客户端屏蔽一次性密码(MOTP)生成过程和服务器端对应的MOTP解码过程的框图。
    图4为客户端或用户设备MOTP生成过程的流程图。
    图5为根据本发明一个实施例使用用户设备中的用户密码生成的MOTP在服务器中生成用户专用多因素独立服务器密钥的流程图。
    图6为根据本发明一个实施例用户密码/PIN与服务器端敏感数据存储相关联的实例。
    图7为根据本发明一个实施例用户密码转换成服务器密码的实例。
    图8为根据本发明一个实施例客户端和服务器端密钥映射转换的实例,其中,客户端数组CRS包括多个字母。
    图9为根据本发明实施例的客户端密码输入方法的流程图。
    图10为包括密码输入字符和图形的旋转格式布局的虚拟键盘的不同实例。
    图11为根据本发明一个实施例的16位信用卡编号制。
    图12根据本发明一个实施例的动态信用卡号的典型最终用户注册的框图。
    图13为根据本发明一个实施例动态信用卡注册时服务器端生成UID和SCRS的流程 图。
    图14为根据本发明一个实施例客户端服务器生成信用卡号的虚拟账号部分的框图。
    图15为根据本发明一个实施例根据服务器端上的虚拟账号识别客户端的流程图。
    图16A和16B为根据本发明一个实施例UID、SCRS和TCID作为动态信用卡系统使用的实例。
    图17为根据本发明一个实施例的16位TAN编号制。
    图18为使用用户密码在服务器中生成多因素强密钥的系统。
    图19为根据本发明一个实施例通过在客户端设备上生成一次性使用动态虚拟信用卡号进行支付交易的安全支付系统。
    图20为根据本发明一个实施例使用用户设备的安全支付系统。
    图21为根据本发明一个实施例的使用用户设备对一个或多个商户发放的优惠券进行兑现的优惠券安全提供和兑现系统,其中,一个或多个优惠券存储在服务器中。
    图22为可完全或部分执行的合适的密码?;ぜ扑慊肪车氖道?。
    该领域技术人员应充分理解的是,图中元件以简明清晰的方式进行说明而不是按规定比例绘制。例如,图中一些元件的尺寸可能相对于其它元件进行了放大,以帮助理解本发明的各个示例性实施例。
    整个附图中应注意的是,附图标记相同的附图标记用于描述相同或类似元件、特征和结构。
    具体实施方式
    以下优选实施例的详细说明中参考了附图。附图构成具体实施例的一部分,本发明可能的具体实施例说明中对它进行了展示。在不偏离本发明范围的情况下,可采用其它实施例和对结构做出一些改变。
    图中附图标记的前导数位一般对应于第一次引入该部件的附图的编号,这样相同组件在多个图中出现时可使用相同的附图标记。相同的附图标记或标签可能指信号和连接,因此实际意思应根据具体说明来判断。
    说明书中所述的本发明的特征、结构或特点能够以合适方式在一个或多个实施例中进行组合。例如,本说明书中提到的“某些实施例”、“一些实施例”或其它类似语言指本发明的至少一个实施例也包括该实施例所述的一个特定特征、结构或特点。因此,本说明书中出现的“某些实施例中”、“说明性实施例中”、“某个实施例中”、“其它实施例中”短语或其它类似语言并不一定指的是同一组实施例,且所述特征、结构或特点可在一个或多个实施例中以合适方式进行组合。
    另外,本发明的说明中还参考了许多工业标准算法和密码系统,应理解的是它们仅作为实例使用且在不偏离本发明范围的情况下可做出一些改变。伪随机数、校验和、校验位和OPT值为该技术领域所熟知,以下说明书对某些特定算法的具体参考不具限制性,该技术领域普通技术人员应清楚的是其它类似实施例或实施方式可代替它们使用。
    图1为适合于实施本发明实施例的客户端-服务器结构的总体框图。该环境中,客户端计算机通过网络连接与服务器连接。这些服务器连接到一个搜索引擎数据库。下面详细论述服务器的作用??突Ф思扑慊ㄒ桓隹煞梦手鞔娲⑵骱透ㄖ娲⑵鞯闹醒氪砥鳎–PU)。主存储器包括一个网络浏览器副本(图中未示出)。为方便以下论述,假定所述网络浏览器是Redmond和Wash微软公司生产的微软因特网浏览器。主存储器也有操作系统副本(图中未示出)。主存储器另外还有注册表(图中未示出),注册表有注册的配置信息??突Ф思扑慊箍砂ㄐ矶嗍淙?输出设备,输入/输出设备包括视频显示器、键盘、鼠标、调制解调器和音频扬声器。
    该技术领域的技术人员应理解的是,图1中所示的计算机环境仅作说明之用。本发明还可用于其它计算环境,但不限于移动设备、手机、ipod、ipad和其它包括硬件令牌的个人数字助理。例如,本发明可应用于客户端计算机包括多个处理器的多处理器环境。另外,客户端计算机不需要包括图1中所示的所有输入/输出设备,且还可包括更多输入/输出设备。该技术领域的技术人员应理解的是,本发明还可应用于内联网且更普遍用于客户端计算机要从服务器计算机获取资源的分布式环境中。
    图2为根据本发明一个实施例的设备手动模式中的激活过程的流程图。激活过程包括在最终用户设备上生成初始密钥并与安全存储提供器(以下简称服务器)共享以生成共享密钥(K)。密钥包括两个组件;设备专用ID(CGDID)和使用标准密码随机数生成器生成的随机数(CR)。设备专用ID只有各个最终用户设备才有,其中若为移动设备,则设备专用ID可能是MSISDN(MSISDN是唯一识别GSM中订阅的数)数的函数或IMIE(IMIE是国际移动用户识别码)数的函数。始终在设备本身上进行计算,且该设备上的每次计算保证相同。设备专用ID不存储在该设备上,但客户端生成的随机数(CR)存储在该设备上。密钥是根据这两个数据对复合数据结构的反向计算。该密钥可打印/人为可读,传递给服务器。服务器对该密钥的组件进行计算,即设备ID(CGDID)和随机数(CR)。
    然后服务器使用标准密码随机数生成器算法产生随机数(SR)。该随机数对于每个激活过程是不同且独特的,且每个最终用户设备均生成该随机数。使用该随机数(SR)和设备ID(CGDID)创建复合数据结构,设备激活码。设备激活码为可打印/人为可读形式。设备激活码通过使用带外信道,比如Email或SMS传递给最终用户。
    最终用户设备需要最终用户输入该设备激活码以继续进行激活阶段。最终用户可通过对其进行反汇编和验证编入其中的设备ID来验证它是否为正确的激活码。激活码的剩余部分,即服务器上生成的随机数(SR)用作此后进行进一步处理的共享密钥的一个组件。因此,最终的共享密钥(K)包括设备ID(GCDID)、客户端上生成的随机数(CR)和服务器上生成的随机数(SR)。由于一项交易中所有这些信息从未经相同信道传递,因此该共享密钥不会被侦听该信道的人窃听。上述激活步骤的另一替代选择是,也可使用任一能安全地在两方间生成共享密钥的标准算法,如迪菲-赫尔曼密钥交换或其它类似协议。另外,上述激活过程可自动发生,客户设备与服务器??橹苯油ㄐ?,无需用户介入。
    图2的流程图所述的手动模式激活方法从用户激活后在客户端开始该过程。首先通过该方法生成随机数(CR)。随机数生成后,利用该方法计算设备专用ID(CGDID),然后随机数(CR)和设备专用ID(CGDID)组合并通过信道传递给服务器端。服务器端接收到组合代码数据块后,生成随机数(SR)数据块。使用该随机数(SR)和设备专用ID(CGDID)创建复合数据结构,设备激活码(AC)。该激活码(AC)从服务器通过另一个信道传递给最终用户客户端??突Ф松璞附邮盏郊せ盥?,然后通过对其进行反汇编和验证编入其中的设备ID来验证该激活码是否与它自己的激活码相匹配。若该激活码与它自己的设备不匹配,用户必须再次重新开始该过程。若设备激活码(AC)正确,根据它推导出随机数(SR)用于进一步的处理??突Ф松璞复娲⒏萆璞讣せ盥爰扑愠龅腃R和SR??突Ф松璞父軨R、SR和算出的CGDID计算共享密钥。每个和各个用户设备的CGDID均不相同。CR、SR和CGDID存储在服务器端上,且服务器端上根据CR、SR和CGDID计算出共享密钥(K)。
    图3为客户端屏蔽一次性密码(MOTP)生成过程和服务器端服务器密钥解码过程的框图??突Ф松?,一次初始化时,通过使用密码随机字符串生成器生成随机顺序字符数组(CRS)并存储起来,该方法开始。该随机顺序字符数组不多次包含任一字符;长度任意。一般而言,字符串数组越长,用它加密的数据就越难被猜出。应注意的是,CRS不一定仅限于字符串;也可为图标、符号、颜色、图形或简短的音频语句等项目的有序集合。用户密码为这些项目子集的有序集合。为简洁起见,以下实例中我们将CRS称作字符集合。同样作为初始化的一部分,TC-客户端和C-客户端这两个对应物也进行初始化。TC-客户端是根据时步值的动对应物,C-客户端是基于事件的对应物,每个OTP生成后增加。如RFC4226中规定,可用很多种算法生成OTP,包括HOTP算法,任一算法可得到相同的结果。
    客户端上,该方法从用户输入密码后开始。用户密码中的字符映射到它们在CRS中的相应位置,以得到CPIN。然后对CPIN进行填充(若用户密码小于最大长度),根据费尔赫夫算法校验位可选择增加校验位以得到VPIN。使用作为种子的共享密钥(K)和对应物(TC- 客户端和C-客户端),及工业标准OATH算法(HOTP算法如RFC4226中所述)计算OTP。然后用OTP对VPIN加密以生成MOTP(屏蔽OTP)。此处的加密为可逆加密,生成相同数目的数位/字符的VPIN。例如,可使用按位XOR或逐位数学运算。若MOTP为10位数形式,可对VPIN和OTP使用模10的算术函数。因此,由于VPIN=3201,OTP=4671,进行模10加法运算可以得到MOTP=7872。服务器端上,加密过程包括生成相同的OTP和进行相反运算,即模10减法运算。因此,得到MOTP=7872,OTP=4671,解密后得到VPIN=3201。OTP作为密钥/屏蔽的任何合适的可逆加密/解密过程均可用于此目的。
    然后使用洗牌函数(SF)对CRS洗牌,洗牌后的CRS存储起来以进行下一迭代运算。对应物C-客户端增加并存储起来。SF使用密码安全伪随机数生成器(CSPRNG)产生置换的变换矩阵(TM)。优选实施例中,CSPRNG可根据全反馈输出反馈模式(OFB)中使用的高级加密标准(AES)分组密码。高德纳洗牌算法可用作洗牌函数(SF),使用CSPRNG生成的随机数产生洗牌置换为TM。将共享密钥用作密钥,该SF函数为每个迭代运算生成新的TM并对当前CRS中的字符洗牌。
    客户端上,一次初始化时,通过使用密码随机字符串生成器生成随机顺序字符数组(SRS)并存储起来以用于相关用户记录,该方法开始。该SRS对于每个注册用户是不同且独特的。请注意,该随机顺序字符数组与客户端生成的数组(CRS)不同,除两个数组对于每个用户长度相同外,它们并没有关系。该随机顺序字符数组不多次包含任一字符;长度任意。一般而言,字符串数组越长,用它加密的数据就越难被猜出。同样作为初始化的一部分,根据与客户端根据共享密码(K)约定的值或根据接收到MOTP的时间生成初始值(TC-服务器)。这一决定根据使用的是基于时间的OATH算法还是仅基于事件的OATH算法。另外,也对对应物(C-服务器)进行初始化。
    从客户端接收到MOTP后,服务器端方法使用共享密钥(K)和动对应物(TC-服务器根据MOTP和C-服务器的接收时间计算出)作为OATH算法的输入对OTP进行计算。OTP计算后,通过进行与可逆加密过程相反的运算对MOTP进行解蔽??梢允谴覯OTP中减去OTP的模10减法运算,或“异”或OTP和MOTP以得到VPIN??裳≡穸孕Q槲?校验和进行验证以确保得到的VPIN有效。若VPIN有效,则去除校验位和填充以得到SPIN(编入MOTP中的CPIN的位置)。然后服务器计算SP,服务器通过将SPIN中的位置映射到相应SRS中的字符来查看用户密码。通过使用PKCS#5v2.1或较近版本中规定的密码基密钥导出函数(PBKDF),所得的服务器端密码(SP)用于生成服务器端用户专用强加密密钥(USKEY)。使用该密钥,可对服务器上的敏感数据进行加密,而无需存储服务器密码(SP)或加密密钥(USKEY)。
    服务器可选择将服务器密码零知识证明存储在其上以便以后验证。其中一种方法是, 使用RFC2945中规定的《安全远程密码协议》(SRP协议)来完成。该SRP协议在服务器上存储了验证者和盐,但未存储实际密码或其哈希值。验证者和盐以后可用于验证最初用于生成验证者和盐的实际密码的真实性。该方案中,用户第一次注册密码时,用户提供两个使用客户端设备上的相同PIN/密码生成的MOTP值,两个MOTP值生成服务器密码后,服务器对服务器密码的两个值进行比较。若相同,则意味着用户需要输入相同的PIN/密码以生成MOTP。这种情况下,选择一个随机盐并计算验证者。服务器存储验证者和盐而不存储实际服务器密码。
    然后使用洗牌函数(SF)对SRS洗牌,洗牌后的SRS存储起来以进行下一迭代运算。对应物C-客户端增加并存储起来。该SF与客户端SF使用相同的算法,也使用共享密钥K,这样,SRS洗牌与客户端CRS洗牌同步。将共享密钥用作密钥,该SF函数为每个迭代运算生成新的TM(变换矩阵)并对当前SRS中的字符洗牌。
    服务器和客户端应用程序可能由于不同步而未能计算出TC或C的相同值。若使用服务器中的前,用户多次尝试生成MOTP,在这种情况下,C-服务器的值与C-客户端不同,这种情况是可能的。另外,客户端和服务器OTP生成的时间步长窗口(TC-服务器和TC-客户端时间步长对应物值之差)可能因OTP传输延迟而不同。因此,服务器可通过使用不同的TC-服务器和C-服务器值,尝试几个不同值来计算TC-服务器和C-服务器。该TC-服务器根据时间步长窗口,服务器最多尝试“n”个时间步长值以防网络延迟。另外,对于C-服务器,服务器可以递增顺序最多尝试“m”个不同的值。预览窗口应保持最小。该预览窗口中可进行最多“n”x“m”次不同计算和很多次正确OTP的猜测尝试。较大预览窗口会引入OTP攻击窗口;因此建议保持系统可用性的同时应将预览窗口保持最小。TC-服务器和C-服务器的有效排列确定后,服务器可计算客户端使用的C-客户端值并相应调整SRS的洗牌。
    图4为客户端设备MOTP生成过程的流程图。首先,提示最终用户使用一种密码输入方法在最终用户设备中输入PIN/密码。用户密码然后转换成CPIN(当前CRS中用户密码字符位置的有序列表)。由于每次生成MOTP后对CRS洗牌,每次用户密码映射到CPIN,CPIN值均不同。因此,用户密码每次映射到不同的CPIN。图7中的实例对此进行了进一步说明。然后对CPIN填充(若用户密码小于最大长度),可选择添加校验位/校验和以得到VPIN(可验证的CPIN位置)。校验和/校验位添加至CPIN,以便在服务器端上用于验证CPIN的有效性。根据MOTP可用数位/字符来添加校验位或校验和。例如,若MOTP仅为8位,根据费尔赫夫算法校验位可能为一位数。然后使用可逆加密过程对VPIN加密,可逆加密过程把OTP作为密钥以生成MOTP(屏蔽OTP)。使用HOTP算法、共享密钥K、基于时间的对应物值TC-客户端和事件基对应物值C-客户端生成OTP。MOTP以可读的形式呈现给最终用户并传递给服务器。对 应物(C-客户端)增加并存储起来。同样CRS也使用根据SF得到的下一变换矩阵洗牌并存储起来。由于未存储前面的变换矩阵,所以不可能根据当前的CRS生成前面的变换矩阵,因此应确保当前MOTP受访问时,设备无法将MOTP映射回用户密码。
    图5根据本发明一个实施例使用用户设备中的用户密码生成的MOTP在服务器端生成用户专用多因素独立服务器密钥的流程图。该方法从接收到MOTP(最终用户在客户端设备上生成的)时开始。初始化“计算客户端漂移”变量以在HOTP算法中尝试使用事件基对应物的不同可能值。然后根据C-服务器和“计算客户端漂移”的值计算变量curC(HOTP算法中用于生成OTP的事件基对应物值)的值。另外,服务器根据MOTP的接收时间计算时间步长对应物的值并用它初始化curTC这一变量。现在使用curC和curTC的当前值计算OTP的值。使用该OTP的值,通过解密过程根据MOTP得到VPIN,解密过程中OTP作为密钥使用。然后可选择通过检验插入其中的校验和或校验码来验证VPIN的有效性。
    若服务器OTP值与客户端生成MOTP所用值相同,则可得到客户端加密或屏蔽的相同VPIN,因此VPIN中上述步骤得到的校验位或校验和正确。若VPIN有效,去除校验位或校验和后,根据VPIN得到SPIN。SPIN与插入MOTP的CPIN(用户密码在客户端CRS中的字符位的有序列表)相同。服务器将位置值代入SPIN并将其映射到当前服务器端SRS中的对应字符以得到服务器密码。若前面密码注册步骤中存储了如《安全远程密码协议(RFC2945)》规定的服务器密码的验证者和盐,则服务器根据该协议验证当前服务器密码。若发现服务器密码无效或VPIN无效,尝试用许多curTC的不同值来计算新OTP值,并重复上述步骤。这是为了防止网络延迟、用户输入延迟或客户端和服务器之间的时间差,在最大时间步长窗口阶段完成。
    尝试所有允许时间值后,若未发现有效VPIN或密码,使用“计算客户端漂移”这一变量增加curC的值(事件基对应物),再次得到并验证不同的OTP值。若用不同的事件基对应物和时间相关的对应物值尝试了允许的最大次数后,仍未得到有效密码,则保存SRS和CSPRNG上次保存状态并拒绝当前MOTP值。若发现有效VPIN和密码校验和,服务器代码继续以下步骤以得到用户专用服务器密钥。
    有效服务器密码找到后,C-服务器的值增加(计算客户端漂移+1)的值?!凹扑憧突Ф似啤钡闹到衿鞫杂ξ顲-服务器调整至与该客户端相同的值。最后再次对SRS洗牌并存储起来以便下一迭代运算与客户端CRS同步。这样,生成的服务器密码可用于根据PKCS#5v2.1或类似方案中规定的密码基密钥导出函数(PBKDF)生成用户专用服务器端强密钥。请注意,服务器密码或根据其导出的用户专用服务器密钥不存储在服务器上,它们仅用于在接收到有效MOTP时加密或解密敏感数据。
    图6为根据本发明一个实施例用户密码/PIN注册和敏感数据存储的框图??蛲贾兴镜氖强突Ф说墓毯头衿鞫艘蟮墓???突Ф松?,该方法从自激活用户设备的最终用户接收到PIN和确认PIN后开始。用户设备接收到PIN后,根据用户输入的PIN生成MOTP,即根据PIN对应生成MOTP1,根据确认PIN对应生成MOTP2。根据用户PIN/密码生成MOTP上文已说明,此处不再赘述。另外,用户设备还生成激活确认码(ACC),以便服务器可验证客户端已激活并知道共享密钥K,其中激活确认码是一个数字。最终用户使用生成的激活确认码(ACC)、MOTP1和MOTP2在服务器上注册和加密敏感信息。服务器端上,服务器接收ACC、MOTP1、MOTP2和敏感信息。该方法对激活确认码进行验证。通过对激活确认码的验证,服务器证实用户设备已激活并知道共享密钥K。
    验证用户设备后,服务器计算出服务器密钥1和服务器密钥2,二者分别根据用户输入的MOTP1和MOTP2生成。该方法比较服务器密钥1和服务器密钥2是否相等。若根据MOTP得出的两个服务器密钥一致,最终用户输入的PIN和确认PIN必须相同,否则最终用户需要通过输入正确的PIN以在用户设备上再次生成MOTP。若用户输入了正确的PIN,所得的服务器端密钥可用于在服务器上加密敏感信息。加密密码文本存储到服务器上,但不存储用户专用服务器密钥。使用由用户在用户设备上输入的密码生成的服务器端强加密密钥在服务器上加密敏感信息。服务器可选择存储一些信息以验证服务器端的服务器密码,但要求存储的信息应不向任何敌手泄露任何有关服务器密码的信息并能抵抗强力密钥搜索和字典攻击。实现该目的的一种方法是使用RFC 2945规定的《安全远程密码协议》并将验证者和沿存储在服务器上以便以后验证服务器密码。
    激活和注册阶段成功完成后,最终用户可使用最终用户设备将敏感信息安全地存储到服务器上/在服务器上进行检索。每次交易,最终用户均须提供PIN/密码。根据提供的PIN/密码,新MOTP在客户端生成并用于服务器在服务器端查看用户密码,然后使用所得的服务器端密码(SP)生成用户专用强加密密钥(USKEY)。然后服务器端使用USKEY加密密文以得到以上存储的敏感信息。最后使用存储提供器存储私钥(PKI)、X.509数字证书或其它最终用使用户USKEY安全拥有的敏感私人信息。
    图7为根据本发明一个实施例用户密码转换成服务器密码以便进行客户端和服务器之间不同迭代运算的实例。对于该简化实例,假定客户端CRS包括0至9位且分别在CRS中索引位置0至9。服务器端SRS包括分别在0至9索引位置的字符X、Y、Z、T、W、L、M、N、O、P。对于此种排列(将其称为迭代i),若用户在客户端输入密码(如1234),则服务器端生成的密码为YZTW。下一迭代运算中,即迭代i+1,客户端CRS已根据变换矩阵TMi+1洗牌且字符的索引位置如图中所示。由于客户端和服务器端同步洗牌,服务器端SRS已根据相同 变换矩阵TMi+1洗牌且服务器端字符映射如图中所示。同样,若用户输入相同的密码,即1234,客户端生成的有序位置数组(CPIN)为3201(如图所示)。CPIN屏蔽在OTP中并作为MOTP进行传递时,服务器可对MOTP解密得到SPIN为3201。现在当该SPIN映射到当前SRSi+1中的字符时,生成相同的密码YZTW。由于服务器端随机有序数组以客户端上相同的方式进行洗牌,服务器端检索到的密码与先前迭代相同。同样对于下一迭代i+2,同一用户密码的CPIN为1876,但服务器端上解码时也生成正确的服务器密码YZTW。
    图8为根据本发明一个实施例客户端和服务器端密钥映射转换的实例,其中客户端CRS包括字母A至J。
    图9为根据本发明实施例的客户端密码输入方法的流程图。密码可包括图形、符号、颜色或音频提示。另外,该输入方法可?;び没苈胍虬醇锹计鞫坏?,因为击键时不显示真实密码。此处假定CRS已预输入一些项目以供用户创建密码。这可通过用户预选完成,或系统从较大集合中随机选择。该方法从根据CRS制定项目圆形阵列开始。圆形阵列显示其中几个项,并将其排列成一个项为可视指示器下的当前项。显示器中的项以一定的可变速度在一个方向上转动。有选项可供最终用户更改转动方向和速度。另外,用户可按下按钮“输入”以选择当前项,将其在CRS中的位输入到CPIN数组中。用户可按下“清除”按钮清除上次选中项。CPIN数组中当前项的数目显示在显示框中,各项用“*”表示,如图10所示。用户输入完密码后,按下“完成”按钮,该方法结束并提供当前CPIN数组以进行进一步处理。CPIN数组按照上述进行处理以生成MOTP。
    图10为包括密码输入字符和图形的旋转格式布局的虚拟键盘的不同实例。
    根据本发明的另一实施例,可进行客户端和服务器同步密钥映射转换以生成动态时间相关的客户端/用户识别号。根据本发明的一个实施例,可使用该客户端/用户识别号和MOTP生成一次性使用动态信用卡号。
    图11为根据本发明一个实施例的16位信用卡编号制。除16位信用卡号,该编号制可按以下方式生成信用卡的有效日期。到期日的格式为:月-年(MM-YY),其中月(MM)记录的是用户身份验证码(UAC)的第四位数,以保证1到9的月份值表示数值1至9,而10用于代表数值0。11和12月份值保留不使用。年份值YY,用于记录信用卡号生成时的当前时隙。设置YY值以保证取时隙基对应物值的模3且根据返回值;按照以下方式调整YY:
    若返回值为0,则YY设置为当前年份+1
    若返回值为1,则YY设置为当前年份+2
    若返回值为2,则YY设置为当前年份+3
    如图11所示,IIN是一个4或6位发行者识别号,用于识别发行该卡号的组织或银行。 该卡号是固定的并在最终用户注册动态信用卡时通过服务器传递给客户端。建议发行者使用特殊用途的IIN识别虚拟动态卡号范围,以便不与相同发行者生成的其它永久卡号相混乱。虚拟账号字段包括加密TCID和部分UAC值。加密TCID值和UAC的每个数字根据为TCID值计算的校验位的值分布到虚拟账号字段。TCID值与时间相关的动态客户识别号向对应。根据动态信用卡号识别特定客户。TCID字段基于时间且每个时隙均不同。UAC字段是用户身份验证码,它取决于用户密码或PIN。每次交易中,UAC的值均不相同。信用卡号的最后一位是根据Luhn算法算出的校验位,用于验证信用卡号。另外,系统可选择生成三位CVV码,可用于适应较大UAC值的剩余数字,或根据其它信息,客户端真实性可增强。
    用户注册动态信用卡服务时,服务器给客户端分配一个“tcidEncryptionKey”、UID和uidKeyMap布局(SCRS)。tcidEncryptionKey用于将其插入到虚拟账号字段前加密TCID值。请注意,uidKeyMap布局(SCRS)是一个不同于上述密钥映射布局(CRS)生成的客户端的字符数组。SCRS布局在服务器端生成,分配给每个注册客户端。另外,字符数组SCRS不会多次包含同一字符。另外,IIN由服务器根据用户注册的支付信息分配给客户端设备,用于通过信用卡网络将动态信用卡请求正确发送给安装动态信用卡系统服务器端??榈恼贩⑿姓?。公用种子密钥(CSK)传递给注册客户端,以与服务器同步生成随机数。生成动态信用卡号时,该密钥和当前时隙值用于SCRS洗牌变换矩阵。CSK为所有注册用户端所共用,因此所有注册客户端和服务器可相对时间同步各自的转换。注册后,当用户请求生成新的动态信用卡时,客户端设备使用为当前时隙根据变换矩阵洗牌的SCRS以生成TCID,TCID用于信用卡号的虚拟账号中。虚拟账号的UAC部分通过使用最终用户提供的密码/PIN生成4位MOTP来生成。UAC为4位,其中3位作为虚拟账号的一部分存储起来,第四位作为到期日的月份部分插入。使用当前时隙对应物值的模3来计算目前生成的动态卡号的到期日的年份部分,如上所述。根据时间步长值当前时隙的UNIX时元时间计算时隙对应值。
    动态信用卡系统服务器??榘沧霸贗IN识别的银行或机构的发行者网络上。因此当动态信用卡号请求通过信用卡交换网络进行授权时,服务器??榭筛菪庞每ê湃范ㄊ导士突Ф撕偷狡谌?,并对最终用户使用现有系统注册的支付工具进行实际授权。如何根据信用卡号的虚拟账号部分确定客户端将在以下说明书中进行解释。现在,客户端生成动态卡号时,所用的时隙可与根据服务器基于动态卡号接收交易的交易时间算得的时隙值不同,这可能是由网络延迟或服务器和客户端之间的时间差引起。为说明这一点,服务器按照三个时隙值校验TCID值。即当前时隙、前一时隙和后一时隙。服务器根据接收信用卡交易的到期日的值来确定使用三个可能时隙值中的哪一个。以下通过例子来说明。例如,若月份值等于当前年份+1的值,则可确定客户端上对应值的模3的结果为0。现在假若服务器上的当前对应值为255, 则可确定客户端和服务器同步,并将当前服务器时隙值用于进一步的计算。若服务器上对应值为256,则可确定必须使用前一时隙值。若服务器上的当前对应值为257,则将后一/下一时隙值,因为客户端上使用的值可能为258。有关如何使用TCID识别客户端及客户端上如何生成TCID的详细信息,以下将结合附图在本说明书中做进一步介绍。上文中已对根据注册和生成MOTP生成UAC部分进行了概括性说明,因此动态信用卡号的具体实例中将不再赘述。该技术领域中的普通技术人员应很容易理解,UAC部分对动态信用卡号方案如何生成。请注意,每次生成动态信用卡号时会根据最终用户密码或PIN市场UAC部分,且每次交易的UAC部分均不同。
    图12根据本发明一个实施例的动态信用卡号的典型最终用户注册的框图。最终用户激活客户端设备后,通过提供第一支付工具的财务详细信息注册动态信用卡服务,用动态信用卡购物的消费记在所述支付工具上。除支付信息外,用户还需传送相同密码生成的MOTP。使用该密码在服务器端对该支付信息加密。支付信息可为银行发行的现有信用卡号或银行财务账号。服务器利用接收到的MOTP推导出用户专用服务器密钥并用该密钥在服务器端对支付信息加密。服务器通过校验两MOTP是否生成相同的服务器密钥来验证密码是否正确。若出现错误,用户须输入另一组MOTP。接收到支付详细信息后,为最终用户设备分配一个唯一用户ID(UID)、uidKeyMap(将其称为SCRS)布局,还为每个注册客户端分配一个随机tcidEncryptionKey。SCRS是字符的有序列表、UID是SCRS的一些字符构成的唯一字符串。例如,SCRS可由字符A、B、C、D、E、F、G、H、K和J构成。每个客户端分配一个唯一UID字符串和一个uidKeyMap布局,所述uidKeyMap布局是上述字符的排列。UID字符串和uidKeyMap布局分配给每个客户端由服务器完成,以确保在任一特定时隙,UID字符串的值对所有注册客户端均具有唯一性且分配给客户端的SCRS中这些UID字符产生的位置映射数组对所有注册客户端也具有唯一性。另外,服务器根据接收到的支付信息向客户端分配IIN。该IIN用于通过信用卡交换网络向安装了动态信用卡系统服务器端??榈恼贩⑿姓叻⑺投庞每ê?。
    图13为根据本发明一个实施例新客户端注册动态信用卡时服务器端生成UID和SCRS的流程图。系统对主集字符进行随机排列以便于新客户端使用,随机排列后的字符组称为“uidKeyMap布局”(SCRS)。下一步,系统根据主集中的字符生成随机字符串并保证字符串的长度与TCID的长度相等。我们将该字符串称为相关UID。下一步校验该UID以前是否使用过,即该UID对于所有注册客户端是否具有唯一性。若该UID已用,则返回选择另一随机UID。若UID唯一,则通过将UID字符映射到它们各自在分配的SCRS中的索引位置来将该UID映射到索引位置-uidPositions。下一步校验uidPositions值对于所有注册客户端是否具有 唯一性。若uidPositions值不唯一,则返回创建UID那一步并选择新的随机UID。若uidPositions唯一且不与现有任一注册客户端冲突,则用户找到了可分配给新注册客户端的UID和uidKeyMap布局(SCRS)。该方法将uidKeyMap布局(SCRS)和相关UID及uidPositions存储在服务器端上并连接至注册客户端上。另外,还向注册客户端分配和发送随机客户端专用tcidEncryptionKey,以便客户端可对TCID值加密?;瓜蜃⒉峥突Ф舜凸弥肿用茉?,以便客户端可与服务器同步在分配的SCRS上进行转换。
    图14为根据本发明一个实施例客户端设备生成信用卡号的虚拟账号部分的框图。该方法从最终用户请求一次性使用动态信用卡号时开始??突вτ贸绦蛱崾居没褂靡恢置苈胧淙敕椒ㄊ淙隤IN并按上述生成MOTP。该MOTP用作用户身份验证码(UAC)??突Ф擞τ贸绦蚋莸鼻笆毕吨岛鸵阎乃惴ǘ源娲⒌膗idKeyMap(SCRS)洗牌。对所有用户均进行SCRS洗牌并对所有客户端使用相同的已知算法。但向每个客户端分配SCRS和UID是不同的,因此任一特定时隙,每个客户端生成唯一TCID。TCID生成为位置列表,通过按当前时隙将UID字符映射到洗牌后的SCRS中。另外还为TCID值计算校验位,随后TCID使用tcidEncryptionKey加密。校验位值用于确定将加密TCID和UAC数位分布到虚拟账号字段中的方案。这样,对于不同客户端,加密TCID和UAC的数位则分布到虚拟账号字段的不同位置,且每次交易均会发生变化。例如,校验位为2,加密TCID值自虚拟账号的位置2开始,且虚拟账号的剩余部分围包起来。这样,虚拟账号字段则为圆形阵列,加密TCID值的起始位置取决于校验位值。任何可根据校验位使内加密TCID和UAC分布在不同位置的方案均可使用。由于客户端和服务器知道每个时隙的预期校验位值,因此它们可确定实际位置。但不知道这一点的敌手很难预测加密TCID和UAC在虚拟账号字段中的实际位置,因而很难对密码进行分析。
    在一个优选实施例中,可使用3x3矩阵的希尔密码对6位TCID加密??墒褂冒?至96长度为97的数字集,和模97算术且数字集中的每个字符用两位数(如从00至96)构成的字符串表示,则TCID是两位数的三个字符构成,如234589包括三个字符“23“、“45”和“89”,并映射到模97值域的相应数字上。现在由于数字集仅有97个字符而不是小数0至99需要的100个字符,因此对UID(实际上对TCID)进行限制,以使TCID不含集合00、11、22、33、44、55、66、77、88和99中的任一字符。这样,输入的TCID不含这些字符中的任一字符,因此可映射到仅有97个字符的数字集上。另外,输入TCID中的字符97和98映射到字符上,从而释放至上述数字集范围内,如11和22。加密后,进行反映射以将这些字符映射回97和98。希尔密码隐藏了输入TCID中的任一一位或两位形式。并且由于输入TCID每次交易均会变化,所以敌手无法预测出特定加密TCID的希尔密码的输入文本。虽然希尔密码对于已知明 文攻击很容易破解,但对于唯密文攻击还是较安全的。且由于明文(输入TCID)未知,因此敌手不可能根据唯密文(加密TCID值)破译希尔密钥。因此为我们的优选实施例提供了极好的安全性。另外,使用长度为97和3x3矩阵的更大数字集能为希尔密码密钥提供更大的密钥空间。现在虽然输入TCID在特定时隙的特定客户端总是唯一的,但使用不同客户端专用密钥进行加密,加密TCID值可能会冲突。因此需要使用对注册客户端最少出现冲突的加密算法。若发生冲突,服务器使用虚拟账号的UAC部分或其它信息(如AVS或CVV)以进一步缩小可能客户端的列单。若即使使用UAC或其它任何可用信息对引起冲突的客户端进行了区分,但仍存在疑问,则服务器会拒绝该次交易。在这种情况下,客户端需要再次生成一个新的动态卡号并用新卡号提交本次交易。一个冲突多次发生的可能性极小。
    图15为根据服务器端上作为动态信用卡号的一部分接收的虚拟账号识别客户端的流程图。对于每一个注册客户端,服务器通过将当前时隙的变换矩阵应用到该客户端相关的uidPositions上以确定校验位。然后根据校验位从信用卡号的虚拟账号字段提取出加密TCID值和UAC。再使用该客户端的tcidEncryptionKey加密encryptedTCID值以得到TCID值。然后服务器通过将TCID中的位置映射到相应uidKeyMap(SCRS)中的字符来计算UID字符串,若生成的UID字符串与相关UID字符串值匹配,则认为该TCID值对该客户端有效。若发现了对特定虚拟账号的客户端有效的TCID值,则将该客户端添加至可能客户端的列表中。对每个注册客户端,均进行这些计算以发现所有可能的客户端。若列表中有不止一个可能的客户端,则服务器进一步校验这些冲突客户端的UAC码并试图除去根据虚拟账号得到的UAC码无效的客户端。若即使进行了最后一步,仍有不止一个可能客户端(虽然这种情况不太可能),若商户已提供该客户端的更多信息,如AVS(地址验证数据)、CVV或CVV2数据,则这些信息用于识别实际客户端。若这些额外信息不可用,在虚拟账号冲突的情况下,服务器拒绝当前动态卡号。这样用户需要再次生成新的动态信用卡号,然后再次尝试交易。一个冲突多次发生的可能性极小。由于UID值和uidKeyMap布局分配给注册客户端的方式,对于任一有效TCID值,uidKeyMap条目列表中仅一个条目与存储的相关UID值匹配。因此,所有注册客户端总生成一个唯一TCID值,该值对于每个时隙均不相同。由于TCID值不同且在插入到虚拟账号中前进行加密,因此敌手要想从过去虚拟账号推导出任何形式或预测未来的极其困难。
    以下通过用图16所示的实例进行说明,可清楚理解将唯一uidKeyMap布局和相关UID分配给各注册客户端这一过程。主字符集有10个项目,包括字符A、B、C、D、E、F、G、H、K和J??突?分配到UID“DBGHFJ”和对应索引位置0至9中的F、B、G、K、A、J、E、D、C和H的uidKeyMap布局(SCRS)。类似地,客户4分配到UID“AHEDCF”和对应 索引位置0至9中的G、B、H、E、D、K、J、A、C和F的uidKeyMap布局(SCRS)。图16中图表(B)部分所示为变换矩阵为时隙T1计算的TM。也示出了个人客户端如何对按时隙T1分配给它们的SCRS洗牌。例如,客户端2想生成TCID,时隙T1时,按照根据时隙T1变换矩阵洗牌的SCRS,将分配到的UID(为DBGHFJ)映射到索引位置。完成该步后,产生TCID值“968572”。时隙T1时最终用户作出相同请求时,用户设备上的软件客户端应用程序使用该TCID生成动态信用卡号。同样地,客户端4为相同时隙生成TCID值“981045”。图16中(C)部分所示为服务器如何根据基于信用卡号得到的TCID识别实际客户端。如图所示,服务器通过将位置映射到存储的注册客户端的uidKeyMaps(SCRS)以将接收到的TCID映射到字符串。产生的字符串与注册客户端各SCRS的存储的相关UID相匹配。仅在授权客户端通过将分配到的UID映射到根据时隙洗牌的分配到的uidKeyMap(SCRS)中的索引位置,才会生成字符串,该字符串与服务器端存储的该客户的相关UID值相匹配。因此,服务器可根据给定TCID识别SCRS条目,从而识别相关客户端。另外,由于UID的分配使UID对于所有注册客户端具有唯一性且对所有注册客户端的uidKeyMaps(SCRS)按照时隙统一进行洗牌,按照uidKeyMaps(SCRS),在任何特定时隙,将只有一个字符串匹配相关UID。因此,本发明提供一种方法,通过这种方法,时间相关的动态ID(TCID)可分配给各注册客户,服务器接收到该ID后可根据它识别客户端。另外,使用客户端专用加密密钥(tcidEncryptionKey)对TCID加密,并根据TCID计算校验位。该校验位的值可确定将加密TCID和UAC分布到动态信用卡号的虚拟账号中的方案。另外,由于不显示分配给各客户端的SCRS和UID,仅信用卡号中仅传送随时间变化TCID的加密值,因此极难预测虚拟账号或根据以前的号码推导出任何形式。另外,仅仅通过观察信用卡号中传送的虚拟账号,而没有其它更多信息,不可能推断出客户端的SCRS和UID。再者,由于每个客户端的SCRS和UID不同且唯一,因此即使一个客户端泄露,敌手也不能生成其它客户端的虚拟账号。敌手最多使用从泄露客户端得到的信息生成虚拟账号的某个部分,尤其是TCID,而这部分仅代表泄露客户端。另外,由于UAC是虚拟账号的一部分且取决于用户密码,卡号在设备上的生成次数,及用户密码不存储在客户端设备上,因此敌手无法推导出有效的UAC码。因此,本发明说明的动态信用卡系统在即使泄露了客户端设备的情况下仍可提供强大的安全性。
    根据本发明的另一实施例,时间相关的客户端/用户识别号与MOTP可用于生成一次性使用有效性有限的财务交易授权号(TAN)以方便用户设备支付系统的使用。在该用户设备支付情形中,注册最终用户(付款人)在客户端应用程序上输入PIN、金额和收款人限制模式,客户端应用程序生成TAN号。TAN号发送给付款人以实现付款。在该系统中预注册的收款人将TAN号、交易金额及其它交易详情发送给服务器。服务器根据给定信息对付款人身份进行 验证并向收款人提供付款确认。利用该系统,付款人可仅通过向收款人提供一次性使用TAN号,无需透露任何敏感财务信息,付钱给收款人。
    图17为根据本发明一个实施例的16位TAN编号制。付款人在客户端应用程序中输入PIN、金额和限制类型以生成财务授权(即TAN),所述财务授权包括虚拟账号,其中财务授权可有任一数位(优选为16位数)。财务授权由不同部分构成,包括编码类型、编码共享UID、编码UAC(第1部分)、虚拟账号(包括编码UAC(第2部分)和加密TCID)和校验位。下面说明各部分的计算方法。MOTP(UAC)根据用户(付款人)的PIN生成,如上所述。编码TCID也是在客户端上生成,如上动态信用卡实例中所示。
    编码类型是一位数,表示限制、金额和MOTP(UAC)的编码方案。有三种不同的限制模式适用于TAN以限制收款人的使用,分别如下:
    (a)无:指财务授权可无任何限制地用于任一类型的商户(付款人),用限制类型值0表示。
    (b)特定类中的一类(在线、食品、汽油等)该类限制中,财务授权适用于与用户(付款人)所选商户属同一类的商户(付款人),用限制类型值3表示,限制屏蔽设置为该商户的预定义4位分类代码值。例如,在线商户、电影商户、食品商户、石油商户、最终用户等的限制屏蔽的值分别为0001、0002、0003、0004、0005等。
    (c)具体:该类限制中,财务授权仅适用于用户(付款人)选择的特定商户代码。用限制类型值6表示,限制屏蔽设置为用户(付款人)输入的4位分类代码值。例如,若将付款通过财务授权限制到基于特定移动号码的商户(收款人),用户(付款人)可输入该商户移动号的后四位作为特定商户代码值,以将其设置为限制屏蔽。
    财务授权中的“编码类型”数位通过结合限制类型和基于时隙的对应值的模3值,用于基于时间的用户/客户识别。例如,时隙模3的值为2,用户选择的限制模式为电影。从而可得到限制类型值为3,限制屏蔽值为0002。而编码类型数位由以下公式算出:
    编码类型=对应值的模3+限制类型=2+3=5
    金额值进一步分为整数部分和小数部分。金额值的整数部分与MOTP值和限制屏蔽结合以得到“编码UAC”值。计算“编码UAC”所使用的编码过程是一个可逆的加密过程,可生成与MOTP中相同个数的数位/字符。优选实施例中,加密可使用模10加法运算,解密可使用模10减法运算。首先,整数部分用MOTP值加密,若限制模式不是“无”,则生成的值用“限制屏蔽”值进一步加密。从而,得到的“编码UAC”分为两个部分,“编码UAC(第2部分)”与“加密TCID”一起构成财务授权中的虚拟账号字段。虚拟账号的生成方法已在上文中说明,因而此处不再赘述。代替部分UAC值,在这种情况下使用“编码UAC(第2部分)”。
    “共享UID”为两位数,用于在分配的UID超过6位时记录其它数位。金额值的小数部分用“共享UID”编码以得到“编码共享UID”。此处的加密过程是可逆的,生成与“共享UID”相同个数的数位/字符。
    财务授权的最后一位是根据Luhn算法算出的校验位,用于验证财务授权无打字错误。
    图18为使用用户密码在服务器中生成多因素强密钥的系统。系统包括用户设备、服务器和数据库。系统还包括通信网络和与网络连接的第三方服务器。用户设备包括能使设备ID提取器、一次性密码生成器和虚拟键盘生成器执行功能的用户???。服务器包括服务器???,其中服务器组件包括服务器密钥生成器和虚拟键盘生成器。数据库与服务器连接,能够存储数据。所述网络是连接用户设备和服务器设备的通信网络。所述通信网络还与一个或多个第三方服务器连接以提供服务。
    在一个实例操作中,系统在服务器上可生成二因素强密码,用于加密数据,无需数据传递或将其存储在任何位置。系统可根据用户密码推导出安全的二因素服务器密钥。该系统中,PIN/密码不存储在用户设备中和服务器上?;固峁┝艘恢钟肕OTP(PIN位置屏蔽在OTP中)传递修改PIN/密码的方法。服务器上,MOTP用于生成服务器端密码,该服务器端密码不同于但取决于用户密码。使用服务器端密码对服务器上的保密数据加密并将加密后的数据保存在服务器上,无需保存密码。由错误的用户密码生成的MOTP或用正确的密码在不同客户端设备上生成的MOTP不会生成相同的服务器端密码,因此无法用于加密服务器上的数据。因此,对存储在服务器上的数据加密必须要具备正确的用户密码(第一因素)和正确的客户端设备(第2因素)??突Ф松璞覆痪哂杏泄赜行IN/密码的任何信息可?;た突Ф擞τ贸绦虿⒎乐雇ü聪蚯蟪龌蛎茉科埔攵愿糜τ贸绦虻穆矣?。仅授权人员知道实际PIN/密码且使用该有效PIN/密码生成的MOTP仅可用于加密服务器上的数据。由于PIN/密码不存储在服务器和客户端上,系统提供了一种通过二因素强身份认证使服务器上的敏感数据安全。
    本发明背后的主要原理是决不将密码以原始的形式存储在客户端设备或服务器上。用户输入的密码在传递给服务器之前,在用户设备上使用变换矩阵进行转换。服务器使用与客户端同步生成的其它变换矩阵推导出不同的密码。由于客户端和服务器同步进行变换,服务器能有效地识别根据用户密码衍生出的服务器密码,无需知道密码是什么。只要用户密码有效,服务器密码正确,服务器便能对该客户端的安全数据加密或解密。为使转换同步,客户端和服务器需要共享某些数据,不断影响当前转换。虽然共享该“种子数据”通常是该类方法的弱点,本发明使用带外信号以商定一部分共享数据,从而弥补了这一缺陷。另外,即使共享密钥泄露,但由于访问这些安全设置的数据需要用户密码,而该用户密码不存储在任何位置,因此本发明的系统提供了更高的安全性。本发明的另一优点是,客户端和服务器变换是 不可逆的,提供了前向安全性和后向安全性,因此即使敌手访问了客户端设备当前状态和服务器当前状态,也无法猜出用户密码和根据先前的MOTP值生成用户密码或服务器密码。
    本发明解决了互联网安全领域中存在的一些问题。在那方面,本发明是一个基础设施解决方案。使用本发明支持的安全性增强的基础设施,可采用很多基于互联网的应用程序。
    1.存储安全:使用本发明可实现微软设想的用户数据存储解决方案。较专利解决方案的优点是数据所有权和使用政策完全由用户决定,因为访问存储数据的密钥仅由仅用户管理。
    2.多因素身份验证:用户身份验证需要第二因素的互联网应用程序可重新配备工具使得可以使用较普遍的设备,如移动电话,来生成一次性密码。当前,此类两因素身份验证系统生成一次性密码时需要使用的硬件设备(令牌、金卡等)较昂贵。使用用户自己的通信设备较具有成本效益,且本发明不将用户密码存储在其上,因此即使此类设备被偷或侵入时也能?;び没?。
    3.一次性使用信用卡号:本发明还可用于在用户手机上直接生成一次性使用的信用卡号。该一次性使用信用卡号与用户实际信用卡或转账卡或其它金融支付工具。用户实际财务信息存储在服务器上,受到用户强服务器密钥的?;?。用户手机生成的一次性使用信用卡号可用于现有电子商务和商业环境。为了方便用户手机使用,本发明提供了一种第二因素经鉴定的一次性使用信用卡号。
    4.用户密码一次性使用密码推动器/存储到其它网站:本发明还可用于生成一次性使用密码,该一次性密码给某人以授权他暂时访问该网站。该系统提供了一个代理网站,用户可在该网站上输入由本发明生成的一次性使用密码。该代理服务器检索通过用户强服务器密钥?;け4娴氖导拭苈?,并将用户指向实际网站。该服务对于最终用户想从公共场所访问网站时很有用,因为无需使用实际密码而只要使用一次性使用密码访问该网站。
    虽然不要求,但所述的系统和密码?;し椒ㄊ窃诟鋈思扑慊葱械目芍葱兄噶罨肪持校ǔ绦蚰?椋┦褂?。程序??橐话惆ㄖ葱刑囟ㄈ挝窕蛱囟ǔ橄笫堇嘈偷睦谐绦?、程序、对象、组件、数据结构等。虽然上文已对该系统和方法进行了说明,以下所述的动作和运行也可在硬件中执行。
    图19为根据本发明一个实施例通过在客户端设备上生成一次性使用动态虚拟信用卡号进行支付交易的安全支付系统。本发明的实施例中,安全支付系统包括客户设备、服务器和商户。为能使用动态虚拟信用卡客户端应用程序,客户端设备请求服务器通过一个或多个通信网络接收应用程序??突Ф松璞复臃衿鹘邮栈虬沧盎蛳略赜τ贸绦蚝?,客户端设备被激活生成共享密钥,其中该共享密钥根据客户端设备专用ID和客户端设备与服务器生成的随 机数计算得到。激活过程已在上文中进行了详细说明。使用户通过客户端设备注册服务器应用程序,其中注册过程包括输入个人PIN、个人签名信息、信用卡号(包括到期日和CVV等)或其它资金来源相关信息。用户还向发行行(通过分行、网站等)注册资金来源信息。注册过程包括服务器向客户端设备分配时间相关的客户识别号(TCID)加密密钥、唯一用户识别号、唯一用户识别密钥映射布局。该唯一识别密钥映射布局包括特定时隙的唯一用户识别号和密钥映射的组合。时间相关的客户识别号加密密钥用于在将其插入到虚拟信用卡号前对时间相关的客户识别号加密。动态虚拟信用卡号中与时间相关的客户识别号可为6至8位。完成激活和注册后,客户通过输入PIN号和交易金额在客户端设备上生成动态虚拟信用卡号??突Ф擞τ贸绦蛟诳突Ф松璞干仙墒奔渫降亩槟庑庞每ê?,其中虚拟信用卡号取决于用户PIN。虚拟信用卡号生成过程包括根据与时间相关的客户识别号计算校验位,其中校验位值用于确定与时间有关的加密的客户识别号和UAC部分(根据用户PIN生成)在虚拟信用卡号中的分布方案。进一步地,UAC生成还可包括通过对称/可逆加密对MOTP和交易金额加密以将生成的动态虚拟信用卡号限制在特定交易金额。动态虚拟信用卡服务器应用程序安装在发行行端,用于根据动态信用卡号、到期日、交易详情、CVV号或其它相关信息识别和对用户进行身份验证,以便通过一个或多个信用卡网络对交易进行授权。为安全起见,生成的动态虚拟信用卡号会在使用该虚拟信用卡号的交易授权时或自生成起的规定时间后自动失效。
    如图19所示,为能通过“不提供卡”的情况(网上商户)下进行交易,用户可像使用普通信用卡一样使用生成的动态虚拟信用卡。用户提交该虚拟卡号及该商户网站其它相关数据。商户收单行把这些信息当作普通信用卡进行处理,并根据BIN号通过现有支付网络向发卡行发送详细信息。发卡行根据专用BIN识别虚拟卡号并将交易详情传递给动态虚拟信用卡后端服务器???。核实虚拟卡号和验证用户身份后,动态虚拟信用卡后端服务器按照用户资金账户来检查交易。根据资金的可用性,向发卡行发送授权码。发卡行根据授权码通过支付网络向商户/收单行确认交易的真实性。动态虚拟信用卡服务器还记录所有交易详情并向用户发送确认提示。交易核准后,动态虚拟信用卡后端服务器开始将交易金额从用户注册资金账户汇入商户收单行账户。交易按照标准联行结算协议或交换进行结算。
    根据本发明一实施例,客户端设备生成的动态虚拟信用卡还可用于“提供卡”的情形中,其中基于智能读卡器的NFC(近场通讯)可通过装有NFC芯片的移动电话接收生成的信用卡信息。通过上述NFC,本发明可很容易在近距离无线技术中应用于预付款,本发明通过使用动态虚拟信用卡而不是静态信用卡信息可使交易更安全。
    图20为根据本发明一个实施例使用用户设备的安全支付系统。安全支付系统包括具有 用户设备的一个或多个用户、一个或多个服务器、一个或多个第三方实体、及一个或多个通信网络。用户设备有用户应用程序???,第三方实体有第三方应用程序???。操作中,系统、用户、服务器和第三方实体设置成,用户设备应用程序显示多个选项的界面,其中选项可为或可包括第一选项:付款、第二选项:收款、第三选项:请求余额信息及交易中用到的其它选项。用户选择了他/她的首选选项后,用户设备应用程序显示第二界面,第二界面中要求用户输入个人识别号、交易金额和第三方实体的一个信息。接收到PIN后,用户设备生成财务授权(即交易授权号(TAN)),其图示与条形码中的相同。TAN(包括与时间相关的客户识别号TCID)是一种授权财务交易与时间相关的一次性使用密码。
    第三方实体扫描客户端设备上生成的TAN以读取条形码或手动输入客户端设备上生成的TAN。条形码可为或可包括一维或二维条码,如EZ码、数据矩阵码和快速响应码。扫描包括通过有线或无线通信手段接收TAN,其中无线通信手段包括近场通讯。从第三方实体接收到TAN后,服务器验证TAN,将最终用户资金来源记入账户借方并记入第三方实体的账户(即服务器验证TAN触发对交易结果进行确认)??突Ф松璞负偷谌绞堤褰邮战灰壮晒Φ募词比啡?,其中即时确认可通过SMS、电子邮件或其它任何实时确认方式发送给用户。第三方实体为商户,所述商户可为另一用户或其它自动终端/机器(如销售点POS)。发给商户的实时确认信息还可包括用户个人签名信息的一部分,所述用户个人签名信息是用户以前通过客户端应用程序注册的信息。然后商户通过要求最终用户在商户收据副本上签个人签名信息来验证最终用户的真实性,还用实时确认信息中接收到的部分验证。例如,若用户在注册时注册的个人签名信息为“Blue sky”,则商户接收到的实时确认信息中包括“B*u**k*”。商户验证商户收据副本上的用户信息是否与从服务器接收到的部分一致(除“*”字符型)。商户不接收用户完整的个人签名信息,从而可防止商户在收据上伪造完整的个人签名信息。这就使得用户和商户无法对交易抵赖。另外,用户还可随时在客户端更改个人签名信息并注册到服务器上以便以后使用。
    图21为根据本发明一个实施例的使用用户设备对一个或多个商家发放的优惠券进行兑现的优惠券安全提供和兑现系统,其中,一个或多个优惠券存储在服务器中。商户筹划特价并将优惠券上载到服务器上。根据商户规定的商业规则/标准,优惠券被发行或推向用户。首次操作时,用户按照上述说明激活设备以按图2的流程图生成共享密钥。激活过程(激活可在无用户介入情况下自动发生)中,服务器还通过按照图13的流程图生成UID和uidKeyMap布局来注册该用户。对于优惠券应用程序,用户无需注册PIN/密码。在用户设备上激活优惠券应用程序后,用户可看见多个优惠券兑现选项消息,其中优惠券兑现选项消息包括识别商户和优惠券价值的信息。用户逛商店选择可使用提供的折扣或交易的产品,然后 收银台付款。收银台处,使用优惠券应用程序,用户生成优惠券授权号(CAN),图示与条形码中的相同。CAN是一种授权优惠券兑现的与时间相关的一次性使用密码。CAN包括与时间相关的加密的客户识别号(TCID)和客户端设备上生成的OTP,生成方式与上述动态信用卡实例中的虚拟账号中的生成方式相同,除部分UAC用客户端设备上生成的OTP代替。CAN可有任一数位(TCID优选为6位,TCID优选为4位),也可包括其它任何信息。商户扫描条形码或手动输入用户设备上生成的CAN。商户优惠券应用程序将CAN传送给服务器并从服务器为该用户得到合适的特价,然后给所购产品打折。用户确认支付后,商户优惠券应用程序向服务器确认兑现的优惠券,服务器为该用户对可用的优惠券作出相应调整。服务器根据由CAN得到的TCID值来识别用户,然后把识别用户得到的OTP值和服务器处计算的期望值进行比较。上文中已对根据加密TCID值识别用户和OTP生成过程进行了概括性说明,因此优惠券兑现应用程序的具体实例中将不再赘述。该技术领域中的普通技术人员应很容易理解,如何生成以用于当前情形中。请注意,收银台每次生成CAN,均会生成OTP,且每次交易中OTP各不相同。优惠券授权号(CAN)的生成过程可包括根据与时间相关的客户识别号计算校验位,其中校验位用于确定与时间有关的加密的客户识别号和OTP在优惠券授权号中的分布方案。服务器对CAN验证触发用户设备和商户对交易结果确认。CAN的验证通过根据生成的优惠券授权号(CAN)识别用户、获取服务器存储的有关该特定用户的多个优惠券、仅发送相关优惠券来完成。相关优惠券可在商户处兑换。
    图22为可完全或部分执行的密码?;さ暮鲜实募扑慊肪车氖道?。示例性计算环境仅是图2-21的示例性系统合适的计算环境的一个实例,不对本文中的系统和方法的使用和功能范围构成限制。计算环境不应理解为与所示计算环境的任一组件或组合具有相关性或必需使用所示计算环境的任一组件或组合。
    此处所述方法和系统可与很多其它通用或专用计算机系统、环境或配置一起使用。众所周知适于使用的计算系统、环境和/或配置包括,但不限于,个人电脑、服务器计算机、微处理器系统、基于微处理器系统、网络个人计算机、小型计算机、大型计算机、包括上述任一系统或设备的分布式计算环境等。精简或小套系统也可应用于有限资源客户端,如手提电脑或其它计算设备。本发明在分布式计算环境中实施,其中任务由通过通讯网络连接的远程处理设备执行。分布式计算环境中,程序??榭晌挥诒镜睾驮冻棠诖娲娲⑸璞钢?。
    参考图22,密码?;な纠韵低嘲扑慊葱?,如图2-21的,系统和/或方法形式的通用计算设备。计算机下述方面是客户端计算设备的示例性实施方式。计算机组件可包括,但不限于,处理器、系统存储器和连接系统内存和处理器等各系统组件的系统总线。系统总线可为任一总线结构,包括存储器总线或存储器控制器、外围总线和使用各种总线结构的局 域总线。此类结构可包括,用于举例但不限于,工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型工业标准体系结构(EISA)总线、视频电子标准协会(VESA)局域总线、外围组件互连(PCI)总线(也称作夹层总线)等。
    计算机通常包括各种计算机可读媒介。计算机可读媒介可为计算机可访问的任何可用媒介,包括易失和非易失媒介、可移动和不可移动媒介。计算机可读媒介包括,用于举例但不限于,计算机存储媒介和通信媒介。计算机存储媒介包括通过任一方法或技术实现计算机可读指令、数据结构、程序??榛蚱渌莸拇娲⒌囊资院头且资?、可移动和不可移动媒介。计算机存储媒介包括,但不限于,RAM、ROM、EEPROM、闪存或其它内存技术、CD-ROM、数字多用盘(DVD)或其它光磁盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储器、或其它任何可存储所需信息且计算机可访问的媒介。
    通信媒介通常包括计算机可读指令、数据结构、程序???、和任何信息传送媒介。以上媒介的组合也应纳入到计算机可读媒介的范围内。
    系统存储器包括只读存储器(ROM)和随机存取存储器(RAM))等形式的易失性和/或非易失性存储器的计算机存储媒介?;臼淙?输出系统(BIOS)包含帮助信息在计算机单元中传递的基本例行程序(如启动时),通常存储在ROM中。RAM通常包含可即时访问和/或由处理器处理的数据和/程序???。如图22所示,包括但不限于操作系统、应用程序、其它程序??楹统绦蚴?。
    计算机还可包括其它可移动/不可移动、易失性/非易失性计算机存储媒介。如图22所示,包括但不限于从不可移动、易失性磁性媒介读取和写入其中的硬盘驱动器、从可移动、非易失性磁盘读取和写入其中的磁盘驱动器、从可移动、非易失性光盘(如CD ROM或其它光学媒介)读取和写入其中的光盘驱动器。其它可用于示例性操作环境中的可移动/不可移动、易失性/非易失性计算机存储媒介包括,但不限于,盒式磁带、闪存卡、数字多用盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器一般通过不可移动内存接口(如联系装置)与系统总线连接,光盘驱动器一般通过可移动内存接口(如联系装置)与系统总线连接。
    上述驱动器及其相关计算机存储媒介可使计算机能存储计算机可读指令、数据结构、程序??楹推渌?。如图22所示,例如,硬盘驱动器为存储操作系统、应用程序、其它程序??楹统绦蚴?。注意,这些组件可与操作系统、应用程序、其它程序??楹统绦蚴菹嗤虿煌?。应用程序包括其它程序???,程序数据给出不同数目以说明它们至少是不同副本。
    一个实施例中,用户可通过键盘、定位设备等输入设备(常称作鼠标、追踪球或触摸板)向计算机中输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏板、碟形卫星天线、扫描器等。这些及其它输入设备常通过与系统总线连接的用户输入接口连接 至处理器,但也可通过其它接口和总线结构连接,如并行接口、游戏端口、1394/火线、加速图形端口或通用串行总线(USB)。
    计算机通过逻辑连接至一个或多个远程计算机(如一台远程计算机)可在联网环境中运行。远程计算机可为个人计算机、服务器、路由器、网络个人计算机、移动计算设备、对等设备或其它公用网络节点,且作为特定实施方式的一个功能,可包括上述与计算机有关的很多或所有单元。图22所示的逻辑连接包括局域网(LAN)/广域网(WAN),但也还可包括其它网络。此类网络环境为办公室公共区域、企业范围的计算机网络、内联网和互联网。
    当用在LAN网络环境中时,计算机通过网络接口或网卡连接至LAN。当用在WAN网络环境中时,计算机通常通过包括调制解调器或其它通过WAN建立通信的手段,如互联网。调制解调器,可为内置调制解调器或外置调制解调器,可通过用户输入接口或其它合适的装置连接到系统总线上。联网环境中,上述与计算机有关的程序??榛蚱洳糠挚纱娲⒃谠冻棠诖娲娲⑸璞钢?。如图22所示,包括但不限于设在存储设备上的远程应用程序。所示的网络连接仅作为示例,还可使用其它手段在计算机间建立通信连接。
    本发明可通过硬件和软件的不同组合来实现。若作为计算机执行设备实现,本发明通过使用执行上述所有步骤和功能的手段来实现。
    本发明可纳入具有,如,计算机可用媒介的制品(如一个或多个计算机程序产品)中。媒介包括,如,提供和促进本发明装置的计算机可读程序代码装置。该制品可作为计算机系统的一部分单独出售。
    图1至22仅用于再现,不是按尺寸绘制。其中的某些部分可放大,而其它部分可缩小。图1至22所示为公开发明的各个实施例,该技术领域的普通技术人员可理解并适当实施。
    本发明实施例上述详细说明中,为简化本发明,各特征被组合在一个实施例中。
    优点
    本发明提高了基于互联网的系统的安全性,可更安全地访问数据,使用通用通信设备的二因素身份验证和加密使得可更便宜、更容易地应用程序。
    本发明的其它优点包括减小了成本、采用强二因素身份验证、无需向商户透露敏感财务信息便可进行安全支付、结账迅速、可防设备窃贼、提供不可抵赖性、仅适用于目标人群的销售预算、增强了客户互动和忠诚度、提供实时动态特价、基于位置的特价、优惠券管理(对于优惠券设施)高效等。
    权利要求书(按照条约第19条的修改)
    1.一种用简单密码生成多因素加密密钥的方法,以对通过至少一个通讯网络从第一实体存储在第二实体的信息进行控制,该方法包括:
    具有预安装的应用程序或请求通过通讯网络在第一实体从第二实体接收应用程序;
    激活第一实体生成共享密钥,其中共享密钥根据第一实体专用ID和第一实体和第二实体处生成的随机数计算得出;及
    使用户由第一实体注册第二实体应用程序,其中注册包括输入个人密码(比如,个人识别号),第一次输入后在第二实体上生成多因素加密密钥,
    其中用户输入的密码在第二实体上使用之前在第一实体上始终使用变换矩阵进行转换,且第二实体使用另一变换矩阵推导出与第一实体同步生成的不同密码。
    2.根据权利要求1所述的方法,其特征在于,存储的信息包括代金卡账户、信用卡账户、忠诚账户(loyalty account)和/或银行账户的交易相关数据或身份验证相关数据或加密相关数据。
    3.根据权利要求1所述的方法,其特征在于,激活还包括如下步骤:
    第一实体生成随机数,其中随机数由标准密码随机数生成器生成;
    计算第一实体专用ID,其中专用ID对于每个实体均不同;及
    将随机数和第一实体专用ID传递给第二实体。
    4.根据权利要求3所述的方法,其特征在于,还包括:
    第二实体从第一实体接收随机数和第一实体专用ID;
    第二实体生成随机数,其中随机数由标准密码随机数生成器生成;及
    根据第一实体专用ID、第二实体随机数、第一实体处生成的随机数生成激活码;及
    将激活码通过至少一个可用通信网络传递给第一实体。
    5.根据权利要求3所述的方法,其特征在于,还包括:
    从第二实体接收激活码;
    通过校验第一实体专用ID来验证接收到的激活码;及
    存储第一和第二实体的生成随机数。
    6.根据权利要求1所述的方法,其特征在于,第一实体注册第二实体应用程序的步骤包括:
    一次初始化第一和第二实体以使用密码随机字符串生成器生成随机有序项目集,其中随机有序项目集包括字节、图像、声音、字符等;
    按照有序项目集中的项目位置将第一实体接收的用户密码映射到索引位置的有序列表;
    将索引位置的列表传递至第二实体;
    将接收到的索引位置的列表映射到第二实体随机有序字符数组中对应的字符,以破译第二实体查看到的由用户在第一实体输入的密码并推导出用户专用第二实体密钥;及
    在每次输入密码后和第二实体每次身份验证尝试后,分别对第一实体和第二实体的随机有序项目数组进行伪随机洗牌,以使洗牌与第一实体同步。
    7.根据权利要求6所述的方法,其特征在于,第一实体接收的用户密码用于生成屏蔽一次性密码(MOTP),其中,MOTP是根据在第二实体端破译第二实体端所看到的用户密码的验证者。
    8.根据权利要求6所述的方法,其特征在于,第一实体处用户密码接收成旋转格式布局,包括字符、图形、字节、图案、声音等。
    9.根据权利要求1所述的方法,其特征在于,该方法决不将密码以原始的形式存储在第一实体或第二实体上。
    10.根据权利要求1所述的方法,其特征在于,第一实体是用户和/或商户,第二实体是服务器,所述服务器包括一个或多个应用???。
    11.一种通过在客户端设备上生成一次性使用动态身份证明进行支付交易的安全支付方法,其中,该方法包括:
    激活客户端设备生成共享密钥,其中共享密钥根据客户专用ID和客户端设备和服务器处生成的随机数计算得出;及
    使用户由客户端设备向服务器注册,其中注册包括在客户端设备上输入个人密码(比如,个人识别号),从而在服务器上生成多因素加密密钥,其中用户输入的密码在服务器上使用之前在客户端设备上始终使用变换矩阵进行转换,且服务器使用另一变换矩阵推导出与客户端设备同步生成的不同密码;以及
    在客户端设备上生成时间同步的一次性使用财务授权,其中,财务授权包括授权财务交易的与时间相关的一次性使用客户识别号(TCID)和屏蔽一次性密码(MOTP),且财务授权取决于用户密码。
    12.根据权利要求11所述的方法,其特征在于,还包括:
    具有预安装的应用程序或请求通过至少一个通讯网络在客户端设备从服务器接收应用程序。
    13.根据权利要求11所述的方法,其特征在于,客户端设备生成的财务授权包括虚拟账号,其中财务授权可表示为动态虚拟信用卡或TAN。
    14.根据权利要求13所述的方法,其特征在于,若财务授权用于信用卡网络,则财务授权包括动态虚拟信用卡号、到期日、CVV或信用卡其它相关信息。
    15.根据权利要求13所述的方法,其特征在于,若财务授权用于具有应用程序的商户,则财务授权为TAN,其中TAN用条形码表示。
    16.根据权利要求11所述的方法,其特征在于,还包括:
    服务器上,根据财务授权为交易识别并验证客户端设备。
    17.根据权利要求11所述的方法,其特征在于,其中注册包括如下步骤:
    服务器向客户端分配与时间相关的客户识别号(TCID)加密密钥、唯一用户识别号、唯一用户识别密钥映射布局,其中,唯一识别密钥映射布局包括特定时隙处的唯一用户识别号和密钥映射的组合。
    18.根据权利要求17所述的方法,其特征在于,时间相关的客户识别号加密密钥用于在将其插入到虚拟信用卡号前对与时间相关的客户识别号加密。
    19.根据权利要求18所述的方法,其特征在于,还包括:
    根据与时间相关的客户识别号计算校验位,其中,校验位值用于确定与时间有关的加密的客户识别号和MOTP的一部分在虚拟账号中的分布方案。
    20.根据权利要求18所述的方法,其特征在于,与时间相关的客户识别号在虚拟账号中是6至8位。
    21.根据权利要求15所述的方法,其特征在于,还包括:
    扫描读取条形码或输入第三方实体在客户端设备生成的TAN;
    将扫描的条形码或TAN传递给服务器;及
    服务器验证TAN触发对交易结果进行确认。
    22.根据权利要求21所述的方法,其特征在于,扫描步骤包括通过有线或无线通信手段接收TAN,其中无线通信手段包括近场通讯。
    23.根据权利要求21所述的方法,其特征在于,客户端设备和第三方实体接收交易结果的即时确认,其中即时确认可通过来自于相同通讯网路的短讯服务(SMS)、电子邮件或其它任何实时确认方式发送给用户。
    24.根据权利要求23所述的方法,其特征在于,实时确认信息包括用户个人签名信息的一部分,以验证最终用户的真实性。
    25.根据权利要求23所述的方法,其特征在于,客户端设备是用户,第三方实体是商户,而商户可为另一用户。
    26.根据权利要求15所述的方法,其特征在于,条形码为一维或二维条形码,包括EZ码、数据矩阵码和快速响应(QR)码。
    27.一种使用用户设备兑现多个商户发行的优惠券的优惠券安全提供和兑现方法,其中,所述多个优惠券存储在服务器中,该方法包括:
    在用户设备上激活优惠券应用程序后以便看到多个优惠券信息选项消息,其中优惠券信息选项消息包括用于识别商户的信息和优惠券价值;且其中激活包括服务器向客户端分配与时间相关的客户识别号(TCID)加密密钥、唯一用户识别号、唯一用户识别密钥映射布局,其中,唯一识别密钥映射包括特定时隙处的唯一用户识别号和密钥映射的组合。
    生成优惠券授权号(CAN),以及在条形码中相同的图示,其中CAN包括加密的与时间相关的客户识别号(TCID)和在客户端设备上产生的一次性密码(OTP),其中CAN是一种授权优惠券兑现的与时间相关的一次性使用身份证明的形式;
    扫描读取条形码或输入商户在客户端设备生成的CAN;以及
    服务器对CAN验证触发用户设备和商户对交易结果确认。
    28.根据权利要求27所述的优惠券安全提供和兑现方法,其特征在于,CAN验证步骤包括:
    根据生成的优惠券授权号(CAN)识别用户;
    获取服务器存储的有关该特定用户的多个优惠券;及
    仅发送该商户可兑现的相关优惠券。
    29.根据权利要求28所述的优惠券安全提供和兑现方法,其特征在于,还包括:
    商户仅按照接收到的优惠券给用户所购产品打折。
    说明或声明(按照条约第19条的修改)
    关于第19(1)条的声明
    创造性
    在此,本申请人提交了,涉及一种用简单密码生成多因素加密密钥的方法,以通过至少一个通讯网络从第一实体存储在第二实体的信息进行控制的权利要求1至10,涉及一种通过在客户端设备上生成一次性使用动态身份证明进行支付交易的安全支付方法的权利要求11至26,及涉及一种使用用户设备兑现多个商户发行的优惠券的优惠券安全提供和兑现方法,其中多个优惠券存储在服务器中的权利要求27至29。进一步地,该申请人修改了独立权利要求1、11和27,申请人相信修改过的独立权利要求和其从属权利要求使本领域技术人员明白,当引用的技术被单独或结合起来使用时,当前修改过的独立权利要求和其从属权利要求并非显而易见,并且具有创造性。
    权利要求1至27
    US2007/0244811A1(TUMMINARO)
    Tumminaro专利文本重点是通过移动设备,如移动电话,完成金融业务的技术,尤其关于一种用于转移支付的移动式的个性化转移支付设备和方法。尤其地,Tumminaro描述的是在传输前,用户密码被转换成双音多频信号(DTMF)或被加密。然而在服务器端它又被转换回相同的密码。相比之下,当前修改过的权利要求1和11中,使用本地变换矩阵(未被服务器知晓)将用户密码进行转换,然后在传送至服务器前对其进行加密。在服务器上进行解密码,然后再次使用服务器端变换矩阵(未被客户知晓)将其转换,以在服务器端推导出一个不同的密码。因此服务器端的密码不同于客户端的原始用户密码。进一步地,每次密码输入并进行身份验证尝试之后,两个变换矩阵(客户端和服务器端上)都将被洗牌,并且洗牌是同步进行的。同时,每个客户都有一个不同的变换矩阵,并且在服务器端,每个变换矩阵是不同的。此外,Tumminaro描述了从密码(PIN)到双音多频信号(DTMF)的转换都是一种静态的转换,且对于每个客户来说都是相同的。
    US2006/0143456A(GENTRY及其他发明人)
    Gentry及其他发明人公布的专利文件,大体描述了关于通过计算机网络或其他种类的系统及设备的密码技术和安全通信。尤其描述了一种身份密码系统中的共享密匙的测定和使用,比如,在没有密匙托管的情况下,对两实体间的通信进行编码和解码。除了共享密匙,Gentry还需要用户标识。Gentry及其他发明人未能提供对修改过的独立权利要求1和11中描述的:“用户输入的密码在第二实体上使用之前在第一实体上始终使用变换矩阵进行转换,且第二实体使用另一变换矩阵推导出与第一实体同步生成的不同的密码。”进行的教导和建议。
    US2009/0104888A1(COX)
    Cox主要描述了支付系统,尤其是支持金融业务中使用一次性用户密码的移动电子设备的支付系统。进一步地,Cox描述了并依赖于用户密码的一次性密码的方法。同样地在Cox中,一次性密码被用于仅通过比较所期望的一次性密码来鉴别用户。但是,相比之下,这里没有所期望的一次性密码,所接收到的屏蔽一次性密码(MOTP)被作为验证码,并且用来获得服务器端密码,然后对其进行验证以证明其正确性。因此,服务器甚至不知道所期望的一次性密码或密码,但不得不验证接收到的屏蔽一次性密码(MOTP),以确定其是否能生成一个有效的服务器端密码。所生成的一次性密码(MOTP)依赖于用户密码,并决定服务器端密码的正确性。在设备错误输入用户密码时将同样会生成屏蔽一次性密码(MOTP),但使用这种屏蔽一次性密码(MOTP)会使服务器推出一个不同的密码,且不能验证用户身份。
    进一步地,Cox未能提供对修改过的独立权利要求1和11中描述的:“用户输入的密码在第二实体上使用之前在第一实体上始终使用变换矩阵进行转换,且第二实体使用另一变换矩阵推导出与第一实体同步生成的不同的密码。”进行的教导和建议。
    权利要求2至10和12至26直接或间接地引用当前修改过的独立权利要求1和11?;谝陨纤龅耐脑?,相对于被引用的现有技术,被质疑的权利要求具有创造性。
    权利要求28至30
    US2008/0133366(EVANS及其他发明人)和US2009/0307069(MEYERHOFER)
    Evans及其他发明人文件中描述了每个优惠券必须分开兑换。相比之下,当前修改后权利要求描述的是只使用单独的授权一次兑换一个或多个优惠券,尤其是被授权的是用户而非优惠券。
    同样,Meyerhofer描述了根据鉴别代码追踪匿名用户,此鉴别代码同优惠券一同发放。相比之下,当前修改后权利要求27,使用优惠券授权号(CAN)作为单独的使用授权,其从商户中隐藏用户身份,但允许服务器在兑换过程中识别和认证实际用户。在Meyerhofer专利中,不可以识别实际用户,但可以通过兑换流程进行追踪,因为同一用户在每次兑换过程中使用的是同一个鉴别代码。
    此外,如果单独或结合使用Evans及其他发明人和Meyerhofer的文件,未能提供对当前修改过的独立权利要求27中描述的:“服务器向客户端分配与时间相关的客户识别号(TCID)加密密钥、唯一用户识别号、唯一用户识别密钥映射布局,其中,唯一识别密钥映射包括特定时隙处的唯一用户识别号和密钥映射的组合。”进行的教导和建议。
    权利要求28和29直接或间接地引用了当前修改过的独立权利要求27?;谝陨纤龅耐脑?,相对于被引用的现有技术,被质疑的权利要求具有创造性。
    当前修改后权利要求及其从属权利要求在任何方面都不涉及所引用技术。即使单独或结合使用任何引用的技术,也不能使本领域技术人员容易想到本发明。

    关 键 词:
    一种 简单 用户密码 生成 因素 个性化 服务器 密钥 系统 及其 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:一种由简单用户密码生成多因素个性化服务器强密钥的系统及其方法.pdf
    链接地址://www.4mum.com.cn/p-5779212.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03