WO2023162233A1 - 通信システム、通信方法、及びプログラム - Google Patents

通信システム、通信方法、及びプログラム Download PDF

Info

Publication number
WO2023162233A1
WO2023162233A1 PCT/JP2022/008320 JP2022008320W WO2023162233A1 WO 2023162233 A1 WO2023162233 A1 WO 2023162233A1 JP 2022008320 W JP2022008320 W JP 2022008320W WO 2023162233 A1 WO2023162233 A1 WO 2023162233A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
salt
unit
conversion
selection
Prior art date
Application number
PCT/JP2022/008320
Other languages
English (en)
French (fr)
Inventor
永男 蔡
Original Assignee
楽天グループ株式会社
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 楽天グループ株式会社 filed Critical 楽天グループ株式会社
Priority to PCT/JP2022/008320 priority Critical patent/WO2023162233A1/ja
Priority to JP2022577693A priority patent/JP7358658B1/ja
Priority to EP22857076.8A priority patent/EP4262147A1/en
Priority to TW112105515A priority patent/TW202343288A/zh
Publication of WO2023162233A1 publication Critical patent/WO2023162233A1/ja
Priority to JP2023166239A priority patent/JP2023165913A/ja

Links

Images

Classifications

    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Definitions

  • the present disclosure relates to communication systems, communication methods, and programs.
  • Patent Literature 1 describes a technique for generating user parameters based on a user ID input by a user and converting biometric data, which is an example of original data, based on the generated user parameters.
  • Patent Literature 2 describes a technique for converting a salt, which is an example of original data, using a public key cryptosystem.
  • Patent Literature 3 describes a technique called challenge-and-response, which is a type of public key cryptosystem.
  • the public key cryptosystem of Patent Documents 2-3 is a cryptosystem that uses a pair of a public key that is disclosed to third parties and a private key that is not disclosed to third parties.
  • the private key is information that does not change in principle, if a third party obtains the private key in some way, the third party will be able to use the private key once obtained to cheat for a long period of time. Since the techniques of Patent Documents 1 to 3 allow fraudulent transactions over a long period of time, security in communication cannot be sufficiently enhanced.
  • One of the purposes of this disclosure is to improve security in communication.
  • a communication system is a communication system that includes a first device and a second device, includes a generation unit that generates a plurality of pieces of information based on a request from the first device, The first device transforms the original data based on the plurality of information and transmits transformed data to the second device, and the second device reverse transforms the transformed data based on the plurality of information. to obtain the original data.
  • FIG. 2 is a functional block diagram showing an example of functions implemented by the communication system of the first embodiment;
  • FIG. It is a figure which shows an example of a salt database.
  • FIG. It is a figure which shows an example of a user database.
  • FIG. shows an example of the process performed by the communication system of 1st Embodiment.
  • FIG. 1st Embodiment It is a figure which shows an example of the process performed by the communication system of 1st Embodiment.
  • FIG. 13 is a diagram showing an example of the flow of multi-factor authentication in the second embodiment; It is a figure which shows an example of the functional block implement
  • FIG. 13 is a diagram showing an example of the flow of multi-factor authentication in the third embodiment; It is a figure which shows an example of the functional block implement
  • FIG. 1 is a diagram showing an example of the overall configuration of a communication system.
  • the communication system S includes a salt server 10, an authentication server 20, and a user PC30.
  • the salt server 10, authentication server 20, and user PC 30 can be connected to a network N such as the Internet or LAN.
  • the communication system S only needs to include at least one computer, and is not limited to the example in FIG.
  • the salt server 10 is a server computer.
  • Control unit 11 includes at least one processor.
  • the storage unit 12 includes a volatile memory such as RAM and a nonvolatile memory such as a hard disk.
  • the communication unit 13 includes at least one of a communication interface for wired communication and a communication interface for wireless communication.
  • the salt server 10 is an example of a management device. Therefore, the salt server 10 can be read as a management device.
  • the management device may be any device and is not limited to a server computer such as the salt server 10 .
  • the management device may be a personal computer, tablet terminal, or smart phone.
  • the salt server 10 manages salt in cryptography theory.
  • a salt is information for converting information to be converted.
  • the salt is the information that is input to the transformation function along with the information to be transformed. Transformation is sometimes called encryption or hashing. The transformation is reversible. The transformed information can be restored to the pre-transformed information by inverse transformation.
  • To manage the salt is to store the salt.
  • salt For the salt itself, known salt can be used.
  • salt is a random value.
  • the salt can be in any form, such as numbers, letters, other symbols, or combinations thereof.
  • the salt server 10 may generate the salt, or the salt generation itself may be performed by a device other than the salt server 10 .
  • the authentication server 20 is a server computer.
  • the physical configurations of the control unit 21, the storage unit 22, and the communication unit 23 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the authentication server 20 is an example of a second device. Therefore, the description of the authentication server 20 can be read as the second device.
  • the second device may be any device and is not limited to a server computer such as authentication server 20 .
  • the second device may be a personal computer, tablet terminal, or smart phone.
  • the user PC 30 is the user's personal computer.
  • the physical configurations of the control unit 31, the storage unit 32, and the communication unit 33 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the operation unit 34 is an input device such as a mouse, keyboard, or touch panel.
  • the display unit 35 is a liquid crystal display or an organic EL display.
  • the imaging unit 36 includes at least one camera.
  • the user PC 30 is an example of a first device. Therefore, the user PC 30 can be read as the first device.
  • the first device may be any device and is not limited to a personal computer such as the user PC 30 .
  • the first device may be a tablet terminal, a smart phone, or a wearable terminal.
  • the first device may be a gaming machine, vending machine, POS terminal, or other device such as an ATM.
  • the programs stored in the storage units 12, 22, and 32 may be supplied via the network N.
  • a reading unit for example, an optical disk drive or a memory card slot
  • an input/output unit for example, a USB port
  • the program stored in the information storage medium may be supplied via.
  • Multi-factor authentication is performed to confirm the legitimacy of the user.
  • Multi-factor authentication is authentication that combines multiple factors.
  • two-factor authentication combining two factors is taken as an example, but multi-factor authentication combining three or more factors may be used.
  • the element itself can be of various types and can be, for example, a biometric element, a possession element, or a knowledge element.
  • the authentication data corresponding to the factor is used.
  • the authentication data itself can be of various types.
  • biometric data such as a photograph of a face, a face feature amount, a photograph of a fingerprint, a fingerprint feature amount, a vein scan image, or a vein feature amount corresponds to authentication data.
  • possession authentication possession information such as a one-time password, information recorded in an IC card, or information recorded in a token corresponds to authentication data.
  • knowledge information such as a user ID, password, PIN, or secret question corresponds to authentication data.
  • multi-factor authentication can be applied to any situation.
  • multi-factor authentication can be applied to other situations such as when applying for online services, performing electronic payments, or performing administrative procedures online.
  • Various services can be applied to the online service itself.
  • financial services, communication services, payment services, e-commerce services, or SNSs may correspond to online services.
  • a user ID and password for logging into the online service are issued.
  • the user accesses the website of the online service with the user PC 30 and enters the user ID and password.
  • the authentication server 20 confirms the validity of the user based on the user ID and password entered by the user. Once the user's legitimacy is verified, the user can log into the online service.
  • multi-factor authentication that combines face authentication and password authentication can be used to reduce the trouble of inputting a user ID. However, even in this case, it takes time to input the password. If a user is logged in only by face authentication without generating an input to the operation unit 34, erroneous authentication with another user with a similar face may occur.
  • the photographing unit 36 including a 3D sensor can perform face recognition with a certain degree of accuracy, but erroneous recognition may still occur. If the imaging unit 36 does not include a 3D sensor, the probability of false authentication increases. There is also the possibility that a third party who somehow obtains the user's photograph of the face can impersonate the user.
  • the authentication server 20 issues a temporary user ID in order to prevent input from the operation unit 34 and to ensure security.
  • this temporary user ID will be referred to as TUID (Temporary User ID).
  • a TUID is information that can identify a user.
  • a TUID becomes invalid when certain invalidation conditions are met.
  • the invalid condition is the user's login to the online service, but the invalid condition may be any condition.
  • the invalidation condition may be that a predetermined expiration date has passed, that login has occurred a certain number of times, or that the user has performed a predetermined operation.
  • a malicious third party may steal the valid TUID.
  • a cookie may be stolen by a third party through a replay attack, and the TUID included in the cookie may also be stolen. If a third party obtains not only the TUID but also the user's face photo in some way, spoofing becomes possible. Therefore, it is conceivable to invalidate the TUID for a certain period of time.
  • the salt is used to convert the TUID in order to prevent the TUID from being stolen by a third party while enhancing the user's convenience.
  • the salt itself may be stolen by a third party, so multiple salts are generated each time a user logs in.
  • FIG. 2 is a diagram showing an example of the flow of multi-factor authentication in the first embodiment.
  • the user PC 30 sends a salt request to the salt server 10 to obtain salt.
  • a command such as createSaltPair( ) is included in the salt request. Since this command does not include any salt-related conditions, even if a malicious third party snoops on the salt request, it is not possible to identify under what conditions the salt is generated.
  • the salt server 10 Upon receiving the salt request, the salt server 10 generates a pair of salts, the first salt “6437” and the second salt "8414", and stores them in the salt database DB1.
  • the salt pairs are not dynamically generated on the spot, but are stored in the salt database DB1 in advance, and the salt server 10 acquires the salt pairs from the salt database DB1. good too.
  • the first salt and the second salt may be automatically deleted after a period of time.
  • the salt server 10 transmits the first salt "6437” and the second salt "8414" to the user PC30.
  • the user PC 30 When the user PC 30 receives the first salt “6435” and the second salt “8414” from the salt server 10, the user PC 30 converts the TUID "312456" based on the second salt "8414" and the predetermined conversion function f. do.
  • the conversion function f is a function that adds the second salt "8414” to the TUID "312456”.
  • the converted TUID is the sum of these "320870”.
  • the user PC 30 transmits to the authentication server 20 an authentication request including the user's facial photograph generated by the imaging unit 36, the first salt "6437", and the converted TUID "320870".
  • the authentication server 20 Upon receiving the authentication request, the authentication server 20 sends a salt request including the first salt "6437" to the salt server 10. This salt request is different from the salt request sent by the user PC 30 .
  • This salt request includes a command such as getSaltAndDelete (6437). This command is a command requesting acquisition of the second salt "8414” and deletion of the first salt "6437” and the second salt "8414".
  • the authentication server 20 Upon receiving the second salt "8414" from the salt server 10, the authentication server 20 converts the converted TUID "320870” received from the user PC based on this salt "8414" and the inverse conversion function f -1 . to inverse transform.
  • the inverse transformation function f ⁇ 1 is a function that subtracts the second salt “8414” from the transformed TUID “320870”.
  • the authentication server 20 acquires the TUID "312456" by reverse conversion.
  • the authentication server 20 When the authentication server 20 acquires the TUID "312456", it checks whether the TUID "312456" exists in the user database DB2.
  • the user database DB2 stores authentication data that is correct in multi-factor authentication. The process of confirming the presence or absence of TUID "312456” corresponds to TUID authentication. If the TUID "312456" is not stored in the user database DB2, an error will occur at that point and the user will not be able to log in.
  • the authentication server 20 When the authentication server 20 confirms that the TUID "312456" exists in the user database DB2, it acquires the facial features associated with the TUID "312456" and stored in the user database DB2. The authentication server 20 performs face authentication based on the obtained facial feature amount and the facial feature amount calculated from the facial photograph received from the user PC 30 . When the face authentication is successful, the authentication server 20 transmits to the user PC 30 an authentication result indicating that the multi-factor authentication was successful. When the user PC 30 receives this authentication result, the user PC 30 is logged into the online service.
  • the authentication server 20 may issue a new TUID and store it in the user database DB2. That is, the authentication server 20 may update the TUID each time the user logs in. Assuming that the new TUID is "417632", the authentication server 20 should transmit the authentication result including the new TUID "417632" to the user PC30.
  • XSS cross-site scripting
  • the TUID changes every time the user logs in, so even if a third party conducts a cross-site scripting (XSS) attack such as the one described above, authentication cannot succeed, and spoofing can be prevented.
  • the new TUID “417632” may be converted with the second salt “8414” already received from the salt server 10 .
  • the authentication server 20 stores a conversion function for converting the new TUID
  • the user PC 30 stores an inverse conversion function f ⁇ 1 for inversely converting the new TUID after conversion.
  • the second salt "8414" already received from the salt server 10 may also be used in this inverse conversion.
  • the data storage unit 100 stores data necessary for managing salt.
  • the data storage unit 100 stores a salt database DB1. If the conversion information for converting the TUID and the inverse conversion information for inversely converting the converted TUID are information called by a name other than salt, the salt server 10 is called by a name other than the salt database DB1.
  • a database may be used to manage transform information and inverse transform information.
  • FIG. 4 is a diagram showing an example of the salt database DB1.
  • the salt database DB1 is a database in which a plurality of salts are associated with each other and stored.
  • the salt database DB1 stores pairs of a first salt and a second salt.
  • first salt and the second salt are not distinguished, they are simply referred to as salt.
  • the three or more salts are generated by the salt generation unit 101, the three or more salts are associated with each other and stored in the salt database DB1.
  • a plurality of salts associated with each other in the salt database DB1 is an example of a plurality of pieces of information generated by the salt generation unit 101.
  • the first salt is an example of first information
  • the second salt is an example of second information. Therefore, the description of a plurality of salts associated with each other can be read as a plurality of pieces of information.
  • the part describing the first salt can be read as the first information.
  • the part describing the second salt can be read as the second information.
  • the transform information and the inverse transform information may be different from each other.
  • the transformation information may be a public key in cryptography, and the inverse transformation information may be a private key in cryptography.
  • the transformation information may be a private key in cryptography and the inverse transformation information may be a public key in cryptography.
  • both the transform information and the inverse transform information are stored in the salt database DB1. The transform information of both of these is sent to the user PC 30 and the inverse transform information is sent to the authentication server 20 .
  • Each piece of information generated by the salt generation unit 101 is information used in communication in the communication system S.
  • This information may be the transform information itself or the inverse transform information itself.
  • this information may be information used to obtain transform information, or may be information used to obtain inverse transform information.
  • This information may be information called by any name other than salt.
  • this information may be a key in cryptography or a password set in a file.
  • this information may be called by other names, such as a passcode or password.
  • the salt generation unit 101 may generate three or more pieces of information. Therefore, if the number of pieces of information generated by the salt generation unit 101 is n (n is an integer equal to or greater than 3), n pieces of information from the first information to the n-th information may exist.
  • the salt generation unit 101 may generate three pieces of information, first information, second information, and third information.
  • the first information may correspond to the identification information
  • the second information may correspond to the conversion information
  • the third information may correspond to the inverse conversion information.
  • the roles of the first to third information may be interchanged among identification information, transform information, and inverse transform information.
  • the data storage unit 100 can store arbitrary data other than the salt database DB1.
  • data store 100 may store an algorithm for generating salt.
  • the data storage unit 100 may store data relating to an API for exchanging salt with the authentication server 20 and the user PC 30 .
  • salt requests of different formats are accepted from the authentication server 20 and the user PC 30. Therefore, a case where the API for the authentication server 20 and the API for the user PC 30 are different will be described. Also, the salt request from the user PC 30 may be unified into the same format, and an API common to the authentication server 20 and the user PC 30 may be used.
  • the salt generation unit 101 stores a plurality of generated salts in the salt database DB1.
  • the salt generator 101 generates a first salt and a second salt.
  • the salt generation unit 101 associates the first salt and the second salt with each other and stores them in the salt database DB1. To relate to each other is to make one searchable from the other.
  • the case where the same salt is used for the TUID conversion and the inverse conversion of the TUID after conversion is taken as an example.
  • the transmitting unit 103 transmits the second salt corresponding to the inverse transform information to the authentication server 20 . For example, based on the salt request from the authentication server 20, the transmitting unit 103 transmits the second salt corresponding to the inverse transformation information. The transmission unit 103 transmits the first salt corresponding to the identification information and the second salt corresponding to the conversion information to the user PC 30 . The transmission unit 103 transmits the first salt and the second salt based on the salt request from the user PC 30 .
  • the salt transmission to the user PC 30 and the salt transmission to the authentication server 20 can be treated as separate functions. Therefore, when the salt request from the user PC 30 is accepted, the transmission unit 103 transmits the salt to the user PC 30, and when the salt request from the authentication server 20 is accepted, the first transmission unit 103A , and a second transmission unit 103B that transmits the salt to the authentication server 20. If the salt transmission procedure for the user PC 30 and the salt transmission procedure for the authentication server 20 are different, the first transmission unit 103A transmits the salt to the user PC 30 according to the salt transmission procedure for the user PC 30. Just send it. The second transmission unit 103B may transmit the salt to the authentication server 20 according to the salt transmission procedure to the authentication server 20 .
  • the first deletion unit 104 deletes a plurality of salts when a predetermined deletion point in time comes after the plurality of salts are generated.
  • the deletion time is the time when multiple salts should be deleted.
  • the point of deletion is the point of time after a certain amount of time from the point of generation when the salt was generated.
  • the length of the period from the time of creation to the time of deletion may be any length, for example, within 1 second, about 1 to 10 seconds, or longer.
  • a deleted salt becomes invalid, so the point of deletion can also refer to the point of invalidation of the salt.
  • the salt database DB1 may store the time points at which the first salt and the second salt are generated instead of the time points at which the first salt and the second salt are deleted.
  • the first deletion unit 104 may calculate the deletion time after a certain period of time from the creation time, and determine whether or not the calculated deletion time has arrived. Also, the length of the period from the point of creation to the point of deletion may not be common to all the first salt and the second salt, but may be set according to some conditions such as the user or the time period.
  • a second deletion unit 105 deletes a plurality of salts based on a request from the authentication server 20 .
  • the second deletion unit 105 deletes the first salt and the second salt when the salt request from the authentication server 20 is accepted and the second salt is transmitted to the authentication server 20 . That is, the second salt is transmitted to the authentication server 20 and the first salt and the second salt are no longer needed even before the time to delete the first salt and the second salt. If so, the first salt and the second salt are deleted from the salt database DB1.
  • the authentication server 20 inversely transforms the converted TUID, which is an example of the converted data, based on the plurality of salts, and acquires the TUID, which is an example of the original data.
  • the authentication server 20 acquires the TUID by inversely converting the converted TUID, and performs authentication processing for the user based on the acquired TUID.
  • the data storage unit 200 is implemented mainly by the storage unit 22 .
  • a reception unit 201, a salt request unit 202, a salt acquisition unit 203, an inverse conversion unit 204, a process execution unit 205, a TUID generation unit 206, and a transmission unit 207 are implemented.
  • the data storage unit 200 stores data required for communication with the user PC 30 .
  • the data storage unit 200 since multi-factor authentication is performed in the communication system S, the data storage unit 200 stores data required for multi-factor authentication.
  • the data storage unit 200 stores a user database DB2.
  • FIG. 5 is a diagram showing an example of the user database DB2.
  • the user database DB2 is a database that stores information about users.
  • the user database DB2 stores user IDs, passwords, names, TUIDs, facial photographs, and facial features.
  • Information stored in the user database DB2 may be of any type, and is not limited to the example of FIG.
  • a session ID for maintaining a session with the user PC 30, a user's past login history, or a user's usage history of online services may be stored in the user database DB2.
  • Biometric data is data used for biometric authentication.
  • the biometric data itself may be various data, and for example, facial feature amounts may correspond to the biometric data.
  • Information called a template obtained by converting facial features may correspond to biometric data.
  • biometric data corresponding to biometric authentication may be used. Examples of other biometric data are as described above.
  • Authentication data different from biometric data is information used in multi-factor authentication together with biometric data. This authentication data is possession information or knowledge information. In the case of multi-factor authentication with three or more factors, a plurality of pieces of authentication data different from biometric data may exist.
  • the data storage unit 200 can store arbitrary data other than the user database DB2.
  • the data storage unit 200 may store the inverse transformation function f ⁇ 1 .
  • the data storage unit 200 may store an algorithm for generating TUIDs.
  • the receiving unit 201 receives the first salt and the converted TUID from the user PC 30 .
  • the converted TUID is an example of converted data. Therefore, where the TUID after conversion is described, it can be read as conversion data.
  • Transformed data is data obtained by transforming a TUID, which is an example of original data.
  • Original data is data to be converted.
  • Original data is data before conversion.
  • the original data corresponds to plaintext in cryptography theory.
  • the original data is authentication data regarding the user of the user PC 30 . Since original data is data before conversion, it is sometimes called raw data.
  • the receiving unit 201 receives the converted TUID and face photo from the user PC 30 .
  • Receiving a face photograph means receiving image data of an image in which a face is photographed.
  • a face photograph may be a still image, or may be individual frames included in a moving image.
  • the receiving unit 201 receives the converted TUID and face photograph by receiving the authentication request from the user PC 30 .
  • An authentication request is a request to perform multi-factor authentication.
  • the authentication request may be made by transmitting information in a predetermined format.
  • the authorization request may also contain other information.
  • the authentication request may include information that can identify the user PC 30, such as the IP address of the user PC 30.
  • the salt requesting unit 202 requests the remaining salt from the salt server 10 based on a portion of the plurality of salts. A part of the salt is the salt received by the authentication server 20 from the user PC 30 . The remaining salt is the salt that the authentication server 20 did not receive from the user PC 30 . For example, the salt request unit 202 requests the salt server 10 for the second salt based on the first salt. The salt request unit 202 requests the second salt by transmitting a salt request including the first salt to the salt server 10 . This salt request is a request for the second salt associated with the first salt.
  • the salt acquisition unit 203 acquires the rest of the salts based on some of the salts. Some salt is the salt used to obtain the rest of the salt. The remaining salt is the salt that is used as the inverse transform information. For example, the salt acquisition unit 203 acquires the second salt based on the first salt.
  • the salt acquisition unit 203 is an example of an inverse transform information acquisition unit. Therefore, the part describing the salt acquisition unit 203 can be read as the inverse transformation information acquisition unit.
  • the inverse transform information acquisition unit acquires inverse transform information, for example salt. If the inverse transform information is called by a name other than salt, the inverse transform information acquisition unit may be called by a name corresponding to this name. For example, if the reverse conversion information is called a key or a password, the reverse conversion information obtaining unit obtains the key or password.
  • the inverse transformation unit 204 inversely transforms the converted TUID, which is an example of the transformed data, based on the remaining salt acquired by the salt acquisition unit 203, and acquires the TUID, which is an example of the original data and the authentication data. .
  • the inverse transforming unit 204 inversely transforms the transformed TUID based on the second salt to acquire the TUID.
  • the inverse transformation unit 204 performs inverse transformation according to the transformation of the transformation unit 303 . Inverse transformation is decryption in cryptography. Assume that the inverse transformation function f ⁇ 1 for the inverse transformation is stored in the data storage unit 200 .
  • the inverse transformation unit 204 inversely transforms the transformed TUID with the inverse transformation function f ⁇ 1 based on the second salt, which is an example of the inverse transformation information.
  • the inverse transforming unit 204 inversely transforms the transformed TUID by subtracting the second salt from the transformed TUID to acquire the TUID.
  • the processing execution unit 205 executes user authentication processing based on the authentication data acquired by the inverse conversion.
  • multi-factor authentication will be described as an example of authentication processing, but the authentication processing may be single-factor authentication.
  • only TUID authentication may be performed without using face authentication.
  • the processing execution unit 205 may execute processing according to the situation in which the communication system S is applied, and the processing executed by the processing execution unit 205 is not limited to authentication processing. Processing when the communication system S is applied to other scenes will be described in a modified example described later.
  • the processing executing unit 205 may execute predetermined processing based on the original data acquired by the inverse transforming unit 204 .
  • the processing execution unit 205 executes multi-factor authentication based on the TUID reversely converted by the reverse conversion unit 204 and the facial photograph received by the reception unit 201 .
  • multi-factor authentication itself can be of various types.
  • the processing execution unit 205 refers to the user database DB2 and acquires the facial feature amount associated with the TUID that has been inversely transformed by the inverse transformation unit 204 .
  • This facial feature amount is authentication data that is correct in multi-factor authentication.
  • only the facial feature amount associated with the TUID inversely transformed by the inverse transformation unit 204 is to be compared. Other facial feature amounts are not used for comparison.
  • the processing execution unit 205 calculates facial feature amounts based on the face photograph received by the reception unit 201 .
  • Various calculation methods can be used for the calculation method itself of the facial feature amount.
  • the facial feature amount may be calculated by a calculation method using a contrast filter or principal component analysis.
  • Facial features can be expressed in any form, such as multidimensional vectors, arrays, or single numerical values.
  • Face authentication may be of a type in which two photographs of faces are input to a machine learning model to determine similarity, instead of comparing facial feature amounts.
  • the processing execution unit 205 determines the similarity between the facial feature amount acquired from the user database DB2 and the facial feature amount calculated from the facial photograph received by the receiving unit 201. For example, when facial feature amounts are represented by multidimensional vectors, the feature amounts being similar to each other are similar when the distance between the facial feature amounts in the vector space is less than a threshold. The processing execution unit 205 determines that the multi-factor authentication has succeeded when the facial features are similar to each other. The process execution unit 205 determines that the multi-factor authentication has failed when the facial features are not similar to each other.
  • the TUID generator 206 generates a TUID based on a predetermined algorithm.
  • the TUID generation unit 206 generates a new TUID to be recorded in the user PC 30 when the TUID does not exist in the user PC 30 .
  • the TUID generation unit 206 generates a TUID (updated TUID) to be written to the user PC 30 instead of the TUID when the TUID exists in the user PC 30 .
  • the TUID generation unit 206 generates a TUID with a random value.
  • Various known methods can be used as the method itself for generating random values. For example, a method using the time stamp at the time of TUID generation may be used, or a method using data other than the time stamp may be used.
  • the TUID generator 206 stores the generated TUID in the user database DB2.
  • the TUID generation unit 206 may generate a TUID so that it does not overlap with other users' TUIDs.
  • the TUID generation unit 206 permits duplication with the TUID of another user whose face is not similar, but may generate a TUID so as not to duplicate the TUID of another user whose face is similar.
  • the TUID generator 206 may generate a TUID when multi-factor authentication is successful. That is, the TUID generator 206 may generate a TUID each time the user logs into the online service. If it is the first login, the TUID generation unit 206 generates a TUID when the user ID and password are successfully authenticated.
  • the timing at which the TUID is generated may be any timing, and is not limited to the example of the first embodiment. For example, if the TUID is not invalidated by one login, but the same TUID is validated for a predetermined number of times equal to or more than two times, the TUID generation unit 206 generates may generate a TUID. For example, if the TUID has an expiration date, the TUID generation unit 206 may generate the TUID when the user logs in when the expiration date is approaching.
  • the transmission unit 207 transmits the multi-factor authentication authentication result to the user PC 30 .
  • the authentication result is information in a predetermined format that indicates whether multi-factor authentication was successful. For example, the authentication result indicates whether or not login is permitted.
  • a new TUID is generated at the timing of login, so the authentication result includes the new TUID.
  • this process may be any process that is permitted on the condition that multi-factor authentication is successful.
  • This processing may be determined depending on the situation in which the communication system S is applied. For example, when the communication system S is applied to financial services, execution of a transfer may correspond to a predetermined process. For example, when the communication system S is applied to payment services, execution of payment may correspond to a predetermined process. For example, when the communication system S is applied to an electronic commerce service, purchasing a product may correspond to a predetermined process.
  • the predetermined process may be any other process.
  • the user PC 30 converts the TUID, which is an example of the original data, based on a plurality of salts, and transmits the converted TUID, which is an example of the converted data, to the authentication server 20 .
  • Data storage unit 300 is realized mainly by storage unit 32 .
  • the salt request unit 301 , salt acquisition unit 302 , conversion unit 303 , transmission unit 304 , and reception unit 305 are implemented mainly by the control unit 31 .
  • the salt request unit 301 requests a plurality of salts from the salt server 10 .
  • the salt request unit 301 requests the salt server 10 for a first salt and a second salt.
  • the salt request unit 301 requests salt by transmitting a salt request to the salt server 10 .
  • the salt request unit 301 transmits to the salt server 10 a salt request that does not include information about the rules for obtaining the first salt and the second salt. For example, when a first salt and a second salt generated based on timestamps are obtained, the acquisition rule is timestamp. Since the salt request does not contain timestamp information, it does not contain information about acquisition rules.
  • the salt request may include rules for obtaining the first salt and the second salt. For example, seed information for generating a first salt and a second salt may be included in the salt request.
  • the salt request unit 301 transmits a salt request to the salt server 10 when the photographing unit 36 generates a face photo.
  • the salt request unit 301 may transmit the salt request at any timing, and is not limited to the timing at which the facial photograph is generated.
  • the salt request unit 301 transmits a salt request at the timing when an online service application is activated, at the timing when the user performs an operation for logging in, or at the timing when the online service website is accessed. may
  • the salt acquisition unit 302 acquires a plurality of salts. For example, the salt acquisition unit 302 acquires a first salt and a second salt. The salt acquisition unit 302 acquires the first salt and the second salt that are associated with each other in the salt database DB1.
  • the salt acquisition unit 302 is an example of a conversion information acquisition unit. Therefore, the description of the salt acquisition unit 302 can be read as the conversion information acquisition unit.
  • the conversion information acquisition unit acquires conversion information, for example salt. If the conversion information is called by a name other than salt, the conversion information acquisition unit may be called by a name corresponding to this name. For example, if the conversion information is called a key or password, the conversion information acquisition unit acquires the key or password.
  • the conversion unit 303 converts the TUID, which is an example of the original data and the authentication data, based on part of the multiple salts. For example, the conversion unit 303 converts the TUID based on the second salt to generate a converted TUID. Transformation is encryption in cryptography. The transformation may be any modification to the TUID. For example, inputting the TUID into some function, changing part of the TUID, changing the entire TUID, adding some information to the TUID, or deleting part of the TUID are conversions. corresponds to The inverse conversion may be any processing in the reverse direction (processing to return the TUID to its original state). As previously mentioned, file compression may correspond to conversion, and file decompression may correspond to inverse conversion. In this case, compression or decompression is performed using the second salt as a password.
  • the conversion unit 303 converts the pre-conversion TUID with the conversion function f based on the salt, which is an example of the conversion information.
  • the conversion unit 303 converts the pre-conversion TUID by adding the second salt to the pre-conversion TUID, and acquires the post-conversion TUID.
  • the conversion itself can use various conversion functions and is not limited to addition as in FIG. Transformations may be performed, for example, by subtraction, multiplication, division, matrix transformations, other calculations, or combinations thereof.
  • the transmission unit 304 transmits part of the multiple salts and the converted TUID to the authentication server 20 .
  • the transmission unit 304 transmits the first salt and the converted TUID to the authentication server 20 .
  • the transmission unit 304 transmits the first salt, the converted TUID, and the photograph of the face to the authentication server 20 .
  • a case where the first salt, the converted TUID, and the facial photograph are included in the authentication request will be taken as an example. For this reason, a case will be described in which the transmission unit 304 transmits an authentication request including the first salt, the converted TUID, and the facial photograph to the authentication server 20.
  • the transmission unit 304 transmits the first salt, the converted It is not necessary to collectively transmit the TUID of the user and the photograph of the face in one piece of data.
  • the transmission unit 304 may separately transmit the first salt, the converted TUID, and the face photo.
  • the photograph of the face may not be transmitted as it is, but may be converted based on a salt or other encryption key.
  • a face feature amount may be calculated on the user PC 30 side, and the calculated face feature amount may be transmitted as biometric data.
  • the receiving unit 305 receives the authentication result from the authentication server 20 . If this authentication result indicates success, the user logs into the online service. That is, execution of the predetermined process described above is permitted.
  • the receiving unit 305 records the TUID included in the authentication result in the data storage unit 300. FIG. The old TUID recorded so far is discarded from the data storage unit 300 .
  • FIG.6 and FIG.7 is a figure which shows an example of the process performed by the communication system S of 1st Embodiment.
  • the processes of FIGS. 6 and 7 are executed by the control units 11, 21 and 31 executing the programs stored in the storage units 12, 22 and 32, respectively. It is assumed that the user's user ID and password have already been issued before the processes of FIGS. 6 and 7 are executed.
  • the user PC 30 activates an online service application and determines whether or not there is a TUID in the storage unit 32 (S1). If it is determined that there is no TUID (S1; N), the user PC 30 accepts the input of the user ID and password by the user based on the detection signal from the operation unit 34 (S2). A login process for logging into the online service is executed between the authentication server 20 and the user PC 30 (S3). In S3, the validity of the user ID and password is confirmed based on the user database DB2. When the login succeeds, the authentication server 20 issues a new TUID (S4) and transmits the authentication result including the new TUID to the user PC 30 (S5).
  • S4 new TUID
  • the user PC 30 When the user PC 30 receives the authentication result (S6), it records the TUID included in the authentication result in the storage unit 32 (S7), and ends this process. At S7, the TUID may be recorded as part of a cookie. After that, the user PC 30 executes processing for allowing the user to use the online service. When the user performs an operation for logging out of the online service, logout processing for logging out of the online service is executed between the authentication server 20 and the user PC 30 .
  • the user PC 30 transmits to the authentication server 20 an authentication request including the first salt received in S12, the converted TUID in S13, and the face photo generated in S8 (S14).
  • the authentication server 20 Upon receiving the authentication request (S15), the authentication server 20 transmits a salt request including the first salt to the salt server 10 (S16).
  • the salt server 10 Upon receiving the salt request (S17), the salt server 10 transmits the second salt associated with the first salt to the authentication server 20 based on the salt database DB1 (S18).
  • the authentication server 20 Upon receiving the second salt from the salt server 10 (S19), the authentication server 20 inversely converts the converted TUID included in the authentication request received in S15 based on this second salt (S20).
  • the authentication server 20 performs multi-factor authentication based on the TUID reverse-converted in S20 and the facial photograph included in the authentication request received in S15 (S21).
  • the authentication server 20 acquires the facial feature value associated with the TUID inversely transformed in S20 based on the user database DB2.
  • the authentication server 20 calculates facial features based on the photograph of the face received in S15.
  • the authentication server 20 determines whether or not the degree of similarity of the acquired facial feature amount is equal to or greater than a threshold. Multi-factor authentication succeeds when the TUID exists in the user database DB2 and the similarity of the facial features is equal to or greater than the threshold.
  • the authentication server 20 determines whether or not the multi-factor authentication has succeeded (S22). If the multi-factor authentication fails (S22; N), this process ends. In this case, input of a user ID and password may be requested. If the multi-factor authentication succeeds (S22; Y), the user's login to the online service is permitted, and the process proceeds to S4.
  • the TUID of the user PC 30 is updated by the processing after S4.
  • the user PC 30 converts the TUID based on a plurality of salts and transmits the converted TUID to the authentication server 20 .
  • the authentication server 20 obtains a TUID by inversely converting the converted TUID based on a plurality of salts.
  • the converted TUID is transmitted over the network, making it difficult for a third party to acquire the TUID, thereby enhancing communication security. Even if a malicious third party steals the salt request from the authentication server 20 to the salt server 10, it is difficult to understand the conversion mechanism with only the first salt, so communication security is further enhanced.
  • the first salt and the second salt are generated based on the salt request from the user PC 30 to the salt server 10, even if a third party somehow steals the first salt and the second salt, In this case, the first salt and the second salt are highly likely to be invalid, and fraud by a third party can be prevented.
  • the user PC 30 transmits the converted TUID based on the first salt and the second salt to the authentication server 20 .
  • the authentication server 20 acquires a second salt based on the first salt, and acquires a TUID by inversely transforming the converted TUID based on the acquired second salt. This enhances security in communication using two salt pairs.
  • the second salt as both transform information and inverse transform information, security can be ensured with less salt. Therefore, the processing for enhancing communication security can be simplified, and the processing load of the entire communication system S can be reduced.
  • the salt server 10 generates a first salt and a second salt based on a salt request from the user PC 30 .
  • the salt server 10 transmits the second salt to the authentication server 20 based on the salt request from the authentication server 20 . This eliminates the need for the authentication server 20 to manage the first salt and the second salt, so the processing load in communication can be distributed. That is, processing can be distributed between the salt server 10 and the authentication server 20 . Therefore, the processing load on the authentication server 20 can be reduced.
  • the user PC 30 transmits a salt request that does not include information on the rules for obtaining the first salt and the second salt to the salt server 10 .
  • a salt request that does not include information on the rules for obtaining the first salt and the second salt
  • the salt server 10 transmits a salt request that does not include information on the rules for obtaining the first salt and the second salt to the salt server 10 .
  • the salt server 10 deletes multiple salts when a predetermined deletion point in time comes after multiple salts are generated. As a result, the salt that is no longer needed is deleted from the salt database DB1, and it is possible to reliably prevent the salt from leaking out, thereby further enhancing communication security. It is also possible to suppress the memory consumption of the salt database DB1.
  • the salt server 10 deletes a plurality of salts based on a request from the authentication server 20. As a result, the salt that is no longer needed is deleted from the salt database DB1, and it is possible to reliably prevent the salt from leaking out, thereby further enhancing communication security. It is also possible to suppress the memory consumption of the salt database DB1.
  • the authentication server 20 acquires a TUID by inversely converting the TUID after conversion, executes authentication processing regarding the user based on the acquired TUID, and when the authentication processing succeeds, a new TUID Generate. This enhances security during authentication. For example, since the TUID changes every time the user logs in, even if a third party attacks the above-mentioned cross-site scripting attack, authentication cannot be successful, and spoofing can be prevented.
  • FIG. 8 is a diagram showing an example of the flow of multi-factor authentication in the second embodiment.
  • the general flow may be the same as in the first embodiment.
  • the method of obtaining the first salt and the second salt is the same as in the first embodiment.
  • the user PC 30 acquires the first salt "6437" and the second salt "8414" from the salt server 10 in the same manner as in the example of FIG. 2 of the first embodiment.
  • the user PC 30 selectively uses the conversion function f based on the last digit of the first salt "6437". For example, the user PC 30 stores conversion functions f0 to f9 corresponding to the last digits "0" to "9", respectively.
  • conversion functions f0 to f9 are not distinguished, they are simply referred to as a conversion function f. It is assumed that the calculation methods indicated by the individual conversion functions f are different from each other. Therefore, even if the salt is the same, if the conversion function f is different, the TUID value after conversion will be different.
  • the conversion function f7 corresponding to the last digit "7" of the first salt "6437” is selected.
  • This conversion function f7 is assumed to be the same as the conversion function f described in FIG. 2 of the first embodiment.
  • the processing of the user PC 30 after the conversion function f7 is selected is the same as in the first embodiment.
  • the authentication server 20 Upon receiving the first salt "6437" and the converted TUID "320870", the authentication server 20 acquires the first salt "6437” from the salt server 10 in the same manner as in the first embodiment.
  • the inverse transform function f ⁇ 1 7 corresponding to the last digit “7” of the first salt “6437” is selected.
  • This inverse transform function f ⁇ 1 7 is assumed to be the same as the inverse transform function f ⁇ 1 described in FIG. 2 of the first embodiment.
  • the flow of multi-factor authentication including the processing of the authentication server 20 after the inverse transform function f ⁇ 1 7 is selected is the same as in the first embodiment.
  • FIG. 9 is a diagram showing an example of functional blocks implemented in the communication system S of the second embodiment.
  • an inverse transformation function selection unit 208 and a transformation function selection unit 306 are implemented.
  • the inverse transformation function selection unit 208 is implemented mainly by the control unit 21 .
  • Conversion function selection section 306 is implemented mainly by control section 31 .
  • the first salt is not only identification information for obtaining the second salt, but also information for selecting the TUID conversion method and inverse conversion method.
  • the conversion function selection unit 306 selects a conversion function f according to the last digit of the first salt. It is assumed that the relationship between the last digit of the first salt and the conversion function f is defined in advance in the data storage unit 300 . The conversion function selection unit 306 selects the conversion function f corresponding to the last digit of the first salt. In the second embodiment, the numeric values "0" to "9" that the last digit of the first salt can take correspond to the numeric values included in the conversion functions "f0" to "f9".
  • the conversion function selection unit 306 selects one of a plurality of conversion functions f based on the first salt without requesting other devices to select the conversion function f.
  • Other devices are devices other than the user PC 30 .
  • the other device is the salt server 10, authentication server 20, or other server computer.
  • the conversion function selection unit 306 completes the selection of the conversion function f only by processing in the user PC 30 .
  • selection of the conversion function f by another device occurs.
  • the inverse transform function selection unit 208 selects the inverse transform function f ⁇ 1 corresponding to the last digit of the first salt. It is assumed that the relationship between the last digit of the first salt and the inverse transformation function f ⁇ 1 is defined in advance in the data storage unit 200 . The inverse transform function selection unit 208 selects the inverse transform function f ⁇ 1 corresponding to the last digit of the first salt.
  • the inverse transform function selection unit 208 selects the inverse transform function f ⁇ 1 corresponding to the last digit of the first salt as the inverse transform function f ⁇ 1 corresponding to the transform function f selected by the transform function selection unit 306. select.
  • the inverse transform function selection unit 208 selects the inverse transform function f ⁇ 1 out of the plurality of inverse transform functions f ⁇ 1 based on the first salt without requesting other devices to select the inverse transform function f ⁇ 1 . Choose one. After the first salt is obtained, the inverse transformation function selection unit 208 completes the selection of the inverse transformation function f ⁇ 1 only by processing within the authentication server 20 . In the third embodiment described later, unlike the second embodiment, selection of the inverse transformation function f ⁇ 1 by another device occurs.
  • the inverse transforming unit 204 acquires the TUID based on the inverse transforming function f ⁇ 1 selected by the inverse transforming function selecting unit 208 .
  • Embodiments differ from the first and second embodiments in that the inverse transform function f ⁇ 1 selected by the inverse transform function selection unit 208 is used, but other points are the same.
  • the user PC 30 selects one of a plurality of conversion functions f based on the first salt.
  • the authentication server 20 selects one of the multiple inverse transformation functions f ⁇ 1 based on the first salt.
  • the user PC 30 selects one of the conversion functions f based on part of the first salt.
  • Authentication server 20 selects one of the plurality of inverse transform functions f ⁇ 1 based in part on the first salt.
  • the first salt can be used to select the transformation function f and the inverse transformation function f ⁇ 1 instead of using the first salt only to obtain the second salt. Salt can be used more effectively.
  • the method of selecting the transformation function f and the inverse transformation function f ⁇ 1 is simplified. can.
  • the authentication server 20 and the user PC 30 select the inverse transformation function f ⁇ 1 and the transformation function f, respectively. may be selected.
  • FIG. 10 is a diagram showing an example of the overall configuration of the authentication system S in the third embodiment.
  • the authentication system S of the third embodiment includes a selection server 40.
  • FIG. Selection server 40 is a server computer.
  • the physical configurations of the control unit 41, the storage unit 42, and the communication unit 43 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • Selection server 40 is an example of a selection device. Therefore, the selection server 40 can be read as a selection device.
  • the selection device is a device that selects the transform function f and the inverse transform function f ⁇ 1 .
  • the selection device may be any device and is not limited to a server computer such as selection server 40 .
  • the selection device may be a personal computer, tablet terminal, or smart phone.
  • the selection device may be a game machine, vending machine, POS terminal, or other device such as an ATM.
  • FIG. 11 is a diagram showing an example of the flow of multi-factor authentication in the third embodiment.
  • the general flow may be the same as in the second embodiment.
  • the flow until the user PC 30 acquires the first salt and the second salt is the same as in the second embodiment.
  • the first salt is "6430".
  • the user PC 30 transmits the first salt “6430” to the selection server 40 .
  • the selection server 40 stores a function database DB3.
  • the function database DB3 is associated with the last digit of the first salt, the conversion function f, and the inverse conversion function f ⁇ 1 .
  • the function database DB3 contains the transformation function f and the inverse Both transform functions f ⁇ 1 may be stored.
  • the association in the function database DB3 is updated at a predetermined timing. For example, the selection server 40 periodically randomly updates the associations in the function database DB3.
  • the selection server 40 selects the conversion function f based on the last digit "0" of the first salt "6430" received from the user PC 30.
  • the selection server 40 is the entity that selects the conversion function f, but the method of selecting the conversion function f itself may be the same as in the second embodiment.
  • the selection server 40 transmits the selection result “f7” of the conversion function f to the user PC 30 .
  • the user PC 30 receives the selection result "f7" of the conversion function f, it converts the TUID "312456". This conversion itself may be the same as in the second embodiment.
  • the subsequent flow is the same as in the second embodiment until the authentication server 20 acquires the second salt “8414” from the salt server 10 .
  • the authentication server 20 transmits the first salt “6430” to the selection server 40 .
  • the selection server 40 selects the inverse transformation function f ⁇ 1 based on the last digit “0” of the first salt “6430” received from the authentication server 20 .
  • the selection server 40 is the entity that selects the inverse transform function f ⁇ 1 , but the selection method itself for the inverse transform function f ⁇ 1 may be the same as in the second embodiment.
  • the selection server 40 transmits the selection result “f ⁇ 1 7” of the inverse transformation function f ⁇ 1 to the authentication server 20 .
  • the authentication server 20 Upon receiving the selection result of the inverse transform function f ⁇ 1 , the authentication server 20 reverse transforms the transformed TUID “320870”. This inverse transform itself may be the same as in the second embodiment.
  • the subsequent flow of multi-factor authentication is the same as in the second embodiment.
  • FIG. 12 is a diagram showing an example of functional blocks realized by the authentication system S of the third embodiment.
  • an inverse transformation function requesting unit 209 a transformation function requesting unit 307, a data storage unit 400, a transformation function selection unit 401, an inverse transformation function selection unit 402, and an update unit 403 are implemented.
  • the inverse transform function requesting unit 209 is realized mainly by the control unit 21 .
  • Conversion function requesting unit 307 is implemented mainly by control unit 31 .
  • Data storage unit 400 is realized mainly by storage unit 42 .
  • the transformation function selection unit 401 , the inverse transformation function selection unit 402 , and the update unit 403 are realized mainly by the control unit 41 .
  • the conversion function requesting unit 307 requests the selection server 40 to select the conversion function f based on the first salt.
  • this request will be referred to as conversion function selection request.
  • the conversion function selection request may be issued in a predetermined format.
  • the conversion function selection request may include information that serves as a criterion for the selection server 40 to select the conversion function f, or may include only a command to select the conversion function f.
  • the conversion function selection request includes the first salt, but the conversion function selection request may include only the last digit of the first salt.
  • the conversion function selection unit 401 selects one of a plurality of conversion functions f based on a conversion function selection request from the user PC 30 .
  • the selection method is the value of the last digit of the first salt
  • the selection method may be any other method. For example, it may be the value of the first digit of the first salt, or the value of the second salt.
  • the conversion function selection unit 401 transmits information that can identify the conversion function f selected by the selection server 40 as a selection result.
  • the inverse transformation function selection unit 402 selects one of the plurality of inverse transformation functions f ⁇ 1 based on the inverse transformation function selection request from the authentication server 20 .
  • the selection method is the value of the last digit of the first salt
  • the selection method may be any other method.
  • it may be the value of the first digit of the first salt, or the value of the second salt.
  • the inverse transformation function selection unit 402 transmits information that enables identification of the inverse transformation function f ⁇ 1 selected by the selection server 40 as a selection result.
  • the conversion function selection unit 306 selects the conversion function f based on the selection result by the selection server 40 . This differs from the first and second embodiments in that the conversion function f selected by the selection server 40 is used, but other points are the same.
  • the update unit 403 updates the association between the selection condition for the first salt and each of the multiple transform functions f and the multiple inverse transform functions f ⁇ 1 .
  • these associations are stored in the function database DB3, so the updating unit 403 updates the function database DB3.
  • the update unit 403 updates the association in the function database DB3 when a predetermined update condition is satisfied.
  • the update condition is a condition for updating associations in the function database DB3.
  • the update condition may be any condition, such as a time condition or a condition regarding the number of selections between the transform function f and the inverse transform function f ⁇ 1 .
  • a predetermined operation by an administrator may correspond to the update condition.
  • the update condition is a temporal condition, and the update unit 403 updates the association when a predetermined update time has arrived.
  • the update time may be any time, for example, it may be a predetermined time of the day, or it may be a time set within a week or a month.
  • the update unit 403 may update the function database DB3 so that the association is different from the association before the update. For example, the updating unit 403 updates the association so that the combination of the last digit value of the first salt, the transformation function f and the inverse transformation function f ⁇ 1 is shuffled. After the association is updated by the updating unit 403, the conversion function selection unit 401 selects the conversion function f based on the updated association. After the association is updated by the updating unit 403, the inverse transform function selection unit 402 selects the inverse transform function f ⁇ 1 based on the updated association. This differs from the above-described process of selecting the transform function f and the inverse transform function f ⁇ 1 in that the updated association is used, but other points are the same.
  • the selection server 40 selects the inverse transformation function f ⁇ 1 and the transformation function f based on requests from the authentication server 20 and the user PC 30 .
  • the inverse transformation function f ⁇ 1 and the transformation function f defined in the function database DB3 can be easily changed periodically, it becomes difficult for a third party to guess the transformation mechanism, and communication security is enhanced.
  • the selection server 40 when the selection server 40 receives a conversion function selection request from the user PC 30 immediately before updating the function database DB3, the information regarding the selection time at which the conversion function f is selected is sent to the authentication server 20 may be sent to The transmitting unit 304 further transmits to the authentication server 20 time point information regarding the selection time point at which the conversion function f was selected.
  • the point-in-time information is information capable of identifying whether or not the conversion function f was selected before the function database DB3 was updated.
  • the time point information may be transmitted from the selection server 40 to the user PC 30, or may be generated by the user PC 30 if the user PC 30 knows the update time point in advance.
  • the inverse transformation function selection unit 402 determines whether or not the reception of the inverse transformation function selection request from the authentication server 20 is after the update of the function database DB3. Inverse transformation function selection unit 402, when it is determined that this time point is later than the update of function database DB3, the first inverse transformation function f ⁇ 1 based on the pre-update association and the post-update association Select a second inverse transformation function f ⁇ 1 . It is assumed that the data storage unit 400 also holds the function database DB3 before update.
  • the inverse transform function selection unit 208 selects either the first inverse transform function f ⁇ 1 or the second inverse transform function f ⁇ 1 based on the time point information.
  • the inverse transformation function selection unit 208 selects the first inverse transformation function f ⁇ 1 when the time point information indicates that the transformation function f was selected before the function database DB3 was updated.
  • the inverse transformation function selection unit 208 selects the second inverse transformation function f ⁇ 1 when the time point information indicates that the transformation function f was selected after the function database DB3 was updated.
  • the selection server 40 when the selection server 40 receives a request from the authentication server 20 immediately after the association in the function database DB3 is updated, the first inverse transform function f ⁇ 1 and select a second inverse transform function f ⁇ 1 based on the updated association.
  • the authentication server 20 selects either the first inverse transform function f ⁇ 1 or the second inverse transform function f ⁇ 1 based on the time information.
  • the salt server 10 the authentication server 20, the user PC 30, and the selection server 40 do not perform unnecessary processing, their processing loads can be reduced.
  • Modification 2 For example, if the selection time point at which the conversion function f is selected by the selection server 40 is not immediately before the update time point, the problem as in Modification 1 does not occur. For this reason, the user PC 30 does not transmit the time information to the authentication server 20 if the selection time at which the conversion function f is selected is not immediately before the update time, and if the selection time is immediately before the update time, , the time point information may be transmitted to the authentication server 20 . Immediately before here means that the temporal length is less than the threshold. If the time length from the selection time point to the update time point is less than the threshold, it corresponds to just before.
  • the user PC 30 need not receive the time point information from the selection server 40 in the first place if the selected time point is not immediately before the update time point. Even if the user PC 30 receives the time information from the selection server 40, the user PC 30 does not transmit the time information to the authentication server 20 unless the selection time is immediately before the update time. It is assumed that the user PC 30 receives from the selection server 40 the determination result as to whether or not the selection time point is immediately before the update time point. If the selected time point is immediately before the update time point, the user PC transmits the time point information to the authentication server 20 as in the first modification.
  • the inverse transform function selection unit 402 selects the first inverse transform function f ⁇ 1 without selecting the second inverse transform function f ⁇ 1 , and the selection time is the update time. , select the first inverse transform function f ⁇ 1 and the second inverse transform function f ⁇ 1 . It is assumed that the selection server 40 retains the determination result as to whether or not the selection time point is immediately before the update time point. This determination result may be held in association with the first salt received from the user PC 30 .
  • the inverse transformation function selection unit 402 performs only the process of selecting the first inverse transformation function f ⁇ 1 when the selection time is not immediately before the update time.
  • the inverse transform function selection unit 402 selects the first inverse transform function f ⁇ 1 and the second inverse transform function f ⁇ 1 in the same manner as in Modification 1 when the selection time point is immediately before the update time point.
  • the inverse transform function selection unit 208 selects the first inverse transform function f ⁇ 1 when the selection time is not immediately before the update time, and selects the first inverse transform function f ⁇ 1 when the selection time is immediately before the update time. -1 and the second inverse transform function f -1 . If the selection time point is not immediately before the update time point, the inverse transform function selection unit 208 receives only the information indicating the first inverse transform function f ⁇ 1 from the selection server 40 . should be selected. Inverse transform function selection unit 208 selects either the first inverse transform function f ⁇ 1 or the second inverse transform function f ⁇ 1 in the same manner as in Modification 1 when the selection time point is immediately before the update time point. You can choose.
  • the transformation function selection unit 306 determines a portion to be used in selecting the transformation function f based on a predetermined determination method, and selects one of a plurality of transformation methods based on the determined portion. good too.
  • This determination method is a method of determining which part of the first salt is used in selecting the transformation function f and the inverse transformation function f ⁇ 1 .
  • This determination method may be a predetermined method, and may be a method of randomly selecting predetermined digits in the first salt, or may be a method designated by an administrator.
  • the transformation function selection unit 306 determines one digit of the first salt as a part to be used in selecting the transformation function f based on a predetermined determination method.
  • the relationship between this one-digit value and the conversion function f may be the same as in FIGS. 8 and 11.
  • FIG. The conversion function selection unit 306 selects the conversion function f based on the one-digit value of the first salt determined based on a predetermined determination method. For example, if this one-digit value is "1", the conversion function f1 is selected. If this one-digit value is "7", the conversion function f7 is selected.
  • the portion used in selecting the transform function f and the inverse transform function f ⁇ 1 dynamically changes. This makes it difficult for a third party to specify the mechanism for selecting the transform function f and the inverse transform function f ⁇ 1 , thereby enhancing security in communication.
  • the authentication server 20 acquires the TUID by inversely converting the converted TUID, and executes authentication processing based on the acquired TUID and hash value. Since the communication system S described in the first embodiment and the like uses not only TUID authentication but also face authentication, the authentication server 20 executes authentication processing based on the TUID, facial feature amount, and hash value. do. Therefore, the authentication process of Modification 4 is three-factor authentication. The authentication using the TUID and facial features is as described in the first embodiment and the like. The authentication server 20 determines whether or not the hash value received from the user PC 30 matches the hash value associated with the user's user ID and stored in the user database DB2. If they match, the authentication using the hash value will succeed.
  • the user PC 30 may generate a hash value based on multiple pieces of information such as the type of user PC 30, the type of operating system, and the type of browser.
  • the hash value may be generated based on other information such as the serial number of the user PC 30, the number of the SIM card, or the MAC address of the communication card.
  • Various hash functions can be used as the hash function itself for generating the hash value. The hash value is not stored in user PC 30, but is generated each time authentication is performed.
  • security is enhanced by authentication using hash values. For example, even if a malicious third party illegally obtains the TUID or the like in the user PC 30, there is a high possibility that the hash value cannot be specified, so security is enhanced.
  • the second device When the second device receives the first salt and the transformed data, it obtains a second salt based on the first salt, performs inverse transformation of the transformed data based on the obtained second salt, and converts the original data to Get some email.
  • the method of obtaining the first salt and the second salt is as described in the first to third embodiments and modified examples 1 to 4.
  • the first device may convert the original data based on a plurality of salts and transmit the converted data to the second device.
  • the second device may obtain the original data by inversely transforming the transformed data based on the plurality of salts. According to the communication system S of Modification 5, communication security is enhanced in various situations.
  • the functions described as being realized by the salt server 10 may be realized by the authentication server 20 or the user PC 30.
  • the communication system S may not include the salt server 10 .
  • the communication system S includes a plurality of server computers, functions may be shared among the plurality of server computers.
  • the data described as being stored in the data storage units 100 and 200 may be stored by a computer other than the salt server 10 or the authentication server 20. FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

