Products
Use cases
Resources & Case studies
- Products
- Use cases
- Resources & Case studies
Recording qualitative typing patterns is the basis for effective authentication with typing biometrics as a passive second factor
However, common pitfalls can easily lead you to record patterns that will result in low matching scores and higher False Rejection Rates (the metric that shows how often the system fails to identify an authorized user).
The good news is that all of these mistakes can be avoided by recording typing patterns correctly. To do that, you simply need to avoid the following all-too-common pitfalls:
var
tdna
=
new
TypingDNA();
var
textToType
=
'This is my text to type'
;
var
tp
=
tdna.getTypingPattern({
type
:
1
,
text
: textToType });
That brings us to a second suggestion, when recording same text patterns: allow typos, but make sure at least 93% of the typed text matches the type-to-text:
var
textToType
=
'This is my text to type'
;
var
typedText
=
document
.getElementById(
'inputText'
).value;
var
isValid
=
true
;
/** at least 80% of the length of the text should be typed */
if
(typedText.length / textToType.length) <
0.8
{
isValid
=
false
;
}
/** at least 80% of the words should be typed correctly */
if
(
compareTexts
(textToType, typedText) <
0.8
{
isValid
=
false
;
}
function
compareTexts
(t1, t2) {
var
dt1
=
t1.split(
' '
);
var
dt2
=
t2.split(
' '
);
var
total2
=
0
;
var
total1
=
0
;
for
(
var
i
in
dt2) {
total2 += (dt1.indexOf(dt2[i]) >
-1
)
?
1
:
0
;
}
for
(
var
i
in
dt1) {
total1 += (dt2.indexOf(dt1[i]) >
-1
)
?
1
:
0
;
}
var
total = (dt1.length > dt2.length) ? dt1.length : dt2.length;
var
length = (dt1.length > dt2.length) ? dt1.length : dt2.length;
return
total / length;
}
var
textToType
=
'This is my text to type'
;
var
tp
=
tdna.getTypingPattern({
type
:
1
,
text
:
textToType });
var
isValid
=
true;
if
(!tp) {
isValid =
false;
}
var
textToType
=
'This is my text to type'
;
var
tp1
= tdna.getTypingPattern({
type
:
1
,
text
:
textToType,
targetId
:
'inputText1'
});
var
tp2
= tdna.getTypingPattern({
type
:
1
,
text
:
textToType,
targetId
:
'inputText2'
});
var
username =
document
.getElementById(
'username'
).value;
var
password =
document
.getElementById(
'password'
).value;
var
tp =
tdna.getTypingPattern({
type
:
1
,
text
:
username + password });
Read more about the recommended Rules to create texts.
var
tdna =
new
TypingDNA();
For more support, contact us at support@typingdna.com.