diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9da2f1a --- /dev/null +++ b/Makefile @@ -0,0 +1,63 @@ +BASENAME=thesis +DISTNAME=thesis_latex +DISTFOLDER?=$(shell pwd) +CLASS=vutinfth +VIEWER=zathura + +.PHONY: default all +default: clean compile +all: clean compile doc + +doc: + pdflatex -shell-escape ${CLASS}.dtx + pdflatex -shell-escape ${CLASS}.dtx + makeindex -s gglo.ist -o ${CLASS}.gls ${CLASS}.glo + makeindex -s gind.ist -o ${CLASS}.ind ${CLASS}.idx + pdflatex -shell-escape ${CLASS}.dtx + pdflatex -shell-escape ${CLASS}.dtx + +document-class: ${CLASS}.cls +${CLASS}.cls: + pdflatex ${CLASS}.ins + +compile: document-class + pdflatex -shell-escape $(BASENAME) +# makeglossaries $(BASENAME) + pdflatex -shell-escape $(BASENAME) +# makeglossaries $(BASENAME) + bibtex $(BASENAME) + pdflatex -shell-escape $(BASENAME) + pdflatex -shell-escape $(BASENAME) + +view: + $(VIEWER) $(VIEWER_OPTIONS) $(BASENAME).pdf + +zip: clean compile doc + zip -9 -r --exclude=*.git* $(BASENAME).zip \ + build-all.bat \ + build-all.sh \ + build-thesis.bat \ + build-thesis.sh \ + graphics \ + intro.bib \ + intro.tex \ + lppl.txt \ + Makefile \ + README.txt \ + README-vutinfth.txt \ + thesis.tex \ + thesis.pdf \ + vutinfth.dtx \ + vutinfth.ins + +dist: zip + cp $(BASENAME).zip $(DISTFOLDER)/$(DISTNAME).zip + +.PHONY: clean +clean: + find . -type f -not \( -name "${BASENAME}.tex" -o -name "*.backup" \) -name "${BASENAME}*" -delete -print + rm -f vutinfth.cls vutinfth.pdf + rm -f vutinfth.hd vutinfth.ind + find . -type f -name '*.aux' -delete -print + find . -type f -name '*.log' -delete -print + rm -f vutinfth.glo vutinfth.gls vutinfth.idx vutinfth.ilg vutinfth.out vutinfth.toc diff --git a/abbrev/acronym.tex.aux b/abbrev/acronym.tex.aux deleted file mode 100644 index 2e7dff8..0000000 --- a/abbrev/acronym.tex.aux +++ /dev/null @@ -1,158 +0,0 @@ -\relax -\providecommand\hyper@newdestlabel[2]{} -\@setckpt{abbrev/acronym.tex}{ -\setcounter{page}{1} -\setcounter{equation}{0} -\setcounter{enumi}{0} -\setcounter{enumii}{0} -\setcounter{enumiii}{0} -\setcounter{enumiv}{0} -\setcounter{footnote}{0} -\setcounter{mpfootnote}{0} -\setcounter{part}{0} -\setcounter{chapter}{0} -\setcounter{section}{0} -\setcounter{subsection}{0} -\setcounter{subsubsection}{0} -\setcounter{paragraph}{0} -\setcounter{subparagraph}{0} -\setcounter{figure}{0} -\setcounter{table}{0} -\setcounter{parentequation}{0} -\setcounter{su@anzahl}{0} -\setcounter{LT@tables}{0} -\setcounter{LT@chunks}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{0} -\setcounter{FancyVerbLine}{0} -\setcounter{linenumber}{1} -\setcounter{LN@truepage}{0} -\setcounter{FV@TrueTabGroupLevel}{0} -\setcounter{FV@TrueTabCounter}{0} -\setcounter{FV@HighlightLinesStart}{0} -\setcounter{FV@HighlightLinesStop}{0} -\setcounter{FancyVerbLineBreakLast}{0} -\setcounter{float@type}{16} -\setcounter{minted@FancyVerbLineTemp}{0} -\setcounter{minted@pygmentizecounter}{0} -\setcounter{listing}{0} -\setcounter{lstnumber}{1} -\setcounter{tabx@nest}{0} -\setcounter{listtotal}{0} -\setcounter{listcount}{0} -\setcounter{liststart}{0} -\setcounter{liststop}{0} -\setcounter{citecount}{0} -\setcounter{citetotal}{0} -\setcounter{multicitecount}{0} -\setcounter{multicitetotal}{0} -\setcounter{instcount}{0} -\setcounter{maxnames}{3} -\setcounter{minnames}{3} -\setcounter{maxitems}{3} -\setcounter{minitems}{1} -\setcounter{citecounter}{0} -\setcounter{maxcitecounter}{0} -\setcounter{savedcitecounter}{0} -\setcounter{uniquelist}{0} -\setcounter{uniquename}{0} -\setcounter{refsection}{0} -\setcounter{refsegment}{0} -\setcounter{maxextratitle}{0} -\setcounter{maxextratitleyear}{0} -\setcounter{maxextraname}{2} -\setcounter{maxextradate}{0} -\setcounter{maxextraalpha}{0} -\setcounter{abbrvpenalty}{50} -\setcounter{highnamepenalty}{50} -\setcounter{lownamepenalty}{25} -\setcounter{maxparens}{3} -\setcounter{parenlevel}{0} -\setcounter{mincomprange}{10} -\setcounter{maxcomprange}{100000} -\setcounter{mincompwidth}{1} -\setcounter{afterword}{0} -\setcounter{savedafterword}{0} -\setcounter{annotator}{0} -\setcounter{savedannotator}{0} -\setcounter{author}{0} -\setcounter{savedauthor}{0} -\setcounter{bookauthor}{0} -\setcounter{savedbookauthor}{0} -\setcounter{commentator}{0} -\setcounter{savedcommentator}{0} -\setcounter{editor}{0} -\setcounter{savededitor}{0} -\setcounter{editora}{0} -\setcounter{savededitora}{0} -\setcounter{editorb}{0} -\setcounter{savededitorb}{0} -\setcounter{editorc}{0} -\setcounter{savededitorc}{0} -\setcounter{foreword}{0} -\setcounter{savedforeword}{0} -\setcounter{holder}{0} -\setcounter{savedholder}{0} -\setcounter{introduction}{0} -\setcounter{savedintroduction}{0} -\setcounter{namea}{0} -\setcounter{savednamea}{0} -\setcounter{nameb}{0} -\setcounter{savednameb}{0} -\setcounter{namec}{0} -\setcounter{savednamec}{0} -\setcounter{translator}{0} -\setcounter{savedtranslator}{0} -\setcounter{shortauthor}{0} -\setcounter{savedshortauthor}{0} -\setcounter{shorteditor}{0} -\setcounter{savedshorteditor}{0} -\setcounter{labelname}{0} -\setcounter{savedlabelname}{0} -\setcounter{institution}{0} -\setcounter{savedinstitution}{0} -\setcounter{lista}{0} -\setcounter{savedlista}{0} -\setcounter{listb}{0} -\setcounter{savedlistb}{0} -\setcounter{listc}{0} -\setcounter{savedlistc}{0} -\setcounter{listd}{0} -\setcounter{savedlistd}{0} -\setcounter{liste}{0} -\setcounter{savedliste}{0} -\setcounter{listf}{0} -\setcounter{savedlistf}{0} -\setcounter{location}{0} -\setcounter{savedlocation}{0} -\setcounter{organization}{0} -\setcounter{savedorganization}{0} -\setcounter{origlocation}{0} -\setcounter{savedoriglocation}{0} -\setcounter{origpublisher}{0} -\setcounter{savedorigpublisher}{0} -\setcounter{publisher}{0} -\setcounter{savedpublisher}{0} -\setcounter{language}{0} -\setcounter{savedlanguage}{0} -\setcounter{origlanguage}{0} -\setcounter{savedoriglanguage}{0} -\setcounter{pageref}{0} -\setcounter{savedpageref}{0} -\setcounter{textcitecount}{0} -\setcounter{textcitetotal}{0} -\setcounter{textcitemaxnames}{0} -\setcounter{biburlbigbreakpenalty}{100} -\setcounter{biburlbreakpenalty}{200} -\setcounter{biburlnumpenalty}{0} -\setcounter{biburlucpenalty}{0} -\setcounter{biburllcpenalty}{0} -\setcounter{smartand}{1} -\setcounter{bbx:relatedcount}{0} -\setcounter{bbx:relatedtotal}{0} -\setcounter{cbx@tempcnta}{0} -\setcounter{cbx@tempcntb}{0} -\setcounter{section@level}{0} -\setcounter{lstlisting}{0} -} diff --git a/abbrev/acronym.tex b/acronym.tex similarity index 100% rename from abbrev/acronym.tex rename to acronym.tex diff --git a/build-all.sh b/build-all.sh new file mode 100755 index 0000000..c77407a --- /dev/null +++ b/build-all.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# Copyright (C) 2014-2020 by Thomas Auzinger + +CLASS=vutinfth +SOURCE=thesis + +# Build vutinfth documentation +pdflatex -shell-escape $CLASS.dtx +pdflatex -shell-escape $CLASS.dtx +makeindex -s gglo.ist -o $CLASS.gls $CLASS.glo +makeindex -s gind.ist -o $CLASS.ind $CLASS.idx +pdflatex -shell-escape $CLASS.dtx +pdflatex -shell-escape $CLASS.dtx + +# Build the vutinfth class file +pdflatex -shell-escape $CLASS.ins + +# Build the vutinfth example document +pdflatex -shell-escape $SOURCE +bibtex $SOURCE +pdflatex -shell-escape $SOURCE +pdflatex -shell-escape $SOURCE +makeindex -t $SOURCE.glg -s $SOURCE.ist -o $SOURCE.gls $SOURCE.glo +makeindex -t $SOURCE.alg -s $SOURCE.ist -o $SOURCE.acr $SOURCE.acn +makeindex -t $SOURCE.ilg -o $SOURCE.ind $SOURCE.idx +pdflatex -shell-escape $SOURCE +pdflatex -shell-escape $SOURCE + +echo +echo +echo Class file and example document compiled. diff --git a/build-thesis.sh b/build-thesis.sh new file mode 100755 index 0000000..e831003 --- /dev/null +++ b/build-thesis.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# Copyright (C) 2014-2020 by Thomas Auzinger + +# Replace the 'x' in the next line with the name of the thesis' main LaTeX document without the '.tex' extension +SOURCE=thesis + +# Build the thesis document +pdflatex -shell-escape $SOURCE +bibtex $SOURCE +pdflatex -shell-escape $SOURCE +pdflatex -shell-escape $SOURCE +makeindex -t $SOURCE.glg -s $SOURCE.ist -o $SOURCE.gls $SOURCE.glo +makeindex -t $SOURCE.alg -s $SOURCE.ist -o $SOURCE.acr $SOURCE.acn +makeindex -t $SOURCE.ilg -o $SOURCE.ind $SOURCE.idx +pdflatex -shell-escape $SOURCE +pdflatex -shell-escape $SOURCE + +echo +echo +echo Thesis document compiled. diff --git a/chapters/abstract-de.tex b/chapters/abstract-de.tex deleted file mode 100644 index 872d1e6..0000000 --- a/chapters/abstract-de.tex +++ /dev/null @@ -1,35 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter*{Kurzfassung} - -\emph{Über diese Vorlage:} -Dieses Template dient als Vorlage für die Erstellung einer wissenschaftlichen -Arbeit am INSO. Individuelle Erweiterungen, Strukturanpassungen und -Layout-Veränderungen können und sollen selbstverständlich nach persönlichem -Ermessen und in Rücksprache mit Ihrem Betreuer vorgenommen werden. - -\emph{Aufbau}: -In der Kurzfassung werden auf einer 3/4 bis maximal einer Seite die Kernaussagen -der Diplomarbeit zusammengefasst. Dabei sollte zunächst die Motivation/der -Kontext der vorliegenden Arbeit dargestellt werden, und dann kurz die -Frage-/Problemstellung erläutert werden, max. 1 Absatz! Im nächsten Absatz auf -die Methode/Verfahrensweise/das konkrete Fallbeispiel eingehen, mit deren Hilfe -die Ergebnisse erzielt wurden. Im Zentrum der Kurzfassung stehen die zentralen -eigenen Ergebnisse der Arbeit, die den Wert der vorliegenden wissenschaftlichen -Arbeit ausmachen. Hier auch, wenn vorhanden, eigene Publikationen erwähnen. - -\emph{Wichtig: Verständlichkeit!} -Die Kurzfassung soll für Leser verständlich sein, denen das Gebiet der -Arbeit fremd ist. Deshalb Abkürzungen immer zuerst ausschreiben, in Klammer -dazu die Erklärung: z.B: \enquote{Im Rahmen der vorliegenden Arbeit werden -Non Governmental-Organisationen (NGOs) behandelt, \ldots}. In \LaTeX wird -diese bereits automatisch durch verwenden des Befehls \verb|\ac| erreicht. -Für Details siehe Paket \texttt{glossaries}. - -\bigskip - -\section*{Schlüsselwörter} - -\end{document} diff --git a/chapters/abstract-en.tex b/chapters/abstract-en.tex deleted file mode 100644 index 826f6a6..0000000 --- a/chapters/abstract-en.tex +++ /dev/null @@ -1,29 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter*{Abstract} - -\emph{About this template}: -This template helps writing a scientific document at INSO. Users of this -template are welcome to make individual modifications, extensions, and changes -to layout and typography in accordance with their advisor. - -\emph{Writing an abstract}: The abstract summarizes the most important -information within less than one page. Within the first paragraph, present the -motivation and context for your work, followed by the specific aims. In the next -paragraph, describe your methodology / approach, and / or the specific case you -are working on. The third paragraph describes the results and the contribution -of your work. - -\emph{Comprehensibility}: People with different backgrounds who are novel to -your area of work should be able to understand the abstract. Therefore, acronyms -should only be used after their full definition has given. E.g., ``This work -relates to non-governmental organizations (NGOs), \ldots''. - -\bigskip - -\section*{Keywords} -%Keyword, important, SubjectOfMyPaper, FieldOfWork. - -\end{document} diff --git a/chapters/conclusion.tex b/chapters/conclusion.tex deleted file mode 100644 index 0d7d076..0000000 --- a/chapters/conclusion.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter{Conclusion} - -\end{document} diff --git a/chapters/defences.tex b/chapters/defences.tex deleted file mode 100644 index 09148ca..0000000 --- a/chapters/defences.tex +++ /dev/null @@ -1,8 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter{Defences against Tracking} -\label{chap:defences against tracking} - -\end{document} diff --git a/chapters/developments.tex b/chapters/developments.tex deleted file mode 100644 index 05dc537..0000000 --- a/chapters/developments.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter{Future Tracking Ecosystem Developments} - -\end{document} diff --git a/chapters/erklaerung.tex b/chapters/erklaerung.tex deleted file mode 100644 index 5c43d87..0000000 --- a/chapters/erklaerung.tex +++ /dev/null @@ -1,29 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter*{Erklärung zur Verfassung der Arbeit} - -\textsf{Tobias Eidelpes} \\ - -Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich -die verwendeten Quellen und Hilfsmittel vollständig angegeben habe und dass -ich die Stellen der Arbeit---einschließlich Tabellen, Karten und Abbildungen---, -die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen -sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. - -\vspace{2cm} - -\bigskip - -\begin{minipage}{0.55\textwidth} - \textsf{Wien, 31. März 2020} \\ -\end{minipage} -\begin{minipage}{0.45\textwidth} -\begin{tabular}{c} -\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ \\ -\textsf{Tobias Eidelpes} -\end{tabular} -\end{minipage} - -\end{document} diff --git a/chapters/implications.tex b/chapters/implications.tex deleted file mode 100644 index b57c9d7..0000000 --- a/chapters/implications.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter{Implications of Tracking} - -\end{document} diff --git a/chapters/introduction.tex b/chapters/introduction.tex deleted file mode 100644 index e6db349..0000000 --- a/chapters/introduction.tex +++ /dev/null @@ -1,16 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - -\chapter{Introduction} - -\section{Terms and Scope} -\label{sec:Terms and Scope} - -\section{Background and Related Work} -\label{sec:Background and Related Work} - -\section{Structure of the Thesis} -\label{sec:Structure of the Thesis} - -\end{document} diff --git a/chapters/titlepage.pdf b/chapters/titlepage.pdf deleted file mode 100644 index 26c7399..0000000 Binary files a/chapters/titlepage.pdf and /dev/null differ diff --git a/cookie-syncing.drawio b/cookie-syncing.drawio new file mode 100644 index 0000000..a68cfd5 --- /dev/null +++ b/cookie-syncing.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/graphics/Logo-schwarz.pdf b/graphics/Logo-schwarz.pdf new file mode 100644 index 0000000..f88f5fd Binary files /dev/null and b/graphics/Logo-schwarz.pdf differ diff --git a/graphics/Logo_INSO_Infor_TU.jpg b/graphics/Logo_INSO_Infor_TU.jpg new file mode 100644 index 0000000..5ada05b Binary files /dev/null and b/graphics/Logo_INSO_Infor_TU.jpg differ diff --git a/graphics/TU_INF_Logo_partial.png b/graphics/TU_INF_Logo_partial.png new file mode 100644 index 0000000..470d8cc Binary files /dev/null and b/graphics/TU_INF_Logo_partial.png differ diff --git a/main.tex b/main.tex deleted file mode 100644 index 4328fe0..0000000 --- a/main.tex +++ /dev/null @@ -1,135 +0,0 @@ -\documentclass[a4paper,12pt,oneside]{scrreport} - -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[scaled]{helvet} -\usepackage{times} -\usepackage{subfiles} -\usepackage[english]{babel} -\usepackage[includeheadfoot,left=3.4cm,right=2.4cm,bottom=1.5cm,top=1.7cm]{geometry} -\usepackage{graphicx} -\usepackage{microtype} -\usepackage{setspace} -\usepackage{fancyhdr} -\usepackage[hidelinks]{hyperref} -\usepackage{xcolor} -\usepackage{minted} -\usepackage{listings} -\usepackage{csquotes} -\usepackage{xr} -\usepackage[acronym]{glossaries} -\usepackage{lastpage} -\usepackage{pdfpages} - -\glsenablehyper - -\setlength{\marginparwidth}{2cm} -\setlength{\parindent}{0pt} -\setlength{\parskip}{0.5em} - -\usepackage{todonotes} - -\fancypagestyle{frontmatter}{% - \fancyhead{} - \fancyfoot{} - \fancyfoot[C]{\thepage} - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0pt} -} - -\definecolor{light-gray}{gray}{0.95} - -\RedeclareSectionCommand[beforeskip=0.5cm,afterskip=1.5cm]{chapter} -\addtokomafont{chapter}{\normalfont\sffamily\huge} -\addtokomafont{section}{\normalfont\sffamily\Large} -\addtokomafont{subsection}{\normalfont\sffamily\large} - -\usepackage[backend=biber,style=ieee,urldate=iso,date=iso,seconds=true]{biblatex} - -\addbibresource{bibliography/references.bib} - -\hypersetup{ - linkcolor=black, - urlcolor=black, - citecolor=black, - breaklinks=true, - colorlinks=true, - frenchlinks=true, - linktoc = all, - pdftitle = {Stateful Web Tracking: Techniques and Countermeasures}, - pdfauthor = {Tobias Eidelpes} -} - -\pagestyle{fancy} - -\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter.\ #1}{}} -\renewcommand{\sectionmark}[1]{\markright{\arabic{chapter}.\arabic{section}.\ #1}} -\renewcommand {\headrulewidth}{0.4pt} % unterdruecken der Linie -\renewcommand {\footrulewidth}{0.4pt} % unterdruecken der Linie - -\fancyhead{} - -\fancyhead[L]{\leftmark} -\fancyhead[R]{\rightmark} - -\fancyfoot{} -\fancyfoot[L]{Stateful Web Tracking: Techniques and Countermeasures} -\fancyfoot[R]{\thepage \ / \pageref{LastPage}} - -\fancypagestyle{plain}{} - -\graphicspath{{figures/}{../figures/}} - -\setstretch{1.1} - -\makeglossaries - -\begin{document} - - \input{abbrev/acronym.tex} - - \includepdf[pages=-]{chapters/titlepage.pdf} - - \newpage - - \pagenumbering{roman} - - \subfile{chapters/erklaerung.tex} - \thispagestyle{frontmatter} - - \subfile{chapters/abstract-de} - \thispagestyle{frontmatter} - - \subfile{chapters/abstract-en} - \thispagestyle{frontmatter} - - \tableofcontents - \thispagestyle{frontmatter} - - \listoffigures - \thispagestyle{frontmatter} - - \listoflistings - \thispagestyle{frontmatter} - - \printglossary - \printglossary[type=\acronymtype] - \thispagestyle{frontmatter} - - \subfile{chapters/introduction} - - \pagenumbering{arabic} - - \subfile{chapters/methods} - - \subfile{chapters/defences} - - \subfile{chapters/implications} - - \subfile{chapters/developments} - - \subfile{chapters/conclusion} - - \printbibliography - -\end{document} diff --git a/chapters/methods.tex b/methods.tex similarity index 77% rename from chapters/methods.tex rename to methods.tex index a0e684b..d60040d 100644 --- a/chapters/methods.tex +++ b/methods.tex @@ -1,8 +1,3 @@ -\documentclass[../main.tex]{subfiles} -\externaldocument{defences} - -\begin{document} - \chapter{Tracking Methods} \label{chap:tracking methods} @@ -81,15 +76,15 @@ with the same unique identifier leaves a trail behind that can be used to compile a browsing history. Sharing information with other parties is not only limited to unique identifiers. \gls{URL} parameters can also be used to pass the referrer of a web page containing a query that has been submitted by the user. -\citeauthor{falahrastegarTrackingPersonalIdentifiers2016} demonstrate such an +\citet{falahrastegarTrackingPersonalIdentifiers2016} demonstrate such an example where an advertisement tracker logs a user's browsing history by storing the referrer into a \texttt{(key,value)} pair \cite[p.~37]{falahrastegarTrackingPersonalIdentifiers2016}. Other possibilities include encoding geographical data, network properties, user information (e.g., e-mails) and authentication credentials. -\citeauthor{westMeasuringPrivacyDisclosures2014} conducted a survey concerning +\citet{westMeasuringPrivacyDisclosures2014} conducted a survey concerning the use of \gls{URL} Query Strings and found it to be in widespread use on the -web \cite{westMeasuringPrivacyDisclosures2014}. +web. \subsection{Hidden Form Fields} \label{subsec:hidden form fields} @@ -137,18 +132,17 @@ Referer field. The header with the referrer information gets attached to the requested web page and can establish a link from the original web page to the new web page. When applied to a majority of the requests on a site, the resulting data can be analyzed for promotional and statistical purposes. -\citeauthor{malandrinoPrivacyAwarenessInformation2013} have shown that the -\gls{HTTP} Referer is one of the most critical factors in leaking \gls{PII} -\cite{malandrinoPrivacyAwarenessInformation2013}, because leakage of information -relating to user's health has been identified as the most severe in terms of -identifiability of users on the web. +\citet{malandrinoPrivacyAwarenessInformation2013} have shown that the +\gls{HTTP} Referer is one of the most critical factors in leaking \gls{PII}, +because leakage of information relating to user's health has been identified as +the most severe in terms of identifiability of users on the web. \subsection{Explicit Authentication} \label{subsec:explicit authentication} Explicit authentication requires a user to \emph{explicitly} log in or register -to the web site. This way, specific resources are only available to the user when -he or she has authenticated themselves to the service. Actions taken on an +to the web site. This way, specific resources are only available to the user +when he or she has authenticated themselves to the service. Actions taken on an authenticated user account are tied to that account and crafting a personal profile is more or less a built-in function in this case. Since merely asking a user to authenticate is a simple method, the extent to which it can be used is @@ -159,27 +153,25 @@ always requiring a logged in state can be a tiring task for users, because they have to be authenticated every time they visit a particular service. This can potentially pose a usability problem where users simply stop using the service or go to considerable lengths to avoid logging in. This largely depends on a -cost-benefit analysis the users subconsciously undertake \cite{}. The third -factor where this method is lacking, concerns the awareness of the user being -tracked. Since tracking users depends on them actively logging in to the -service, tracking them transparently is impossible. Even though most tracking -efforts are not detected by the average user \cite{}, it is known that actions -taken on an account are logged to provide better service through service -optimization and profile personalization. +cost-benefit analysis the users subconsciously undertake. The third factor +where this method is lacking, concerns the awareness of the user being tracked. +Since tracking users depends on them actively logging in to the service, +tracking them transparently is impossible. Even though most tracking efforts +are not detected by the average user, it is known that actions taken on an +account are logged to provide better service through service optimization and +profile personalization. Making an account on a web site to use their services to their full extent, can be beneficial in some cases. Facebook for example, allows their users to configure what they want to share with the public and their friends. Research has shown however, that managing which posts get shown to whom is not as -straightforward as one might think. -\citeauthor{liuAnalyzingFacebookPrivacy2011} -\cite{liuAnalyzingFacebookPrivacy2011} conducted a survey where they asked -Facebook users about their desired privacy and visibility settings and -cross-checked them with the actual settings they have used for their posts. The -results showed that in only 37\% of cases the users' expectations match the -reality. Additionally, 36\% of content is left on the default privacy settings -which set the visibility of posts to public, meaning that any Facebook user can -view them. +straightforward as one might think. \citet{liuAnalyzingFacebookPrivacy2011} +conducted a survey where they asked Facebook users about their desired privacy +and visibility settings and cross-checked them with the actual settings they +have used for their posts. The results showed that in only 37\% of cases the +users' expectations match the reality. Additionally, 36\% of content is left on +the default privacy settings which set the visibility of posts to public, +meaning that any Facebook user can view them. \subsection{window.name DOM Property} \label{subsec:window.name dom property} @@ -296,27 +288,26 @@ policy applies to cookies, disallowing access by other domains. Distinguishing tracking and non-tracking cookies can be done with high accuracy by observing their expiration time and the length of the value field. -\citeauthor{liTrackAdvisorTakingBack2015} \cite{liTrackAdvisorTakingBack2015} -demonstrate a supervised learning approach to detecting tracking cookies with -their tool \emph{TrackAdvisor}. They found that tracking cookies generally have -a longer expiration time than non-tracking cookies and they need to have a -sufficiently long value field carrying the unique identifier. Using this method, -they found that only 10\% of tracking cookies have a lifetime of a single day or -less while 80\% of non-tracking cookies expire before a day is over. -Additionally, a length of more than 35 characters in the value field applies to -80\% of tracking cookies and a value field of less than 35 characters applies to -80\% of non-tracking cookies. \emph{Cookie Chunking}, where a cookie of larger -length is split into multiple cookies with smaller length, did not appear to -affect detection by their method negatively. They also present a site -measurement of the Alexa Top 10,000 web sites, finding that 46\% of web sites use -third party tracking. More recent research -\cite{gonzalezCookieRecipeUntangling2017} has shown that tracking cookies do not -have to be long lasting to accumulate data about users. Some cookies---like the -\texttt{\_\_utma} cookie from Google Analytics for example---save a timestamp of -the current visit with the unique identifier, thereby allowing to use cookies -which last a short time but can be afterwards used in series to complete the -whole picture. \citeauthor{gonzalezCookieRecipeUntangling2017} -\cite{gonzalezCookieRecipeUntangling2017} have also found 20\% of observed +\citet{liTrackAdvisorTakingBack2015} demonstrate a supervised learning approach +to detecting tracking cookies with their tool \emph{TrackAdvisor}. They found +that tracking cookies generally have a longer expiration time than non-tracking +cookies and they need to have a sufficiently long value field carrying the +unique identifier. Using this method, they found that only 10\% of tracking +cookies have a lifetime of a single day or less while 80\% of non-tracking +cookies expire before a day is over. Additionally, a length of more than 35 +characters in the value field applies to 80\% of tracking cookies and a value +field of less than 35 characters applies to 80\% of non-tracking cookies. +\emph{Cookie Chunking}, where a cookie of larger length is split into multiple +cookies with smaller length, did not appear to affect detection by their method +negatively. They also present a site measurement of the Alexa Top 10,000 web +sites, finding that 46\% of web sites use third party tracking. More recent +research \cite{gonzalezCookieRecipeUntangling2017} has shown that tracking +cookies do not have to be long lasting to accumulate data about users. Some +cookies---like the \texttt{\_\_utma} cookie from Google Analytics for +example---save a timestamp of the current visit with the unique identifier, +thereby allowing to use cookies which last a short time but can be afterwards +used in series to complete the whole picture. +\citet{gonzalezCookieRecipeUntangling2017} have also found 20\% of observed cookies to be \gls{URL} or base64 encoded, making decoding of cookies a necessary step for analysis. Furthermore---and contrary to previous work---, cookie values are found in much more varieties than is assumed by approaches @@ -350,34 +341,33 @@ the Flash Player runtime to get rid of them. Trackers were searching for a new way to store identifiers because users became increasingly aware of the dangers posed by \gls{HTTP} cookies and reacted by taking countermeasures. -\citeauthor{soltaniFlashCookiesPrivacy2009} -\cite{soltaniFlashCookiesPrivacy2009} were the first to report on the usage of +\citet{soltaniFlashCookiesPrivacy2009} were the first to report on the usage of Flash cookies by advertisers and popular web sites. While surveying the top 100 web sites at the time, they found that 54\% of them used Flash cookies. Some -web sites were setting Flash cookies as well as \gls{HTTP} cookies with the same -values, suggesting that Flash cookies serve as backup to \gls{HTTP} cookies. -Several web sites were found using Flash cookies to respawn already deleted -\gls{HTTP} cookies, even across domains. \citeauthor{acarWebNeverForgets2014} -\cite{acarWebNeverForgets2014} automated detecting Flash cookies and access to +web sites were setting Flash cookies as well as \gls{HTTP} cookies with the +same values, suggesting that Flash cookies serve as backup to \gls{HTTP} +cookies. Several web sites were found using Flash cookies to respawn already +deleted \gls{HTTP} cookies, even across domains. +\citet{acarWebNeverForgets2014} automated detecting Flash cookies and access to them by monitoring file access with the GNU/Linux \emph{strace} tool \cite{michaelStraceLinuxManual2020}. This allowed them to acquire data about Flash cookies respawning \gls{HTTP} cookies. Their results show that six of the top 100 sites use Flash cookies for respawning. Even though Flash usage has declined during the last few years thanks to the -development of the HTML5 standard, \citeauthor{buhovFLASH20thCentury2018} -\cite{buhovFLASH20thCentury2018} have shown that despite major security flaws, -Flash content is still served by 7.5\% of the top one million web sites (2017). -The W3Techs Web Technology Survey shows a similar trend and also offers an -up-to-date measurement of 2.7\% of the top ten million web sites for the year -2020 \cite{w3techsHistoricalYearlyTrends2020}. Due to the security concerns with -using Flash, Google's popular video sharing platform YouTube switched by default -to the HTML5