通信システム(S)は、第1装置(30)及び第2装置(20)を含む。生成部(101)は、第1装置(30)からの要求に基づいて、複数の情報を生成する。第1装置(30)は、複数の情報に基づいて、元データを変換して第2装置(20)に変換データを送信する。第2装置(20)は、複数の情報に基づいて、変換データを逆変換して元データを取得する。

Description

通信システム、通信方法、及びプログラム
 本開示は、通信システム、通信方法、及びプログラムに関する。
 従来、通信分野において、元データの内容が第三者に知られないように、元データを変換する技術が知られている。例えば、特許文献1には、ユーザが入力したユーザIDに基づいて、ユーザパラメータを生成し、当該生成されたユーザパラメータに基づいて、元データの一例である生体データを変換する技術が記載されている。例えば、特許文献2には、公開鍵暗号方式を利用して、元データの一例であるソルトを変換する技術が記載されている。例えば、特許文献3には、公開鍵暗号方式の一種であるチャレンジアンドレスポンスと呼ばれる技術が記載されている。
特許第4966765号公報 特許第6866803号公報 再公表2020-85141号公報
 しかしながら、特許文献1の技術では、ネットワーク上にユーザパラメータが送信されるので、悪意のある第三者がユーザパラメータを容易に取得できる。第三者が、ユーザの生体データを何らかの形で入手すると、不正に入手したユーザパラメータ及び生体データを利用したなりすましが可能になる。ユーザパラメータは、一度発行されると原則として変わらないユーザIDに基づいて生成されるので、第三者は、一度入手したユーザパラメータを利用して、長期間にわたってなりすましが可能になる。
 特許文献2-3の公開鍵暗号方式は、第三者に公開される公開鍵と、第三者には公開されない秘密鍵と、のペアを利用した暗号方式である。しかしながら、秘密鍵は、原則として変わらない情報なので、第三者が何らかの形で秘密鍵を入手すると、第三者は、一度入手した秘密鍵を利用して、長期間にわたって不正が可能になる。特許文献1-3の技術では、長期間にわたる不正が可能になるので、通信におけるセキュリティを十分に高めることができなかった。
 本開示の目的の1つは、通信におけるセキュリティを高めることである。
 本開示の一態様に係る通信システムは、第1装置及び第2装置を含む通信システムであって、前記第1装置からの要求に基づいて、複数の情報を生成する生成部を含み、前記第1装置は、前記複数の情報に基づいて、元データを変換して前記第2装置に変換データを送信し、前記第2装置は、前記複数の情報に基づいて、前記変換データを逆変換して前記元データを取得する。
 本開示によれば、通信におけるセキュリティが高まる。
