Our design is based on a mask that marks the
valid month range established by the administrator
in the database, as is done in IP addressing. If we
perform an operation of type Month AND Mask
using a given Mask, then we always obtain the same
key when the Month is in the correct range. To do
this, the fortnights of each month will be binary
coded according to their order, so that the months
close to each other share the largest number of
possible bits to be able to use the mask and that
different date ranges can be implemented. Therefore,
to encode the 24 fortnights in a year, we must use 5
bits (at least). A possible encoding would be (for
fortnights): January (00000, 00001), February
(00010, 00011)...
Once the fortnights of each month have been
coded, we can assign different masks depending on
the period of validity of the files. For example, the
Mask 11111 is represented a period of a fortnight
from the creation date of the file and the Mask
11100 correspondig to 2 months. Furthermore, we
take into account the day and the year of creation
date of each file. Thus, the key is calculated using
the current year and a offset as the day value in the
encryption/decryption time.
When the client encrypt/decrypt a file, the POST
request to the server must include the creation date
of the file as parameter to fixed the range. Then, the
challenge obtains the sub-key based on current date.
4.3 Time Challenge
Time challenge is checking the moment to
encrypt/decrypt a file. In this way, we can limit
access according to the time, such as files access
limited to working hours. This challenge could be
solved locally, but changing the time in a device is
usually very easy.
The administrator includes a strip of time in the
database for each department. We implement this
challenge using a mask that marks the duration of
the valid range of time, as in the date challenge. If
we perform an operation of type Time AND Mask
using a given Mask, then we always obtain the same
key when Time are in the correct range. For this
propose, the hours of the day will be binary coded
according to their order, so that the hours close to
each other share the largest number of possible bits
to be able to use the mask and that different time
ranges can be implemented. That is, every hour have
binary representation, so 24 hours require 5 bits to
be able to encode all the hours.
Once the hours are been coded, we can assign
different masks depending on different time periods.
For example the Mask 11111 is represented a period
of one hour and the Mask 11000 is corresponding to
8 hours.
When the client encrypt/decrypt a file, the server
must include the creation time of the file as
parameter to fixed the range.
4.4 Wi-Fi Challenge
Wifi networks that are within reach of the equipment
can be used to determine the location of the user.
The administrator stores the SSID, the channel and
the minimum power of the Wifi networks configured
to solve the challenge in the database. Thus, we can
determine where the confidential files can be
accessed. The minimum power value is used to
verify that the user is in the specified place, such as
the company building and not on the street at a close
distance.
Once Wifi networks are configured, the device
makes a POST request to the server and sends the
wifi networks within reach. It should be noted that
the device does not know which are the good
networks (to pass the challenge), so it has to send all
wifi networks within reach, and it is the server
which must verify that all the necessary are among
those sent by the device. With each Wi-Fi network
whose existence has been proven, a sub-key chunk
of this challenge will be generated. In this way, if all
the Wi-Fi networks are found, the key will be
generated completely, while if any missing the
generated key will be incomplete and, therefore, will
not be valid to decrypt the file of the device.
4.5 Operator Challenge
If you have a list of telephone operators by country,
you can check the operator of the equipment to find
out which country you are in and thus have another
location parameter. Typically, companies have their
mobile phone service with the same company, so the
operator will always be the same and will be a
condition to be able to decrypt the file.
Thus, we configure the challenge to generate a
key, doing a series of operations with the name of
the operator. That is, with each operator a different
key will be getting.
4.6 Robustness
Once we have all the key challenges calculated,
together they form a complete key which is the one
for encryption/decryption, since each of them by
themselves are useless. To do this, the client device
Context-based Encryption Applied to Data Leakage Prevention Solutions
569