CN112235421B - 一种苹果移动设备与苹果外设进行通信的方法和系统 - Google Patents

一种苹果移动设备与苹果外设进行通信的方法和系统 Download PDF

Info

Publication number
CN112235421B
CN112235421B CN202011433764.1A CN202011433764A CN112235421B CN 112235421 B CN112235421 B CN 112235421B CN 202011433764 A CN202011433764 A CN 202011433764A CN 112235421 B CN112235421 B CN 112235421B
Authority
CN
China
Prior art keywords
data
apple
certificate
authentication
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011433764.1A
Other languages
English (en)
Other versions
CN112235421A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN202011433764.1A priority Critical patent/CN112235421B/zh
Publication of CN112235421A publication Critical patent/CN112235421A/zh
Application granted granted Critical
Publication of CN112235421B publication Critical patent/CN112235421B/zh
Priority to PCT/CN2021/132578 priority patent/WO2022121682A1/zh
Priority to US18/044,109 priority patent/US20230315650A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种苹果移动设备与苹果外设进行通信的方法和系统,属于通信领域。苹果应用运行第一脚本向服务器发送创建凭证请求,当第一脚本接收到服务器返回的挑战码时,将待处理数据作为用户信息的参数和服务器信息的参数生成用户信息和服务器信息,设置第一扩展项和密钥存储标识的值为预设值,苹果应用根据用户信息、服务器信息、挑战码、第一扩展项和密钥存储标识生成注册数据并发送给苹果外设,苹果外设从注册数据中获取待处理数据进行处理,将得到的处理结果作为第二扩展项生成注册响应,第一脚本从注册响应中获取处理结果。本发明使不支持External Accessory Framework协议的苹果外设可以与苹果移动设备进行通信。

Description