通信システムの全体構成の一例を示す図である。 第1実施形態における多要素認証の流れの一例を示す図である。 第1実施形態の通信システムで実現される機能の一例を示す機能ブロック図である。 ソルトデータベースの一例を示す図である。 ユーザデータベースの一例を示す図である。 第1実施形態の通信システムで実行される処理の一例を示す図である。 第1実施形態の通信システムで実行される処理の一例を示す図である。 第2実施形態における多要素認証の流れの一例を示す図である。 第2実施形態の通信システムで実現される機能ブロックの一例を示す図である。 第3実施形態における認証システムの全体構成の一例を示す図である。 第3実施形態における多要素認証の流れの一例を示す図である。 第3実施形態の認証システムで実現される機能ブロックの一例を示す図である。
[1.第1実施形態]
 本開示に係る通信システムの実施形態の例である第1実施形態を説明する。第1実施形態では、ユーザの認証が行われる場面に通信システムを適用した場合を例に挙げるが、通信システムは、任意の場面に適用可能である。他の場面への適用例は、後述の変形例5で説明する。
[1-1.通信システムの全体構成]
 図1は、通信システムの全体構成の一例を示す図である。図1に示すように、通信システムSは、ソルトサーバ10、認証サーバ20、及びユーザPC30を含む。ソルトサーバ10、認証サーバ20、及びユーザPC30は、インターネット又はLAN等のネットワークNに接続可能である。通信システムSは、少なくとも1台のコンピュータを含めばよく、図1の例に限られない。
 ソルトサーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、ハードディスク等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
 ソルトサーバ10は、管理装置の一例である。このため、ソルトサーバ10と記載した箇所は、管理装置と読み替えることができる。管理装置は、任意の装置であってよく、ソルトサーバ10のようなサーバコンピュータに限られない。例えば、管理装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。
 ソルトサーバ10は、暗号理論におけるソルトを管理する。ソルトは、変換対象となる情報を変換するための情報である。ソルトは、変換対象となる情報とともに、変換関数に入力される情報である。変換は、暗号化又はハッシュ化と呼ばれることもある。変換は、可逆性がある。変換後の情報は、逆変換することによって、変換前の情報に戻すことができる。ソルトを管理するとは、ソルトを記憶することである。
 ソルト自体は、公知のソルトを利用可能である。例えば、ソルトは、ランダムな値である。ソルトは、任意の形式であってよく、例えば、数字、文字、その他の記号、又はこれらの組み合わせである。ソルトサーバ10は、ソルトを生成してもよいし、ソルトの生成自体は、ソルトサーバ10以外の他の装置で行われてもよい。
 認証サーバ20は、サーバコンピュータである。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 認証サーバ20は、第2装置の一例である。このため、認証サーバ20と記載した箇所は、第2装置と読み替えることができる。第2装置は、任意の装置であってよく、認証サーバ20のようなサーバコンピュータに限られない。例えば、第2装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。
 ユーザPC30は、ユーザのパーソナルコンピュータである。制御部31、記憶部32、及び通信部33の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部34は、マウス、キーボード、又はタッチパネル等の入力デバイスである。表示部35は、液晶ディスプレイ又は有機ELディスプレイである。撮影部36は、少なくとも1台のカメラを含む。
 ユーザPC30は、第1装置の一例である。このため、ユーザPC30と記載した箇所は、第1装置と読み替えることができる。第1装置は、任意の装置であってよく、ユーザPC30のようなパーソナルコンピュータに限られない。例えば、第1装置は、タブレット端末、スマートフォン、又はウェアラブル端末であってもよい。他にも例えば、第1装置は、ゲーム機、自動販売機、POS端末、又はATMといった他の装置であってもよい。
 なお、記憶部12,22,32に記憶されるプログラムは、ネットワークNを介して供給されるようにしてもよい。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方を介して、情報記憶媒体に記憶されたプログラムが供給されてもよい。
[1-2.第1実施形態における通信システムの概要]
 例えば、通信システムSでは、ユーザの正当性を確認するために、多要素認証が実行される。多要素認証とは、複数の要素を組み合わせた認証である。第1実施形態では、2つの要素を組み合わせた2要素認証を例に挙げるが、3つ以上の要素を組み合わせた多要素認証であってもよい。要素自体は、種々の種類を利用可能であり、例えば、生体要素、所持要素、又は知識要素であってもよい。
 多要素認証では、要素に応じた認証データが利用される。認証データ自体は、種々の種類を利用可能である。例えば、生体認証では、顔写真、顔の特徴量、指紋の写真、指紋の特徴量、静脈のスキャン画像、又は静脈の特徴量といった生体データが認証データに相当する。所持認証では、ワンタイムパスワード、ICカードに記録された情報、又はトークンに記録された情報といった所持情報が認証データに相当する。知識認証では、ユーザID、パスワード、PIN、又は秘密の質問といった知識情報が認証データに相当する。
 第1実施形態では、オンラインサービスにログインするために多要素認証が実行される場合を例に挙げるが、多要素認証は、任意の場面に適用可能である。例えば、オンラインサービスに対する申込時、電子決済の実行時、又は、オンライン上で行政手続が行われる時といった他の場面にも、多要素認証を適用可能である。オンラインサービス自体は、種々のサービスを適用可能である。例えば、金融サービス、通信サービス、決済サービス、電子商取引サービス、又はSNSがオンラインサービスに相当してもよい。
 例えば、ユーザが、オンラインサービスの利用登録をすると、オンラインサービスにログインするためのユーザID及びパスワードが発行される。ユーザは、ユーザPC30でオンラインサービスのウェブサイトにアクセスし、ユーザID及びパスワードを入力する。認証サーバ20は、ユーザが入力したユーザID及びパスワードに基づいて、ユーザの正当性を確認する。ユーザの正当性が確認されると、ユーザは、オンラインサービスにログインできる。
 ログインのたびにユーザID及びパスワードの入力が要求されると、非常に手間がかかる。このため、顔認証及びパスワード認証を組み合わせた多要素認証により、ユーザIDの入力の手間を軽減することが考えられる。しかしながら、この場合にもパスワードを入力する手間が発生する。操作部34に対する入力を発生させずに顔認証だけでユーザをログインさせると、顔が似た他のユーザとの誤認証が発生する可能性がある。3Dセンサを含む撮影部36であれば、ある程度の精度で顔認証を実行できるが、それでも誤認証が発生することがある。撮影部36が3Dセンサを含まない場合には、誤認証の確率が高まる。ユーザの顔写真を何らかの形で手に入れた第三者がユーザになりすます可能性もある。
 そこで、第1実施形態では、操作部34からの入力を発生させず、かつ、セキュリティを担保するために、ユーザがオンラインサービスにログインすると、認証サーバ20は、一時的なユーザIDを発行する。以降、この一時的なユーザIDを、TUID(Temporary User ID)という。TUIDは、ユーザを識別可能な情報である。TUIDは、所定の無効条件が満たされると無効になる。第1実施形態では、ユーザがオンラインサービスにログインすることが無効条件に相当する場合を例に挙げるが、無効条件は、任意の条件であってよい。例えば、無効条件は、所定の有効期限が経過すること、一定回数のログインが発生すること、又はユーザが所定の操作をすることであってもよい。
 認証サーバ20が発行したTUIDは、ユーザPC30に記録される。第1実施形態では、TUIDがブラウザのcookieとして記録される場合を説明するが、cookie以外の情報としてTUIDが記録されてもよい。TUIDは、表示部35に表示されてもよいが、原則としてユーザの目に触れないものとする。2回目以降のログインでは、顔認証とともに、TUIDを利用したTUID認証が実行される。TUIDが記録されたユーザPC30でなければTUID認証が成功しないので、TUID認証は、所持認証の一種である。顔認証及びTUID認証を組み合わせた多要素認証であれば、操作部34からの入力を発生させず、かつ、ある程度のセキュリティを担保できると考えられる。
 しかしながら、同じTUIDを長期間使いまわすと、悪意のある第三者に、有効なTUIDが盗まれる可能性がある。例えば、リプレイアタックによって第三者にcookieが盗まれてしまい、cookieに含まれるTUIDも盗まれる可能性がある。第三者が、TUIDだけではなく、ユーザの顔写真も何らかの形で入手したとすると、なりすましが可能になってしまう。このため、ある一定期間でTUIDを無効にすることも考えられる。
 しかしながら、TUIDがすぐに無効になると、あまり頻繁にはログインしないユーザは、ユーザID及びパスワードを毎回入力する必要があるので、ユーザの利便性が低下する。そこで、第1実施形態では、ユーザの利便性を高めつつ、第三者にTUIDを盗まれないようにするために、ソルトを利用してTUIDを変換するようにしている。ただし、同じソルトを長期間使いまわすと、第三者にソルト自体を盗まれる可能性があるので、ユーザがログインするたびに複数のソルトが生成されるようになっている。
 図2は、第1実施形態における多要素認証の流れの一例を示す図である。図2のように、ユーザがオンラインサービスにログインする場合、ユーザPC30は、ソルトサーバ10に対し、ソルトを取得するためのソルト要求を送信する。図2の例では、createSaltPair()といったコマンドがソルト要求に含まれる。このコマンドは、ソルトに関する条件が含まれていないので、悪意のある第三者がソルト要求を盗み見たとしても、どのような条件でソルトが生成されているかを特定することはできない。
 ソルトサーバ10は、ソルト要求を受信すると、ソルトのペアである第1ソルト「6437」及び第2ソルト「8414」を生成してソルトデータベースDB1に格納する。ソルトのペアは、その場で動的に生成されるのではなく、ソルトデータベースDB1に多数のソルトを予め格納しておき、ソルトサーバ10が、ソルトデータベースDB1の中からソルトのペアを取得してもよい。第1ソルト及び第2ソルトは、一定時間で自動的に削除されてもよい。ソルトサーバ10は、第1ソルト「6437」及び第2ソルト「8414」を、ユーザPC30に送信する。
 ユーザPC30は、ソルトサーバ10から第1ソルト「6435」及び第2ソルト「8414」を受信すると、第2ソルト「8414」と、所定の変換関数fと、に基づいて、TUID「312456」を変換する。図2の例では、変換関数fは、TUID「312456」に、第2ソルト「8414」を加算する関数である。変換後のTUIDは、これらの和の「320870」になる。ユーザPC30は、撮影部36が生成したユーザの顔写真、第1ソルト「6437」、及び変換後のTUID「320870」を含む認証要求を、認証サーバ20に送信する。
 認証サーバ20は、認証要求を受信すると、ソルトサーバ10に対し、第1ソルト「6437」を含むソルト要求を送信する。このソルト要求は、ユーザPC30が送信するソルト要求とは異なる。このソルト要求は、getSaltAndDelete(6437)といったコマンドを含む。このコマンドは、第2ソルト「8414」の取得と、第1ソルト「6437」及び第2ソルト「8414」の削除と、を要求するコマンドである。
 ソルトサーバ10は、ソルト要求を受信すると、ソルトデータベースDB1を参照し、ソルト要求に含まれる第1ソルト「6437」に関連付けられた第2ソルト「8414」を取得し、認証サーバ20に送信する。第1ソルト「6437」は、第2ソルト「8414」を検索するためのクエリ及びインデックスとして利用される。ソルトサーバ10は、ソルトデータベースDB1から、第1ソルト「6437」及び第2ソルト「8414」を削除する。
 認証サーバ20は、ソルトサーバ10から第2ソルト「8414」を受信すると、このソルト「8414」と、逆変換関数f-1と、に基づいて、ユーザPCから受信した変換後のTUID「320870」を逆変換する。図2の例では、逆変換関数f-1は、変換後のTUID「320870」から第2ソルト「8414」を減算する関数である。認証サーバ20は、逆変換により、TUID「312456」を取得する。
 認証サーバ20は、TUID「312456」を取得すると、ユーザデータベースDB2にTUID「312456」が存在するか否かを確認する。ユーザデータベースDB2には、多要素認証における正解となる認証データが格納されている。TUID「312456」の存在有無を確認する処理は、TUID認証に相当する。ユーザデータベースDB2にTUID「312456」が格納されていなければ、その時点でエラーとなり、ユーザはログインできない。
 認証サーバ20は、TUID「312456」がユーザデータベースDB2に存在することを確認すると、TUID「312456」に関連付けられてユーザデータベースDB2に格納された顔の特徴量を取得する。認証サーバ20は、当該取得された顔の特徴量と、ユーザPC30から受信した顔写真から計算した顔の特徴量と、に基づいて、顔認証を実行する。認証サーバ20は、顔認証が成功すると、ユーザPC30に対し、多要素認証が成功したことを示す認証結果を送信する。ユーザPC30は、この認証結果を受信すると、オンラインサービスにログインした状態になる。
 なお、ユーザがログインした後に、悪意のある第三者が、クロスサイトスクリプティング(XSS)攻撃等によって、変換後のTUID「320870」と、ユーザの顔写真と、を盗んだとすると、第三者によるなりすましが可能になる恐れがある。そこで、認証サーバ20は、ユーザがログインした場合に、新たなTUIDを発行し、ユーザデータベースDB2に格納してもよい。即ち、認証サーバ20は、ユーザがログインするたびに、TUIDを更新してもよい。新たなTUIDが「417632」だったとすると、認証サーバ20は、ユーザPC30に対し、新たなTUID「417632」を含む認証結果を送信すればよい。これにより、ユーザがログインするたびにTUIDが変わるので、第三者が上記のようなクロスサイトスクリプティング(XSS)攻撃等をしたとしても認証を成功させることができず、なりすましを防止できる。新たなTUID「417632」は、ソルトサーバ10から受信済みの第2ソルト「8414」で変換されてもよい。この場合、認証サーバ20は、新たなTUIDを変換するための変換関数を記憶し、ユーザPC30は、変換後の新たなTUIDを逆変換するための逆変換関数f-1を記憶しているものとする。この逆変換でも、ソルトサーバ10から受信済みの第2ソルト「8414」が利用されてもよい。
 以上のように、第1実施形態の通信システムSは、第1ソルト及び第2ソルトに基づいて、TUIDを変換したり、変換後のTUIDを逆変換したりする。これにより、TUIDがそのままネットワークN上に送信されないので、第三者は、TUIDを簡単に入手できないようになる。更に、第1ソルト及び第2ソルトは、ユーザPC30からの要求に応じて動的に生成されるので、第三者が何らかの形で第1ソルト及び第2ソルトを取得したとしても、その時点では第1ソルト及び第2ソルトが失効している可能性があるので、通信におけるセキュリティが高まるようになっている。以降、第1実施形態の通信システムSの詳細を説明する。
[1-3.第1実施形態の通信システムで実現される機能]
 図3は、第1実施形態の通信システムSで実現される機能の一例を示す機能ブロック図である。
[1-3-1.ソルトサーバにおいて実現される機能]
 データ記憶部100は、記憶部12を主として実現される。ソルト生成部101、受信部102、送信部103、第1削除部104、及び第2削除部105は、制御部11を主として実現される。
[データ記憶部]
 データ記憶部100は、ソルトを管理するために必要なデータを記憶する。例えば、データ記憶部100は、ソルトデータベースDB1を記憶する。TUIDを変換するための変換情報と、変換後のTUIDを逆変換するための逆変換情報と、がソルト以外の名前で呼ばれる情報であれば、ソルトサーバ10は、ソルトデータベースDB1以外の名前で呼ばれるデータベースを利用して、変換情報及び逆変換情報を管理すればよい。
 図4は、ソルトデータベースDB1の一例を示す図である。ソルトデータベースDB1は、複数のソルトが互いに関連付けられて格納されたデータベースである。例えば、ソルトデータベースDB1には、第1ソルト及び第2ソルトのペアが格納される。以降、第1ソルト及び第2ソルトを区別しない時は、単にソルトと記載する。ソルト生成部101により3以上のソルトが生成される場合には、当該3以上のソルトが互いに関連付けられてソルトデータベースDB1に格納される。
 ソルトデータベースDB1に互いに関連付けられた複数のソルトは、ソルト生成部101が生成する複数の情報の一例である。更に、第1ソルトは、第1情報の一例であり、第2ソルトは、第2情報の一例である。このため、互いに関連付けられた複数のソルトについて説明している箇所は、複数の情報と読み替えることができる。第1ソルトについて説明している箇所は、第1情報と読み替えることができる。第2ソルトについて説明している箇所は、第2情報と読み替えることができる。
 ソルトは、変換情報の一例であり、逆変換情報の一例でもある。ソルトと記載した箇所は、変換情報と読み替えることができる。ソルトと記載した箇所は、逆変換情報と読み替えることもできる。変換情報は、暗号理論における暗号鍵である。逆変換情報は、暗号理論における復号鍵である。第1実施形態では、変換情報及び逆変換情報が互いに同じなので、変換情報及び逆変換情報は、暗号理論における共通鍵に相当する。変換情報及び逆変換情報は、鍵以外の名前で呼ばれてもよく、例えば、ファイルの暗号化で用いられるパスワードが変換情報及び逆変換情報に相当してもよい。
 変換情報及び逆変換情報は、互いに異なってもよい。例えば、変換情報は、暗号理論における公開鍵であり、逆変換情報は、暗号理論における秘密鍵であってもよい。逆に、変換情報は、暗号理論における秘密鍵であり、逆変換情報は、暗号理論における公開鍵であってもよい。変換情報及び逆変換情報が互いに異なる場合、ソルトデータベースDB1には、変換情報及び逆変換情報の両方が格納される。これら両方のうちの変換情報がユーザPC30に送信され、逆変換情報が認証サーバ20に送信される。
 ソルト生成部101が生成する個々の情報は、通信システムSにおける通信で利用される情報である。この情報は、変換情報そのものであってもよいし、逆変換情報そのものであってもよい。更に、この情報は、変換情報を取得するために利用される情報であってもよいし、逆変換情報を取得するために利用される情報であってもよい。この情報は、ソルト以外の任意の名前で呼ばれる情報であってよい。例えば、この情報は、暗号理論における鍵、又は、ファイルに設定するパスワードであってもよい。他にも例えば、この情報は、パスコード又は合言葉といった他の名前で呼ばれてもよい。
 第1実施形態では、第1情報が識別情報に相当し、かつ、第2情報が変換情報及び逆変換情報に相当する場合を説明するが、第1情報及び第2情報の役割が逆の関係であってもよい。即ち、第1情報が変換情報及び逆変換情報に相当し、第2情報が識別情報であってもよい。識別情報は、他の情報を識別可能な情報である。識別情報は、他の情報の検索用の情報ということもできる。識別情報は、他の情報を検索する時のインデックスとして利用される。
 ソルト生成部101は、3以上の情報を生成してもよい。このため、ソルト生成部101が生成する情報をn個(nは3以上の整数)とすると、第1情報~第n情報のn個の情報が存在してもよい。例えば、変換情報及び逆変換情報が互いに異なる情報である場合には、ソルト生成部101は、第1情報、第2情報、及び第3情報といった3つの情報を生成してもよい。この場合、第1情報が識別情報に相当し、第2情報が変換情報に相当し、第3情報が逆変換情報に相当してもよい。第1情報~第3情報の役割は、識別情報、変換情報、及び逆変換情報の中で入れ替わってもよい。
 なお、データ記憶部100は、ソルトデータベースDB1以外の他の任意のデータを記憶可能である。例えば、データ記憶部100は、ソルトを生成するためのアルゴリズムを記憶してもよい。データ記憶部100は、認証サーバ20及びユーザPC30とソルトのやりとりをするためのAPIに関するデータを記憶してもよい。第1実施形態では、認証サーバ20及びユーザPC30から互いに異なる形式のソルト要求が受け付けられるので、認証サーバ20用のAPIと、ユーザPC30用のAPIと、が異なる場合を説明するが、認証サーバ20及びユーザPC30から同じ形式のソルト要求に統一し、認証サーバ20及びユーザPC30で共通のAPIとしてもよい。
