Rename to appchk, fix typos, and remove help needed
This commit is contained in:
@@ -24,12 +24,11 @@ header h1 {
|
|||||||
font-family: "Raleway", sans-serif;
|
font-family: "Raleway", sans-serif;
|
||||||
font-size: 1.4em;
|
font-size: 1.4em;
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: .9px;
|
letter-spacing: .9px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
header h1 span { font-size: .7em; color: silver; }
|
header h1 span { font-size: .7em; color: silver; text-transform: uppercase; }
|
||||||
header ul { padding: 0; }
|
header ul { padding: 0; }
|
||||||
main {
|
main {
|
||||||
padding: .1em 2em 1.5em;
|
padding: .1em 2em 1.5em;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ def write_temporary_lists():
|
|||||||
}]}, pretty=True)
|
}]}, pretty=True)
|
||||||
mylib.json_write(two, {
|
mylib.json_write(two, {
|
||||||
"name": "iOS 14 Study: Selected Apps",
|
"name": "iOS 14 Study: Selected Apps",
|
||||||
"apps": ["com.google.chrome.ios", "com.google.chrome.ios.2", "com.ingka.ikea.app", "com.ingka.ikea.app.2", "com.microsoft.skype.teams", "com.microsoft.skype.teams.2", "com.Atinon.PassOver", "com.Atinon.PassOver.2", "com.Celltop.SpiralRoll", "com.Celltop.SpiralRoll.2", "com.redforcegames.stack.colors", "com.redforcegames.stack.colors.2"]
|
"apps": ["com.google.chrome.ios", "com.google.chrome.ios.2", "com.ingka.ikea.app", "com.ingka.ikea.app.2", "com.mcdonalds.mobileapp", "com.mcdonalds.mobileapp.2", "com.microsoft.skype.teams", "com.microsoft.skype.teams.2", "com.Atinon.PassOver", "com.Atinon.PassOver.2", "com.Celltop.SpiralRoll", "com.Celltop.SpiralRoll.2", "com.redforcegames.stack.colors", "com.redforcegames.stack.colors.2"]
|
||||||
}, pretty=True)
|
}, pretty=True)
|
||||||
|
|
||||||
|
|
||||||
@@ -116,10 +116,11 @@ def move_ios14():
|
|||||||
for fname, json in mylib.enum_jsons(bid):
|
for fname, json in mylib.enum_jsons(bid):
|
||||||
fiil = os.path.basename(fname)
|
fiil = os.path.basename(fname)
|
||||||
try:
|
try:
|
||||||
if json['ios'].split('.')[0] == '14':
|
ios = json['ios'].split('.')[0]
|
||||||
mylib.mv(fname, mylib.path_add(diir, '2', fiil))
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
ios = '14'
|
||||||
|
if ios == '14' and os.path.getmtime(fname) > 1600258000:
|
||||||
|
mylib.mv(fname, mylib.path_add(diir, '2', fiil))
|
||||||
write_temporary_lists()
|
write_temporary_lists()
|
||||||
|
|
||||||
# move_ios14()
|
# move_ios14()
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ def gen_results(base_dir, c_apps, c_domains, title):
|
|||||||
print(' {} logs'.format(c_logs))
|
print(' {} logs'.format(c_logs))
|
||||||
HTML.write(base_dir, '''
|
HTML.write(base_dir, '''
|
||||||
<h2>{}</h2>
|
<h2>{}</h2>
|
||||||
<p>The AppCheck database currently contains <b>{:,} apps</b> with a total of <b>{:,} unique domains</b>.</p>
|
<p>The appchk database currently contains <b>{:,} apps</b> with a total of <b>{:,} unique domains</b>.</p>
|
||||||
<p>Collected through <b>{:,} recordings</b> with <b>{:,} individual requests</b>.</p>
|
<p>Collected through <b>{:,} recordings</b> with <b>{:,} individual requests</b>.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>List of <a href="/index/apps/">Apps</a></li>
|
<li>List of <a href="/index/apps/">Apps</a></li>
|
||||||
@@ -112,8 +112,8 @@ def process(app_count, dom_count, inclStatic=False):
|
|||||||
gen_redirect() # root redirect.html?id=my.bundle.id
|
gen_redirect() # root redirect.html?id=my.bundle.id
|
||||||
print(' 404.html')
|
print(' 404.html')
|
||||||
gen_404()
|
gen_404()
|
||||||
print(' /help/') # dynamic content
|
# print(' /help/') # dynamic content
|
||||||
gen_help()
|
# gen_help()
|
||||||
print(' /results/') # dynamic content
|
print(' /results/') # dynamic content
|
||||||
gen_results(mylib.path_out('results'), app_count, dom_count,
|
gen_results(mylib.path_out('results'), app_count, dom_count,
|
||||||
title='Results')
|
title='Results')
|
||||||
@@ -121,4 +121,4 @@ def process(app_count, dom_count, inclStatic=False):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
process(-1, -1)
|
process(-1, -1, inclStatic=True)
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=0.75" />
|
<meta name="viewport" content="width=device-width, initial-scale=0.75" />
|
||||||
<script type="text/javascript" src="/static/script.js?5"></script>
|
<script type="text/javascript" src="/static/script.js?6"></script>
|
||||||
<title>#_TITLE_#AppCheck: Privacy Monitor</title>
|
<title>#_TITLE_#appchk: Privacy Monitor</title>
|
||||||
<link rel="stylesheet" type="text/css" href="/static/style.css?5">
|
<link rel="stylesheet" type="text/css" href="/static/style.css?6">
|
||||||
<link rel="stylesheet" type="text/css" href="/static/fonts/font.css">
|
<link rel="stylesheet" type="text/css" href="/static/fonts/font.css">
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-touch-icon.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-touch-icon.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png">
|
||||||
@@ -22,12 +22,12 @@
|
|||||||
<nav>
|
<nav>
|
||||||
<ul id="main-nav">
|
<ul id="main-nav">
|
||||||
<li><a href="/index/apps/">Apps</a></li>
|
<li><a href="/index/apps/">Apps</a></li>
|
||||||
|
<li><a href="/category/">Categories</a></li>
|
||||||
<li><a href="/results/">Results</a></li>
|
<li><a href="/results/">Results</a></li>
|
||||||
<li><a href="/help/">Help needed</a></li>
|
|
||||||
<li><a class="no-ul" href="https://github.com/relikd/appcheck" target="_blank"><img src="/static/github.svg" alt="GitHub"></a></li>
|
<li><a class="no-ul" href="https://github.com/relikd/appcheck" target="_blank"><img src="/static/github.svg" alt="GitHub"></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<h1><a class="no-ul" href="/"><img src="/static/logo.svg" alt="logo" width="50" height="50"> AppCheck <span>– Privacy Monitor</span></a></h1>
|
<h1><a class="no-ul" href="/"><img src="/static/logo.svg" alt="logo" width="50" height="50"> appchk <span>– Privacy Monitor</span></a></h1>
|
||||||
</header>
|
</header>
|
||||||
<main>
|
<main>
|
||||||
#_CONTENT_#
|
#_CONTENT_#
|
||||||
|
|||||||
@@ -1,37 +1,28 @@
|
|||||||
<h2>Research Project</h2>
|
<h2>Research Project</h2>
|
||||||
<div class="squeeze">
|
<div class="squeeze">
|
||||||
<p>
|
<p>
|
||||||
The AppCheck research project is an effort to shine light on the background activity of iOS apps.
|
The AppCheck research project is an effort to shine a light on the background activity of iOS apps, making the otherwise hidden network connections visible to everyone.
|
||||||
Making the otherwise hidden network connections visible to everyone.
|
|
||||||
The goal is to make privacy more accessible to the general public.
|
The goal is to make privacy more accessible to the general public.
|
||||||
And thus make incentives for app developers to respect the users privacy.
|
And thus create incentives for app developers to respect users' privacy.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
We want to offer users, activists, data protection authorities, and data protection officers an easily accessible and flexible tool to assess the privacy measures of iOS applications.
|
We want to offer users, activists, data protection authorities, and data protection officers an easily accessible and flexible tool to assess the privacy measures of iOS applications.
|
||||||
</p>
|
</p>
|
||||||
<span>AppCheck allows users to:</span>
|
<span>AppCheck allows users to:</span>
|
||||||
<ul>
|
<ul>
|
||||||
<li>get a visiual overview over an apps communication signature</li>
|
<li>get a visual overview of an apps communication signature</li>
|
||||||
<li>assess how an app ranks within its peer group or category</li>
|
<li>assess how an app ranks within its peer group or category</li>
|
||||||
<li>influence the ranking according to their own preferences</li>
|
<li>influence the ranking according to their preferences</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="note">
|
|
||||||
<h4>Current Notice:</h4>
|
|
||||||
<p>
|
|
||||||
We have an ongoing <b>research project</b>. Your help is highly appreciated.
|
|
||||||
<br>
|
|
||||||
For more infos follow <a href="/help/">this link</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Results</h2>
|
<h2>Results</h2>
|
||||||
<div class="squeeze">
|
<div class="squeeze">
|
||||||
<p>
|
<p>
|
||||||
This website is the front-end for the evaluated data.
|
This website is the front-end of the evaluated data.
|
||||||
All app recordings are collected and displayed here.
|
All app recordings are collected and displayed here.
|
||||||
In a visual way it shows you how many known trackers an app uses.
|
Visually, it shows you how many known trackers an app uses.
|
||||||
How apps compare to each other, and if there are privacy friendly alternatives.
|
How apps compare to each other, and if there are privacy-friendly alternatives.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
You can go to <a href="/index/apps/">all apps</a> directly.
|
You can go to <a href="/index/apps/">all apps</a> directly.
|
||||||
@@ -55,7 +46,7 @@
|
|||||||
<h3>How does it work?</h3>
|
<h3>How does it work?</h3>
|
||||||
<p class="squeeze">
|
<p class="squeeze">
|
||||||
AppCheck creates a local VPN proxy to intercept all network connections.
|
AppCheck creates a local VPN proxy to intercept all network connections.
|
||||||
For each connection AppCheck looks into the DNS headers only, namely the domain names.
|
For each connection, AppCheck looks into the DNS headers only, namely the domain names.
|
||||||
These domain names are logged in the background while the VPN is running.
|
These domain names are logged in the background while the VPN is running.
|
||||||
AppCheck does not need to be active all the time.
|
AppCheck does not need to be active all the time.
|
||||||
</p>
|
</p>
|
||||||
@@ -63,16 +54,15 @@
|
|||||||
<h3>What about privacy?</h3>
|
<h3>What about privacy?</h3>
|
||||||
<p class="squeeze">
|
<p class="squeeze">
|
||||||
Your data belongs to you.
|
Your data belongs to you.
|
||||||
Therefore, monitoring and analysis takes place on your device only.
|
Therefore, monitoring takes place on your device only.
|
||||||
AppCheck learns only the destination addresses, not the actual data that is exchanged.
|
AppCheck learns only the destination addresses, not the actual data that is exchanged.
|
||||||
The app does not share any data with us or any other third-party – unless you choose to.
|
The app does not share any data with us or any other third-party – unless you choose to.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>How can I contribute?</h3>
|
<h3>How can I contribute?</h3>
|
||||||
<p class="squeeze">
|
<p class="squeeze">
|
||||||
AppCheck allows you to record app specific activity.
|
AppCheck allows you to record app-specific activity.
|
||||||
You can share these recordings with us and the community.
|
You can share these recordings with the community; it can help you and others avoid phony applications, even before you install an app.
|
||||||
This can help you and others avoid phony applications; even before you install an app.
|
|
||||||
</p>
|
</p>
|
||||||
<a id="get-appcheck" class="no-ul" href="https://testflight.apple.com/join/9jjaFeHO" target="_blank">
|
<a id="get-appcheck" class="no-ul" href="https://testflight.apple.com/join/9jjaFeHO" target="_blank">
|
||||||
<img class="app-icon" src="/static/appcheck.svg" alt="app-icon" width="30" height="30">
|
<img class="app-icon" src="/static/appcheck.svg" alt="app-icon" width="30" height="30">
|
||||||
@@ -88,12 +78,10 @@
|
|||||||
<h2>Limitations</h2>
|
<h2>Limitations</h2>
|
||||||
<div class="squeeze">
|
<div class="squeeze">
|
||||||
<p>
|
<p>
|
||||||
AppCheck can not detect if a network activity belongs to one app or another.
|
Due to the network extension's technical limitations, AppCheck can not detect if a network activity belongs to one app or another.
|
||||||
This is due to technical limitations of the VPN network extension.
|
It may result in wrong attributions.
|
||||||
Therefore these results can't be taken 100 % certain.
|
The attributions can be minimized by running only a single application during recording and filter results before contributing.
|
||||||
These <b>wrong attributions</b> can be minimized by running only a single application at a time (during recording).
|
The evaluation website will ignore requests that appear only in a small subset of recordings.
|
||||||
Further, results are filtered prior to publication.
|
|
||||||
Requests that are contained only in a small subset of recordings are ignored.
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
This project is limited to <b>iOS applications</b>.
|
This project is limited to <b>iOS applications</b>.
|
||||||
|
|||||||
Reference in New Issue
Block a user