Introduction
Enrolment
Batch enrolment
Verification
How does it work business-/process-wise?
How does it work technically? (Integration)
Face recognition is one of the forms of biometric authentication. It is used to -for example- verify that the person presenting the document is the same person as the one who enrolled with the document in a KYC (Know Your Customer) process, or independent of it, as the additional- or only method of verification.
Usage during KYC process is described in the KYC with NFC document read guide as well as in the KYC document scan guide. Here, we are talking concretely about processes of enrolment and verification which may or may not be used together with the KYC process.
Generally, biometric authentication is defined as "something you ARE".
It is one of the three factors of authentication, the other two being "something you KNOW" (passwords, PINs, etc.) and
"something you HAVE" (tokens, cards, etc.).
Some companies (our potential partners/customers) choose to use biometric authentication as the only method of authentication, while others use it as an additional method, together with one or two other factors. Latter makes authentication far more secure.
MachineSense recommends to use biometrics as an additional method of authentication, at least as a second factor (2FA).
Typically, you would want to add biometric information of your end-user to your database, alongisde other methods (for example: username and password) and later use it for verification as a second (or even third) factor. In order to achieve any of these methods, you need to enroll your end-user with their biometric information. This is done in the process of enrolment.
Later, when you want to verify that the person attempting to enter the platform/system is the same person as the one who enrolled with the document, you would use the process of verification. This is done by comparing the biometric information from the enrolment data with the real-time biometric information from the end-user.
Thus, at the moment of introducing biometric authentication, you would first enroll your end-user with their biometric information (facial information in this case), and later use it for verification on a kind of a real-time selfie snapshot or video.
Enrolment of your end-user might take place, most commonly, either during:
MachineSense is, by default not retaining any of the data from your users: Neither imagery nor vectors. Our service is processing
this data in memory, in real-time and sending you the relevant results.
Also, by default, MachineSense will send you back the vectorized (non-PII) information on your end-user. Optionally, you may choose
to also receive the imagery (selfie face-images and/or document face-images) of your end-user.
Sometimes this might be even required by your local authorities, but in most cases it is not needed and is not recommended. It is
much more sensible to store only non-PII (not Personally Identifiable Information) data, which is not usable for any other purpose,
and from which images (in case of data leakage and/or other system calamities) cannot be restored afterwards.
Usually, businesses/institutions enrol their end-user with a single face-vector, but MachineSense is offering the possibility to
enrol the end-user with multiple face-vectors and also to later re-enrol the end-user with new face-vectors. Theoretically,
matches are the best when the vectors are the freshest, but in practice, the difference is not that big. However, you may see
some improvements if comparing the latest enroled selfies with log-in real-time selfies then comparing the current one with images
from documents, which might be many years old.
If you decide to keep multiple vectors, you also have an option to send multiple vectors (for example - the latest two) to our
verification API, and to use the one with the best match, or to make a decision based on the average return value, etc.
Enrollment data (vectors) are quite small (and certainly smaller than images), so you may choose to store them in your database without burdening it too much. You may expect (depending on the method of vectorisation) to receive face-vectors of size between 1 and 2 Kbytes. This data can be painlessly stored alongside other authentication data, possibly already present.
MachineSense is offering the possibility of batch enrolment of your end-users. This is done by sending us a batch of images
(selfies or document images) and receiving back the vectorized (non-PII) information on the faces in those images.
This is a very convenient way of enrolling your users, especially if you have a large number of users to enroll.
Normally, any web-portal nowadays has a large number of user already, and it might not be feasible to ask them to perform a selfie. In these cases, if you have images of those users (or service providers), it might be more convinient to do the batch enrolment.
However, there are few considerations here:
It is, generally, not recommended to do the batch-enrolment, but for the special cases we do provide this as an option. These special cases are mostly covering the situations where you wish to mass-enrol some providers of online services, and not the end-users.
User-verification is most commonly done on the system/portal log-in, or on the entry of a particularly sensitive part of the system. It may also be done periodically during the session, in order to verify that the user is the same as the one who logged in (for example: on payment steps or confirmation of a specific action).
Verification is done by comparing the real-time selfie of the user with the previously enrolled face-vector(s). This is done by sending both the enroled vector and a real-time selfie to our verification API, which returns the distance between the two faces. This distance is a measure of similarity between the two faces. You may choose to use this distance as a threshold for your verification process.
MachineSense provides some guidelines of possible thresholds, depending on the security level that you, the customer, want to achieve.
However, you may decide to interpret this result any way you wish, and to set your specific distance-thresholds.
For example: You may decide that the distance of 0.5 is a good threshold for your system, and that any distance below that is a match. In
some other scenarios, you may go for the threshold of 0.6, etc. (Values here are between 0 and 1.)
Choice of distance-threshold is dictating the rise or fall of false positive matches or false negative matches. Smaller the parameter, tighter
the check is and more false negatives may occure during the verification process. And vise-versa.
As a rule of thumb: Some kind of "standard" distance threshold would be 0.6. This would mean that any match below 0.6 is a match, and any
match above 0.6 is not a match. This is a good starting point, but you may choose to go tighter or looser, depending on your needs.
If you are operating a very sensitive process, which requires tight authentication, you may want to lower the threshold to 0.5 or even 0.4. Yes,
there will be some false negatives, but you can circumvent those by asking tighter requirements for user-selfie (lighting, image quality, etc.).
On the other side, if your process is not that sensitive, you may choose to go with a higher threshold, like 0.65. This will result in
less false negatives, but will also allow more false positives. This might be good for user convinience, and might be good enough in
situations where you already authenticated user by other means, or have pre-funneled a possible match and are looking just for final
authoritative comfirmation.
Enrollment process:
Verification process:
Similarly to the other processes, MachineSense is, by default, NOT RETAINING THE DATA.
All the data is sent to our partner/customer, and is not kept on our servers. It is only a pass-through real-time
transactional service.
Optionally, if customer wants it and is legally allowed, MachineSense may offer secure enrollment data storage, but
this is not the default option, and is usually not something our customers wish or are allowed to do by law.
During both enrollment- and verification- processes, one of the possible session-options is to ask MachineSense API to return imagery (jpegs) of the selfies, in addition to the non-PII vector information. Imagery is, of course, PII, and you are advised to store/process this data according to your local juridical guidlines and recommendations. However, this is something that you, as our customer, may opt for, and is completely dependent on your choice/need/preference.
Integration process with MachineSense NFC-KYC is quite simple. It consists of the following steps (see also the
diagrams):
Enrollment:
You may choose to buld your own face-capture HTML/JS code or use our HTML/JS sample, or our WASM
component. Whatever manner you choose, captured image needs to be sent to our API server. Image
should be large enough (at least 400px high) and featuring entire face of the user. Image is sent over as a
base64 encoded JPEG.
If using our sample or WASM, your users don't need to interact, because we automatically detect if their
(entire) face is within the oval target and we prepare the image in a correct size/format.
Verification:
You may choose to buld your own face-capture HTML/JS code or use our HTML/JS sample, or our WASM component. See above, under "Enrollment".