Electronic signature method combining handwritten signature and FIDO signature
By combining handwritten signatures and FIDO signatures, the hash value of electronic data and handwritten signatures are digitally signed by using FIDO discriminator to solve the problem that handwritten electronic signatures are easily stolen and tampered, and the resistance and authenticity of the signature are realized.
Patent Information
- Application Number
- CN202510273474.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-10
- Publication Date
- 2025-06-27
AI Technical Summary
Handwritten electronic signatures have problems such as stolen, tampering with the signature content, and lack of resistance to resistance.
Combining handwritten signatures and FIDO signatures, by calculating the hash values of electronic data and handwritten signatures as hash values/challenge codes of FIDO signatures, submitting them to the FIDO discriminator for digital signatures, generating FIDO signatures, and transmitting and storing them with electronic data and handwritten signatures.
Effectively prevent tampering of electronic data and handwritten signatures, enhance the resistance to signatures, and ensure the authenticity and reliability of signatures.
Smart Images

Figure CN120217408A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of cryptography technology, and particularly relates to an electronic signature method combining handwritten signature and FIDO signature. Background Art
[0002] In judicial practice, handwritten electronic signatures, such as handwritten electronic signature pictures in Word or PDF documents, have the same legal effect as paper handwritten signatures under certain conditions. Nevertheless, there are still some problems with handwritten electronic signatures. For example, handwritten signatures can be copied and may be stolen, which greatly reduces their legal effect. This raises a question: how to determine that a handwritten signature is an expression of the signer's true intention rather than being stolen or misused? Moreover, handwritten electronic signatures cannot prevent the tampering of electronic data / electronic documents. For example, they cannot prevent the user / using party of the electronic data / electronic document with the handwritten signature from modifying the electronic data / electronic document, nor can they prevent the signer of the handwritten electronic signature from denying the content of the electronic data / electronic document afterwards. The signer can claim that the electronic data / electronic document is not the content he signed and confirmed originally, but the modified content. The above problems indicate that handwritten signatures lack non-repudiation capabilities.
[0003] FIDO (Fast IDentity Online) is an online identity authentication technology based on public key cryptography. The key (private key) used for user identity authentication (proof of identity) is stored in the user's FIDO authenticator. There are two types of FIDO authenticators: external devices (such as FIDO USB Key, etc.) and embedded devices (also known as on-device FIDO authenticators or built-in FIDO authenticators). Among them, the embedded FIDO authenticator is built into user computing devices such as laptops and mobile phone terminals. The embedded FIDO authenticator can be either pure software or a combination of software and hardware (the user computing device has a secure element, SE). The external FIDO authenticator is a dedicated cryptographic device. The user key is stored in the hardware and the cryptographic operations are performed in the hardware, so it has high security. For the embedded FIDO authenticator, whether it is pure software (without a dedicated secure element to store the private key and using the private key for cryptographic operations) or a combination of software and hardware (with a dedicated secure element to store the private key and using the private key for cryptographic operations), due to the strict security protection of the storage and use of the user key by the operating system and hardware (such as using the private key for signature operations in the CPU's TrustZone), it also has high security. FIDO uses the method of using the FIDO authenticator to digitally sign a random challenge code with the user's private key to prove that the user owns the FIDO private key, thereby realizing the identity authentication of the user. An important technical feature of the FIDO authenticator is that when using the FIDO private key for signature, the FIDO authenticator needs to authenticate the user in a certain way (such as PIN code, fingerprint, face, etc.) to ensure that the use of the private key is authorized by the user. Currently, FIDO has evolved from the initial version 1 to version 2, FIDO2. Summary of the Invention
[0004] The object of the present invention is to propose a solution to the problems of electronic handwritten signatures being stolen, the signature content being tampered with, and the lack of non-repudiation ability of electronic handwritten signatures.
[0005] For the object of the present invention, the technical solution proposed by the present invention is an electronic signature method combining handwritten signature and FIDO signature, which is specifically as follows.
[0006] The user has a FIDO key pair (i.e., passkey, belonging to the user Credential) for FIDO signature and signature verification. The private key therein is called the FIDO private key and is used for signature, and the public key is called the FIDO public key and is used for signature verification; the FIDO public key is registered (registration, which is the usual practice) before use (at the FIDO server, FIDO Server);
[0007] When a user inputs a handwritten signature as an electronic signature for confirming electronic data / electronic documents, the handwritten signature generation processing program calculates the hash value of the data composed of the electronic data / electronic documents and the handwritten signature (the hash value is also called the hash value or digest value). This hash value is used as the hash value / challenge code of the FIDO signature (such as the clientDataHash of FIDO2 or the Challenge of FIDO1), which is called the FIDO hash value / challenge code. Then, the FIDO hash value / challenge code is submitted (directly or indirectly) (through the FIDO Authenticator API) to the user's FIDO authenticator. After the user authentication is completed, the FIDO authenticator uses the user's FIDO private key to digitally sign the FIDO hash value / challenge code to generate a FIDO signature; the FIDO signature is transmitted / transferred and stored together with the electronic data / electronic documents containing the handwritten signature.
[0008] The usual FIDO is used for identity authentication. During identity authentication, the authenticating party (relying party) generates a random string to form the FIDO hash value / challenge code. However, in the present invention, FIDO is used for digital signature of the data composed of electronic data / electronic documents and handwritten signatures. Therefore, the FIDO hash value / challenge code of the present invention is generated using the electronic data / electronic documents to be signed and the handwritten signature (this is the biggest difference from the usual usage of FIDO), and usually does not require the use of a random string.
[0009] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, the ways of transmitting / transferring and storing the FIDO signature together with the electronic data / electronic documents containing the handwritten signature include:
[0010] Adding / appending the FIDO signature to the area of the electronic data / electronic documents not covered by the FIDO signature (i.e., the area not involved in calculating the FIDO hash value / challenge code, such as storing the FIDO signature in the form of hidden data at the end of structured documents such as Word and PDF).
[0011] Alternatively, adding / embedding the FIDO signature in the form of a barcode or digital watermark to the area of the handwritten signature picture not covered by the FIDO signature (i.e., the area not involved in calculating the FIDO hash value / challenge code. For example, the handwritten signature picture is divided into two areas, one of which is covered by the FIDO signature and the other is not). The barcode includes a one-dimensional barcode, a two-dimensional barcode or a multi-dimensional barcode, and the multi-dimensional means more than two dimensions.
[0012] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, the data for generating the FIDO hash value / challenge code (i.e., the data used to calculate the FIDO hash value / challenge code) may include other data in addition to the electronic data / electronic document to be signed and the handwritten signature. The other data includes random strings, time, and context information (referring to the context information of the FIDO authenticator caller, not the context information of the FIDO authenticator).
[0013] If the data for generating the FIDO hash value / challenge code further includes other data in addition to the electronic data to be signed and the handwritten signature, then the data for generating the FIDO hash value / challenge code other than the electronic data / electronic document to be signed and the handwritten signature is transmitted / transferred and stored together with the FIDO signature.
[0014] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, when calculating the FIDO hash value / challenge code, the electronic data / electronic document to be signed (to be electronically signed / digitally signed) is directly used, or the hash value of the electronic data / electronic document to be signed is used (i.e., there are at least two hash value calculations in the process of calculating the FIDO hash value / challenge code, that is, at this time, the electronic data / electronic document to be signed is not directly used for the hash calculation of the FIDO hash value / challenge code).
[0015] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, the handwritten signature and the FIDO signature are completed in a real-time online form (usually involving client programs and server programs), or in a non-real-time online form (which may only involve user-side programs).
[0016] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, the handwritten signature generation processing program for calculating the hash values of the electronic data / electronic document and the handwritten signature is located on the user side (computing device), or on the server side (computing device).
[0017] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, in order to ensure that the user is informed and aware of the ongoing digital signature operation, before invoking / using the FIDO authenticator to digitally sign the FIDO hash value / challenge code, the digital signature program or digital signature application program displays information to prompt the user to confirm the operation of electronically signing / digitally signing using the electronic signature / digital signature secret (i.e., the FIDO private key).
[0018] For the above-mentioned electronic signature method combining handwritten signature and FIDO signature, the electronic signature / digital signature verification program verifies the validity of the digital signature of the electronically signed data / electronic data / electronic document (handwritten signature + digital signature) in the following manner:
[0019] Obtain the FIDO signature from the signed electronic data / electronic data / electronic file, obtain the data required to generate (calculate) the FIDO hash value / challenge code when generating the FIDO signature, then generate (calculate) the FIDO hash value / challenge code in the same way as when generating the FIDO signature, and finally verify the validity of the FIDO signature using the FIDO public key and the FIDO hash value / challenge code.
[0020] As can be seen from the above description, in the present invention, the handwritten signature expresses the user's confirmation of the electronic data / electronic file, and the FIDO signature not only further strengthens this confirmation but also can prevent the tampering of the electronic data / electronic file. Since the use of the FIDO private key for FIDO signature is protected by security measures such as PIN code, fingerprint, face, etc., therefore, the use of the user's FIDO private key for digital signature must involve the user, such as entering the PIN code, fingerprint, face, etc., and the FIDO authenticator verifies the user. Only after the verification is passed will the FIDO authenticator use the FIDO private key for digital signature. That is, when using the user's FIDO private key to digitally sign the electronic data / electronic file and the handwritten signature, it must be carried out with the user's knowledge, participation, and permission, so as to avoid the user claiming in the future that they were unaware of the digital signature of the electronic data / electronic file using the FIDO private key, achieving the purpose of anti-repudiation and avoiding disputes.
[0021] It can be seen that in the present invention, the user's FIDO private key is not or does not have to be used for identity authentication, but is used to guarantee the validity of the handwritten signature, which is different from the usual FIDO applications.
[0022] Currently, many portable computers and mobile terminals (such as mobile phones) support or are embedded with FIDO authenticators, which makes the implementation and application of the present invention convenient. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 The electronic signature generation process of the present invention;
[0024] Figure 2 The client program calls the embedded or external FIDO authenticator;
[0025] Figure 3 The client program calls the embedded FIDO authenticator in the mobile terminal through USB / local network;
[0026] Figure 4 The client program calls the embedded FIDO authenticator in the mobile terminal through the Internet;
[0027] Figure 5 The server program calls the embedded FIDO authenticator in the mobile terminal through the Internet. Detailed implementation manners
[0028] The following describes the detailed implementation manners of the present invention. The following content is only an illustration of possible implementation manners of the present invention, and does not represent all possible implementation manners, nor does it limit the protection scope of the present invention.
[0029] The electronic signature generation process of the present invention is as Figure 1 shown.
[0030] FIDO has developed two versions so far, the first version and the second version (referred to as FIDO1 and FIDO2). There may be new versions in the future. The implementation of the present invention is not limited to a specific FIDO version and is not restricted by a specific version either, as long as the present invention can be implemented.
[0031] The present invention places no restrictions on the specific implementation manner of the FIDO authenticator. The FIDO authenticator can be external or embedded (also known as on-device). Whether it is embedded or external, it can be purely hardware, purely software, or a combination of software and hardware. The FIDO authenticator can be a dedicated FIDO device or an embedded FIDO device implemented using a general-purpose user device such as a laptop or a mobile terminal.
[0032] In a typical FIDO, FIDO is used for user authentication. Therefore, in order to verify whether a user has a FIDO private key and prevent replay attacks, the hash value / challenge code submitted for signature to the FIDO authenticator is data randomly generated by the server or data generated using data randomly generated by the server. However, the FIDO of the present invention is not used for user authentication. The hash value / challenge code submitted for signature to the FIDO authenticator is calculated by a hash algorithm using data including electronic data / electronic files and handwritten signatures. Since it is not used for user authentication, random numbers are generally not used when generating the FIDO hash value / challenge code. This is a key difference between the present invention and a typical FIDO.
[0033] Since the FIDO signature in the present invention is a digital signature for electronic data / electronic documents and handwritten signatures and is not used for user authentication, in specific implementation, usually only the FIDO authenticator and its API at the user side (such as Client to Authenticator Protocol, FIDO U2F) need to be implemented, and it is not necessary to implement the complete FIDO server function (but the FIDO Credential registration function needs to be implemented), and it is not necessary to implement FIDO-based user authentication on the server system. For example, it is not necessary to implement WebAuthn (Web Authentication: An API for accessing Public Key Credentials Level 1, Level 2) (of course, it does not exclude or reject implementing the authentication function at the same time). In specific implementation, if the FIDO authenticator API is the FIDO2 API (Client to Authenticator Protocol), the FIDO hash value / challenge code of the signature submitted to the FIDO authenticator is the hash value (clientDataHash). At this time, if the FIDO authenticator is the FIDO2 authenticator (CTAP2), the hash value is directly used; if the FIDO authenticator is the FIDO1 authenticator (CTAP1, i.e., FIDO U2F), the FIDO authenticator API converts the hash value into the FIDO1 challenge code (Challenge); if the FIDO authenticator API is FIDO1 (FIDO U2F), the FIDO hash value / challenge code of the signature submitted to the FIDO authenticator is the FIDO1 challenge code (Challenge). At this time, the challenge code is still calculated by the caller using the data including electronic data / electronic documents and handwritten signatures through the hash algorithm, that is, the challenge code is still the hash value.
[0034] In specific implementation, if the FIDO hash value / challenge code of the signature submitted to the FIDO authenticator is generated at the user side (for example, generated by the application program, client program or digital signature program at the user side participating in the handwritten signature generation process or digital signature process), the FIDO hash value / challenge code generated can directly use the electronic data / electronic document to be signed or its hash value. If the FIDO hash value / challenge code of the signature submitted to the FIDO authenticator is generated on the server side, in order to protect user privacy, usually the electronic data / electronic document to be signed is not directly used to generate the FIDO hash value / challenge code, but its hash value is used to generate (the FIDO hash value / challenge code is calculated again using the hash value of the electronic data / electronic document).
[0035] In a specific implementation, the data for generating the FIDO hash value / challenge code may include, in addition to the electronic data / electronic file to be signed and the handwritten signature, other information as needed, such as random strings, time, context information, etc. (here, the context refers to the context information of the FIDO caller, not the context information of the FIDO authenticator). In a specific implementation, which specific data are included in the other data for generating the FIDO hash value / challenge code is entirely determined by the implementer, but some basic requirements must be met: the data for generating the FIDO hash value / challenge code can be recovered, and the authenticity and validity of the FIDO signature can be verified. The other data used to generate the FIDO hash value / challenge code are transmitted / transferred and stored together with the FIDO signature.
[0036] In a specific implementation, the possible ways to transmit / transfer and store the FIDO signature together with the electronic data / electronic file containing the handwritten signature include:
[0037] Add / attach the FIDO signature to the area of the electronic data / electronic file that is not covered by the FIDO signature (i.e., the area not involved in calculating the FIDO hash value / challenge code). For example, store the FIDO signature in the form of hidden data at the end of structured documents such as Word and PDF.
[0038] Alternatively, add / embed the FIDO signature in the form of a barcode or digital watermark to the area of the handwritten signature picture that is not covered by the FIDO signature (i.e., the area not involved in calculating the FIDO hash value / challenge code). For example, divide the handwritten signature picture into two areas, one of which is covered by the FIDO signature and the other is not. Here, the barcode can be a one-dimensional barcode, a two-dimensional barcode, or a multi-dimensional barcode, and the multi-dimensional means more than two dimensions.
[0039] Since the FIDO signature of the present invention is a digital signature for electronic data / electronic files and handwritten signatures and is not used for user identity authentication in system login, in a specific implementation, the generation of the FIDO hash value / challenge code and the usage method of the FIDO signature do not have to comply with the FIDO specification, but only need to meet the security requirements and security needs of the implementer.
[0040] The FIDO key pair (i.e., Credential) corresponds to and is bound to the relying party (through the relying party identifier Relying Party Identifier) and the user (usually through the user's user name in the relying party as the user identifier User Identifier). If the handwritten signature + FIDO signature for electronic data / electronic files is a specific application, for example, a certain online transaction, then the relying party identifier corresponds to the specific application, and the user name (user identifier) corresponds to the user's account name (user name) in the specific application system; if the handwritten signature + FIDO signature for electronic data / electronic files is provided through a public service, for example, a public signature service, then the relying party identifier corresponds to the public signature service platform, and the user name (user identifier) corresponds to the user's account name on the public signature service platform. When the user Credential (public key) is registered, the user Credential (public key) is bound to the relying party identifier and the user identifier in the FIDO server (FIDO Server) and the FIDO authenticator. Therefore, in specific implementations, the application program or digital signature program can select and use the corresponding FIDO key pair (Credential) according to the relying party identifier and the user identifier for FIDO signature and signature verification.
[0041] In specific implementations, the way to call the FIDO authenticator can be called by a program on the user side (such as Figure 2 , 3 , 4), or can be called by a program on the server side (as shown in Figure 5 ), where Figure 2 corresponds to the situation where the user-side program calls the built-in (in the device) FIDO authenticator or the external FIDO authenticator of the user computing device. At this time, the external FIDO authenticator can be called through USB, NFC, etc.; Figure 3 corresponds to the user-side program calling the built-in FIDO authenticator in a mobile terminal (such as a mobile phone) through USB, NFC, etc., Figure 4 corresponds to the user-side program calling the built-in FIDO authenticator in a mobile terminal (such as a mobile phone) through the Internet. At this time, the user-side program and the proxy program of the built-in FIDO authenticator in the mobile terminal (such as a mobile phone) establish a network communication connection through a connection intermediary system to exchange data; Figure 5 corresponds to the server-side program calling the built-in FIDO authenticator in a mobile terminal (such as a mobile phone) through the Internet. At this time, the server-side program and the proxy program of the built-in FIDO authenticator in the mobile terminal (such as a mobile phone) establish a network communication connection through the network and exchange data (the proxy program in the mobile phone actively initiates a connection to the server). It should be noted that Figure 2The client computing device therein can itself be a user mobile terminal (with an embedded FIDO authenticator or an external FIDO authenticator). Since many current mobile phone terminals already provide and implement the function of an embedded FIDO authenticator, therefore, using the FIDO authenticator of a mobile phone terminal as the FIDO authenticator is a convenient, low-cost, and secure option (providing fingerprint security protection for the FIDO private key).
[0042] In a specific implementation, whether to calculate the FIDO hash value / challenge code at the client or the server, and whether to submit the FIDO hash value / challenge code to the FIDO authenticator by the client program or the server program, both are acceptable. However, it is usually more convenient for the client to submit the FIDO hash value / challenge code to the FIDO authenticator and call the FIDO private key for signing, which is the preferred implementation method.
[0043] In a specific implementation, to ensure that the user is informed and aware of the ongoing digital signature operation, before the program calls / uses the FIDO authenticator to sign the FIDO hash value / challenge code, the digital signature program or the digital signature application program displays information to the user, prompting the user to confirm the operation of signing using the electronic signature / digital signature secret (private key).
[0044] Other specific technical implementations not described belong to the prior art or public knowledge, which are well-known and self-evident to those skilled in the relevant fields.
Claims
1. An electronic signature method combining a handwritten signature and a FIDO signature, characterized by: Users have a FIDO key pair for FIDO signatures and signature verification. The private key is called the FIDO private key, which is used for signatures, and the public key is called the FIDO public key, which is used for signature verification. The FIDO public key is registered before use. When a user inputs a handwritten signature as an electronic signature to confirm electronic data / electronic file, the handwritten signature generation processing program calculates a hash value of the data consisting of the electronic data / electronic file and the handwritten signature, and uses this hash value as the hash value / challenge code of the FIDO signature, called the FIDO hash value / challenge code. The FIDO hash value / challenge code is then submitted to the user's FIDO authenticator. After completing user verification, the FIDO authenticator uses the user's FIDO private key to digitally sign the FIDO hash value / challenge code to generate a FIDO signature; the FIDO signature is transmitted / delivered and stored together with the electronic data / electronic file containing the handwritten signature.
2. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: The FIDO signature may be transmitted / delivered and stored together with the electronic data / document containing the handwritten signature: Adding / attaching the FIDO signature to the areas of the electronic data / electronic document that are not covered by the FIDO signature; Alternatively, the FIDO signature is added / embedded in the area of the handwritten signature image not covered by the FIDO signature in the form of a barcode or digital watermark, wherein the barcode includes a one-dimensional barcode, a two-dimensional barcode, or a multi-dimensional barcode, wherein the multi-dimensional refers to more than two dimensions.
3. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: The data used to generate the FIDO hash value / challenge code may include other data in addition to the electronic data / electronic document to be signed and the handwritten signature. The other data may include a random string, time, and context information. If the data used to generate the FIDO hash value / challenge code also includes other data other than the electronic data to be signed and the handwritten signature, then the data used to generate the FIDO hash value / challenge code other than the electronic data / electronic file to be signed and the handwritten signature shall be transmitted / delivered and stored together with the FIDO signature.
4. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: When calculating the FIDO hash value / challenge code, the electronic data / electronic document to be signed is used directly, or the hash value of the electronic data / electronic document to be signed is used.
5. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: The handwritten signature and FIDO signature can be completed in real-time online form or in non-real-time online form.
6. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: The handwritten signature generation processing program for calculating the hash value of the electronic data / electronic document and the handwritten signature is located at the user end, or at the server end.
7. The electronic signature method combining handwritten signature and FIDO signature according to claim 1 is characterized in that: Before invoking / using the FIDO authenticator to digitally sign the FIDO hash value / challenge code, the digital signature program or digital signature application displays a message prompting the user to confirm the operation of electronically signing / digitally signing using the electronic signature / digital signature secret.
8. The electronic signature method combining a handwritten signature and a FIDO signature according to any one of claims 1 to 7, characterized in that: The electronic signature / digital signature verification procedure verifies the validity of the digital signature of the signed electronic data / electronic data / electronic document as follows: Obtain the FIDO signature from the signed electronic data / electronic data / electronic document, obtain the data required to generate the FIDO hash value / challenge code when generating the FIDO signature, then generate the FIDO hash value / challenge code in the same way as when generating the FIDO signature, and finally use the FIDO public key and the FIDO hash value / challenge code to verify the validity of the FIDO signature.