[ソルト生成部]
 ソルト生成部101は、ユーザPC30からの要求に基づいて、複数のソルトを生成する。例えば、ソルト生成部101は、複数のソルトとして、第1ソルトと、変換及び逆変換をするための第2ソルトと、を生成する。ソルト生成部101は、所定のアルゴリズムに基づいて、複数のソルトを生成する。例えば、ソルト生成部101は、互いに異なる値であり、かつ、ランダムな値になるように、複数のソルトを生成する。ランダムな値を生成する方法自体は、公知の種々の方法を利用可能である。例えば、ソルト生成時のタイムスタンプを利用する方法であってもよいし、タイムスタンプ以外の他のデータを利用する方法であってもよい。
 ソルト生成部101は、ソルトデータベースDB1に、生成した複数のソルトを格納する。第1実施形態では、ソルト生成部101は、第1ソルト及び第2ソルトを生成する。ソルト生成部101は、第1ソルト及び第2ソルトを互いに関連付けてソルトデータベースDB1に格納する。互いに関連付けるとは、一方から他方を検索可能にすることである。第1実施形態では、TUIDの変換と、変換後のTUIDの逆変換と、で同じソルトが利用される場合を例に挙げる。
[受信部]
 受信部102は、認証サーバ20及びユーザPC30の各々からソルト要求を受信する。ソルト要求は、ソルトを要求するために送信される所定形式の情報である。図2では、createSaltPair()又はgetSaltAndDelete(第1ソルト)といったコマンドを含むソルト要求を例に挙げたが、ソルト要求は、ソルトが要求されたことを示す情報であればよく、図2の例に限られない。
 第1実施形態では、認証サーバ20からのソルト要求と、ユーザPC30からのソルト要求と、が互いに異なる形式である場合を説明するが、これらの形式は、互いに同じであってもよい。ソルト要求は、変換情報の要求の一例であり、逆変換情報の要求の一例でもある。このため、ソルト要求について説明している箇所は、変換情報の要求又は逆変換情報の要求と読み替えることができる。これらの要求は、ソルト要求以外の任意の名前で呼ばれることができる。
[送信部]
 送信部103は、認証サーバ20に対し、逆変換情報に相当する第2ソルトを送信する。例えば、送信部103は、認証サーバ20からのソルト要求に基づいて、逆変換情報に相当する第2ソルトを送信する。送信部103は、ユーザPC30に対し、識別情報に相当する第1ソルトと、変換情報に相当する第2ソルトと、を送信する。送信部103は、ユーザPC30からのソルト要求に基づいて、第1ソルト及び第2ソルトを送信する。
 なお、図3では、1つの送信部103だけを示しているが、ユーザPC30に対するソルトの送信と、認証サーバ20に対するソルトの送信と、を別々の機能として捉えることもできる。このため、送信部103が、ユーザPC30からのソルト要求が受け付けられた場合に、ユーザPC30に対し、ソルトを送信する第1送信部103Aと、認証サーバ20からのソルト要求が受け付けられた場合に、認証サーバ20に対し、ソルトを送信する第2送信部103Bと、を含むと捉えることもできる。ユーザPC30に対するソルトの送信手順と、認証サーバ20に対するソルトの送信手順と、が異なる場合には、第1送信部103Aは、ユーザPC30に対するソルトの送信手順に沿って、ユーザPC30に対し、ソルトを送信すればよい。第2送信部103Bは、認証サーバ20に対するソルトの送信手順に沿って、認証サーバ20に対し、ソルトを送信すればよい。
[第1削除部]
 第1削除部104は、複数のソルトが生成された後に、所定の削除時点が訪れた場合に、複数のソルトを削除する。削除時点は、複数のソルトを削除すべき時点である。削除時点は、ソルトが生成された生成時点から一定時間だけ後の時点である。生成時点から削除時点までの期間の長さは、任意の長さであってよく、例えば、1秒以内、1秒~10秒程度、又はそれ以上であってもよい。削除されたソルトは無効になるので、削除時点は、ソルトを無効にする時点をいうこともできる。
 図4では省略しているが、ソルトデータベースDB1には、第1ソルト及び第2ソルトの削除時点が格納されるものとする。第1削除部104は、リアルタイムクロック又はGPS信号等を利用して現在日時を取得し、削除時点が訪れたか否かを判定する。第1削除部104は、削除時点が訪れたと判定された第1ソルト及び第2ソルトを、ソルトデータベースDB1から削除する。
 なお、ソルトデータベースDB1には、第1ソルト及び第2ソルトの削除時点ではなく、第1ソルト及び第2ソルトの生成時点が格納されてもよい。この場合、第1削除部104は、生成時点から一定時間後の削除時点を計算し、当該計算された削除時点が訪れたか否かを判定すればよい。また、生成時点から削除時点までの期間の長さは、全ての第1ソルト及び第2ソルトで共通とするのではなく、ユーザ又は時間帯等の何らかの条件に応じて設定されてもよい。
[第2削除部]
 第2削除部105は、認証サーバ20からの要求に基づいて、複数のソルトを削除する。例えば、第2削除部105は、認証サーバ20からのソルト要求が受け付けられて、認証サーバ20に対して第2ソルトが送信された場合に、第1ソルト及び第2ソルトを削除する。即ち、第2削除部105は、第1ソルト及び第2ソルトの削除時点が訪れる前であったとしても、第2ソルトが認証サーバ20に送信されて、第1ソルト及び第2ソルトが必要無くなった場合に、ソルトデータベースDB1から第1ソルト及び第2ソルトを削除する。
[1-3-2.認証サーバにおいて実現される機能]
 認証サーバ20は、複数のソルトに基づいて、変換データの一例である変換後のTUIDを逆変換して、元データの一例であるTUIDを取得する。第1実施形態では、認証サーバ20は、変換後のTUIDを逆変換してTUIDを取得し、当該取得されたTUIDに基づいて、ユーザに関する認証処理を実行する。データ記憶部200は、記憶部22を主として実現される。受信部201、ソルト要求部202、ソルト取得部203、逆変換部204、処理実行部205、TUID生成部206、及び送信部207が実現される。
[データ記憶部]
 データ記憶部200は、ユーザPC30との通信に必要なデータを記憶する。第1実施形態では、通信システムSにおいて多要素認証が実行されるので、データ記憶部200は、多要素認証に必要なデータを記憶する。例えば、データ記憶部200は、ユーザデータベースDB2を記憶する。
 図5は、ユーザデータベースDB2の一例を示す図である。ユーザデータベースDB2は、ユーザに関する情報が格納されたデータベースである。例えば、ユーザデータベースDB2には、ユーザID、パスワード、氏名、TUID、顔写真、及び顔の特徴量が格納される。ユーザデータベースDB2に格納される情報は、任意の種類であってよく、図5の例に限られない。例えば、ユーザPC30とのセッションを維持するためのセッションID、ユーザによる過去のログイン履歴、又はユーザによるオンラインサービスの利用履歴がユーザデータベースDB2に格納されてもよい。
 顔写真は、生体データ(生体情報)の一例である。TUIDは、生体データとは異なる認証データ(認証情報)の一例である。このため、顔写真について説明している箇所は、生体データと読み替えることができる。TUIDについて説明している箇所は、生体データとは異なる認証データと読み替えることができる。生体データと、生体データとは異なる認証データと、の組み合わせは、任意の組み合わせであってよい。この組み合わせは、多要素認証における要素の組み合わせである。
 生体データは、生体認証で利用されるデータである。生体データ自体は、種々のデータであってよく、例えば、顔の特徴量が生体データに相当してもよい。顔の特徴量が変換されたテンプレートと呼ばれる情報が生体データに相当してもよい。顔認証以外の生体認証が利用される場合には、生体認証に応じた生体データが利用されるようにすればよい。他の生体データの例は、先述した通りである。生体データとは異なる認証データは、生体データとともに多要素認証で利用される情報である。この認証データは、所持情報又は知識情報である。3要素以上の多要素認証であれば、生体データとは異なる認証データは、複数存在してもよい。
 なお、データ記憶部200は、ユーザデータベースDB2以外の他の任意のデータを記憶可能である。例えば、データ記憶部200は、逆変換関数f-1を記憶してもよい。例えば、データ記憶部200は、TUIDを生成するアルゴリズムを記憶してもよい。
[受信部]
 受信部201は、ユーザPC30から、第1ソルトと、変換後のTUIDと、を受信する。変換後のTUIDは、変換データの一例である。このため、変換後のTUIDについて説明している箇所は、変換データと読み替えることができる。変換データは、元データの一例であるTUIDに対して変換が行われたデータである。元データは、変換の対象となるデータである。元データは、変換前のデータである。元データは、暗号理論における平文に相当する。第1実施形態では、元データは、ユーザPC30のユーザに関する認証データである。元データは、変換前のデータなので、生データと呼ばれることもある。
 第1実施形態では、受信部201は、ユーザPC30から、変換後のTUIDと、顔写真と、を受信する。顔写真を受信するとは、顔が撮影された画像の画像データを受信することである。顔写真は、静止画であってもよいし、動画に含まれる個々のフレームであってもよい。第1実施形態では、変換後のTUIDと、顔写真と、が認証要求に含まれる場合を例に挙げる。このため、受信部201は、ユーザPC30から認証要求を受信することによって、変換後のTUIDと、顔写真と、を受信する。認証要求は、多要素認証を実行するための要求である。認証要求は、所定の形式の情報が送信されることにより行われるようにすればよい。認証要求は、他の情報が含まれてもよい。例えば、認証要求には、ユーザPC30のIPアドレスといったように、ユーザPC30を識別可能な情報が含まれてもよい。
[ソルト要求部]
 ソルト要求部202は、複数のソルトのうちの一部のソルトに基づいて、ソルトサーバ10に対し、残りのソルトを要求する。一部のソルトは、認証サーバ20がユーザPC30から受信したソルトである。残りのソルトは、認証サーバ20がユーザPC30から受信しなかったソルトである。例えば、ソルト要求部202は、第1ソルトに基づいて、ソルトサーバ10に対し、第2ソルトを要求する。ソルト要求部202は、ソルトサーバ10に対し、第1ソルトを含むソルト要求を送信することによって、第2ソルトを要求する。このソルト要求は、第1ソルトに関連付けられた第2ソルトを要求するための要求である。
[ソルト取得部]
 ソルト取得部203は、複数のソルトのうちの一部のソルトに基づいて、残りのソルトを取得する。一部のソルトは、残りのソルトの取得に利用されるソルトである。残りのソルトは、逆変換情報として利用されるソルトである。例えば、ソルト取得部203は、第1ソルトに基づいて、第2ソルトを取得する。ソルト取得部203は、逆変換情報取得部の一例である。このため、ソルト取得部203について説明している箇所は、逆変換情報取得部と読み替えることができる。逆変換情報取得部は、ソルトを一例とする逆変換情報を取得する。逆変換情報がソルト以外の名前で呼ばれる場合には、逆変換情報取得部は、この名前に応じた名前で呼ばれてよい。例えば、逆変換情報が鍵又はパスワードと呼ばれる場合には、逆変換情報取得部は、鍵又はパスワードを取得する。
 第1実施形態では、ソルトサーバ10が第1ソルト及び第2ソルトを管理するので、ソルト取得部203は、ソルトサーバ10から、第1ソルトに関連付けられた第2ソルトを取得する。第1ソルト及び第2ソルトは、認証サーバ20自身が管理してもよい。この場合、データ記憶部200は、ソルトデータベースDB1を記憶する。更に、この場合、ソルトサーバ10で実現されるものとして説明したソルト生成部101、受信部102、送信部103、第1削除部104、及び第2削除部105は、認証サーバ20により実現される。
[逆変換部]
 逆変換部204は、ソルト取得部203により取得された残りのソルトに基づいて、変換データの一例である変換後のTUIDを逆変換して、元データ及び認証データの一例であるTUIDを取得する。例えば、逆変換部204は、第2ソルトに基づいて、変換後のTUIDを逆変換して、TUIDを取得する。逆変換部204は、変換部303の変換に応じた逆変換を実行する。逆変換は、暗号理論における復号化である。逆変換のための逆変換関数f-1は、データ記憶部200に記憶されているものとする。逆変換部204は、逆変換情報の一例である第2ソルトに基づいて、変換後のTUIDを逆変換関数f-1で逆変換する。図2の例であれば、逆変換部204は、変換後のTUIDから第2ソルトを減算することによって、変換後のTUIDを逆変換してTUIDを取得する。
 なお、逆変換自体は、種々の逆変換関数f-1を利用可能であり、図2のような減算に限られない。例えば、加算、乗算、除算、行列変換、その他の計算、又はこれらの組み合わせにより、逆変換が行われてもよい。図2の例では、説明の簡略化のために、変換関数f及び逆変換関数f-1がそれぞれ単純な加算及び減算である場合を示しているが、実際には、ある程度複雑な計算式であるものとする。更に、逆変換は、暗号理論における復号化に限られず、圧縮されたファイルの解凍であってもよい。解凍が逆変換に相当する場合、圧縮が変換に相当する。圧縮は、ファイルに対して何らかの変換が行われるので、第1実施形態における変換に相当する。解凍は、圧縮済みのファイルを元の状態に戻す処理なので、第1実施形態における逆変換に相当する。
[処理実行部]
 処理実行部205は、逆変換により取得された認証データに基づいて、ユーザに関する認証処理を実行する。第1実施形態では、認証処理の一例として多要素認証を説明するが、認証処理は、1要素認証であってもよい。例えば、顔認証が利用されずに、TUIDの認証のみが実行されてもよい。処理実行部205は、通信システムSを適用する場面に応じた処理を実行すればよく、処理実行部205が実行する処理は、認証処理に限られない。他の場面に通信システムSを適用した場合の処理は、後述の変形例で説明する。処理実行部205は、逆変換部204により取得された元データに基づいて、所定の処理を実行すればよい。
 例えば、処理実行部205は、逆変換部204により逆変換されたTUIDと、受信部201が受信した顔写真と、に基づいて、多要素認証を実行する。先述したように、多要素認証自体は、種々の種類を利用可能である。第1実施形態では、処理実行部205は、ユーザデータベースDB2を参照し、逆変換部204により逆変換されたTUIDに関連付けられた顔の特徴量を取得する。この顔の特徴量は、多要素認証における正解となる認証データである。ユーザデータベースDB2に格納された顔の特徴量のうち、逆変換部204により逆変換されたTUIDに関連付けられた顔の特徴量だけが比較対象となる。他の顔の特徴量は、比較対象にならない。
 処理実行部205は、受信部201が受信した顔写真に基づいて、顔の特徴量を計算する。顔の特徴量の計算方法自体は、種々の計算方法を利用可能である。例えば、コントラストフィルタ又は主成分分析を利用した計算方法により、顔の特徴量が計算されてもよい。顔の特徴量は、多次元ベクトル、配列、又は単一の数値といった任意の形式で表現可能である。顔認証は、顔の特徴量同士を比較するものではなく、2枚の顔写真を機械学習モデルに入力して類否を判定するタイプのものであってもよい。
 処理実行部205は、ユーザデータベースDB2から取得した顔の特徴量と、受信部201が受信した顔写真から計算した顔の特徴量と、の類否を判定する。例えば、顔の特徴量が多次元ベクトルで表現される場合、ベクトル空間上における顔の特徴量の距離が閾値未満であることは、特徴量が類似することに相当する。処理実行部205は、顔の特徴量が互いに類似する場合、多要素認証が成功したと判定する。処理実行部205は、顔の特徴量が互いに類似しない場合、多要素認証が失敗したと判定する。
[TUID生成部]
 TUID生成部206は、所定のアルゴリズムに基づいて、TUIDを生成する。TUID生成部206は、ユーザPC30にTUIDが存在しない場合に、ユーザPC30に新たに記録するTUIDを生成する。TUID生成部206は、ユーザPC30にTUIDが存在する状態で、このTUIDに代えてユーザPC30に書き込むTUID(更新後のTUID)を生成する。
 例えば、TUID生成部206は、ランダムな値になるように、TUIDを生成する。ランダムな値を生成する方法自体は、公知の種々の方法を利用可能である。例えば、TUID生成時のタイムスタンプを利用する方法であってもよいし、タイムスタンプ以外の他のデータを利用する方法であってもよい。TUID生成部206は、ユーザデータベースDB2に、生成したTUIDを格納する。
 TUID生成部206は、他のユーザのTUIDと重複しないように、TUIDを生成してもよい。TUID生成部206は、顔が似ていない他のユーザのTUIDとの重複は許可するが、顔が似た他のユーザのTUIDと重複しないように、TUIDを生成してもよい。TUID生成部206は、多要素認証が成功した場合に、TUIDを生成してもよい。即ち、TUID生成部206は、ユーザがオンラインサービスにログインするたびに、TUIDを生成してもよい。1回目のログインであれば、TUID生成部206は、ユーザID及びパスワードの認証が成功した場合に、TUIDを生成する。
 なお、TUIDが生成されるタイミングは、任意のタイミングであってよく、第1実施形態の例に限られない。例えば、1回のログインだけでTUIDが無効になるのではなくい、2回以上の所定回数だけ同じTUIDを有効にする場合には、TUID生成部206は、当該所定回数のログインが発生するたびに、TUIDを生成してもよい。例えば、TUIDに有効期限を設ける場合には、TUID生成部206は、有効期限が近づいた時にユーザがログインした場合に、TUIDを生成してもよい。
[送信部]
 送信部207は、ユーザPC30に対し、多要素認証の認証結果を送信する。認証結果は、多要素認証が成功したか否かを示す所定の形式の情報である。例えば、認証結果は、ログインが許可されたか否かが示される。第1実施形態では、ログインのタイミングで新たなTUIDが生成されるので、認証結果には、新たなTUIDが含まれる。
 なお、多要素認証が成功すると、所定の処理の実行が許可される。第1実施形態では、この処理の一例として、オンラインサービスへのログインを説明するが、この処理は、多要素認証が成功したことを条件として許可される処理であればよい。この処理は、通信システムSを適用する場面に応じて定めればよい。例えば、金融サービスに通信システムSを適用する場合には、振込の実行が所定の処理に相当してもよい。例えば、決済サービスに通信システムSを適用する場合には、決済の実行が所定の処理に相当してもよい。例えば、電子商取引サービスに通信システムSを適用する場合には、商品の購入が所定の処理に相当してもよい。所定の処理は、他の任意の処理であってよい。
[1-3-3.ユーザPCにおいて実現される機能]
 ユーザPC30は、複数のソルトに基づいて、元データの一例であるTUIDを変換して、認証サーバ20に変換データの一例である変換後のTUIDを送信する。データ記憶部300は、記憶部32を主として実現される。ソルト要求部301、ソルト取得部302、変換部303、送信部304、及び受信部305は、制御部31を主として実現される。
[データ記憶部]
 データ記憶部300は、多要素認証に必要なデータを記憶する。例えば、データ記憶部300は、TUID及び変換関数fを記憶する。ユーザの顔写真を生成するために撮影部36を利用しない場合には、データ記憶部300は、ユーザの顔写真の画像データを記憶してもよい。例えば、オンラインサービス用のアプリケーションが用意されている場合には、データ記憶部300は、このアプリケーションを記憶してもよい。