一种苹果移动设备与苹果外设进行通信的方法和系统
技术领域
本发明涉及通信领域,尤其涉及一种苹果移动设备与苹果外设进行通信的方法和系统。
背景技术
现有技术中,苹果外设(连接在苹果移动设备以外的硬件设备)一般通过蓝牙接口或Lightning接口与苹果移动设备进行通信,这种通信方式要求苹果外设要采用苹果公司提供的外部设备协议(External Accessory Framework)进行通信。这就导致一些不支持External Accessory Framework的苹果外设无法与苹果移动设备进行通信。因此,如何使不支持External Accessory Framework的苹果外设可以与苹果移动设备进行通信成为一个亟待解决的技术问题。
发明内容
为解决现有技术的不足,提供了一种苹果移动设备与苹果外设进行通信的方法和系统。
第一方面,本发明提供了一种苹果移动设备与苹果外设进行通信的方法,适用于包含苹果移动设备、苹果外设和服务器的系统,所述苹果移动设备包括苹果应用,第一脚本运行在所述苹果移动设备上,所述方法包括如下步骤:
步骤101:所述苹果应用根据第一用户操作信息向所述服务器发送加载第一预设网页请求;
步骤102:所述服务器根据接收到的加载第一预设网页请求为所述苹果应用加载第一预设网页;所述第一预设网页包括所述第一脚本;
步骤103:所述苹果应用运行所述第一脚本向所述服务器发送创建凭证请求,当所述第一脚本接收到所述服务器返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息,设置第一扩展项和密钥存储标识的值为预设值,获取预置的公钥凭证数据;
步骤104:所述第一脚本给所述苹果应用传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
步骤105:所述苹果应用按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据,调用所述注册接口,给所述注册接口传入所述注册数据,根据所述注册接口的返回值判断所述苹果外设是否为认证设备,如果是,执行步骤106,否则,结束;
步骤106:所述苹果外设从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从所述用户信息或所述服务器信息中提取待处理数据;
步骤107:所述苹果外设对所述待处理数据执行预设处理操作得到处理结果,根据所述处理结果生成第二扩展项,按照生成认证数据所需的格式封装所述密钥存储标识、所述公钥凭证数据和所述第二扩展项得到认证数据,根据所述认证数据生成注册响应,将所述注册响应通过所述预设注册接口发送给所述第一脚本;
步骤108:所述第一脚本解析接收到的注册响应得到认证数据,解析所述认证数据得到第二扩展项,从所述第二扩展项中提取处理结果,向所述苹果应用发送所述处理结果;
所述方法还包括:当所述苹果外设插入到所述苹果移动设备时,向所述苹果应用报告设备类型为认证设备。
第二方面,本发明提供了一种苹果移动设备与苹果外设进行通信的系统,包括:苹果移动设备、苹果外设和服务器,所述苹果移动设备包括苹果应用,第一脚本运行在所述苹果移动设备上;
所述苹果应用包括:第一发送模块、运行模块、第一封装模块、第一调用模块和第一判断模块;
所述第一发送模块,用于根据第一用户操作信息向所述服务器发送加载第一预设网页请求;
所述运行模块,用于运行所述第一脚本;
所述第一封装模块,用于按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据;
所述第一调用模块,用于调用所述注册接口,给所述注册接口传入所述注册数据;
所述第一判断模块,用于根据所述注册接口的返回值判断所述苹果外设是否为认证设备;
所述服务器,用于根据接收到的加载第一预设网页请求加载第一预设网页;所述第一预设网页包括第一脚本;
所述第一脚本包括:第二发送模块、第一接收模块、第一生成模块、第一设置模块、第一获取模块、第一传递模块、第一解析模块、第一提取模块和第三发送模块;
所述第二发送模块,用于当被所述运行模块运行时,向所述服务器发送创建凭证请求;
所述第一接收模块,用于接收所述服务器返回的挑战码;
所述第一生成模块,用于当所述第一接收模块接收到的所述服务器返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息;
所述第一设置模块,用于设置第一扩展项和密钥存储标识的值为预设值;
所述第一获取模块,用于获取预置的公钥凭证数据;
所述第一传递模块,用于给所述苹果应用传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
所述第一解析模块,用于解析接收到的注册响应得到认证数据,解析所述认证数据得到第二扩展项;
所述第一提取模块,用于从所述第二扩展项中提取处理结果;
所述第三发送模块,用于向所述苹果应用发送所述处理结果;
所述苹果外设包括:第二获取模块、处理模块、第二封装模块和第四发送模块;
所述第二获取模块,用于从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从所述用户信息或所述服务器信息中提取待处理数据;
所述处理模块,用于对所述待处理数据执行预设处理操作得到处理结果;
所述第二封装模块,用于根据所述处理结果生成第二扩展项,根据所述第一扩展项和所述密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装所述第二扩展项和设置后响应参数得到注册响应;
所述第四发送模块,用于将所述注册响应通过所述预设注册接口发送给所述第一脚本;
所述苹果外设还包括:报告模块;
所述报告模块,用于当所述苹果外设插入到所述苹果移动设备时,向所述苹果应用报告设备类型为认证设备。
本发明与现有技术相比,至少具有以下优点:
本发明提供了一种苹果移动设备与苹果外设进行通信的方法,实现了不支持External Accessory Framework协议的苹果外设可以与苹果移动设备进行通信。
附图说明
图1为本发明实施例1提供的一种苹果移动设备与苹果外设进行通信的方法流程图;
图2为本发明实施例2提供的一种苹果移动设备与苹果外设进行通信的方法流程图;
图3为本发明实施例3提供的一种苹果移动设备与苹果外设进行通信的系统模块框图。
具体实施方式
本申请提出一种苹果移动设备与苹果外设进行通信的方法和系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
需说明的是,Web Authentication API(简称:WebAuthn)是一套用于完成注册认证的应用接口,本实施例中涉及的注册接口为WebAuthn接口。
实施例1
本发明实施例1提供了一种苹果移动设备与苹果外设进行通信的方法,适用于包含苹果移动设备、苹果外设和服务器的系统,苹果移动设备包括苹果应用,第一脚本运行在苹果移动设备上,该方法包括如下步骤:
步骤101:苹果应用根据第一用户操作信息向服务器发送加载第一预设网页请求;
步骤102:服务器根据接收到的加载第一预设网页请求为苹果应用加载第一预设网页;所述第一预设网页包括第一脚本;
步骤103:苹果应用运行第一脚本向服务器发送创建凭证请求,当第一脚本接收到服务器返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息,设置第一扩展项和密钥存储标识的值为预设值,获取预置的公钥凭证数据;
步骤104:第一脚本给苹果应用传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
步骤105:苹果应用按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据,调用注册接口,给注册接口传入注册数据,根据注册接口的返回值判断苹果外设是否为认证设备,如果是,执行步骤106,否则,结束;
步骤106:苹果外设从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从用户信息或服务器信息中提取待处理数据;
步骤107:苹果外设对待处理数据执行预设处理操作得到处理结果,根据处理结果生成第二扩展项,根据第一扩展项和密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装第二扩展项和设置后的响应参数得到注册响应,将注册响应通过预设注册接口发送给第一脚本;
步骤108:第一脚本解析接收到的注册响应得到认证数据,解析认证数据得到第二扩展项,从第二扩展项中提取处理结果,向苹果应用发送处理结果;
该方法还包括:当苹果外设插入到苹果移动设备时,向苹果应用报告设备类型为认证设备。
可选地,本实施例中,步骤101具体为:苹果应用根据第一用户操作信息调用内置WebAuthn控件向服务器发送加载第一预设网页请求。
可选地,本实施例中,步骤104具体为:第一脚本调用苹果应用内置的WebAuthn控件,给WebAuthn控件的预设注册接口传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识。
可选地,本实施例中,步骤105中,根据注册接口的返回值判断苹果外设是否为认证设备具体为:苹果应用判断注册接口返回的参数是否为第一预设值,如果是,判定苹果外设是认证设备,否则,判定苹果外设不是认证设备。
可选地,本实施例中,用户信息包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;服务器信息包括:服务器id参数和服务器名参数;
步骤103中,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息,具体为:第一脚本将待处理数据作为用户名参数或用户显示名参数或服务器名参数,根据用户id参数、用户icon参数、用户名参数和用户显示名参数生成用户信息,根据服务器id参数和服务器名参数生成服务器信息。
可选地,本实施例中,步骤103中,设置第一扩展项和密钥存储标识的值为预设值具体为:第一脚本将第一扩展项的值设置为none,将密钥存储标识的值设置为false;
步骤107中,根据处理结果生成第二扩展项,根据第一扩展项和密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装第二扩展项和设置后的响应参数得到注册响应,具体为:
步骤b1:苹果外设将处理结果作为第二扩展项;
步骤b2:苹果外设将生成认证数据所需的设备标识、凭证公钥和凭证标识的值设置为空,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
步骤b3:苹果外设将生成认证声明所需的公钥凭证数据、签名结果和证书链的值设置为空,按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
步骤b4:苹果外设按照生成注册响应所需的格式封装预设认证声明格式、认证数据和认证声明得到注册响应。
可选地,本实施例中,步骤103中,设置第一扩展项和密钥存储标识的值为预设值具体为:第一脚本将第一扩展项的值设置为空,将密钥存储标识的值设置为false;注册数据还包括:客户端数据哈希值;
步骤107中,根据处理结果生成第二扩展项,根据第一扩展项和密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装第二扩展项和设置后的响应参数得到注册响应,具体为:
步骤c1:苹果外设将处理结果作为第二扩展项;
步骤c2:苹果外设生成凭证密钥对和第一凭证标识,获取预设设备标识,将生成认证数据所需的设备标识、凭证公钥和凭证标识的值分别设置为第一凭证标识、凭证密钥对中的公钥和预设设备标识,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
步骤c3:苹果外设使用保存的设备私钥对客户端数据哈希值和得到的认证数据进行签名得到第一签名结果,获取设备预设证书链,将生成认证声明所需的公钥凭证数据、签名结果和证书链的值分别设置为注册数据中的公钥凭证数据、第一签名结果和预设证书链,按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
步骤c4:苹果外设按照生成注册响应所需的格式封装预设认证声明格式、认证数据和认证声明生成注册响应。
可选地,本实施例中,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据具体为:苹果外设将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到认证数据;
按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明具体为:苹果外设将设置后的公钥凭证数据、签名结果和证书链顺次拼接得到认证声明;
苹果外设按照生成注册响应所需的格式封装预设认证声明格式、认证数据和认证声明生成注册响应具体为:苹果外设将预设认证声明格式、认证数据和认证声明顺次拼接得到注册响应。
可选地,本实施例中,待处理数据具体为上电指令;步骤107中,苹果外设对待处理数据执行预设处理操作得到处理结果具体为:苹果外设根据上电指令生成复位应答。
可选地,本实施例中,待处理数据具体为获取随机数指令;步骤107中,苹果外设对待处理数据执行预设处理操作得到处理结果具体为:苹果外设根据获取随机数指令生成第一随机数。
本实施例提供了一种苹果移动设备与苹果外设进行通信的方法,实现了不支持External Accessory Framework协议的苹果外设可以与苹果移动设备进行通信。
实施例2
本发明实施例2提供了一种苹果移动设备与苹果外设进行通信的方法,苹果移动设备、苹果外设和服务器的系统,其中,苹果移动设备包括苹果应用,第一脚本运行在苹果移动设备上,苹果应用内嵌WebAuthn控件,WebAuthn控件包括注册接口(也称:WebAuthn接口),苹果外设与该注册接口兼容,如图2所示,该方法包括如下步骤:
步骤200:当苹果应用接收到第一用户操作信息时,调用内置的WebAuthn控件加载第一预设网页;所述第一预设网页包括第一脚本;
可选地,本实施例中,步骤200具体为:当苹果应用被用户点击时,苹果应用显示第一用户操作界面,等待接收用户点击第一用户操作界面内的预设按钮生成的第一用户操作信息;当苹果应用接收到第一用户操作信息时,调用WebAuthn控件加载第一预设网页。
可选地,本实施例中,调用WebAuthn控件加载第一预设网页包括:苹果应用调用WebAuthn控件加载第一预设网页时,WebAuthn控件触发系统弹出用户授权框,系统等待接收用户对加载第一预设网页的授权信息,当系统接收到所述授权信息时,调用WebAuthn控件加载第一预设网页。
可选地,本实施例中,当系统为iOS10、iOS11或iOS12版本时,苹果应用调用的WebAuthn控件为ASWebAuthenticationSession *authenticationVC,
可选地,本实施例中,当系统为iOS13.0以上版本时,苹果应用调用的WebAuthn控件为authenticationVC,调用WebAuthn控件加载第一预设网页之前还包括:苹果应用为WebAuthn控件设置代理回调函数。调用WebAuthn控件加载第一预设网页具体为:苹果应用调用authenticationVC控件加载第一预设网页,WebAuthn控件触发系统弹出用户授权框,系统等待接收用户对加载第一预设网页的授权信息,当系统接收到所述授权信息时,调用WebAuthn控件加载第一预设网页,回调代理回调函数向苹果应用发送调用WebAuthn控件成功响应。
例如:苹果应用为WebAuthn控件设置的代理回调函数具体为:authenticationVC.presentationContextProvider = self;当苹果应用调用[self.authenticationVCstart]时,系统会弹出用户授权框。
例如:WebAuthn控件为:ASWebAuthenticationSession *authenticationVC=[[ASWebAuthenticationSession alloc] initWithURL:requestURL callbackURLScheme:redirectScheme completionHandler:^(NSURL * _Nullable callbackURL, NSError * _Nullable error){ }];
步骤201:苹果应用运行第一脚本向服务器发送创建凭证请求;
可选地,本实施例中,步骤201具体为:苹果应用运行第一脚本执行onload方法向服务器发送创建凭证请求;
步骤202:服务器接收第一脚本发送的创建凭证请求,生成第一挑战码,向第一脚本发送第一挑战码;
例如:第一挑战码为:
h'687134968222EC17202E42505F8ED2B16AE22F16BB05B88C25DB9E602645F141';
步骤203:第一脚本接收服务器发送的第一挑战码,将预置的上电指令作为调用注册接口所需的第一用户信息的参数和/或第一服务器信息的参数,根据第一用户信息的参数生成第一用户信息,根据第一服务器信息的参数生成第一服务器信息;
可选地,本实施例中,第一用户信息的参数包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;将预置的上电指令作为调用注册接口所需的第一用户信息的参数或第一服务器信息的参数具体为:第一脚本将上电指令作为第一用户信息的用户名参数或用户显示名参数;
可选地,本实施例中,第一服务器信息的参数包括:服务器id参数和服务器名参数;将预置的上电指令作为调用注册接口所需的第一用户信息的参数或第一服务器信息的参数具体为:第一脚本将上电指令作为第一服务器信息的服务器名参数;
例如:上电指令具体为:“powerOn";
第一用户信息具体为:{"id":h'03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4', "icon": “https://example.com/userIcon.png“, "name":"powerOn", "displayName": "Command"};
步骤204:第一脚本获取预置的公钥凭证数据,将第一扩展项和密钥存储标识设置为预设值,给苹果应用的WebAuthn控件传入第一用户信息、第一服务器信息、第一挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
可选地,本实施例中,将第一扩展项和密钥存储标识设置为预设值具体为:第一脚本将第一扩展项设置为none,将密钥存储标识设置为false;
进一步地,第一扩展项具体为:attestation,当第一脚本将attestation设置为none时,第一脚本将不会验证苹果外设返回的注册响应中的证书链和签名结果,苹果外设可以将证书链和签名结果设置为空;
进一步地,密钥存储标识具体为:rk,当第一脚本将rk的值设置为false时,第一脚本将不验证苹果外设返回的注册响应中的凭证公钥,苹果外设可以将返凭证公钥设置为空;
可选地,本实施例中,将第一扩展项和密钥存储标识设置为预设值具体为:第一脚本将第一扩展项设置为空,将密钥存储标识设置为false;
进一步地,第一扩展项具体为:attestation,当第一脚本将attestation设置为空时,第一脚本将会验证苹果外设返回的注册响应中的证书链和签名结果,苹果外设不可以将证书链和签名结果设置为空;
进一步地,密钥存储标识具体为:rk,当第一脚本将rk的值设置为false时,第一脚本将不验证苹果外设返回的注册响应中的凭证公钥,苹果外设可以将返凭证公钥设置为空;
步骤205:苹果应用按照调用WebAuthn控件的预设的注册接口所需的数据的格式封装传入的第一用户信息、第一服务器信息、第一挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到第一注册数据,调用注册接口,给注册接口传入第一注册数据,根据注册接口的返回值判断苹果外设是否为认证设备,如果是,执行步骤206,否则,结束;
可选地,本实施例中,该方法还包括:当苹果外设插入到苹果移动设备时,向苹果应用报告设备类型为认证设备;
可选地,本实施例中,苹果移动设备具体为:iPad Pro;
可选地,本实施例中,认证设备具体为:fido设备;
可选地,本实施例中,苹果应用按照调用WebAuthn控件的预设的注册接口所需的数据的格式封装传入的第一用户信息、第一服务器信息、第一挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据具体为:苹果应用将第一用户信息、第一服务器信息、第一挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识顺次拼接得到第一注册数据;
可选地,本实施例中,公钥凭证数据具体包括:签名算法标识和凭证类型;
可选地,第一用户信息具体为:{"id":h'03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4', "icon": “https://example.com/userIcon.png“,"name": "powerOn", "displayName": "Command"};
第一服务器信息具体为:{"id": "ftsafe@ftsafe.com", "name":"ftsafe@ftsafe.com"};
公钥凭证数据具体为:[{"alg": -7, "type": "public-key"}];
第一扩展项具体为:{attestation: "none"};
密钥存储标识具体为:{"rk":false}};
步骤206:苹果外设从接收到的第一注册数据中获取第一用户信息、第一服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从第一用户信息或第一服务器信息中提取上电指令;
步骤207:苹果外设生成复位应答,将复位应答作为第二扩展项;
例如:复位应答具体为:3B9F958131FE9F006646530520032571DF000001000020;
步骤208:苹果外设根据密钥存储标识和第一扩展项的值设置设备标识、凭证公钥和凭证标识的值,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到第一认证数据;
可选地,本实施例中,密钥存储标识的值具体为false,第一扩展项的值具体为none;
步骤208具体为:苹果外设将设备标识、凭证公钥和凭证标识的值均为空,将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到第一认证数据;
例如:第一认证数据具体为:h’E45329D03A2068D1CAF7F7BB0AE954E6B0E6259745F32F4829F750F05011F9C2C5000007983E22415D7FDF4EA48A0CDD60C4249B9D0060707875A0708465A419F601E1E143D1F184674F916CF012A825881AD6FB095EC3C13B979060DACA8632C43BCCC27E7FCFE190AB4B60560DD7E51D542889FB1A51D51261F03F9A1AAD2D7BD260F23232BB6A5B3068E47D9541EB7169F78769D0D83B9F958131FE9F006646530520032571DF000001000020';
步骤209:苹果外设根据密钥存储标识和第一扩展项的值设置签名结果和证书链的值,按照生成认证声明的格式封装公钥凭证数据中的算法标识、设置后签名结果和证书链得到第一认证声明;
可选地,本实施例中,密钥存储标识的值具体为false,第一扩展项的值具体为none;
步骤209具体为:苹果外设将签名结果和证书链的值设置为空,顺次拼接公钥凭证数据中的算法标识、设置后签名结果和证书链得到第一认证声明;
例如:签名算法标识具体为:alg": -7;
预设签名结果具体为:"sig": h'';
预设证书链具体为:"x5c": [h''];
第一认证声明具体为:{"alg": -7, "sig": h'', "x5c": [h'']};
步骤210:苹果外设根据预设认证声明格式、第一认证数据和第一认证声明生成第一注册响应,将第一注册响应返回给注册接口;
可选地,本实施例中,步骤210之后还包括:WebAuthn控件将注册接口返回的第一注册响应发送给第一脚本;
例如:预设认证声明格式具体为:"packed";
第一注册行响应具体为:{1: "packed", 2: h’E45329D03A2068D1CAF7F7BB0AE954E6B0E6259745F32F4829F750F05011F9C2C5000007983E22415D7FDF4EA48A0CDD60C4249B9D0060707875A0708465A419F601E1E143D1F184674F916CF012A825881AD6FB095EC3C13B979060DACA8632C43BCCC27E7FCFE190AB4B60560DD7E51D542889FB1A51D51261F03F9A1AAD2D7BD260F23232BB6A5B3068E47D9541EB7169F78769D0D83B9F958131FE9F006646530520032571DF000001000020’,3: {"alg": -7, "sig": h'', "x5c": [h'']}};
步骤211:第一脚本解析接收到的第一注册响应得到预设认证声明格式、第一认证数据和第一认证声明,从第二扩展项中提取复位应答,向苹果应用发送上电成功响应;
步骤212:苹果应用运行第一脚本向服务器发送创建凭证请求;
步骤213:服务器接收第一脚本发送的创建凭证请求,生成第二挑战码,向第一脚本发送第二挑战码;
例如:第二挑战码具体为:h'571324588222EC79158F4250509ED2B16AE22F725505B89D25DC9E602895F256';
步骤214:第一脚本接收服务器发送的第二挑战码,将获取随机数指令作为调用注册接口所需的第二用户信息的参数和或第二服务器信息的参数,根据第二用户信息的参数生成第二用户信息,根据第二服务器信息的参数生成第二服务器信息;
可选地,本实施例中,第二用户信息的参数包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;将获取随机数指令作为调用注册接口所需的第二用户信息的参数或第二服务器信息的参数具体为:第一脚本将获取随机数指令作为第二用户信息的用户名参数或用户显示名参数;
可选地,本实施例中,第二服务器信息的参数包括:服务器id参数和服务器名参数;将获取随机数指令作为调用注册接口所需的第二用户信息的参数或第二服务器信息的参数具体为:第一脚本将获取随机数指令作为第二服务器信息的服务器名参数;
可选地,在一种可能的实施方式中,将获取随机数指令作为调用注册接口所需的第二用户信息的参数或第二服务器信息的参数之前还包括:第一脚本获取浏览器内预置的获取随机数指令;
可选地,在另一种可能的实施方式中,将获取随机数指令作为调用注册接口所需的第二用户信息的参数或第二服务器信息的参数还包括:第一脚本根据第二用户操作信息生成获取随机数指令;
具体地,第一脚本根据第二用户操作信息生成获取随机数指令具体为:第一脚本执行click方法显示第二用户操作界面,等待接收用户在第二用户操作界面输入第二用户操作信息,当接收到第二用户操作信息时,根据第二用户操作信息生成获取随机数指令;
步骤215:第一脚本获取预置的公钥凭证数据,将第一扩展项和第二密钥存储标识设置为预设值,给苹果应用的WebAuthn控件传入第二用户信息、第二服务器信息、第二挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
步骤216:苹果应用按照调用WebAuthn控件的预设的注册接口所需的数据的格式封装传入的第二用户信息、第二服务器信息、第二挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到第二注册数据,调用注册接口,给注册接口传入第二注册数据,执行步骤217;
例如:注册接口具体为:navigator.credentials.create(PublickeyCredentialCreationptions publicKey);
获取随机数指令具体为:“GetRandom8";
第二用户信息具体为:
{"id":h'03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4',"icon":"https://example.com/userIcon.png", "name": “GetRandom8", "displayName": “Command"};
第二服务器信息具体为:{"id": "ftsafe@ftsafe.com", "name": "ftsafe@ftsafe.com"};
公钥凭证数据具体为:{ "type": "public-key", "alg": -7};其中, -7为签名算法标识, "public-key"为凭证类型;
可选地,本实施例中,步骤216还包括:WebAuthn控件的注册接口根据传入的第二用户信息、第二服务器信息、第二挑战码、公钥凭证数据、第一扩展项和第二密钥存储标识生成第二注册数据,将第二注册数据发送给苹果外设;
可选地,本实施例中,第二注册数据包括:第二客户端数据哈希值、第二用户信息、第二服务器信息、公钥凭证数据、第一扩展项和第二密钥存储标识;
例如:第二注册数据具体为:
Publickey:{1:h'687134968222EC17202E42505F8ED2B16AE22F16BB05B88C25DB9E602645F141', 2: {"id": "ftsafe@ftsafe.com", "name":"ftsafe@ftsafe.com"},3:{"id":h'03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4', "icon": “https://example.com/userIcon.png”, "name": "GetRandom8", "displayName": "Command"}, 4: [{"alg": -7, "type": "public-key"}],6:{“attestation”: "none"},7:{"rk":false}};
步骤217:苹果外设从接收到的第二注册数据中获取第二用户信息、第二服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从第二用户信息和或第二服务器信息中提取获取随机数指令;
步骤218:苹果外设生成第一随机数,将第一随机数作为第二扩展项;
例如: 第一随机数具体为:313932F6D9323C42;
步骤219:苹果外设根据密钥存储标识和第一扩展项的值设置设备标识、凭证公钥和凭证标识的值,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到第二认证数据;
可选地,本实施例中,密钥存储标识的值具体为false,第一扩展项的值具体为空;注册数据还包括:客户端数据哈希值;
步骤219具体为:苹果外设生成凭证密钥对和第一凭证标识,获取预设设备标识,将生成认证数据所需的设备标识、凭证公钥和凭证标识的值分别设置为第一凭证标识、凭证密钥对中的公钥和预设设备标识,将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到第二认证数据;
例如:第二认证数据具体为: h'E45329D03A2068D1CAF7F7BB0AE954E6B0E6259745F32F4829F750F05011F9C2C5000007983E22415D7FDF4EA48A0CDD60C4249B9D0060707875A0708465A419F601E1E143D1F184674F916CF012A825881AD6FB095EC3C13B979060DACA8632C43BCCC27E7FCFE190AB4B60560DD7E51D542889FB1A51D51261F03F9A1AAD2D7BD260F23232BB6A5B3068E47D9541EB7169F78769D0D8A5010203262001215820F3E75EE0D651BA5C780DA97ADBD2EF8B019B4E5CE80EDB7C5F97F0D79AFE8B112258207E1C3D1847539BD045BE683CD8FFC3B8FE5CC78F75DC345E8B4863C4B550CCCA313932F6D9323C42';
步骤220:苹果外设根据密钥存储标识和第一扩展项的值设置签名结果和证书链的值,按照生成认证声明的格式封装公钥凭证数据中的算法标识、设置后签名结果和证书链得到第二认证声明;
可选地,本实施例中,密钥存储标识的值具体为false,第一扩展项的值具体为空;
步骤220具体为:苹果外设使用保存的设备私钥对客户端数据哈希值和得到的认证数据进行签名得到第一签名结果,获取设备预设证书链,将生成第二认证声明所需的公钥凭证数据、签名结果和证书链的值分别设置为注册数据中的公钥凭证数据、第一签名结果和预设证书链,将设置后的公钥凭证数据、签名结果和证书链顺次拼接得到第二认证声明;
例如:签名算法标识具体为:"alg": -7;
预设签名结果具体为:"sig": h'';
预设证书链具体为:"x5c": [h''];
第二认证声明具体为:
{"alg": -7, "sig": h'', "x5c": [h'']};
步骤221:苹果外设根据预设认证声明格式、第二认证数据和第二认证声明生成第二注册响应,将第二注册响应返回给注册接口;
例如:预设认证声明格式为:1: "packed";
第二注册响应具体为:{1: "packed", 2: h’E45329D03A2068D1CAF7F7BB0AE954E6B0E6259745F32F4829F750F05011F9C2C5000007983E22415D7FDF4EA48A0CDD60C4249B9D0060707875A0708465A419F601E1E143D1F184674F916CF012A825881AD6FB095EC3C13B979060DACA8632C43BCCC27E7FCFE190AB4B60560DD7E51D542889FB1A51D51261F03F9A1AAD2D7BD260F23232BB6A5B3068E47D9541EB7169F78769D0D8A5010203262001215820F3E75EE0D651BA5C780DA97ADBD2EF8B019B4E5CE80EDB7C5F97F0D79AFE8B112258207E1C3D1847539BD045BE683CD8FFC3B8FE5CC78F75DC345E8B4863C4B550CCCA313932F6D9323C42’,3: {"alg": -7, "sig": h'', "x5c": [h'']} };
可选地,本实施例中,步骤221之后还包括:Webauthn控件将注册接口返回的第二注册响应发送给第一脚本;
步骤222:第一脚本解析接收到的第二注册响应得到预设认证声明格式、第二认证数据和第二认证声明,从第二扩展项中提取第一随机数,向苹果应用发送获取随机数成功响应。
本实施例提供了一种苹果移动设备与苹果外设进行通信的方法,实现了不支持External Accessory Framework协议的苹果外设可以与苹果移动设备进行通信。
实施例3
本发明实施例3提供了一种苹果移动设备与苹果外设进行通信的系统,如图3所示,该系统包括:苹果移动设备70、苹果外设60和服务器30,苹果移动设备70包括苹果应用40,第一脚本50运行在苹果移动设备70上;
苹果应用40包括:第一发送模块401、运行模块402、第一封装模块403、第一调用模块404和第一判断模块405;
第一发送模块401,用于根据第一用户操作信息向服务器30发送加载第一预设网页请求;
运行模块402,用于运行第一脚本50;
第一封装模块403,用于按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据;
第一调用模块404,用于调用注册接口,给注册接口传入注册数据;
第一判断模块405,用于根据注册接口的返回值判断苹果外设60是否为认证设备;
服务器30,用于根据接收到的加载第一预设网页请求加载第一预设网页;第一预设网页包括第一脚本50;
第一脚本50包括:第二发送模块501、第一接收模块502、第一生成模块503、第一设置模块504、第一获取模块505、第一传递模块506、第一解析模块507、第一提取模块508和第三发送模块509;
第二发送模块501,用于当被运行模块402运行时,向服务器30发送创建凭证请求;
第一接收模块502,用于接收服务器30返回的挑战码;
第一生成模块503,用于当第一接收模块502接收到的服务器30返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息;
第一设置模块504,用于设置第一扩展项和密钥存储标识的值为预设值;
第一获取模块505,用于获取预置的公钥凭证数据;
第一传递模块506,用于给苹果应用40传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
第一解析模块507,用于解析接收到的注册响应得到认证数据,解析认证数据得到第二扩展项;
第一提取模块508,用于从第二扩展项中提取处理结果;
第三发送模块509,用于向苹果应用40发送处理结果;
苹果外设60包括:第二获取模块601、处理模块602、第二封装模块603和第四发送模块604;
第二获取模块601,用于从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从用户信息或服务器信息中提取待处理数据;
处理模块602,用于对待处理数据执行预设处理操作得到处理结果;
第二封装模块603,用于根据处理结果生成第二扩展项,根据第一扩展项和密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装第二扩展项和设置后的响应参数得到注册响应,将注册响应通过预设注册接口发送给第一脚本;
第四发送模块604,用于将注册响应通过预设注册接口发送给第一脚本50;
苹果外设60还包括:报告模块605;
报告模块605,用于当苹果外设60插入到苹果移动设备70时,向苹果应用40报告设备类型为认证设备。
可选地,本实施例中,苹果应用40还包括内置的WebAuthn控件;第一发送模块401具体用于,根据第一用户操作信息调用WebAuthn控件向服务器30发送加载第一预设网页请求。
可选地,本实施例中,苹果应用40还包括内置的WebAuthn控件,WebAuthn控件包括注册接口;
第一传递模块506具体用于,调用苹果应用40内置的WebAuthn控件,给WebAuthn控件的注册接口传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识。
可选地,本实施例中,第一判断模块405具体用于,判断注册接口返回的参数是否为第一预设值,如果是,判定苹果外设60是认证设备,否则,判定苹果外设60不是认证设备。
可选地,本实施例中,用户信息包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;服务器信息包括:服务器30id参数和服务器30名参数;
第一生成模块503,具体用于当第一接收模块502接收到的服务器30返回的挑战码时,将待处理数据作为用户名参数或用户显示名参数或服务器30名参数,根据用户id参数、用户icon参数、用户名参数和用户显示名参数生成用户信息,根据服务器30id参数和服务器30名参数生成服务器信息。
可选地,本实施例中,第一设置模块504包括:第一设置单元;
第一设置单元,用于将第一扩展项的值设置为none,将密钥存储标识的值设置为false;
第二封装模块603包括:第一作为单元、第二设置单元、第一封装单元、第三设置单元、第二封装单元和第三封装单元;
第一作为单元,用于将处理结果作为第二扩展项;
第二设置单元,用于将生成认证数据所需的设备标识、凭证公钥和凭证标识的值设置为空;
第一封装单元,用于按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
第三设置单元,用于将生成认证声明所需的公钥凭证数据、签名结果和证书链的值设置为空;
第二封装单元,用于按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
第三封装单元,用于按照生成注册响应所需的格式封装预设认证声明格式、认证数据和认证声明得到注册响应。
可选地,本实施例中,第一设置模块504包括:第四设置单元;
第四设置单元,用于将第一扩展项的值设置为空,将密钥存储标识的值设置为false;
注册数据还包括:客户端数据哈希值;
第二封装模块603包括:第二作为单元、生成获取单元、第五设置单元、第四封装单元、签名获取单元、第六设置单元、第五封装单元和第六封装单元;
第二作为单元,用于将处理结果作为第二扩展项;
生成获取单元,用于生成凭证密钥对和第一凭证标识,获取预设设备标识;
第五设置单元,用于将生成认证数据所需的设备标识、凭证公钥和凭证标识的值分别设置为第一凭证标识、凭证密钥对中的公钥和预设设备标识;
第四封装单元,用于按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
签名获取单元,用于使用保存的设备私钥对客户端数据哈希值和得到的认证数据进行签名得到第一签名结果,获取设备预设证书链;
第六设置单元,用于将生成认证声明所需的公钥凭证数据、签名结果和证书链的值分别设置为注册数据中的公钥凭证数据、第一签名结果和预设证书链;
第五封装单元,用于按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
第六封装单元,用于按照生成注册响应所需的格式封装预设认证声明格式、认证数据和认证声明生成注册响应。
可选地,本实施例中,第四封装单元,具体用于将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到认证数据;
第五封装单元,具体用于将设置后的公钥凭证数据、签名结果和证书链顺次拼接得到认证声明;
第六封装单元,具体用于将预设认证声明格式、认证数据和认证声明顺次拼接得到注册响应。
可选地,本实施例中,待处理数据具体为上电指令;处理模块602,具体用于根据上电指令生成复位应答。
可选地,本实施例中,待处理数据具体为获取随机数指令;处理模块602,具体用于根据获取随机数指令生成第一随机数。
本实施例提供了一种苹果移动设备与苹果外设进行通信的系统,实现了不支持External Accessory Framework协议的苹果外设可以与苹果移动设备进行通信。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种苹果移动设备与苹果外设进行通信的方法,适用于包含苹果移动设备、苹果外设和服务器的系统,所述苹果移动设备包括苹果应用,第一脚本运行在所述苹果移动设备上,其特征在于,所述方法包括如下步骤:
步骤101:所述苹果应用根据第一用户操作信息向所述服务器发送加载第一预设网页请求;
步骤102:所述服务器根据接收到的加载第一预设网页请求为所述苹果应用加载第一预设网页;所述第一预设网页包括所述第一脚本;
步骤103:所述苹果应用运行所述第一脚本向所述服务器发送创建凭证请求,当所述第一脚本接收到所述服务器返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息,设置第一扩展项和密钥存储标识的值为预设值,获取预置的公钥凭证数据;
步骤104:所述第一脚本给所述苹果应用传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
步骤105:所述苹果应用按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据,调用所述注册接口,给所述注册接口传入所述注册数据,根据所述注册接口的返回值判断所述苹果外设是否为认证设备,如果是,执行步骤106,否则,结束;
步骤106:所述苹果外设从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从所述用户信息或所述服务器信息中提取待处理数据;
步骤107:所述苹果外设对所述待处理数据执行预设处理操作得到处理结果,根据所述处理结果生成第二扩展项,根据所述第一扩展项和所述密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装所述第二扩展项和设置后响应参数得到注册响应,将所述注册响应通过所述预设注册接口发送给所述第一脚本;
步骤108:所述第一脚本解析接收到的注册响应得到认证数据,解析所述认证数据得到第二扩展项,从所述第二扩展项中提取处理结果,向所述苹果应用发送所述处理结果;
所述方法还包括:当所述苹果外设插入到所述苹果移动设备时,向所述苹果应用报告设备类型为认证设备。
2.如权利要求1所述的方法,其特征在于,所述步骤101具体为:所述苹果应用根据第一用户操作信息调用内置的WebAuthn控件向所述服务器发送加载第一预设网页请求。
3.如权利要求1所述的方法,其特征在于,所述步骤104具体为:所述第一脚本调用所述苹果应用内置的WebAuthn控件,给所述WebAuthn控件的预设注册接口传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识。
4.如权利要求1所述的方法,其特征在于,所述步骤105中,根据所述注册接口的返回值判断所述苹果外设是否为认证设备具体为:所述苹果应用判断所述注册接口返回的参数是否为第一预设值,如果是,判定所述苹果外设是认证设备,否则,判定所述苹果外设不是认证设备。
5.如权利要求1所述的方法,其特征在于,所述用户信息包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;所述服务器信息包括:服务器id参数和服务器名参数;
所述步骤103中,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息,具体为:所述第一脚本将所述待处理数据作为用户名参数或用户显示名参数或服务器名参数,根据用户id参数、用户icon参数、用户名参数和用户显示名参数生成用户信息,根据服务器id参数和服务器名参数生成服务器信息。
6.如权利要求1所述的方法,其特征在于,所述步骤103中,设置第一扩展项和密钥存储标识的值为预设值具体为:所述第一脚本将所述第一扩展项的值设置为none,将所述密钥存储标识的值设置为false;
所述步骤107中,根据所述处理结果生成第二扩展项,根据所述第一扩展项和所述密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装所述第二扩展项和设置后响应参数得到注册响应,具体为:
步骤b1:所述苹果外设将所述处理结果作为所述第二扩展项;
步骤b2:所述苹果外设将生成认证数据所需的设备标识、凭证公钥和凭证标识的值设置为空,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
步骤b3:所述苹果外设将生成认证声明所需的公钥凭证数据、签名结果和证书链的值设置为空,按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
步骤b4:所述苹果外设按照生成注册响应所需的格式封装预设认证声明格式、所述认证数据和所述认证声明得到注册响应。
7.如权利要求1所述的方法,其特征在于,所述步骤103中,设置第一扩展项和密钥存储标识的值为预设值具体为:所述第一脚本将所述第一扩展项的值设置为空,将所述密钥存储标识的值设置为false;所述注册数据还包括:客户端数据哈希值;
所述步骤107中,根据所述处理结果生成第二扩展项,根据所述第一扩展项和所述密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装所述第二扩展项和设置后响应参数得到注册响应,具体为:
步骤c1:所述苹果外设将所述处理结果作为所述第二扩展项;
步骤c2:所述苹果外设生成凭证密钥对和第一凭证标识,获取预设设备标识,将生成认证数据所需的设备标识、凭证公钥和凭证标识的值分别设置为第一凭证标识、凭证密钥对中的公钥和预设设备标识,按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
步骤c3:所述苹果外设使用保存的设备私钥对所述客户端数据哈希值和得到的认证数据进行签名得到第一签名结果,获取设备预设证书链,将生成认证声明所需的公钥凭证数据、签名结果和证书链的值分别设置为所述注册数据中的公钥凭证数据、所述第一签名结果和所述预设证书链,按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
步骤c4:所述苹果外设按照生成注册响应所需的格式封装预设认证声明格式、所述认证数据和所述认证声明生成注册响应。
8.如权利要求7所述的方法,其特征在于,所述按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据具体为:所述苹果外设将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到所述认证数据;
所述按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明具体为:所述苹果外设将所述设置后的公钥凭证数据、签名结果和证书链顺次拼接得到所述认证声明;
所述苹果外设按照生成注册响应所需的格式封装预设认证声明格式、所述认证数据和所述认证声明生成注册响应具体为:所述苹果外设将预设认证声明格式、所述认证数据和所述认证声明顺次拼接得到所述注册响应。
9.如权利要求1所述的方法,其特征在于,所述待处理数据具体为上电指令;所述步骤107中,所述苹果外设对所述待处理数据执行预设处理操作得到处理结果具体为:所述苹果外设根据所述上电指令生成复位应答。
10.如权利要求1所述的方法,其特征在于,所述待处理数据具体为获取随机数指令;所述步骤107中,所述苹果外设对所述待处理数据执行预设处理操作得到处理结果具体为:所述苹果外设根据所述获取随机数指令生成第一随机数。
11.一种苹果移动设备与苹果外设进行通信的系统,其特征在于,包括:苹果移动设备、苹果外设和服务器,所述苹果移动设备包括苹果应用,第一脚本运行在所述苹果移动设备上;
所述苹果应用包括:第一发送模块、运行模块、第一封装模块、第一调用模块和第一判断模块;
所述第一发送模块,用于根据第一用户操作信息向所述服务器发送加载第一预设网页请求;
所述运行模块,用于运行所述第一脚本;
所述第一封装模块,用于按照调用预设注册接口所需的数据的格式封装传入的用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识得到注册数据;
所述第一调用模块,用于调用所述注册接口,给所述注册接口传入所述注册数据;
所述第一判断模块,用于根据所述注册接口的返回值判断所述苹果外设是否为认证设备;
所述服务器,用于根据接收到的加载第一预设网页请求加载第一预设网页;所述第一预设网页包括第一脚本;
所述第一脚本包括:第二发送模块、第一接收模块、第一生成模块、第一设置模块、第一获取模块、第一传递模块、第一解析模块、第一提取模块和第三发送模块;
所述第二发送模块,用于当被所述运行模块运行时,向所述服务器发送创建凭证请求;
所述第一接收模块,用于接收所述服务器返回的挑战码;
所述第一生成模块,用于当所述第一接收模块接收到的所述服务器返回的挑战码时,将待处理数据作为用户信息的参数和/或服务器信息的参数,根据用户信息的参数生成用户信息,根据服务器信息的参数生成服务器信息;
所述第一设置模块,用于设置第一扩展项和密钥存储标识的值为预设值;
所述第一获取模块,用于获取预置的公钥凭证数据;
所述第一传递模块,用于给所述苹果应用传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识;
所述第一解析模块,用于解析接收到的注册响应得到认证数据,解析所述认证数据得到第二扩展项;
所述第一提取模块,用于从所述第二扩展项中提取处理结果;
所述第三发送模块,用于向所述苹果应用发送所述处理结果;
所述苹果外设包括:第二获取模块、处理模块、第二封装模块和第四发送模块;
所述第二获取模块,用于从接收到的注册数据中获取用户信息、服务器信息、公钥凭证数据、第一扩展项和密钥存储标识,从所述用户信息或所述服务器信息中提取待处理数据;
所述处理模块,用于对所述待处理数据执行预设处理操作得到处理结果;
所述第二封装模块,用于根据所述处理结果生成第二扩展项,根据所述第一扩展项和所述密钥存储标识将生成注册响应所需的响应参数的值设置为预设值,按照生成认证响应所需的格式封装所述第二扩展项和设置后响应参数得到注册响应;所述第四发送模块,用于将所述注册响应通过所述预设注册接口发送给所述第一脚本;
所述苹果外设还包括:报告模块;
所述报告模块,用于当所述苹果外设插入到所述苹果移动设备时,向所述苹果应用报告设备类型为认证设备。
12.如权利要求11所述的系统,其特征在于,所述苹果应用还包括内置的WebAuthn控件;所述第一发送模块具体用于,根据第一用户操作信息调用所述WebAuthn控件向所述服务器发送加载第一预设网页请求。
13.如权利要求11所述的系统,其特征在于,所述苹果应用还包括内置的WebAuthn控件,所述WebAuthn控件包括注册接口;
所述第一传递模块具体用于,调用所述苹果应用内置的WebAuthn控件,给所述WebAuthn控件的注册接口传入用户信息、服务器信息、挑战码、公钥凭证数据、设置后的第一扩展项和密钥存储标识。
14.如权利要求11所述的系统,其特征在于,所述第一判断模块具体用于,判断所述注册接口返回的参数是否为第一预设值,如果是,判定所述苹果外设是认证设备,否则,判定所述苹果外设不是认证设备。
15.如权利要求11所述的系统,其特征在于,所述用户信息包括:用户id参数、用户icon参数、用户名参数和用户显示名参数;所述服务器信息包括:服务器id参数和服务器名参数;
所述第一生成模块,具体用于当所述第一接收模块接收到的所述服务器返回的挑战码时,将所述待处理数据作为用户名参数或用户显示名参数或服务器名参数,根据用户id参数、用户icon参数、用户名参数和用户显示名参数生成用户信息,根据服务器id参数和服务器名参数生成服务器信息。
16.如权利要求11所述的系统,其特征在于,所述第一设置模块包括:第一设置单元;
所述第一设置单元,用于将所述第一扩展项的值设置为none,将所述密钥存储标识的值设置为false;
所述第二封装模块包括:第一作为单元、第二设置单元、第一封装单元、第三设置单元、第二封装单元和第三封装单元;
所述第一作为单元,用于将所述处理结果作为所述第二扩展项;
所述第二设置单元,用于将生成认证数据所需的设备标识、凭证公钥和凭证标识的值设置为空;
所述第一封装单元,用于按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
所述第三设置单元,用于将生成认证声明所需的公钥凭证数据、签名结果和证书链的值设置为空;
所述第二封装单元,用于按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
所述第三封装单元,用于按照生成注册响应所需的格式封装预设认证声明格式、所述认证数据和所述认证声明得到注册响应。
17.如权利要求11所述的系统,其特征在于,所述第一设置模块包括:第四设置单元;
所述第四设置单元,用于将所述第一扩展项的值设置为空,将所述密钥存储标识的值设置为false;
所述注册数据还包括:客户端数据哈希值;
所述第二封装模块包括:第二作为单元、生成获取单元、第五设置单元、第四封装单元、签名获取单元、第六设置单元、第五封装单元和第六封装单元;
所述第二作为单元,用于将所述处理结果作为所述第二扩展项;
所述生成获取单元,用于生成凭证密钥对和第一凭证标识,获取预设设备标识;
所述第五设置单元,用于将生成认证数据所需的设备标识、凭证公钥和凭证标识的值分别设置为第一凭证标识、凭证密钥对中的公钥和预设设备标识;
所述第四封装单元,用于按照生成认证数据所需的格式封装设置后的设备标识、凭证公钥、凭证标识和第二扩展项得到认证数据;
所述签名获取单元,用于使用保存的设备私钥对所述客户端数据哈希值和得到的认证数据进行签名得到第一签名结果,获取设备预设证书链;
所述第六设置单元,用于将生成认证声明所需的公钥凭证数据、签名结果和证书链的值分别设置为所述注册数据中的公钥凭证数据、所述第一签名结果和所述预设证书链;
所述第五封装单元,用于按照生成认证声明所需的格式封装设置后的公钥凭证数据、签名结果和证书链得到认证声明;
所述第六封装单元,用于按照生成注册响应所需的格式封装预设认证声明格式、所述认证数据和所述认证声明生成注册响应。
18.如权利要求17所述的系统,其特征在于,所述第四封装单元,具体用于将设置后的设备标识、凭证公钥、凭证标识和第二扩展项顺次拼接得到所述认证数据;
所述第五封装单元,具体用于将所述设置后的公钥凭证数据、签名结果和证书链顺次拼接得到所述认证声明;
所述第六封装单元,具体用于将预设认证声明格式、所述认证数据和所述认证声明顺次拼接得到所述注册响应。
19.如权利要求11所述的系统,其特征在于,所述待处理数据具体为上电指令;所述处理模块,具体用于根据所述上电指令生成复位应答。
20.如权利要求11所述的系统,其特征在于,所述待处理数据具体为获取随机数指令;所述处理模块,具体用于根据所述获取随机数指令生成第一随机数。
CN202011433764.1A 2020-12-10 2020-12-10 一种苹果移动设备与苹果外设进行通信的方法和系统 Active CN112235421B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011433764.1A CN112235421B (zh) 2020-12-10 2020-12-10 一种苹果移动设备与苹果外设进行通信的方法和系统
PCT/CN2021/132578 WO2022121682A1 (zh) 2020-12-10 2021-11-23 一种苹果移动设备与苹果外设进行通信的方法和系统
US18/044,109 US20230315650A1 (en) 2020-12-10 2021-11-23 Method and system for communicating between apple mobile device and apple peripheral

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011433764.1A CN112235421B (zh) 2020-12-10 2020-12-10 一种苹果移动设备与苹果外设进行通信的方法和系统

Publications (2)

Publication Number Publication Date
CN112235421A CN112235421A (zh) 2021-01-15
CN112235421B true CN112235421B (zh) 2021-03-16

Family

ID=74124046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011433764.1A Active CN112235421B (zh) 2020-12-10 2020-12-10 一种苹果移动设备与苹果外设进行通信的方法和系统

Country Status (3)

Country Link
US (1) US20230315650A1 (zh)
CN (1) CN112235421B (zh)
WO (1) WO2022121682A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235421B (zh) * 2020-12-10 2021-03-16 飞天诚信科技股份有限公司 一种苹果移动设备与苹果外设进行通信的方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108317A (zh) * 2017-12-29 2018-06-01 飞天诚信科技股份有限公司 一种实现用于苹果移动终端的多接口设备的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5641323B2 (ja) * 2010-11-29 2014-12-17 ソニー株式会社 通信装置、通信方法、およびプログラム
US8898349B1 (en) * 2013-10-10 2014-11-25 American Megatrends, Inc. IPMI over USB data transfer between host computer and baseboard management controller (BMC)
DE102016205198A1 (de) * 2016-03-30 2017-10-05 Siemens Aktiengesellschaft Nachweisen einer Authentizität eines Gerätes mithilfe eines Berechtigungsnachweises
CN105933428B (zh) * 2016-05-27 2019-05-10 飞天诚信科技股份有限公司 一种与苹果终端进行通讯的方法及设备
CN112235421B (zh) * 2020-12-10 2021-03-16 飞天诚信科技股份有限公司 一种苹果移动设备与苹果外设进行通信的方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108317A (zh) * 2017-12-29 2018-06-01 飞天诚信科技股份有限公司 一种实现用于苹果移动终端的多接口设备的方法和装置

Also Published As

Publication number Publication date
WO2022121682A1 (zh) 2022-06-16
CN112235421A (zh) 2021-01-15
US20230315650A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
CN107689868B (zh) 客户端应用与可信应用的通信方法、装置以及终端
CN110417766B (zh) 一种协议解析的方法和装置
CN110071933B (zh) 安全套接层加速方法、装置、设备及可读存储介质
WO2016029595A1 (zh) 开放平台的调用方法、装置、设备及非易失性计算机存储介质
US20180011752A1 (en) Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
CN107172075B (zh) 基于网络隔离的通信方法、系统及可读存储介质
CN112235421B (zh) 一种苹果移动设备与苹果外设进行通信的方法和系统
CN112632573B (zh) 智能合约执行方法、装置、系统、存储介质及电子设备
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
CN112416391A (zh) 系统升级方法、装置、计算机设备和存储介质
CN113312577A (zh) 网页资源处理方法、装置、电子设备和存储介质
CN105577657A (zh) 一种ssl/tls算法套件的扩展方法
US20210334164A1 (en) Device recovery mechanism
CN106095886B (zh) 一种数据处理方法及其装置
CN112399446A (zh) 边缘网关通信方法、装置、计算机设备和存储介质
CN111625373A (zh) 一种功能访问方法、装置、电子设备及存储介质
CN114675876B (zh) 一种业务处理方法、装置、电子设备及存储介质
CN107995184B (zh) 一种连接器及使用该连接器通讯的方法
CN115185599A (zh) 基于Golang的项目部署方法、系统及存储介质
CN114356774A (zh) 目标服务的测试方法、装置、设备及存储介质
US7376845B2 (en) Method for calculating hashing of a message in a device communicating with a smart card
CN114978526B (zh) 一种区块链数据传输方法、装置、设备及可读存储介质
CN114285613B (zh) 数据信息的调用方法及装置、存储介质、电子装置
CN115696318B (zh) 安全通信装置、安全认证方法和安全通信方法
CN115733628A (zh) 一种登录认证方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant