Introduction
This webpage supplements “Free vs. Transcribed Text for
Keystroke-Dynamics Evaluations” by Kevin Killourhy and Roy
Maxion, published in LASER 2012.
Kevin S. Killourhy and Roy A. Maxion. Free vs. transcribed text for
keystroke-dynamics evaluations. In Learning from Authoritative
Security Experiment Results (LASER-2012), July 18–19,
2012, Arlington, VA, 2012. ACM Press.
The abstract of the paper is as follows:
Background. One revolutionary application of keystroke dynamics
is continuous reauthentication: confirming a typist's identity during
normal computer usage without interrupting the user.
Aim. In laboratory evaluations, subjects are typically given
transcription tasks rather than free composition (e.g., copying
rather than composing text), because transcription is easier for
subjects. This work establishes whether free and transcribed text
produce equivalent evaluation results.
Method. Twenty subjects completed comparable transcription
and free-composition tasks; two keystroke-dynamics classifiers were
implemented; each classifier was evaluated using both the
free-composition and transcription samples.
Results. Transcription hold and keydown-keydown times are
2–3 milliseconds slower than free-text
features; t-tests showed these effects to be significant.
However, these effects did not significantly change evaluation
results.
Conclusions. The additional difficulty of collecting freely
composed text from subjects seems unnecessary; researchers are
encouraged to continue using transcription tasks.
This webpage provides the typing data, classifier implementations, and
evaluation scripts used in the research. In conjunction with the
paper itself, these supplemental research materials and instructions
are intended to enable researchers to reproduce the scientific
results, tables, and figures from this work. We hope that the
materials provide a useful basis for further scientific research.
Research Materials
The following archive contains all of the research materials (for easy
download):
When downloaded and unzipped, the archive contains the following files:
-
data/TimingFeatures-Hold.txt
: The key hold-time
features recorded in a fixed-width text-file table with headers.
Columns specify the subject ID, session index, screen/exercise index,
key index, key name, and hold time in seconds.
-
data/TimingFeatures-DD.txt
: The digraph
keydown-keydown-time features recorded in a fixed-width text-file
table with headers. Columns specify the subject ID, session index,
screen/exercise index, digraph index, digraph key names, and
keydown-keydown time in seconds.
-
data/SessionMap.txt
: Fixed-width text-file table
listing the correspondence between the Subject IDs and session
indices, and the free-composition or transcription task that was
performed in that session. In each session, the subject either freely
composes or transcribes text concerning one of four pictures. The
pictures are denoted by one of four codes: Sea, Runaway, Girl, and
Doll. The task names pair a picture with whether the writing was free
or transcribed (e.g., “Runaway - Trans” or “Sea -
Free”).
-
r/run.R
: R script implementing the entire
evaluation procedure. Functions in the script (1) read and preprocess
the data, (2) implement the classification algorithms, (3) run the
evaluation, (4) analyze the results, and (5) produce tables and
figures.
-
figs/time-density-repro.eps
: Density plots comparing free
and transcribed timing features (Figure 2 from the paper). This plot
is a product of the evaluation. It is shared so that researchers can
assess whether they are able to successfully reproduce it.
-
figs/error-plot-repro.eps
: Evaluation results for both
classifiers (Figure 3 from the paper). This plot is another product
of the evaluation. It is also shared so that researchers can assess
whether they are able to successfully reproduce it.
Organized into the above directory structure (as they are in the
zip-file archive linked above), these materials should be sufficient
to reproduce our research results.
Procedure
Our data analysis was performed using the R statistical programming
environment. The following instructions guide a researcher through
the details of setting up an environment similar to ours, running the
evaluation scripts, and checking the results.
- Download and extract research materials. Begin by
downloading the zip-file archive from the link above and extracting
its contents to a directory
named
DSL-Free-vs-Transcribed
. Confirm that the files
listed above exist and are organized in the appropriate subdirectories
(i.e., data/
, r/
,
and figs/
).
- Install R and add-on packages. The R statistical
programming environment can be obtained from the R Project for
Statistical Computing
(
http://www.r-project.org
).
It is available for most modern operating systems, and it is free and
open-source. We developed and tested our evaluation script with R
version 2.13.1, but we expect that it will work with other versions of
R. In addition to the basic R installation, our work uses several
add-on packages. The R Project maintainers have organized a large
collection of packages, making it easy to download and install them
directly from within R. The packages on which this work depends
are reshape
, plyr
, and lattice
.
They can be installed using the command:
install.packages( c('reshape','plyr','lattice') );
Run the evaluation. Launch R, and change the working
directory to DSL-Free-vs-Transcribed
. The working
directory can be changed using either the setwd
command
or via a correspondingly named menu option (within a GUI environment).
From that directory, the project-specific R functions can be loaded
with the following command:
source('r/run.R');
Having loaded all the functions, the complete evaluation procedure can be
invoked with a single command:
run();
When run, this function will load the data, split it into appropriate
subgroups (e.g., free and transcribed), evaluate both of the
classifiers, and analyze the results. While running, the function
produces messages and progress bars; it also print various
intermediary results and summary statistics. Refer to the declaration
of the run
function in the script for more detail.
Confirm the results. If the run
function
executes successfully, it will print the results of two statistical
analyses. The percentages should match the following to within a
percentage point:
Significant timing p-values:
| 28.9% |
Significant evaluation p-values:
| 3.6% |
Additionally, the function produces two figures
named time-density.eps
and error-plot.eps
in
the figs
directory. Compare these figures
with time-density-repro.eps
and error-plot-repro.eps
, also in the figs
directory, to ensure that the figures used in the paper have been
accurately reproduced.