[ソルト要求部]
 ソルト要求部301は、ソルトサーバ10に対し、複数のソルトを要求する。例えば、ソルト要求部301は、ソルトサーバ10に対し、第1ソルト及び第2ソルトを要求する。ソルト要求部301は、ソルトサーバ10に対し、ソルト要求を送信することによって、ソルトを要求する。第1実施形態では、ソルト要求部301は、ソルトサーバ10に対し、第1ソルト及び第2ソルトの取得ルールに関する情報を含まないソルト要求を送信する。例えば、タイムスタンプに基づいて生成された第1ソルト及び第2ソルトが取得される場合、取得ルールは、タイムスタンプとなる。ソルト要求には、タイムスタンプの情報は含まれないので、取得ルールに関する情報が含まれない。
 なお、ソルト要求には、第1ソルト及び第2ソルトの取得ルールが含まれてもよい。例えば、第1ソルト及び第2ソルトを生成するための種となる情報がソルト要求に含まれてもよい。
 第1実施形態では、ソルト要求部301は、撮影部36により顔写真が生成された場合に、ソルトサーバ10に対し、ソルト要求を送信する。ソルト要求部301は、任意のタイミングでソルト要求を送信すればよく、顔写真が生成されたタイミングに限られない。例えば、ソルト要求部301は、オンラインサービス用のアプリケーションが起動したタイミング、ユーザがログインをするための操作をしたタイミング、又はオンラインサービスのウェブサイトへのアクセスが発生したタイミングで、ソルト要求を送信してもよい。
[ソルト取得部]
 ソルト取得部302は、複数のソルトを取得する。例えば、ソルト取得部302は、第1ソルト及び第2ソルトを取得する。ソルト取得部302は、ソルトデータベースDB1において、互いに関連付けられた第1ソルト及び第2ソルトを取得する。ソルト取得部302は、変換情報取得部の一例である。このため、ソルト取得部302について説明している箇所は、変換情報取得部と読み替えることができる。変換情報取得部は、ソルトを一例とする変換情報を取得する。変換情報がソルト以外の名前で呼ばれる場合には、変換情報取得部は、この名前に応じた名前で呼ばれてよい。例えば、変換情報が鍵又はパスワードと呼ばれる場合には、変換情報取得部は、鍵又はパスワードを取得する。
[変換部]
 変換部303は、複数のソルトのうちの一部に基づいて、元データ及び認証データの一例であるTUIDを変換する。例えば、変換部303は、第2ソルトに基づいて、TUIDを変換して、変換後のTUIDを生成する。変換は、暗号理論における暗号化である。変換は、TUIDに対して何らかの変更がなされるものであればよい。例えば、TUIDを何らかの関数に入力すること、TUIDの一部を変更すること、TUIDの全部を変更すること、TUIDに対して何らかの情報を付加すること、又はTUIDの一部を削除することが変換に相当する。逆変換は、これらの逆方向の処理(TUIDを元に戻す処理)であればよい。先述したように、ファイルの圧縮が変換に相当し、ファイルの解凍が逆変換に相当してもよい。この場合、第2ソルトをパスワードとして利用し、圧縮又は解凍が実行される。
 変換のための変換関数fは、データ記憶部300に記憶されているものとする。変換部303は、変換情報の一例であるソルトに基づいて、変換前のTUIDを変換関数fで変換する。図2の例であれば、変換部303は、変換前のTUIDに第2ソルトを加算することによって、変換前のTUIDを変換し、変換後のTUIDを取得する。変換自体は、種々の変換関数を利用可能であり、図2のような加算に限られない。例えば、減算、乗算、除算、行列変換、その他の計算、又はこれらの組み合わせにより、変換が行われてもよい。
[送信部]
 送信部304は、認証サーバ20に対し、複数のソルトのうちの一部と、変換後のTUIDと、を送信する。送信部304は、認証サーバ20に対し、第1ソルト及び変換後のTUIDを送信する。例えば、送信部304は、認証サーバ20に対し、第1ソルト、変換後のTUID、及び顔写真を送信する。第1実施形態では、第1ソルト、変換後のTUID、及び顔写真が認証要求に含まれる場合を例に挙げる。このため、送信部304は、認証サーバ20に対し、第1ソルト、変換後のTUID、及び顔写真を含む認証要求を送信する場合を説明するが、送信部304は、第1ソルト、変換後のTUID、及び顔写真を1つのデータにまとめて送信しなくてもよい。送信部304は、第1ソルト、変換後のTUID、及び顔写真を別々に送信してもよい。なお、顔写真もそのまま送信されるのではなく、ソルト又は他の暗号鍵に基づいて変換されてもよい。ユーザPC30側で顔の特徴量が計算されて、当該計算された顔の特徴量が生体データとして送信されてもよい。
[受信部]
 受信部305は、認証サーバ20から、認証結果を受信する。この認証結果が成功を示す場合、ユーザがオンラインサービスにログインする。即ち、先述した所定の処理の実行が許可される。新たなTUIDが認証結果に含まれている場合、受信部305は、認証結果に含まれるTUIDをデータ記憶部300に記録する。それまでに記録されていた古いTUIDは、データ記憶部300から破棄される。
[1-4.第1実施形態の通信システムで実行される処理]
 図6及び図7は、第1実施形態の通信システムSで実行される処理の一例を示す図である。制御部11,21,31がそれぞれ記憶部12,22,32に記憶されたプログラムを実行することによって、図6及び図7の処理が実行される。図6及び図7の処理が実行されるにあたり、ユーザのユーザID及びパスワードが発行済みであるものとする。
 図6のように、ユーザPC30は、オンラインサービスのアプリケーションを起動させ、記憶部32にTUIDがあるか否かを判定する(S1)。TUIDがないと判定された場合(S1;N)、ユーザPC30は、操作部34の検出信号に基づいて、ユーザによるユーザID及びパスワードの入力を受け付ける(S2)。認証サーバ20及びユーザPC30の間で、オンラインサービスにログインするためのログイン処理が実行される(S3)。S3では、ユーザデータベースDB2に基づいて、ユーザID及びパスワードの正当性が確認される。ログインが成功すると、認証サーバ20は、新たなTUIDを発行し(S4)、ユーザPC30に対し、新たなTUIDを含む認証結果を送信する(S5)。
 ユーザPC30は、認証結果を受信すると(S6)、認証結果に含まれるTUIDを記憶部32に記録し(S7)、本処理は終了する。S7において、TUIDは、cookieの一部として記録されてもよい。その後、ユーザPC30は、ユーザにオンラインサービスを利用させるための処理を実行する。ユーザがオンラインサービスからログアウトするための操作をすると、認証サーバ20及びユーザPC30の間で、オンラインサービスからログアウトするためのログアウト処理が実行される。
 S1において、TUIDがあると判定された場合(S1;Y)、ユーザPC30は、撮影部36に基づいて、ユーザの顔を撮影して顔写真を生成する(S8)。ユーザPC30は、ソルトサーバ10に対し、ソルト要求を送信する(S9)。ソルトサーバ10は、ソルト要求を受信すると(S10)、第1ソルト及び第2ソルトを生成してソルトデータベースDB1に格納し、ユーザPC30に対し、当該第1ソルト及び第2ソルトを送信する(S11)。ユーザPC30は、ソルトサーバ10から第1ソルト及び第2ソルトを受信すると(S12)、第2ソルトに基づいて、記憶部32に記憶されたTUIDを変換する(S13)。
 図7に移り、ユーザPC30は、認証サーバ20に対し、S12で受信した第1ソルト、S13における変換後のTUID、及びS8で生成した顔写真を含む認証要求を送信する(S14)。認証サーバ20は、認証要求を受信すると(S15)、ソルトサーバ10に対し、第1ソルトを含むソルト要求を送信する(S16)。ソルトサーバ10は、ソルト要求を受信すると(S17)、ソルトデータベースDB1に基づいて、認証サーバ20に対し、第1ソルトに関連付けられた第2ソルトを送信する(S18)。
 認証サーバ20は、ソルトサーバ10から第2ソルトを受信すると(S19)、この第2ソルトに基づいて、S15で受信した認証要求に含まれる変換後のTUIDを逆変換する(S20)。認証サーバ20は、S20で逆変換されたTUIDと、S15で受信した認証要求に含まれる顔写真と、に基づいて、多要素認証を実行する(S21)。S21では、認証サーバ20は、ユーザデータベースDB2に基づいて、S20で逆変換されたTUIDに関連付けられた顔の特徴量を取得する。認証サーバ20は、S15で受信した顔写真に基づいて、顔の特徴量を計算する。認証サーバ20は、当該取得された顔の特徴量の類似度が閾値以上であるか否かを判定する。TUIDがユーザデータベースDB2に存在し、顔の特徴量の類似度が閾値以上である場合に、多要素認証が成功する。
 認証サーバ20は、多要素認証が成功したか否かを判定する(S22)。多要素認証が失敗した場合(S22;N)、本処理は終了する。この場合、ユーザID及びパスワードの入力が要求されてもよい。多要素認証が成功した場合(S22;Y)、オンラインサービスへのユーザのログインが許可され、S4の処理に移行する。S4以降の処理により、ユーザPC30のTUIDが更新される。
 第1実施形態の通信システムSによれば、ユーザPC30は、複数のソルトに基づいて、TUIDを変換して認証サーバ20に変換後のTUIDを送信する。認証サーバ20は、複数のソルトに基づいて、変換後のTUIDを逆変換してTUIDを取得する。これにより、変換後のTUIDがネットワーク上に送信され、第三者がTUIDを取得しにくくなるので、通信におけるセキュリティが高まる。悪意のある第三者が、認証サーバ20からソルトサーバ10へのソルト要求を盗んだとしても、第1ソルトだけでは、変換の仕組みを把握するのが難しいので、通信におけるセキュリティがより高まる。更に、ユーザPC30からソルトサーバ10へのソルト要求に基づいて第1ソルト及び第2ソルトが生成されるので、第三者が何らかの形で第1ソルト及び第2ソルトを盗んだとしても、その時点では第1ソルト及び第2ソルトが無効になっている可能性が高く、第三者による不正を防止できる。
 また、ユーザPC30は、認証サーバ20に対し、第1ソルトと、第2ソルトに基づいて変換した変換後のTUIDを送信する。認証サーバ20は、第1ソルトに基づいて、第2ソルトを取得し、当該取得された第2ソルトに基づいて、変換後のTUIDを逆変換してTUIDを取得する。これにより、2つのソルトのペアを利用して通信におけるセキュリティが高まる。変換情報及び逆変換情報の両方として第2ソルトを利用することで、より少ないソルトによってセキュリティを担保できる。このため、通信のセキュリティを高めるための処理を簡略化し、通信システムS全体の処理負荷を軽減できる。
 また、ソルトサーバ10は、ユーザPC30からのソルト要求に基づいて、第1ソルト及び第2ソルトを生成する。ソルトサーバ10は、認証サーバ20からのソルト要求に基づいて、認証サーバ20に対し、第2ソルトを送信する。これにより、認証サーバ20が第1ソルト及び第2ソルトを管理しなくてすむので、通信における処理負荷を分散させることができる。即ち、ソルトサーバ10及び認証サーバ20で処理を分散することができる。このため、認証サーバ20の処理負荷を軽減できる。
 また、ユーザPC30は、ソルトサーバ10に対し、第1ソルト及び第2ソルトの取得ルールに関する情報を含まないソルト要求を送信する。これにより、悪意のある第三者がソルト要求を盗んだとしても、TUIDの変換の仕組みを解読されにくくなる。例えば、タイムスタンプに応じた第1ソルト及び第2ソルトが取得されていたとしても、ソルト要求だけでは、この取得ルールを把握することができないので、通信におけるセキュリティがより高まる。
 また、ソルトサーバ10は、複数のソルトが生成された後に、所定の削除時点が訪れた場合に、複数のソルトを削除する。これにより、不要になったソルトがソルトデータベースDB1から削除され、ソルトが流出することを確実に防止できるので、通信のセキュリティがより高まる。ソルトデータベースDB1のメモリ消費量を抑えることもできる。
 また、ソルトサーバ10は、認証サーバ20からの要求に基づいて、複数のソルトを削除する。これにより、不要になったソルトがソルトデータベースDB1から削除され、ソルトが流出することを確実に防止できるので、通信のセキュリティがより高まる。ソルトデータベースDB1のメモリ消費量を抑えることもできる。
 また、認証サーバ20は、変換後のTUIDを逆変換してTUIDを取得し、当該取得されたTUIDに基づいて、ユーザに関する認証処理を実行し、認証処理が成功した場合に、新たなTUIDを生成する。これにより、認証時のセキュリティが高まる。例えば、ユーザがログインするたびにTUIDが変わるので、第三者が先述したクロスサイトスクリプティング攻撃等をしたとしても認証を成功させることができないので、なりすましを防止できる。
[2.第2実施形態]
 第1実施形態では、ソルトの取得方法を工夫することによって、通信におけるセキュリティを高める場合について説明した。通信におけるセキュリティを高める方法は、第1実施形態の例に限られない。第2実施形態では、第1ソルトに応じて変換関数fを使い分けることによって、通信におけるセキュリティを高めるようにしている。以降の第2実施形態及び第3実施形態では、第1実施形態と同様の点については説明を省略する。
 図8は、第2実施形態における多要素認証の流れの一例を示す図である。第2実施形態では、大まかな流れは、第1実施形態と同様であってよい。図8の例では、第1ソルト及び第2ソルトの取得方法は、第1実施形態と同様である。ユーザPC30は、第1実施形態の図2の例と同様にして、ソルトサーバ10から、第1ソルト「6437」及び第2ソルト「8414」を取得する。
 第2実施形態では、ユーザPC30は、第1ソルト「6437」の下1桁に基づいて、変換関数fを使い分ける。例えば、ユーザPC30は、下1桁「0」~「9」にそれぞれ対応する変換関数f0~f9を記憶する。以降、変換関数f0~f9を区別しない時は、単に変換関数fと記載する。個々の変換関数fが示す計算方法は、互いに異なるものとする。このため、同じソルトだったとしても変換関数fが異なれば、変換後のTUIDの値も異なる。
 図8の例では、第1ソルト「6437」の下1桁「7」に対応する変換関数f7が選択される。この変換関数f7は、第1実施形態の図2で説明した変換関数fと同様であるものとする。変換関数f7が選択された後のユーザPC30の処理は、第1実施形態と同様である。認証サーバ20は、第1ソルト「6437」及び変換済みのTUID「320870」を受信すると、第1実施形態と同様にして、ソルトサーバ10から第1ソルト「6437」を取得する。
 第2実施形態では、認証サーバ20は、第1ソルト「6437」の下1桁「7」に基づいて、逆変換関数f-1を使い分ける。例えば、認証サーバ20は、下1桁「0」~「9」にそれぞれ対応する逆変換関数f-10~f-19を記憶する。以降、逆変換関数f-10~f-19を区別しない時は、単に逆変換関数f-1と記載する。個々の逆変換関数f-1が示す計算方法は、互いに異なる。このため、同じ第2ソルト「8414」だったとしても逆変換関数f-1が異なれば、逆変換後のTUIDの値も異なる。
 図8の例では、第1ソルト「6437」の下1桁「7」に対応する逆変換関数f-17が選択される。この逆変換関数f-17は、第1実施形態の図2で説明した逆変換関数f-1と同様であるものとする。逆変換関数f-17が選択された後の認証サーバ20の処理を含む多要素認証の流れは、第1実施形態と同様である。
 図9は、第2実施形態の通信システムSで実現される機能ブロックの一例を示す図である。図9のように、第2実施形態では、逆変換関数選択部208及び変換関数選択部306が実現される。逆変換関数選択部208は、制御部21を主として実現される。変換関数選択部306は、制御部31を主として実現される。第2実施形態では、第1ソルトは、第2ソルトを取得するための識別情報でもあるが、TUIDの変換方法及び逆変換方法を選択するための情報でもある。
 変換関数選択部306は、第1ソルトに基づいて、複数の変換関数fのうちの何れかを選択する。変換関数fは、変換方法の一例である。このため、変換関数fについて説明している箇所は、変換方法と読み替えることができる。変換方法は、TUIDを変換する方法である。変換方法は、TUIDをどのように変換するかを定義したものであればよく、変換関数fに限られない。例えば、変換方法は、関数とは呼ばれない計算式、又は、暗号化アルゴリズムであってもよい。他にも例えば、変換方法は、ファイル圧縮のアルゴリズムであってもよい。
 変換関数選択部306は、第1ソルトに関する所定の選択方法に基づいて、複数の変換関数fのうちの何れかを選択すればよい。この選択方法は、変換関数fの選択方法である。この選択方法は、第1ソルトが条件になる方法である。第1ソルトの値が変わると、選択される変換関数fも変わり得る。例えば、変換関数選択部306は、第1ソルトの一部に基づいて、複数の変換関数fのうちの何れかを選択する。変換関数選択部306は、第1ソルトの全部に基づいて、変換関数fを選択してもよい。
 第2実施形態では、選択方法の一例として第1ソルトの下1桁の値を利用する場合を説明する。変換関数選択部306は、第1ソルトの下1桁に応じた変換関数fを選択する。第1ソルトの下1桁及び変換関数fの関係は、予めデータ記憶部300に定義されているものとする。変換関数選択部306は、第1ソルトの下1桁に対応する変換関数fを選択する。第2実施形態では、第1ソルトの下1桁が取り得る数値「0」~「9」と、変換関数「f0」~「f9」に含まれる数値と、が互いに対応している。
 第2実施形態では、変換関数選択部306は、他の装置に変換関数fの選択を要求することなく、第1ソルトに基づいて、複数の変換関数fのうちの何れかを選択する。他の装置は、ユーザPC30以外の装置である。例えば、他の装置は、ソルトサーバ10、認証サーバ20、又は他のサーバコンピュータである。変換関数選択部306は、第1ソルトが取得された後は、ユーザPC30内の処理だけで、変換関数fの選択を完了させる。後述の第3実施形態では、第2実施形態とは異なり、他の装置による変換関数fの選択が発生する。
 変換部303は、変換関数選択部306により選択された変換関数fに基づいて、変換後のTUIDを生成する。変換関数選択部306により選択された変換関数fが利用される点で、第1実施形態とは異なるが、他の点については同様である。
 逆変換関数選択部208は、第1ソルトに基づいて、複数の逆変換関数f-1のうちの何れかを選択する。逆変換関数f-1は、逆変換方法の一例である。このため、逆変換関数f-1について説明している箇所は、逆変換方法と読み替えることができる。逆変換方法は、変換後のTUIDを逆変換する方法である。逆変換方法は、変換後のTUIDをどのように逆変換するかを定義したものであればよく、逆変換関数f-1に限られない。例えば、逆変換方法は、関数とは呼ばれない計算式、又は、復号化アルゴリズムであってもよい。他にも例えば、逆変換方法は、ファイル解凍のアルゴリズムであってもよい。
 逆変換関数選択部208は、第1ソルトに関する所定の選択方法に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。この選択方法は、逆変換関数f-1の選択方法である。この選択方法は、第1ソルトが条件になる方法である。第1ソルトの値が変わると、選択される逆変換関数f-1も変わり得る。例えば、逆変換関数選択部208は、第1ソルトの一部に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。逆変換関数選択部208は、第1ソルトの全部に基づいて、逆変換関数f-1を選択してもよい。
 第2実施形態では、逆変換関数f-1の選択方法の一例として第1ソルトの下1桁を利用する場合を説明する。逆変換関数選択部208は、第1ソルトの下1桁に応じた逆変換関数f-1を選択する。第1ソルトの下1桁及び逆変換関数f-1の関係は、予めデータ記憶部200に定義されているものとする。逆変換関数選択部208は、逆変換関数選択部208は、第1ソルトの下1桁に対応する逆変換関数f-1を選択する。例えば、逆変換関数選択部208は、変換関数選択部306により選択された変換関数fに対応する逆変換関数f-1として、第1ソルトの下1桁に応じた逆変換関数f-1を選択する。
 第2実施形態では、逆変換関数選択部208は、他の装置に逆変換関数f-1の選択を要求することなく、第1ソルトに基づいて、複数の逆変換関数f-1のうちの何れかを選択する。逆変換関数選択部208は、第1ソルトが取得された後は、認証サーバ20内の処理だけで、逆変換関数f-1の選択を完了させる。後述の第3実施形態では、第2実施形態とは異なり、他の装置による逆変換関数f-1の選択が発生する。
 逆変換部204は、逆変換関数選択部208により選択された逆変換関数f-1に基づいて、TUIDを取得する。逆変換関数選択部208により選択された逆変換関数f-1が利用される点で、第1実施形態及び第2実施形態とは異なるが、他の点については同様である。
 第2実施形態の通信システムSによれば、ユーザPC30は、第1ソルトに基づいて、複数の変換関数fのうちの何れかを選択する。認証サーバ20は、第1ソルトに基づいて、複数の逆変換関数f-1のうちの何れかを選択する。これにより、変換関数fが動的に変わるので、第三者が変換の仕組みを把握しにくくなり、通信におけるセキュリティがより高まる。悪意のある第三者がソルト要求を盗んだとしても、第1ソルトでは、変換の仕組みを把握するのが難しいので、通信におけるセキュリティがより高まる。
 また、ユーザPC30は、他の装置に変換関数fの選択を要求することなく、第1ソルトに基づいて、複数の変換関数fのうちの何れかを選択する。認証サーバ20は、他の装置に逆変換関数f-1の選択を要求することなく、第1ソルトに基づいて、複数の逆変換関数f-1のうちの何れかを選択する。これにより、変換関数f及び逆変換関数f-1を選択するために、他の装置に対する要求が発生しないので、通信時の処理を簡易化できる。多要素認証の完了までに要する時間を短縮することもできる。
 また、ユーザPC30は、第1ソルトの一部に基づいて、複数の変換関数fのうちの何れかを選択する。認証サーバ20は、第1ソルトの一部に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。これにより、第2ソルトを取得するためだけに第1ソルトを利用するのではなく、変換関数f及び逆変換関数f-1を選択するために第1ソルトを利用することができるので、第1ソルトをより有効活用できる。変換関数f及び逆変換関数f-1を選択するために、第1ソルト以外の他の情報を改めて用意する必要がないので、変換関数f及び逆変換関数f-1を選択する方法を簡易化できる。
