Table 3: Crypto-based QR code scanners.
App Developer Encryption DS Alg KL (bits) EncS Str
(Madiff Net, 2017) 3 N/A 48 Base64 N/A
(DroidLa, 2016) 3 DES 56 Base64 Keyword
(Tengler, D., 2018) 3 AES 128,192 & 256 Base64 & hex N/A
(I-Plex Technology, 2018) 3 N/A N/A Base64 N/A
(Ecrubit Consultancy Service, 2018) 3 N/A N/A Base64 N/A
3.4 Save-privacy Applications
The applications we will illustrate in this section
claim to protect the users’ privacy, as they do not
require access to personal information details. Ob-
taining permissions enables direct access to the infor-
mation without users’ interaction, which means easier
and faster tasks. On the other hand, some applications
may exploit these permissions and send user’s private
data to a third party (Krombholz et al., 2015).
A privacy-violating QR code scanner may ac-
cess private images, videos, contacts, call history and
user’s location. Therefore, we need to balance the
ease-of-use (getting the permissions) and protecting
the users’ privacy. Usually, minimal permissions in-
clude accessing the camera (to scan the barcode) and
the network (if there is a need to check URLs). Ob-
taining other permissions can be extremely danger-
ous, and may result in information leakage attacks.
Red Dodo (Red Dodo, 2014) description says it
does not require personal information details, by ex-
ploring the app’s permissions list we have discovered
that it has access to the storage, photos, Wi-Fi details,
media and files.
Similarly, the QR Code Reader Extreme (Fan-
cyApp, 2018) claims to require few permissions,
whereas by inspecting the app’s permissions list we
have found out that it has access to photos, media,
files, storage network and camera.
Some applications offer QR code’s online con-
tents check (URLs), alongside with less permissions.
An example is TeaCapps Scanner (TeaCapps, 2018),
which requires camera and Internet permissions but
not access to storage or files.
On the good side, Tokoware (Tokoware, 2016) a
simple 1D and 2D barcode reader application, devel-
oped based on the ZXing (GitHub, 2018) library, and
Lightning QR code Scanner (Application4u, 2018),
require access to the camera and network, while
QR Scanner (Privacy Friendly) (SECUSO Research
Group, 2016) only requires access to the camera.
Thus, all these applications are suitable for users who
aim at protecting their privacy.
Since users’ privacy is important, we have eval-
uated all the 28 tested barcode reader applications
in terms of granted permissions. Table 4 shows
the requested permissions for all our tested applica-
tions (i.e., Device & app history, Contacts, Location,
Phone, Photos/media/files, Storage, Camera, Wi-Fi
info, Device ID, Network).
4 DESIGN RECOMMENDATION
Based on our analysis for the available barcode read-
ers, and based on suggestions provided in other works
(Focardi et al., 2018b; Reeder et al., 2018) we present
design tips for secure, usable, and privacy friendly
barcode reader applications. The recommended de-
sign supports the reading of different barcode types,
so to be used it in various contexts and prevents the
execution of any encoded codes or commands. It
is important to display the barcode type, in order to
avoid wrong barcode type decoding. We should pro-
vide manuals for users to learn how to use secure
reader applications. From the security side, we have
to check any URL to avoid phishing and malware at-
tacks, and use security warnings such as: browser
warning against malicious URLs. Digital signature
services can authenticate the barcode generator and
guarantee data integrity, while encrypted contents can
achieve confidentiality and access control.
Saving the users privacy is recommended by re-
questing minimum set of permissions to prevent ac-
cessing private files. The recommended permissions
are camera (to scan the image) and Internet (to check
URLs) only. Regarding usability, we recommend pro-
viding default basic functionalities with simple inter-
face, so that non-expert users can use the app easily.
Based on these recommendations, we have imple-
mented BarSec Driod (Heider Wahsheh, 2018), an
Android mobile application that employs the ZXing
library (GitHub, 2018), and follows our design tips
to provide a secure barcode scanning service. The
application design followed the JSON structure pro-
posed by (Focardi et al., 2018b), and employed Java
standard security libraries to implement the crypto-
graphic primitives. The algorithms and key lengths
were adopted based on (Focardi et al., 2018a). Bar-
Sec Driod specifications are included in Table 5.
ICISSP 2019 - 5th International Conference on Information Systems Security and Privacy
270