[3.第3実施形態]
 第2実施形態では、認証サーバ20及びユーザPC30がそれぞれ逆変換関数f-1及び変換関数fを選択する場合を説明したが、逆変換関数f-1及び変換関数fは、第三者サーバにより選択されてもよい。
 図10は、第3実施形態における認証システムSの全体構成の一例を示す図である。図10のように、第3実施形態の認証システムSは、選択サーバ40を含む。選択サーバ40は、サーバコンピュータである。制御部41、記憶部42、及び通信部43の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。選択サーバ40は、選択装置の一例である。このため、選択サーバ40と記載した箇所は、選択装置と読み替えることができる。
 選択装置は、変換関数f及び逆変換関数f-1を選択する装置である。選択装置は、任意の装置であってよく、選択サーバ40のようなサーバコンピュータに限られない。例えば、選択装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。他にも例えば、選択装置は、ゲーム機、自動販売機、POS端末、又はATMといった他の装置であってもよい。
 図11は、第3実施形態における多要素認証の流れの一例を示す図である。第3実施形態では、大まかな流れは、第2実施形態と同様であってよい。ユーザPC30が第1ソルト及び第2ソルトを取得するまでの流れは、第2実施形態と同様である。ただし、図11では、第1ソルトを「6430」とする。
 第3実施形態では、ユーザPC30は、選択サーバ40に対し、第1ソルト「6430」を送信する。選択サーバ40は、関数データベースDB3を記憶する。関数データベースDB3には、第1ソルトの下1桁、変換関数f、及び逆変換関数f-1が関連付けられている。図11の例では、fの後の数値が同じ逆変換関数f-1が対応しているので、関数データベースDB3に変換関数fのみを示しているが、関数データベースには、変換関数f及び逆変換関数f-1の両方が格納されていてもよい。関数データベースDB3における関連付けは、所定のタイミングで更新されるものとする。例えば、選択サーバ40は、定期的に、関数データベースDB3における関連付けをランダムに更新する。
 選択サーバ40は、ユーザPC30から受信した第1ソルト「6430」の下1桁「0」に基づいて、変換関数fを選択する。変換関数fを選択する主体が選択サーバ40になるが、変換関数fの選択方法自体は、第2実施形態と同様であってよい。選択サーバ40は、ユーザPC30に対し、変換関数fの選択結果「f7」を送信する。ユーザPC30は、変換関数fの選択結果「f7」を受信すると、TUID「312456」を変換する。この変換自体は、第2実施形態と同様であってよい。以降の流れは、認証サーバ20がソルトサーバ10から第2ソルト「8414」を取得するまでは、第2実施形態と同様である。
 認証サーバ20は、選択サーバ40に対し、第1ソルト「6430」を送信する。選択サーバ40は、認証サーバ20から受信した第1ソルト「6430」の下1桁「0」に基づいて、逆変換関数f-1を選択する。逆変換関数f-1を選択する主体が選択サーバ40になるが、逆変換関数f-1の選択方法自体は、第2実施形態と同様であってよい。選択サーバ40は、認証サーバ20に対し、逆変換関数f-1の選択結果「f-17」を送信する。認証サーバ20は、逆変換関数f-1の選択結果を受信すると、変換済みのTUID「320870」を逆変換する。この逆変換自体は、第2実施形態と同様であってよい。以降の多要素認証の流れは、第2実施形態と同様である。
 図12は、第3実施形態の認証システムSで実現される機能ブロックの一例を示す図である。図12のように、第3実施形態では、逆変換関数要求部209、変換関数要求部307、データ記憶部400、変換関数選択部401、逆変換関数選択部402、及び更新部403が実現される。逆変換関数要求部209は、制御部21を主として実現される。変換関数要求部307は、制御部31を主として実現される。データ記憶部400は、記憶部42を主として実現される。変換関数選択部401、逆変換関数選択部402、及び更新部403は、制御部41を主として実現される。
 変換関数要求部307は、第1ソルトに基づいて、選択サーバ40に対し、変換関数fの選択を要求する。以降、この要求を変換関数選択要求という。変換関数選択要求は、所定の形式により行われるようにすればよい。変換関数選択要求は、選択サーバ40が変換関数fを選択するための基準となる情報を含んでもよいし、変換関数fを選択する旨のコマンドのみを含んでもよい。第3実施形態では、変換関数選択要求は、第1ソルトを含む場合を説明するが、変換関数選択要求は、第1ソルトの下1桁のみを含んでもよい。
 逆変換関数要求部209は、第1ソルトに基づいて、選択サーバ40に対し、逆変換関数f-1の選択を要求する。以降、この要求を逆変換関数選択要求という。逆変換関数選択要求は、所定の形式により行われるようにすればよい。逆変換関数選択要求は、選択サーバ40が逆変換関数f-1を選択するための基準となる情報を含んでもよいし、逆変換関数f-1を選択する旨のコマンドのみを含んでもよい。第3実施形態では、逆変換関数選択要求は、第1ソルトを含む場合を説明するが、逆変換関数選択要求は、第1ソルトの下1桁のみを含んでもよい。
 変換関数選択部401は、ユーザPC30からの変換関数選択要求に基づいて、複数の変換関数fのうちの何れかを選択する。第3実施形態では、第2実施形態と同様に、この選択方法が第1ソルトの下1桁の値である場合を説明するが、選択方法は、他の任意の方法であってよい。例えば、第1ソルトの上1桁の値であってもよいし、第2ソルトの値であってもよい。変換関数選択部401は、選択サーバ40が選択した変換関数fを識別可能な情報を、選択結果として送信する。
 逆変換関数選択部402は、認証サーバ20からの逆変換関数選択要求に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。第3実施形態では、第2実施形態と同様に、この選択方法が第1ソルトの下1桁の値である場合を説明するが、選択方法は、他の任意の方法であってよい。例えば、第1ソルトの上1桁の値であってもよいし、第2ソルトの値であってもよい。逆変換関数選択部402は、選択サーバ40が選択した逆変換関数f-1を識別可能な情報を、選択結果として送信する。
 変換関数選択部306は、選択サーバ40による選択結果に基づいて、変換関数fを選択する。選択サーバ40により選択された変換関数fが利用される点で、第1実施形態及び第2実施形態とは異なるが、他の点については同様である。
 逆変換関数選択部208は、選択サーバ40による選択結果に基づいて、逆変換関数f-1を選択する。選択サーバ40により選択された逆変換関数f-1が利用される点で、第1実施形態及び第2実施形態とは異なるが、他の点については同様である。
 更新部403は、第1ソルトに関する選択条件と、複数の変換関数f及び複数の逆変換関数f-1の各々と、の関連付けを更新する。第3実施形態では、これらの関連付けが関数データベースDB3に格納されているので、更新部403は、関数データベースDB3を更新する。更新部403は、所定の更新条件が満たされた場合に、関数データベースDB3における関連付けを更新する。
 更新条件は、関数データベースDB3における関連付けを更新するための条件である。更新条件は、任意の条件であってよく、例えば、時間的な条件、又は、変換関数fと逆変換関数f-1の選択回数に関する条件であってもよい。例えば、管理者が所定の操作をすることが更新条件に相当してもよい。第3実施形態では、更新条件が時間的な条件であり、更新部403は、所定の更新時点が訪れた場合に、関連付けを更新する場合を説明する。更新時点は、任意の時点であってよく、例えば、1日の所定時刻であってもよいし、1週間又は1月の中で設定された時点であってもよい。
 更新部403は、更新前の関連付けとは異なる関連付けとなるように、関数データベースDB3を更新すればよい。例えば、更新部403は、第1ソルトの下1桁の値と、変換関数f及び逆変換関数f-1と、の組み合わせがシャッフルされるように、関連付けを更新する。変換関数選択部401は、更新部403により関連付けが更新された後に、更新後の関連付けに基づいて、変換関数fを選択する。逆変換関数選択部402は、更新部403により関連付けが更新された後に、更新後の関連付けに基づいて、逆変換関数f-1を選択する。更新後の関連付けが利用される点で、先述した変換関数f及び逆変換関数f-1を選択する処理とは異なるが、他の点については同様である。
 第3実施形態の認証システムSによれば、選択サーバ40が、認証サーバ20及びユーザPC30からの要求に基づいて、逆変換関数f-1及び変換関数fを選択する。これにより、逆変換関数f-1及び変換関数fを選択するアルゴリズムを認証サーバ20及びユーザPC30で持つ必要がなくなるので、多要素認証の仕組みを簡略化できる。更に、関数データベースDB3に定義された逆変換関数f-1及び変換関数fを定期的に変更しやすくなるので、第三者が変換の仕組みを推測しにくくなり、通信におけるセキュリティが高まる。
 また、選択サーバ40は、第1ソルトに関する選択条件と、複数の変換関数f及び複数の逆変換関数f-1の各々と、の関連付けを更新する。これにより、逆変換関数f-1及び変換関数fの選択方法が変わり、逆変換及び変換の仕組みが第三者に特定されにくくなるので、通信におけるセキュリティがより高まる。
[4.変形例]
 なお、本開示は、以上に説明した第1実施形態~第3実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
[4-1.変形例1]
 例えば、第3実施形態の図11の例において、選択サーバ40がユーザPC30からの変換関数選択要求を受け付けた時点が、関数データベースDB3の更新時点の直前だったとする。この場合、選択サーバ40が認証サーバ20からの逆変換関数選択要求を受け付けた時点が、関数データベースDB3の更新時点の直後になったとすると、TUIDの変換で用いられた変換関数fと、変換後のTUIDの逆変換で用いられる逆変換関数f-1と、が互いに対応しない可能性がある。
 そこで、変形例1では、関数データベースDB3の更新時点の直前に、選択サーバ40がユーザPC30からの変換関数選択要求を受け付けた場合に、変換関数fが選択された選択時点に関する情報が認証サーバ20に送信されてもよい。送信部304は、認証サーバ20に対し、変換関数fが選択された選択時点に関する時点情報を更に送信する。時点情報は、関数データベースDB3が更新される前に変換関数fが選択されたか否かを識別可能な情報である。時点情報は、選択サーバ40からユーザPC30に送信されてもよいし、ユーザPC30が更新時点を予め把握している場合には、ユーザPC30により生成されてもよい。
 逆変換関数選択部402は、関数データベースDB3における関連付けが更新された直後に認証サーバ20からの要求を受け付けた場合には、更新前の関連付けに基づいて、第1逆変換関数f-1を選択し、かつ、更新後の関連付けに基づいて、第2逆変換関数f-1を選択する。ここでの直後とは、時間的な長さが閾値未満であることを意味する。このため、関数データベースDB3における関連付けの更新時点と、認証サーバ20からの要求を受け付けて変換関数fが選択される選択時点と、の間の時間的な長さが閾値未満であることは、直後であることに相当する。
 逆変換関数選択部402は、認証サーバ20からの逆変換関数選択要求を受け付けた時点が関数データベースDB3の更新よりも後であるか否かを判定する。逆変換関数選択部402は、この時点が関数データベースDB3の更新よりも後であると判定された場合に、更新前の関連付けに基づく第1逆変換関数f-1と、更新後の関連付けに基づく第2逆変換関数f-1と、を選択する。データ記憶部400には、更新前の関数データベースDB3も保持されているものとする。
 逆変換関数選択部208は、時点情報に基づいて、第1逆変換関数f-1及び第2逆変換関数f-1のうちの何れかを選択する。逆変換関数選択部208は、関数データベースDB3が更新される前に変換関数fが選択されたことを時点情報が示す場合には、第1逆変換関数f-1を選択する。逆変換関数選択部208は、関数データベースDB3が更新された後に変換関数fが選択されたことを時点情報が示す場合には、第2逆変換関数f-1を選択する。
 変形例1によれば、選択サーバ40は、関数データベースDB3における関連付けが更新された直後に認証サーバ20からの要求を受け付けた場合には、更新前の関連付けに基づいて、第1逆変換関数f-1を選択し、かつ、更新後の関連付けに基づいて、第2逆変換関数f-1を選択する。認証サーバ20は、時点情報に基づいて、第1逆変換関数f-1及び第2逆変換関数f-1のうちの何れかを選択する。これにより、更新時点間際に変換関数fが選択されたとしても、逆変換を正確に実行できる。このため、多要素認証が失敗してやり直すといった手間を省くことができるので、ユーザの利便性が高まる。ソルトサーバ10、認証サーバ20、ユーザPC30、及び選択サーバ40も不要な処理を実行しないので、これらの処理負荷を軽減できる。
[4-2.変形例2]
 例えば、選択サーバ40により変換関数fが選択された選択時点が更新時点の直前でない場合には、変形例1のような問題は発生しないと思われる。このため、ユーザPC30は、変換関数fが選択された選択時点が更新時点の直前でない場合には、認証サーバ20に対し、時点情報を送信せず、選択時点が更新時点の直前である場合に、認証サーバ20に対し、時点情報を送信してもよい。ここでの直前とは、時間的な長さが閾値未満であることを意味する。選択時点から更新時点までの時間的な長さが閾値未満であることは、直前であることに相当する。
 選択時点が更新時点の直前であるか否かは、ユーザPC30によって判定されてもよいが、ここでは、選択サーバ40により判定されるものとする。選択サーバ40は、次の更新時点を予め把握しているものとする。選択サーバ40は、ユーザPC30からの変換関数選択要求を受け付けて変換関数fを選択する選択時点から更新時点までの時間の長さが閾値未満であるか否かを判定する。この判定結果は、ユーザPC30に通知される。
 ユーザPC30は、選択時点が更新時点の直前でない場合には、そもそも時点情報を選択サーバ40から受信しなくてもよい。ユーザPC30は、選択サーバ40から時点情報を受信したとしても、選択時点が更新時点の直前でなければ、認証サーバ20に対して時点情報を送信しない。ユーザPC30は、選択時点が更新時点の直前であるか否かの判定結果を選択サーバ40から受信するものとする。ユーザPCは、選択時点が更新時点の直前である場合には、変形例1と同様に、認証サーバ20に対して時点情報を送信する。
 逆変換関数選択部402は、選択時点が更新時点の直前でない場合には、第2逆変換関数f-1を選択せずに第1逆変換関数f-1を選択し、選択時点が更新時点の直前である場合に、第1逆変換関数f-1及び第2逆変換関数f-1を選択する。選択サーバ40は、選択時点が更新時点の直前であるか否かの判定結果を保持するものとする。この判定結果は、ユーザPC30から受信した第1ソルトに関連付けられて保持されてもよい。逆変換関数選択部402は、選択時点が更新時点の直前でない場合には、第1逆変換関数f-1を選択する処理だけを行う。逆変換関数選択部402は、選択時点が更新時点の直前である場合には、変形例1と同様に、第1逆変換関数f-1及び第2逆変換関数f-1を選択する。
 逆変換関数選択部208は、選択時点が更新時点の直前でない場合には、第1逆変換関数f-1を選択し、選択時点が更新時点の直前である場合に、第1逆変換関数f-1及び第2逆変換関数f-1のうちの何れかを選択する。逆変換関数選択部208は、選択時点が更新時点の直前でない場合には、選択サーバ40から第1逆変換関数f-1を示す情報のみを受信するので、そのまま第1逆変換関数f-1を選択すればよい。逆変換関数選択部208は、選択時点が更新時点の直前である場合には、変形例1と同様にして、第1逆変換関数f-1及び第2逆変換関数f-1の何れかを選択すればよい。
 変形例2によれば、選択サーバ40は、選択時点が更新時点の直前でない場合には、第2逆変換関数f-1を選択せずに第1逆変換関数f-1を選択し、選択時点が更新時点の直前である場合に、第1逆変換関数f-1及び第2逆変換関数f-1を選択する。これにより、変形例1のような処理が必要のない時の処理を簡易化できる。その結果、認証サーバ20、ユーザPC30、及び選択サーバ40の処理負荷を軽減できる。
[4-3.変形例3]
 例えば、第2実施形態及び第3実施形態のように、第1ソルトの一部分に基づいて変換関数f及び逆変換関数f-1が選択される場合、当該一部分が動的に変わってもよい。即ち、図8及び図11の例では、第1ソルトの下1桁に基づいて変換関数f及び逆変換関数f-1が選択される場合を説明したが、第1ソルトの上1桁や2桁目に基づいて変換関数f及び逆変換関数f-1が選択されるように、動的に変わってもよい。
 変換関数選択部306は、所定の決定方法に基づいて、変換関数fの選択で利用する一部分を決定し、当該決定された一部分に基づいて、複数の変換方法のうちの何れかを選択してもよい。この決定方法は、第1ソルトのどの部分を変換関数f及び逆変換関数f-1の選択で利用するかを決定する方法である。この決定方法は、予め定められた方法であればよく第1ソルトのうちの所定の桁をランダムに選択する方法であってもよいし、管理者が指定した方法であってもよい。
 変形例3では、変換関数選択部306は、所定の決定方法に基づいて、第1ソルトのうちの何れか1桁を、変換関数fの選択で利用する一部分として決定する。この1桁の値と、変換関数fと、の関係は、図8及び図11と同様であってよい。変換関数選択部306は、第1ソルトのうち、所定の決定方法に基づいて決定された1桁の値に基づいて、変換関数fを選択する。例えば、この1桁の値が「1」であれば、変換関数f1が選択される。この1桁の値が「7」であれば、変換関数f7が選択される。
 認証サーバ20の逆変換関数選択部208は、所定の決定方法に基づいて、逆変換関数f-1の選択で利用する一部分を決定し、当該決定された一部分に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。この決定方法は、先述した決定方法と同じである。逆変換関数f-1の選択方法も変換関数fの選択方法と同様である。
 変形例3によれば、変換関数f及び逆変換関数f-1の選択で利用される部分が動的に変わる。これにより、第三者が変換関数f及び逆変換関数f-1の選択の仕組みを特定しにくくなるので、通信におけるセキュリティがより高まる。
[4-4.変形例4]
 例えば、ユーザがログインする前に、悪意のある第三者のクロスサイトスクリプティング攻撃等によって、ユーザPC30内のTUID、変換関数f、ソルトサーバ10へのアクセス方法(例えば、特定のIPアドレスに対し、createSaltPair()のコマンドを送信してソルトを取得する流れ)、及びユーザの顔写真が盗まれたとする。この場合、ユーザがログインするたびにTUIDを更新したとしても、第三者は、ソルトサーバ10にアクセスする一連の流れと、認証に必要な情報を入手しているので、なりすましが可能になる恐れがある。
 そこで、ユーザが、認証サーバ20に顔写真等の情報を登録したり、ユーザID及びパスワード等を利用して安全な方法でログインしたりする場合に、ユーザPC30は、自身に関する複数の情報に基づくハッシュ値を生成して認証サーバ20に送信してもよい。このハッシュ値は、ユーザIDに関連付けられてユーザデータベースDB2に格納される。ユーザがTUIDを利用した認証を実行してログインする場合には、ユーザPC30は、TUIDを変換して、認証サーバ20に、変換後のTUIDと、ユーザPC30に関する複数の情報に基づくハッシュ値と、を送信する。第1実施形態等で説明したように、送信部304は、ユーザの顔写真も送信する。
 認証サーバ20は、変換後のTUIDを逆変換してTUIDを取得し、当該取得されたTUIDと、ハッシュ値と、に基づいて、認証処理を実行する。第1実施形態等で説明した通信システムSは、TUID認証だけではなく、顔認証も併用されるので、認証サーバ20は、TUID、顔の特徴量、及びハッシュ値に基づいて、認証処理を実行する。このため、変形例4の認証処理は、三要素認証となる。TUIDと顔の特徴量を利用した認証は、第1実施形態等で説明した通りである。認証サーバ20は、ユーザPC30から受信したハッシュ値と、ユーザのユーザIDに関連付けられてユーザデータベースDB2に格納されたハッシュ値と、が一致するか否かを判定する。これらが一致する場合には、ハッシュ値を利用した認証が成功する。
 なお、ハッシュ値を生成するための複数の情報としては、任意の情報を組み合わせ可能である。例えば、ユーザPC30は、ユーザPC30の種類、オペレーティングシステムの種類、ブラウザの種類といった複数の情報に基づいて、ハッシュ値を生成してもよい。他にも例えば、ユーザPC30のシリアル番号、SIMカードの番号、又は通信カードのMACアドレスといった他の情報に基づいて、ハッシュ値が生成されてもよい。ハッシュ値を生成するためのハッシュ関数自体は、種々のハッシュ関数を利用可能である。ハッシュ値は、ユーザPC30に記憶されるのではなく、認証のたびに生成されるものとする。
 変形例4の通信システムSによれば、ハッシュ値を利用した認証によって、セキュリティが高まる。例えば、悪意のある第三者がユーザPC30内のTUID等を不正に入手したとしても、ハッシュ値までは特定できない可能性が高いので、セキュリティが高まる。
[4-5.変形例5]
 例えば、通信システムSは、認証処理が実行される場面以外の他の場面に適用可能である。他の場面としては、電子メールを送信する場面、ファイルをアップロード又はダウンロードする場面、SNSの投稿が行われる場面、ブラウザで何らかのページを表示させる場面、又はユーザが個人情報をアップロード又はダウンロードする場面といった他の画面にも通信システムSを適用可能である。
 例えば、電子メールを送信する場面に通信システムSを適用したとすると、第1装置は、電子メールの送信側のコンピュータであり、第2装置は、電子メールの受信側のコンピュータである。元データは、電子メールのデータである。元データには、電子メールの本文が含まれる。電子メールに添付ファイルが添付される場合には、元データには、添付ファイルが含まれる。第1装置は、電子メールである元データに対し、第2ソルトに基づいて、変換を行って、変換データを生成する。変換データは、変換後の電子メールである。第1装置は、第2装置に対し、第1ソルトと、変換後の電子メールである変換データと、を送信する。第2装置は、第1ソルト及び変換データを受信すると、第1ソルトに基づいて第2ソルトを取得し、当該取得された第2ソルトに基づいて変換データの逆変換を行って、元データである電子メールを取得する。第1ソルト及び第2ソルトの取得方法は、第1実施形態~第3実施形態及び変形例1~4で説明した通りである。
 例えば、ファイルをアップロードする場面に通信システムSを適用したとすると、第1装置は、ファイルをアップロードするユーザのコンピュータであり、第2装置は、ファイルを受信するサーバである。元データは、アップロード対象のファイルである。第1装置は、アップロード対象のファイルである元データに対し、第1ソルトに基づいて、変換を行って、変換データを生成する。変換データは、変換後のファイルである。第1装置は、第2装置に対し、第1ソルトと、変換後のファイルである変換データと、を送信する。第2装置は、変換データを受信すると、第1ソルトに基づいて第2ソルトを取得し、当該取得された第2ソルトに基づいて逆変換を行って、元データであるファイルを取得する。第1ソルト及び第2ソルトの取得方法は、第1実施形態~第3実施形態及び変形例1~4で説明した通りである。
 他の場面に通信システムSを適用した場合も同様であり、第1装置は、複数のソルトに基づいて、元データを変換して第2装置に変換データを送信すればよい。第2装置は、複数のソルトに基づいて、変換データを逆変換して元データを取得すればよい。変形例5の通信システムSによれば、種々の場面における通信のセキュリティが高まる。
[4-6.その他変形例]
 例えば、第1実施形態~第3実施形態を組み合わせてもよい。上記変形例を組み合わせてもよい。
 例えば、ソルトサーバ10で実現されるものとして説明した機能は、認証サーバ20又はユーザPC30で実現されてもよい。この場合、通信システムSは、ソルトサーバ10を含まなくてもよい。例えば、通信システムSが複数のサーバコンピュータを含む場合には、複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100,200で記憶されるものとして説明したデータは、ソルトサーバ10又は認証サーバ20以外のコンピュータによって記憶されてもよい。

Claims (19)

  1.  第1装置及び第2装置を含む通信システムであって、
     前記第1装置からの要求に基づいて、複数の情報を生成する生成部を含み、
     前記第1装置は、前記複数の情報に基づいて、元データを変換して前記第2装置に変換データを送信し、
     前記第2装置は、前記複数の情報に基づいて、前記変換データを逆変換して前記元データを取得する、
     通信システム。
  2.  前記生成部は、前記複数の情報として、第1情報と、変換及び逆変換をするための第2情報と、を生成し、
     前記第1装置は、
     前記第1情報及び前記第2情報を取得する情報取得部と、
     前記第2情報に基づいて、前記元データを変換して前記変換データを生成する変換部と、
     前記第2装置に対し、前記第1情報及び前記変換データを送信する送信部と、
     を含み、
     前記第2装置は、
     前記第1装置から、前記第1情報及び前記変換データを受信する受信部と、
     前記第1情報に基づいて、前記第2情報を取得する情報取得部と、
     前記第2情報に基づいて、前記変換データを逆変換して前記元データを取得する逆変換部と、
     を含む請求項1に記載の通信システム。
  3.  前記第1情報は、前記元データの変換方法及び逆変換方法を選択するための情報であって、
     前記第1装置は、前記第1情報に基づいて、複数の前記変換方法のうちの何れかを選択する変換方法選択部を更に含み、
     前記変換部は、前記変換方法選択部により選択された前記変換方法に基づいて、前記変換データを生成し、
     前記第2装置は、前記第1情報に基づいて、複数の前記逆変換方法のうちの何れかを選択する逆変換方法選択部を更に含み、
     前記逆変換部は、前記逆変換方法選択部により選択された前記逆変換方法に基づいて、前記元データを取得する、
     請求項2に記載の通信システム。
  4.  前記変換方法選択部は、他の装置に前記変換方法の選択を要求することなく、前記第1情報に基づいて、複数の前記変換方法のうちの何れかを選択し、
     前記逆変換方法選択部は、他の装置に前記逆変換方法の選択を要求することなく、前記第1情報に基づいて、前記複数の逆変換方法のうちの何れかを選択する、
     請求項3に記載の通信システム。
  5.  前記通信システムは、選択装置を更に含み、
     前記第1装置は、前記第1情報に基づいて、前記選択装置に対し、前記変換方法の選択を要求する変換方法要求部を更に含み、
     前記選択装置は、前記第1装置からの要求に基づいて、前記複数の変換方法のうちの何れかを選択する変換方法選択部を含み、
     前記第1装置の前記変換方法選択部は、前記選択装置による選択結果に基づいて、前記変換方法を選択し、
     前記第2装置は、前記第1情報に基づいて、前記選択装置に対し、前記逆変換方法の選択を要求する逆変換方法要求部を更に含み、
     前記選択装置は、前記第2装置からの要求に基づいて、前記複数の逆変換方法のうちの何れかを選択する逆変換方法選択部を含み、
     前記第2装置の前記逆変換方法選択部は、前記選択装置による選択結果に基づいて、前記逆変換方法を選択する、
     請求項3に記載の通信システム。
  6.  前記選択装置は、前記第1情報に関する選択条件と、前記複数の変換方法及び前記複数の逆変換方法の各々と、の関連付けを更新する更新部を含む、
     請求項5に記載の通信システム。
  7.  前記更新部は、所定の更新時点が訪れた場合に、前記関連付けを更新し、
     前記送信部は、前記第2装置に対し、前記変換方法が選択された選択時点に関する時点情報を更に送信し、
     前記選択装置の前記逆変換方法選択部は、前記関連付けが更新された直後に前記第2装置からの要求を受け付けた場合には、更新前の関連付けに基づいて、第1逆変換方法を選択し、かつ、更新後の関連付けに基づいて、第2逆変換方法を選択し、
     前記第2装置の前記逆変換方法選択部は、前記時点情報に基づいて、前記第1逆変換方法及び前記第2逆変換方法のうちの何れかを選択する、
     請求項6に記載の通信システム。
  8.  前記第1装置は、前記選択時点が前記更新時点の直前でない場合には、前記第2装置に対し、前記時点情報を送信せず、前記選択時点が前記更新時点の直前である場合に、前記第2装置に対し、前記時点情報を送信し、
     前記選択装置の前記逆変換方法選択部は、前記選択時点が前記更新時点の直前でない場合には、前記第2逆変換方法を選択せずに前記第1逆変換方法を選択し、前記選択時点が前記更新時点の直前である場合に、前記第1逆変換方法及び前記第2逆変換方法を選択し、
     前記第2装置の前記逆変換方法選択部は、前記選択時点が前記更新時点の直前でない場合には、前記第1逆変換方法を選択し、前記選択時点が前記更新時点の直前である場合に、前記第1逆変換方法及び前記第2逆変換方法のうちの何れかを選択する、
     請求項7に記載の通信システム。
  9.  前記第1装置の前記変換方法選択部は、前記第1情報の一部に基づいて、前記複数の変換方法のうちの何れかを選択し、
     前記第2装置の前記逆変換方法選択部は、前記第1情報の一部に基づいて、前記複数の逆変換方法のうちの何れかを選択する、
     請求項3又は4の何れかに記載の通信システム。
  10.  前記第1装置の前記変換方法選択部は、所定の決定方法に基づいて、前記変換方法の選択で利用する前記一部分を決定し、当該決定された一部分に基づいて、前記複数の変換方法のうちの何れかを選択し、
     前記第2装置の前記逆変換方法選択部は、所定の決定方法に基づいて、前記逆変換方法の選択で利用する前記一部分を決定し、当該決定された一部分に基づいて、前記複数の逆変換方法のうちの何れかを選択する、
     請求項9に記載の通信システム。
  11.  前記通信システムは、管理装置を含み、
     前記管理装置は、前記生成部を含み、前記第1情報及び前記第2情報を管理し、
     前記第1装置は、前記管理装置に対し、前記第1情報及び前記第2情報を要求する情報要求部を含み、
     前記管理装置の前記生成部は、前記第1装置からの要求に基づいて、前記第1情報及び前記第2情報を生成し、
     前記第2装置は、前記第1情報に基づいて、前記管理装置に対し、前記第2情報を要求する情報要求部を含み、
     前記管理装置は、前記第2装置からの要求に基づいて、前記第2装置に対し、前記第2情報を送信する、
     請求項2~10の何れかに記載の通信システム。
  12.  前記第1装置の前記情報要求部は、前記管理装置に対し、前記第1情報及び前記第2情報の取得ルールに関する情報を含まない要求を送信する、
     請求項11に記載の通信システム。
  13.  前記通信システムは、前記複数の情報が生成された後に、所定の削除時点が訪れた場合に、前記複数の情報を削除する第1削除部を更に含む、
     請求項1~12の何れかに記載の通信システム。
  14.  前記通信システムは、前記第2装置からの要求に基づいて、前記複数の情報を削除する第2削除部を更に含む、
     請求項1~13の何れかに記載の通信システム。
  15.  前記元データは、前記第1装置のユーザに関する認証データであり、
     前記第1装置は、前記認証データを変換して前記第2装置に前記変換データを送信し、
     前記第2装置は、前記変換データを逆変換して前記認証データを取得し、当該取得された認証データに基づいて、前記ユーザに関する認証処理を実行し、新たな前記認証データを生成する、
     請求項1~14の何れかに記載の通信システム。
  16.  前記元データは、前記第1装置のユーザに関する認証データであり、
     前記第1装置は、前記認証データを変換して、前記第2装置に、前記変換データと、前記第1装置に関する複数の情報に基づくハッシュ値と、を送信し、
     前記第2装置は、前記変換データを逆変換して前記認証データを取得し、当該取得された認証データと、前記ハッシュ値と、に基づいて、前記ユーザに関する認証処理を実行する、
     請求項1~14の何れかに記載の通信システム。
  17.  第1装置及び第2装置の間の通信方法であって、
     前記第1装置からの要求に基づいて、複数の情報を生成し、
     前記第1装置は、前記複数の情報に基づいて、元データを変換して前記第2装置に変換データを送信し、
     前記第2装置は、前記複数の情報に基づいて、前記変換データを逆変換して前記元データを取得する、
     通信方法。
  18.  第2装置と通信可能な第1装置に、
     前記第1装置からの要求に基づいて生成された複数の情報に基づいて、元データを変換させて前記第2装置に変換データを送信させる、
     ためのプログラム。
  19.  第1装置と通信可能な第2装置に、
     前記第1装置からの要求に基づいてされた複数の情報に基づいて元データが変換された変換データを前記第2装置から受信させ、
     前記複数の情報に基づいて、前記変換データを逆変換させて前記元データを取得させる、
     ためのプログラム。
PCT/JP2022/008320 2022-02-28 2022-02-28 通信システム、通信方法、及びプログラム WO2023162233A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2022/008320 WO2023162233A1 (ja) 2022-02-28 2022-02-28 通信システム、通信方法、及びプログラム
JP2022577693A JP7358658B1 (ja) 2022-02-28 2022-02-28 通信システム、通信方法、及びプログラム
EP22857076.8A EP4262147A1 (en) 2022-02-28 2022-02-28 Communication system, communication method, and program
TW112105515A TW202343288A (zh) 2022-02-28 2023-02-16 通信系統、通信方法及程式產品
JP2023166239A JP2023165913A (ja) 2022-02-28 2023-09-27 第2装置、通信システム、通信方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/008320 WO2023162233A1 (ja) 2022-02-28 2022-02-28 通信システム、通信方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2023162233A1 true WO2023162233A1 (ja) 2023-08-31

Family

ID=87765265

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/008320 WO2023162233A1 (ja) 2022-02-28 2022-02-28 通信システム、通信方法、及びプログラム

Country Status (4)

Country Link
EP (1) EP4262147A1 (ja)
JP (2) JP7358658B1 (ja)
TW (1) TW202343288A (ja)
WO (1) WO2023162233A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10242956A (ja) * 1997-02-28 1998-09-11 Nec Commun Syst Ltd 秘話装置
JP2006238273A (ja) * 2005-02-28 2006-09-07 Hitachi Ltd 暗号通信システムおよび方法
JP2007156785A (ja) * 2005-12-05 2007-06-21 Nec Infrontia Corp Icカードを利用した認証システム及び方法並びにそのプログラム
JP2017531967A (ja) * 2014-10-21 2017-10-26 ゼットティーイー コーポレーションZte Corporation 情報暗号化・復号化、暗号化キー管理の方法、端末及びネットワークサーバー

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208302B2 (en) * 2012-09-28 2015-12-08 Intel Corporation Multi-factor authentication using biometric data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10242956A (ja) * 1997-02-28 1998-09-11 Nec Commun Syst Ltd 秘話装置
JP2006238273A (ja) * 2005-02-28 2006-09-07 Hitachi Ltd 暗号通信システムおよび方法
JP2007156785A (ja) * 2005-12-05 2007-06-21 Nec Infrontia Corp Icカードを利用した認証システム及び方法並びにそのプログラム
JP2017531967A (ja) * 2014-10-21 2017-10-26 ゼットティーイー コーポレーションZte Corporation 情報暗号化・復号化、暗号化キー管理の方法、端末及びネットワークサーバー

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4262147A4 *

Also Published As

Publication number Publication date
EP4262147A4 (en) 2023-10-18
JP7358658B1 (ja) 2023-10-10
JPWO2023162233A1 (ja) 2023-08-31
JP2023165913A (ja) 2023-11-17
TW202343288A (zh) 2023-11-01
EP4262147A1 (en) 2023-10-18

Similar Documents

Publication Publication Date Title
US11777726B2 (en) Methods and systems for recovering data using dynamic passwords
US11818265B2 (en) Methods and systems for creating and recovering accounts using dynamic passwords
US11343099B2 (en) System and method for securing personal information via biometric public key
US20230237132A1 (en) System and Method for Memetic Authentication and Identification
US11048690B2 (en) Contribution of multiparty data aggregation using distributed ledger technology
CN110753944B (zh) 用于基于区块链的数据管理的系统和方法
CN105007302B (zh) 一种移动终端数据存储方法
CA2711243A1 (en) System and method for secure voting
JP7458661B2 (ja) 本人確認のための生体デジタル署名生成
AU2020399657A1 (en) Privacy-preserving biometric authentication
US20190288833A1 (en) System and Method for Securing Private Keys Behind a Biometric Authentication Gateway
WO2023162233A1 (ja) 通信システム、通信方法、及びプログラム
WO2023162232A1 (ja) 通信システム、通信方法、及びプログラム
WO2023127160A1 (ja) 認証システム、認証方法、及びプログラム
US20220158986A1 (en) Non-stored multiple factor verification
US20240013198A1 (en) Validate digital ownerships in immutable databases via physical devices
US20240121098A1 (en) Scalable Authentication System with Synthesized Signed Challenge
Xu et al. Privacy-aware biometric blockchain based e-passport system for automatic border control
Chu Cloud Password Manager Using Privacy-preserved Biometrics

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2022577693

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18022518

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2022857076

Country of ref document: EP

Effective date: 20230223