Compare commits

...
Sign in to create a new pull request.

52 commits

Author SHA1 Message Date
5f0265bebc
update README to reflect infrastructure changes
All checks were successful
/ build (pull_request) Successful in 1m49s
/ cleanup-staging (pull_request) Successful in 2s
/ build (push) Successful in 1m39s
2025-07-25 11:36:47 +02:00
a9c93cdedc
update theme to make website build
All checks were successful
/ build (pull_request) Successful in 1m56s
/ cleanup-staging (pull_request) Successful in 2s
/ build (push) Successful in 1m48s
2025-07-23 20:58:06 +02:00
f57ca4815a
introduce Forgejo Actions CI for deploying website and staging envs 2025-07-23 20:58:03 +02:00
w1ntermute
2f46e63071 new entry for chatcontrol 2024-06-18 20:18:23 +02:00
w1ntermute
a2bd0662df
Finished software verification
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-04-01 19:38:07 +02:00
w1ntermute
6c39b0466f new workshops
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-03-10 22:37:59 +01:00
w1ntermute
47bb177588 how to software verification
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-03-10 19:41:09 +01:00
w1ntermute
8d655b01ee dfiy auth-game link
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-02-02 15:15:25 +01:00
w1ntermute
e27c950a48 passkeys
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-02-02 15:14:03 +01:00
w1ntermute
7725764039 neues Eintrag für Passwortmanager und 2. Faktor
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-02-02 15:08:18 +01:00
w1ntermute
0241346da6 Termine im ersten Quartal 2024 2024-01-14 18:36:11 +00:00
w1ntermute
742fe9cdb8 optional MicroG
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-01-12 15:44:56 +01:00
w1ntermute
95152023b9 more divest information
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-01-12 15:33:53 +01:00
w1ntermute
db6bebe586 What is microg
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-01-12 15:30:55 +01:00
w1ntermute
6131fec2a5 added proton
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2024-01-12 15:10:09 +01:00
w1ntermute
e3c4d209f6 Workshop um ein Smartphone ohne google zu erhalten
Dieser Workshop soll alternativen aufzeigen. Es ist ein eher groß gefasster Workshop deswegen keine Anleitungen zur Installation oder Ähnliches.
2024-01-12 11:00:03 +00:00
w1ntermute
1ef0496c44 new termin in december
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-11-20 18:06:50 +01:00
w1ntermute
822d0b65d0 We now have a calendar
People can now use the calendar to get notifications about new events.

Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-11-19 19:36:35 +01:00
w1ntermute
c0fd7adcc0 removed twitter
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-11-19 19:19:56 +01:00
w1ntermute
efaf34509d slides as artifacts because of csp
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-10-06 21:07:37 +02:00
w1ntermute
e55fd234dd added first freitalk talk
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-10-06 20:54:35 +02:00
w1ntermute
fbc0fac8a5 added new future dates
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2023-10-03 13:48:44 +02:00
w1ntermute
d52ee29b59 Added day of open hackspace 2023-03-17 12:17:03 +00:00
w1ntermute
14c44c1162 Added day of open hackspace 2023-03-17 12:11:35 +00:00
Jan Girlich
313c5ae713
Überreste der alten Webseite entfernt 2022-11-02 07:42:19 +01:00
Jan Girlich
6920a97fe6
update theme 2022-11-02 07:07:26 +01:00
w1ntermute
0e72a86a66 Added presentation for oktober 2022-10-27 19:35:04 +02:00
w1ntermute
6d30ab21fa Sicherheit für Privatpersonen 2022-10-12 17:47:39 +00:00
w1ntermute
2300396e67
added "tag des offenen Hackerspace" entry
Signed-off-by: w1ntermute <gitlab@mail.smarquardt.space>
2022-08-03 23:07:57 +02:00
Cristina
2abe9779a3 Update 2022-Mai.md 2022-05-15 11:46:51 +00:00
Cristina
703f6502a3 Add new file 2022-05-15 11:37:01 +00:00
Sven Marquardt
3534b0f304
fixed calculation version
Signed-off-by: Sven Marquardt <dev@mail.smarquardt.space>
2022-03-30 22:15:47 +02:00
Sven Marquardt
074b827d45
fix download link
Signed-off-by: Sven Marquardt <dev@mail.smarquardt.space>
2022-03-30 18:49:53 +02:00
Sven Marquardt
4fdddcafcb
added Nachhaltige-IT presentation
Signed-off-by: Sven Marquardt <dev@mail.smarquardt.space>
2022-03-30 18:39:28 +02:00
Cristina
4a27cdfa1e Update 2022-maerz.md 2022-03-05 14:39:06 +00:00
Cristina
69f1bea052 Update 2022-maerz 2022-03-05 14:25:54 +00:00
Cristina
2e634dec84 Add new file for webinar 2022-03-05 14:22:14 +00:00
Cristina
6ae537783e Update 2022-januar.md 2022-01-25 20:35:31 +00:00
Cristina
c35668d3a2 Update webinar.md 2022-01-19 18:46:56 +00:00
Cristina
2da1cfbe08 Update webinar.md 2022-01-19 18:42:43 +00:00
Cristina
a50c331504 Update webinar.md 2022-01-19 18:36:40 +00:00
Cristina
ae16ae8af0 Update config.toml 2022-01-15 11:28:06 +00:00
Cristina
537f87c5ed Update webinar.md 2022-01-15 11:21:38 +00:00
Cristina
2be8b6d612 Update 2022-januar.md 2022-01-15 11:19:47 +00:00
Cristina
d6e216a8f9 Update 2022-januar 2022-01-12 20:17:11 +00:00
Cristina
f08c0d4ed3 add to schedule 2022-01-12 20:16:16 +00:00
Jan Girlich
66283603c0
Folien zu Passwörter-Vortrag hochgeladen 2021-11-27 17:10:52 +01:00
soma
dc09101b8a Update webinar.md november 2021 2021-11-07 19:15:38 +00:00
Cristina
ee668c8ad0 Update 2021-november.md 2021-11-07 17:31:06 +00:00
Cristina
1225ac2d9e Update 2021-november 2021-11-07 16:28:02 +00:00
Cristina
f9112aa7fd Add file for nov party 2021-11-07 16:27:02 +00:00
Jan Girlich
c6fd53ddd7
Erwähnung der Ankündigung-ML auf Teilnehmen-Seite 2021-07-17 11:22:57 +02:00
140 changed files with 1104 additions and 14822 deletions

View file

@ -0,0 +1,24 @@
on:
pull_request:
types:
- closed
jobs:
cleanup-staging:
runs-on: docker
container:
image: code.forgejo.org/oci/node:20-bookworm
steps:
- name: Pipeline info PR
run: |
echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
- name: Staging Deployment - Prepare keys
run: |
echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
chmod 400 deploykey.priv
echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts
- name: Staging Deployment - Remove PR from staging
run: |
ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts' cryptoparty-website-deploy@public-web-static-intern.hamburg.ccc.de -t "rm -r /var/www/staging.cryptoparty-hamburg.de/pr${{ github.event.pull_request.number }}/"

View file

@ -0,0 +1,82 @@
on:
push:
branches:
- master
pull_request:
env:
TZ: Europe/Berlin
jobs:
build:
runs-on: docker
container:
image: docker.io/hugomods/hugo:0.147.9
steps:
- name: Pipeline info
run: |
echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
- name: Install packages
run: |
apk update
# For CI actions.
apk add nodejs-current
# For website build.
apk add tzdata coreutils curl jq git
# For uploading.
apk add rsync openssh
- uses: actions/checkout@v4
with:
fetch-depth: 0 # pull full history for page lastmod by git commit date
submodules: recursive
- name: Patch baseURL (staging only)
if: github.ref_name != 'master'
run: |
sed -i 's#baseurl = "https://cryptoparty-hamburg.de"#baseurl = "https://staging.cryptoparty-hamburg.de/pr${{ github.event.pull_request.number }}/"#' config.toml
- name: Build website (prod)
if: (github.event_name == 'push' || github.event_name == 'schedule') && github.ref_name == 'master'
run: |
hugo
- name: Build website (staging)
if: github.ref_name != 'master'
run: |
hugo --buildFuture --buildDrafts
- name: Deploy - Prepare keys
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'schedule'
run: |
echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
chmod 400 deploykey.priv
echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts
- name: Deploy - Upload PR to staging
if: github.event_name == 'pull_request'
run: |
echo "Deploying to staging.cryptoparty-hamburg.de/pr${{ github.event.pull_request.number }}"
rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ cryptoparty-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/staging.cryptoparty-hamburg.de/pr${{ github.event.pull_request.number }}/
- name: Deploy - Add comment to PR with staging URL
if: github.event_name == 'pull_request' && github.event.action == 'opened'
run: |
curl \
-X POST \
${{ github.event.pull_request.base.repo.url }}/issues/${{ github.event.pull_request.number }}/comments \
-H "Content-Type: application/json" \
-H "Authorization: token $GITHUB_TOKEN" \
--data '{ "body": "You can view your changes at https://staging.cryptoparty-hamburg.de/pr${{ github.event.pull_request.number }}/" }'
- name: Deploy - Upload to prod
if: (github.event_name == 'push' || github.event_name == 'schedule') && github.ref_name == 'master'
run: |
rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ cryptoparty-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/cryptoparty-hamburg.de/
- uses: actions/upload-artifact@v3
if: github.event_name == 'pull_request'
with:
name: website-build
path: public/

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
slides
.DS_Store
public
/.hugo_build.lock

View file

@ -1,32 +0,0 @@
image: debian:buster-slim
before_script:
- apt update -qq
stages:
- build
- deploy
build_job:
stage: build
script:
- DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 make hugo
- make
artifacts:
paths:
- public
variables:
GIT_SUBMODULE_STRATEGY: normal
deploy_job:
stage: deploy
script:
- DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 openssh-client rsync
- umask 0077
- mkdir $HOME/.ssh
- eval $(ssh-agent -s)
- echo "$RSYNC_TARGET_SECRET_KEY" | ssh-add -
- echo "[$RSYNC_TARGET_HOST]:$RSYNC_TARGET_PORT $RSYNC_TARGET_HOST_KEY" > $HOME/.ssh/known_hosts
- rsync -av --delete -e "ssh -p $RSYNC_TARGET_PORT" public/* "$RSYNC_TARGET_USER@$RSYNC_TARGET_HOST:/"
only:
- master
- hugo

View file

@ -11,12 +11,12 @@ Linux Distributions, install them like this:
Now you can clone the repository:
$ git clone ssh://git@gitlab.hamburg.ccc.de:4242/cryptoparty/website-content.git
$ git clone ssh://forgejo@git.hamburg.ccc.de/Cryptoparty/cryptoparty-website.git
If this doesn't work, you may need to add a ssh authentication key to
your gitlab profile on [this page]:
your Forgejo profile on [this page]:
[this page]: https://gitlab.hamburg.ccc.de/profile/keys
[this page]: https://git.hamburg.ccc.de/user/settings/keys
Furthermore, you need to checkout the submodules:
@ -64,44 +64,24 @@ If you are satisfied, add it to the branch, and push it to the server:
$ git commit -m 'Added new post.'
$ git push
Then, [create a merge request] on gitlab. Press the blue button
labeled `Create merge request`. On the following site, press the
green `Submit merge request` button, then press the blue button
labeled `Merge once pipeline succeeds`. Your change will be published
once the continuous integration setup confirmed the validity of the
change.
Then, [create a pull request] on Forgejo. Press the button labeled
`New pull request`. On the following site, select the branch you want to merge
(`my-new-post`) in the `pull from:` dropdown, press the `New pull request`
button and then finally the `Create pull request` button. The CI will now build
a website with your changes. Once that's done and you verified everything looks
alright, you can then merge the pull request to publish the change.
[create a merge request]: https://gitlab.hamburg.ccc.de/cryptoparty/website-content/merge_requests
[create a pull request]: https://git.hamburg.ccc.de/Cryptoparty/cryptoparty-website/pulls
How this is set up on the server
================================
On the server, the website is built using gitlab's ci runner, see
`.gitlab-ci.yml`. To deploy the site, the ci job rsyncs it to the
host. For this purpose, a restricted user is created:
The website gets built and deployed using Forgejo Actions, see
`.forgejo/workflows/deploy.yaml`. It's using the same mechanism for hosting and
deployment as the [CCCHH Website] and is therefore using the CCCHH
infrastructure, see [ansible-infra] and [nix-infra].
# adduser --system --home /var/www/www-data-rsync --shell /bin/sh --disabled-password --ingroup www-data www-data-rsync
[CCCHH Website]: https://git.hamburg.ccc.de/CCCHH/ccchh-website
Create a key and restrict it to invoke the restricted-rsync script:
# mkdir /var/www/www-data-rsync/.ssh
# chmod 700 /var/www/www-data-rsync/.ssh
# ssh-keygen -t ed25519 -C 'Used for website deployment.' -f www-data-rsync-id_ed25519
# echo 'command="/usr/local/bin/rrsync /var/www/html --safe-links",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOBBpthbSQ3HgOkhoBwsrZCA9VMX7hRftB5t6LePqtr3 Used for website deployment.' > /var/www/www-data-rsync/.ssh/authorized_keys
# chmod 400 /var/www/www-data-rsync/.ssh/authorized_keys
# chown -R www-data-rsync:www-data /var/www/www-data-rsync/.ssh
Copy the restricted-rsync script from the docs and make it executable:
# cp /usr/share/doc/rsync/scripts/rrsync /usr/local/bin/
# chmod +x /usr/local/bin/rrsync
Finally, allow www-data-rsync to write to the document root:
# chown root:www-data /var/www/html
# chmod g+w /var/www/html
The last bit is to supply the generated secret to gitlab's ci runner
via RSYNC_TARGET_SECRET_KEY. Other information that needs to be
provided are RSYNC_TARGET_HOST, RSYNC_TARGET_PORT,
RSYNC_TARGET_HOST_KEY, and RSYNC_TARGET_USER.
[ansible-infra]: https://git.hamburg.ccc.de/CCCHH/ansible-infra
[nix-infra]: https://git.hamburg.ccc.de/CCCHH/nix-infra

File diff suppressed because one or more lines are too long

1
bootstrap.min.css vendored

File diff suppressed because one or more lines are too long

View file

@ -1,433 +0,0 @@
section {
margin-top: 60px;
padding-top: 100px;
}
/* index */
.tooltip-inner {
max-width: 500px;
}
.hero-unit {
padding-bottom: 5px;
background-color: #F3F3F3;
border: 1px solid #ddd;
text-align: center;
}
.hero-unit h1,
.hero-unit p {
margin-bottom: 15px;
}
#social {
display: inline-block;
margin-top: 45px;
text-align: center;
}
#gh-star {
margin-right: 10px;
}
.twitter-share-button {
margin-right: 15px;
}
.rss-button {
width: 40px;
height: 14px;
font-size: 11px;
line-height: 14px;
font-weight: bold;
margin: 0 0 10px;
padding: 2px 5px 2px 4px;
}
.index h3 {
text-align: center;
font-size: 20px;
}
#ticker {
margin-top: 40px;
margin-bottom: 10px;
font-size: 14px;
line-height: 1.4;
}
.about {
margin-top: 40px;
margin-bottom: 40px;
}
.about > div {
margin-bottom: 20px;
}
.about h3 {
margin: 0;
text-align: left;
}
.about i {
margin-right: 8px;
font-size: 1.3em;
}
#gallery {
padding-top: 60px;
}
.thumbnail {
margin-bottom: 20px;
background-color: #f3f3f3;
background-color: rgba(0, 0, 0, 0.05);
}
.thumbnail img {
width: 100%;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.thumbnail .caption {
color: inherit;
}
.thumbnail .caption p {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.thumbnail h3 {
text-align: left;
margin-bottom: 0;
}
.thumbnail .btn-toolbar {
margin-top: 15px;
text-align: right;
}
.more {
margin-top: 40px;
margin-bottom: 20px;
text-align: center;
}
.links {
margin-bottom: 20px;
}
.links > a {
margin-right: 10px;
}
.bsa {
float: right;
max-width: 400px;
padding: 0;
}
body .one .bsa_it_ad {
margin-bottom: -10px;
padding: 25px;
background: none;
border: none;
font-family: inherit;
color: inherit;
}
body .one .bsa_it_ad .bsa_it_t,
body .one .bsa_it_ad .bsa_it_d {
color: inherit;
font-size: inherit;
}
body .one .bsa_it_p {
display: none;
}
.bsap img {
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
#footer {
margin-bottom: 20px;
}
#footer .links a {
margin-right: 10px;
}
@media (max-width: 480px) {
.hero-unit {
padding: 20px 20px 0;
margin: 0 0 20px;
}
.hero-unit h1 {
font-size: 36px;
}
.hero-unit iframe {
margin-right: 0 !important;
}
#social {
margin-top: 0px;
margin-bottom: 20px;
}
#social > span {
display: block;
}
#ticker {
margin-top: 0;
}
.about {
margin-top: 0;
}
.about h3 {
margin-top: 30px;
}
.about p {
margin-bottom: 0;
}
.thumbnail .btn {
font-size: 15px;
}
.modal {
position: fixed !important;
top: 25% !important;
}
}
@media (min-width: 481px) and (max-width: 767px) {
.hero-unit {
margin-top: 0;
padding: 30px;
}
.about {
margin-top: 0;
}
}
@media (max-width: 767px) {
section {
padding-top: 20px;
}
.bsa {
float: none;
}
}
@media (max-width: 979px) and (min-width: 768px) {
.index .navbar {
margin-bottom: 0;
}
.hero-unit {
border-radius: 0;
}
section {
padding-top: 20px;
}
.thumbnail .btn {
padding: 6px 10px;
font-size: 14px;
}
}
@media (min-width: 980px) {
.index {
padding-top: 40px;
}
.preview {
padding-top: 100px;
}
}
/* preview */
.subhead {
padding-bottom: 0;
margin-bottom: 9px;
}
.subhead h1 {
font-size: 54px;
}
.subhead > div:first-child {
min-height: 200px;
}
/* subnav */
.subnav {
margin-bottom: 60px;
width: 100%;
height: 36px;
background-color: #eeeeee; /* Old browsers */
background-repeat: repeat-x; /* Repeat the gradient */
background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
border: 1px solid #e5e5e5;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.subnav .nav {
margin-bottom: 0;
}
.subnav .nav > li > a {
margin: 0;
padding-top: 11px;
padding-bottom: 11px;
border-left: 1px solid #f5f5f5;
border-right: 1px solid #e5e5e5;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.subnav .nav > .active > a,
.subnav .nav > .active > a:hover {
padding-left: 13px;
color: #777;
background-color: #e9e9e9;
border-right-color: #ddd;
border-left: 0;
-webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
-moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
}
.subnav .nav > .active > a .caret,
.subnav .nav > .active > a:hover .caret {
border-top-color: #777;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
border-left: 0;
padding-left: 12px;
-webkit-border-radius: 4px 0 0 4px;
-moz-border-radius: 4px 0 0 4px;
border-radius: 4px 0 0 4px;
}
.subnav .nav > li:last-child > a {
border-right: 0;
}
.subnav .dropdown-menu {
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}
@media (max-width: 767px) {
.subnav {
position: static;
top: auto;
z-index: auto;
width: auto;
height: auto;
background: #fff; /* whole background property since we use a background-image for gradient */
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.subnav .nav > li {
float: none;
}
.subnav .nav > li > a {
border: 0;
}
.subnav .nav > li + li > a {
border-top: 1px solid #e5e5e5;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
}
}
@media (min-width: 980px) {
.subnav-fixed {
position: fixed;
top: 40px;
left: 0;
right: 0;
z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
border-color: #d5d5d5;
border-width: 0 0 1px; /* drop the border on the fixed edges */
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
-moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
}
.subnav-fixed .nav {
width: 938px;
margin: 0 auto;
padding: 0 1px;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
}
@media (min-width: 1210px) {
.subnav-fixed .nav {
width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
}
}

View file

@ -52,7 +52,7 @@ pygmentsCodefencesGuessSyntax = true
# github = "username"
# gitlab = "username"
# bitbucket = "username"
twitter = "CryptopartyHH"
#twitter = "CryptopartyHH"
# reddit = "username"
# linkedin = "username"
# xing = "username"
@ -94,6 +94,19 @@ pygmentsCodefencesGuessSyntax = true
url = "page/ueber-uns/"
weight = 4
[[menu.main]]
name = "Webinar"
url = "webinar"
weight = 2
[[menu.main]]
name = "Kalender"
url = "page/kalender"
weight = 5
[[menu.main]]
name="Workshops"
url="blog/"
weight = 6
# [[menu.main]]
# identifier = "samples"
# name = "Samples"

View file

@ -0,0 +1,307 @@
---
title: "Passwortmanager auf dem Smartphone"
author: "w1ntermute"
type: "blog"
date: 2024-02-01
subtitle: ""
image: ""
tags: [password,blog]
---
In diesem Blogpost möchten wir euch erklären, wie ein paar der wichtigsten Passwortmanager funktionieren. Am ende wird es auch ein kleines Spiel geben, um euer Wissen zu Prüfen.
<!-- more -->
## Passwörter
![Das Bild zeigt ein hochdetailliertes, futuristisches Schloss mit einem glänzenden, metallischen Finish und komplexen technologischen Details. Das Design des Schlosses ist modern und strahlt eine fortschrittliche Ästhetik aus, mit klaren Linien, integrierten digitalen Schnittstellen und möglicherweise biometrischen Sicherheitsmerkmalen. Ein Schlüssel, der ebenfalls ein High-Tech-Design aufweist, mit Elementen wie LED-Lichtern oder holografischen Projektionen, befindet sich im Vordergrund und scheint das Schloss zu öffnen. Das Schloss und der Schlüssel sind beleuchtet durch Umgebungslicht in Neonfarben, die von ihren metallischen Oberflächen reflektiert werden und eine moderne, sichere digitale Atmosphäre erzeugen. Der Hintergrund ist dunkel gehalten, um die Szene für den Kontext einer Cryptoparty zu passen.](/img/password_manager/schloss.png "Bild generiert durch OpenAI's DALL·E.")
Unter Passwörter verstehen wir eine reihenfolge von Charakteren, die geheim bleiben sollen. Etwas das nur für uns bestimmt ist. Niemand anderes soll diese sehen.
Deswegen ist umso wichtiger diese zu Schützen. Und hierfür verwenden wir Passwortmanager. Man kann auch wahlweise ein Notizbuch nehmen. Allerdings werden wir hier auf die Nutzung mittels Passwortmanager eingehen.
## Warum überhaupt?
Wer hat das nicht schon mal gehört. Bitte wechselt euer Passwort regelmäßig. Diese Anweisung ist seit vielen Jahren quatsch[^1] und wird ersetzt durch "Bitte benutzt pro Service ein Passwort". Das heißt, ihr sollt pro Website und pro Service ein Passwort genau einmal benutzen. Und dieses nicht für mehrere Dienste. Dadurch macht ihr es Personen schwerer bereits öffentliche Passwörter bei anderen Diensten auszuprobieren. Damit wir nicht den überblick verlieren über diese ganzen Passwörter, helfen Passwortmanager dabei immer die richtigen Passwörter zu benutzen. Diese helfen auch sichere Passwörter zu erstellen und auch zu überwachung, ob mein Passwort veröffentlicht wurde. Zusätzlich schützen diese davor, Passwörter in die falsche Website zu tippen.
## Passwortmanager
![Das Logo von KeepassXC](/img/password_manager/keepassxc.png "Quelle keepassxc.org")
Es gibt eine vielzahl von Passwortmanagern die alle gut sind. Wir werden hier auf insgesamt 3 eingehen. Und zwar [Bitwarden](https://bitwarden.com/de-DE/), [iOS Schlüsselbund](https://support.apple.com/de-de/HT204085) und [Keepassxc](https://www.keepassdx.com/). Für den zweiten Faktor werden wie [Aegis](https://getaegis.app/).
Warum diese drei? Ganz einfach, weil wir damit so ziemlich alle Arten von Passwortmanagern haben. Bitwarden ist hierbei ein Service den man sich einkaufen kann. Hier werden die Schlüssel von einer dritten Firma für uns zwischen Geräten synchronisiert wenn wir dies wünschen. Der Schlüsselbund von iOS ist eingebaut in Apple-Betriebssystemen und gehört damit fest zum Gerät. Dieser kann auch Passwörter zwischen den Geräten synchronisieren. Keepassdx gehört zur keepass Familie wie auch [KeepassXC](https://keepassxc.org/) und ist ein reines offline Programm. Hier muss sich die Person selber um Backups und synchronisierung kümmern.
## Masterpasswort
![Das Comic besteht aus vier Panels. Im ersten Panel wird ein traditioneller Ansatz zur Passworterstellung gezeigt, der die Verwendung einer komplexen Kombination aus Groß- und Kleinbuchstaben, Zahlen und Symbolen empfiehlt, was zu einem schwer zu merkenden Passwort führt. Ein Beispiel dafür ist „Tr0ub4dor&3“.
In den folgenden Panels argumentiert der Autor, dass ein langes Passwort aus vier einfachen, zufälligen Wörtern, wie „correct horse battery staple“, nicht nur sicherer, sondern auch leichter zu merken ist. Die Logik dahinter ist, dass die erhöhte Länge des Passworts die Anzahl der möglichen Kombinationen drastisch erhöht, wodurch es für Angreifer schwieriger wird, das Passwort durch Brute-Force-Angriffe zu knacken.
Das letzte Panel zeigt eine humorvolle Illustration, die zwei Wörter aus dem langen Passwort „correct horse battery staple“ darstellt, mit einem Bild eines Pferdes, das dem Betrachter bestätigend nickt, neben einem Stapel Batterien, was die Merkbarkeit und die ungewöhnliche Kombination der Wörter im Passwort unterstreicht.
Das Comic spielt auf die Idee an, dass Benutzerfreundlichkeit und Sicherheit bei der Passworterstellung nicht immer im Widerspruch zueinander stehen müssen und dass einfache Konzepte oft effektiver sind als komplexe Regeln, die schwer zu befolgen sind.](/img/password_manager/password_strength_2x.png "Quelle https://xkcd.com/936/")
Wenn wir uns für einen Passwortmanager entschieden haben, wird jedes von denen ein Masterpasswort haben wollen von euch. Außer den von iOS, denn der nutzt euer Appleid Passwort.
Also dieses eine Passwort ist wichtig, dass ihr euch das merken könnt. Wie erstelle ich also eines das Sicher und gleichzeitig zu merken ist? Ganz einfach denkt euch einen langen Satz aus. Am besten einen den ihr euch leicht merken könnt oder auch häufiger liest. Ich habe hierfür z.B. einen Satz der für mich eine Musikgruppe beschreibt die ich gut finde. Denkt euch also einen Satz aus und merkt euch diesen nun.
## Browser
Wir raten davon ab, Browser als Passwortmanager zu nutzen. Diese haben oft zu viele Funktionen, was das absichern gegen Angriffe vor die uns ein Passwortmanager schützen sollen schwer macht. Auch unterliegen Passwortmanager einem höheren grad von Auditierung. Diese werden also häufiger auf spezielle Schwachstellen untersucht. Außerdem können wir zusatzinformationen in Passwortmanagern für unseren Account ablegen. Dateien z.B. die wir für die Authentifizierung gebrauchen könnten. Die sogenannten Sicherheitsfragen oder einfach andere Notizen. Diese dinge sind dann genau so gut gesichert wie das Passwort.
## Bitwarden
Für bitwarden muss sich zuerst ein Konto eingerichtet werden. Dies ist kostenlos. Nach dem einrichten, wird sich einmal in der App angemeldet.
Als nächstes rufen wir die testseite [Authgame](auth-game.fly.dev) auf. Auf dieser werden wir nun diese App testen.
Damit Bitwarden richtig funktioniert, müssen einige änderungen an den Einstellungen vorgenommenw werden.
![Übersicht von Bitwarden mit einer Roten umrandung des Einstellungsknopfs](/img/password_manager/bitwarden/first.png)
Hier suchen wir dann die Einstellung automatisch Einfügen.
![Einstellungen von Bitwarden wo Automatisch Einfügen rot umrandet ist](/img/password_manager/bitwarden/search_settings.png)
Hier werden wir nun einige Einstellungen vornehmen müssen.
![Das Automatisch Einfügen fenster wird gezeigt.](/img/password_manager/bitwarden/show_autofill.png)
Wir werden beim ersten Knopf von Android gefragt ob wir dies zulassen wollen. Hierfür werden uns eine reihe von möglichen Apps angezeigt. Wir wählen hier Bitwarden aus.
![Wir sehen ein Fenster von Android in denen oben Steht Autofill-Service. Zur Auswahl stehen Keine App,Google,Bitwarden und Firefox. Bitwarden ist dabei rot umrandet](/img/password_manager/bitwarden/allow_autofill.png)
Danach sind wir wieder in Bitwarden und erlauben genau so Bedienungshilfe verwenden.
![Bitwardens Aotmatische Einfügen übersicht in der Auto-Ausfüllen-Dienst und Bedienungshilfe verwenden nun angeschaltet sind](/img/password_manager/bitwarden/finish_autofill.png)
Wir haben nun alle nötigen einstellungen vorgenommen.
Nun können wir die ersten Passwörter speichern. Wenn wir nun eine Website aufrufen, wo wir ein neues Passwort brauchen, machen wir das direkt über die Android Tastatur.
Dafür müssen wir erstmal die Website besuchen.
![](/img/password_manager/bitwarden/password_eintrag_eins.png)
Hier können wir nun unten sehen, dass Bitwarden uns vorschlägt den Tresor zu öffnen. Der Tresor enthält unsere Passwörter.
![](/img/password_manager/bitwarden/password_eintrag_zwei.png)
Hier erstellen wir nun mittels dem Plus unten rechts einen neuen Eintrag.
![](/img/password_manager/bitwarden/password_eintrag_drei.png)
Dort angekommen, drücken den Knopf für neues Passwort generieren. Natürlich können wir hier auch einfach eins eintippen. Nicht vergessen auch den Nutzernamen einzutragen.
![](/img/password_manager/bitwarden/password_eintrag_vier.png)
So sieht das generieren am Ende aus. Ich bin zufrieden mit dem generierten Passwort und drücke hier Auswählen. Danach speichern drücken. Wir gehen zurück zu der Website.
![](/img/password_manager/bitwarden/password_eintrag_fünf.png)
Wir können hier sehen, dass Bitwarden uns nun schon das Passwort vorschlägt um dieses in das Feld einzufügen. Und damit haben wir das erste Passwort eingerichtet.
## KeepassDX
Für KeepassDX sieht der Prozess ähnlich aus
![](/img/password_manager/Keepassdx/eins.png)
Zuerst müssen wir eine neue Datenbank erstellen.
![](/img/password_manager/Keepassdx/zwei.png)
Wir werden gefragt, ob wir benachrichtigungen zulassen. Das akzeptieren wir.
![](/img/password_manager/Keepassdx/drei.png)
Wir erstellen ein neues Passwort für unsere Datenbank.
![](/img/password_manager/Keepassdx/vier.png)
Und speichern diese auf unserem Telefon. Hier kann auch ein Cloudspeicher genutzt werden zum Speichern.
![](/img/password_manager/Keepassdx/fünf.png)
Danach landen wir auf der Übersicht. Hier werden normalerweise unsere Einträge angezeigt aber wir haben noch keine.
Wir wollen auch erstmal die Einstellungen bearbeiten. Die finden oben Links.
![](/img/password_manager/Keepassdx/sechs.png)
Hier wollen wir das Ausfüllen von Formularen erlauben.
![](/img/password_manager/Keepassdx/acht.png)
Hier den Standard Autofill-Service festelen. Damit wollen wir, dass KeepassDX auf unserem Telefon passswörter ausfüllen darf. Dies müssen wir erst erlauben.
![](/img/password_manager/Keepassdx/neun.png)
Einfach KeePassDX auswählen. Danach wollen wir KeePassDX noch als Gerätetastatur benutzen. Für die fälle wo das Automatische ausfüllen nicht funktioniert.
![](/img/password_manager/Keepassdx/zehn.png)
Hier auch wieder KeepassDX auswählen. Auch genannt Magickeyboard.
![](/img/password_manager/Keepassdx/elf.png)
Das sieht dann so aus, dass nun mehrere Tastaturen ausgewählt sind.
![](/img/password_manager/Keepassdx/zwölf.png)
Danach wollen wir weiter unten in den Einstellungen noch einstellen, dass wir Benachrichtigungen bekommen, wenn Passwörter im zwischenspeicher liegen.
![](/img/password_manager/Keepassdx/dreizehn.png)
Und die beiden Optionen "Kopier-Benachrichtigung" und "Beim Schließen löschen" aktivieren. Damit haben wir alle nötigen Einstellungen vorgenommen.
Nun können wir die neue Datenbank nutzen, um unsere Passwörter zu speichern.
![](/img/password_manager/Keepassdx/anmelden/eins.png)
Auch hier müssen wir erstmal in das Passwortfeld klicken.
Nun können wir weiter unten sehen, dass KeePassDX uns anbietet, dass wir uns anmelden.
![](/img/password_manager/Keepassdx/anmelden/zwei.png)
KeepassDX öffnet sich und wir legen einen neuen Eintrag an.
![](/img/password_manager/Keepassdx/anmelden/drei.png)
Wir wählen "Eintrag hinzufügen" aus.
![](/img/password_manager/Keepassdx/anmelden/vier.png)
Hier generieren wir uns ein neues Passwort.
![](/img/password_manager/Keepassdx/anmelden/fünf.png)
Hier können wir alles einstellen was wir brauchen aber sind erstmal zufrieden. Also klicken wir das Ok häckchen.
![](/img/password_manager/Keepassdx/anmelden/sechs.png)
Und dasselbe wieder in dem Account eintrag. Auf das häckchen. Wir können hier noch als Nutzername die E-Mailadresse eintragen die wir vergeben haben.
![](/img/password_manager/Keepassdx/anmelden/sieben.png)
Zurück in der Website, müssen wir noch mal in das Feld klicken.
![](/img/password_manager/Keepassdx/anmelden/acht.png)
Wir sollten nun zur Auswahl haben, dass wir das Passwort von KeePassDX nutzen können.
![](/img/password_manager/Keepassdx/anmelden/neun.png)
Und das Passwort wird in das Feld gefüllt ohne das wir das Passwort sehen müssen.
![](/img/password_manager/Keepassdx/anmelden/zehn.png)
## Aegis
Aegis werden hier vorstellen, um den 2. Faktor zu speichern. Dies kann auch in der Passwortmanager app selber geschehen. Weil dies aber nicht in alle kostenlos enthalten ist, schauen wir uns eben diese App an.
![](/img/password_manager/AEGIS/aegis_eins.png)
Wir sehen hier einen QR-Code und weiter unten eine komische Buchstabenanreihung. Der QR-Code ist hierbei ein Bild, welches den selben Inhalt darstellt, wie die Buchstabenreihe. Dies kann auch ohne App entschlüsselt werden[^4]. Mit dem Knopf überprüfen, können wir sicherstellen, dass wir den zweiten Faktor richtig gespeichert haben. Wir wollen nun also lange auf das Bild klicken und dieses Speichern.
![](/img/password_manager/AEGIS/aegis_zwei.png)
Hier können wir das Bild speichern.
![](/img/password_manager/AEGIS/aegis_drei.png)
Alternativ kann auch der Text kopiert werden.
![](/img/password_manager/AEGIS/aegis_vier.png)
Nun wechseln wir zu der AEGIS-App. Und legen hier einen neuen Eintrag an.
![](/img/password_manager/AEGIS/aegis_fünf.png)
Wir wählen hier nun Bild scannen aus. Wenn der Text kopiert wurde, wird hier Manuell eingeben gewählt. Wir können dann den QR-Code als Bild auswählen.
![](/img/password_manager/AEGIS/aegis_sechs.png)
Danach hat AEGIS alles für uns ausgefüllt. Wir speichern also diesen Eintrag. Wichtig nach dem Spechern muss das Bild wieder vom Telefon gelöscht werden.
![](/img/password_manager/AEGIS/aegis_sieben.png)
Wir sind zurück in der Übersicht von AEGIS. Hier kopieren wir nun die Nummern die uns angezeigt werden. Wichtig, diese sind nur für 30 Sekunden gütlig. Also müssen wir hier schnell sein.
![](/img/password_manager/AEGIS/aegis_acht.png)
Wir tragen die Zahlen in das vorgesehen Feld ein und drücken auf Überprüfen.
## iOS
Wenn wir den standard Passwortmanager nutzen wollen auf iOS, müssen wir vorher nichts einstellen. Dieser ist vorinstalliert und kann einfach genutzt werden.
Zuerst müssen wir uns unsere E-Mail kopieren. Damit diese auch im Eintrag gespeichert wird.
![](/img/password_manager/iOS/eins.PNG)
Danach im das Passwortfeld wechseln. Hier sollte nun unten ein Passwortsymbol angezeigt sein.
![](/img/password_manager/iOS/zwei.PNG)
Nach einem Klick auf dieses Symbol, öffnet sich die Passwortmanager App.
![](/img/password_manager/iOS/drei.PNG)
Hier können wir einen neuen Eintrag erstellen mit einem Klick auf "Neues Passwort erstellen".
![](/img/password_manager/iOS/vier.PNG)
Hier müssen wir nun die Benutzer:in eintragen. Ansonsten können wir diesen Eintrag nicht speichern.
![](/img/password_manager/iOS/fünf.PNG)
Danach einfach auf fertig.
![](/img/password_manager/iOS/sechs.PNG)
Danach hat iOS die Felder für uns bereits ausgefüllt.
Wenn wir dann später die Website wieder besuchen, sieht das ganze dann so aus.
![](/img/password_manager/iOS/sieben.PNG)
Mit einem klick auf den blauen Button werden dann alle Felder ausgefüllt.
Für den zweiten Faktor sieht das ganze ähnlich aus.
![](/img/password_manager/iOS/totp/eins.PNG)
Hier können wir durch langes drücken auf den QR-Code diesen zweiten faktor in der App speichern.
![](/img/password_manager/iOS/totp/zwei.PNG)
Wie sehen ein Dialogfenster dass uns anbietet den Bestätigungscode in "Passwörter" hinzufügen.
![](/img/password_manager/iOS/totp/drei.PNG)
Wir landen wieder in unserem Passworteintragn den wir vorher angelegt hatten. Es ist bereits alles für uns eingetragen worden also können wir hier einfach zurück zur Website wechseln.
Dort angekommen, können wir sehen, dass uns nun angeboten wird den Bestägigungscode für die Website auszufüllen.
![](/img/password_manager/iOS/totp/vier.PNG)
Nach dem klick darauf, erscheinen die Zahlen die wir brauchen auch schon im Feld.
![](/img/password_manager/iOS/totp/fünf.PNG)
## Gelerntes umsetzen
Jetzt können wir das ganze auf [auth-game](https://auth-game.fly.dev) einmal ausprobieren.
## Was fehlt Passkeys
Was hier noch fehlt, sind Passkeys. Leider fehlt hier noch eine Unterstützung in alles Passwortmanagern. Wer Passkeys trotzdem gerne einmal ausprobieren will kann das [hier](https://webauthn.io/) tun.
[^1]: https://pages.nist.gov/800-63-FAQ/#q-b05
[^2]: https://github.com/riverrun/comeonin/wiki/References
[^3]: https://www.stephanius.de/digitale-selbstverteidigung-mit-starken-passwoertern/
[^4]: https://qr.blinry.org/

View file

@ -0,0 +1,166 @@
---
title: "Smartphone ohne Google"
author: "w1ntermute"
type: "blog"
date: 2024-01-07T00:44:25+01:00
subtitle: ""
image: ""
tags: [google,blog]
---
In diesem Blogpost möchten wir uns einmal die Gefahren anschauen, die durch bedingungslosen Überwachungskapitalismus entstehen. Und wie wir uns davor verteidigen können. Wir werden dabei einmal alternative Apps vorstellen, wie auch alternative Services, wie auch am Ende einen kurzen Einblick, wie man ein Smartphone mit einem alternativen Betriebssystem „befreien“ kann.
<!-- more -->
## Die gefahren
![Ein Diagramm, welches die Unterfirmen von Alphabet zeigt. Hier finden sich Google, Nest, Calico ,Google Fiber und unter Google noch mal Youtube,Search,Android,Play,Maps etc. Es soll veranschaulichen, welche Firmen alle dazugehören.](/img/Filiales_d'Alphabet.png "Übersicht der Alphabet-Firma im Jahr 2017 <br> CC BY-SA 4.0 Wikipedia")
Google ist eines der größten Werbeunternehmen der Welt, deren Mutterkonzern einen Umsatz von 282,8[^1] und davon allein 61 Milliarden Dollar[^2] für Werbung durch Google. Google ist dabei nicht das einzige Unternehmen, welches durch Werbung ihr Geld verdient, aber eines der größten.
### Habe ich etwas zu verbergen?
![Computergeneriertes Bild einer jungen Frau, die auf ein Smartphone tippt, umgeben von Daten und Bildschirmen.](/img/np_230704_titelbild_databroker_midjourney_woman_typing_surrounded_by_screens-860x484.jpg "Public Domain Midjourney")
Doch was genau passiert mit unseren Daten? Und was wissen die Firmen über uns? Viele wissen nur, dass eben über sie Daten gesammelt werden. Aber nur die wenigsten kennen das Ausmaß, in welchem Umfang die Firmen dies analysieren. Und auch über welchen Weg diese Daten bei Firmen landen. Klar ist vielen, das Smartphone sammelt Daten über mich. Aber viele haben z. B. nicht im Blick, dass dies auch durch Telefonumfragen oder Wetterapps geschieht[^3]. Diese ganzen Daten werden dabei von sogenannten "Databrokern" zusammen gefasst und dann als Gesamtpaket den Firmen zum Verkauf angeboten. Hier können diese gezielt einzelne Gruppen ansprechen und müssen sich nicht mehr selbst die Mühe machen, ihre Kunden:innen zu unterteilen. 2023 kam heraus, dass eine der größten Databrokerfirmen der Welt einen Datenleak hatte. Durch diesen Leak wissen wir, dass ein Mensch in knapp 650.000 Kategorien unterteilt werden kann[^4].
![Infografik, die die meisten Kategorien zeigt und Beispiele nennt](/img/NP_infografik_databroker_01_022.jpg "CC BY-SA 4.0 netzpolitik.org")
Wir sehen in dem Bild über uns ein paar Beispiele dieser Kategorien. Wir können sehen, dass darüber ein sehr detailliertes Wissen über einzelne Personen entstehen kann. Die letzte Frage ist natürlich, wie das uns negativ in der Welt beeinflussen kann?
### Negative Folgen
!["Wir sehen vier Personen. Zu jeder Person gibt es eine kleine Infografik, die zeigt, welches Attribute pro Person ein Databroker weiß"](/img/NP_infografik_databroker_03_010.jpg "CC BY-SA 4.0 netzpolitik.org")
Beispiele, wie diese Informationen uns Negativ ausgelegt werden können, gibt es mittlerweile genug. Die gesammelten Daten können auch einer Person negativ ausgelegt werden. Z. B. als in Amerika die Abtreibung keine legale Operation mehr war, wurde anhand von Facebookdaten Personen identifiziert, die Staaten wechseln, um eine Abtreibung durchzuführen[^5]. Auch Googles Suchdaten werden hierfür mittlerweile genutzt[^9]. Außerdem können diese Daten von anderen Staaten genutzt werden, um herauszufinden, ob eine Person mit den Werten des Staates übereinstimmt. Dies passiert regelmäßig in China, wo alle gewonnenen Daten aus Einkäufen, Zahlungen, Bewegungen, Nachrichten und Videos zentral ausgewertet werden, um im Vorfeld Personen zu identifizieren, die nicht zum Staat passen[^6]. Und auch in Europa kann ein solches System gegen uns als Personen eingesetzt werden. Bereits jetzt werden diese Systeme genutzt, um Personen von hohem Interesse auszuspähen[^7]. In dem Papier wird dargestellt, wie die Daten von Google, Facebook und Co genutzt werden, um an mehr Informationen für zukünftige Spionageziele zu gelangen. Auch um Einschätzungen zu treffen, welche Personen denn leicht umzustimmen wären bei großen Abstimmungen. Weitere Gefahren sind die nachhaltige psychische Beeinflussung, die uns über Jahre hinweg zu mehr Konsum und schnelleren Klickverhalten führen soll. Einschätzung unserer Kreditwürdigkeit. Falscheinschätzung des Geschlechts oder auch Veröffentlichung unseres gewählten Geschlechts ohne Einverständnis. Die Liste ist groß und deswegen denken auch viele, dass Zielgerichtete-Werbung verboten gehört. Selbst die EU merkt mittlerweile, dass dieses Geschäftsgebaren nicht von Vorteil für die Welt ist [^8].
## Die alternativen
!["Das Bild ist eine zweiteilige Comiczeichnung, die anthropomorphisierte Versionen des Google Chrome Browsers und des Incognito-Modus darstellt, repräsentiert durch Figuren mit entsprechenden Symbolen als Köpfe. Auf der linken Seite fragt der Charakter mit dem Chrome-Symbol einen menschenähnlichen Charakter, welchen Webseite er sehen möchte. Der menschenähnliche Charakter antwortet mit \"Das sollst du nicht wissen!!\". Auf der rechten Seite des Bildes schlägt der Charakter mit dem Chrome-Symbol vor, die Information nur dem \"Mr Incognito\" zu verraten, der als eine Figur mit einem Detektivhut und einer Sonnenbrille dargestellt ist. Der menschenähnliche Charakter antwortet daraufhin mit \"Ja gerne\".Die Gesamtkomposition ist humorvoll und spielt auf die Funktion des Incognito-Modus in Webbrowsern an, die es Nutzern ermöglicht, im Internet zu surfen, ohne dass ihre Aktivitäten im Browserverlauf gespeichert werden. Die Webseite des Künstlers ist unten rechts im Bild zu sehen: SKELETONCLAW.COM, und unten links steht ein Subreddit-Verweis: R/SKELETONCLAW."](/img/our-little-secret-v0-jp1ZIXQ0ng7DaahHBj3e9tEirwdlhWRN2AwSviuYxWI.webp "reddit.com")
Der Inkognitomodus darf nicht die einzige Verteidigung gegen Datensammelei sein. Dieser reicht bei Weitem nicht aus und wird von Google auch regelmäßig geschwächt. Alles, was dieser Modus macht, ist nämlich, einige Add-ons zu deaktivieren und beim Beenden des Browsers, alle Daten zu löschen, die während der Benutzung lokal angefallen sind. Im Endeffekt ist das nur ein Placeboeffekt. Es hat keinen wirksamen Schutz, aber man fühlt sich wohl, solange der Inkognitomodus genutzt wird.
Ein Wort vorab, wir werden gleich eine Reihe von alternativen und datenschutzfreundlichen-Apps vorstellen. Diese sind meist kostenlos auf Android, allerdings nicht auf iOS. Dies ist einfach dem geschuldet, dass die Entwicklung auf iOS erhebliche Mehrkosten verursacht. Auch ist es bei Android leichter, eine App ohne App-Store zu installieren.
Die Empfehlungen fangen mit dem leichtesten Schwierigkeitsgrad an und werden nach unten hin schwieriger. Heißt letztlich, je weiter wir nach unten scrollen, umso größer wird die persönliche Umstellung im Leben. Wir werden dabei versuchen, die gängigen Dienste von Google und auch Apple zu ersetzen. Das bedeutet.
- Suche
- App Store
- E-Mail
- Nachrichtendienst
- Browser
- Kartendienst
- Kontaktbuch
- Kalender
- Cloudspeicher
### Suche
Wir alle suchen jeden Tag mehrere Hundertmal. Natürlich fallen hier viele Daten an. Um das zu verhindern, kann man ganz einfach alternative Suchen verwenden.
- [Metager](https://metager.de/) Getrieben von einem Verein, der eine freie und ethische Suche anbieten möchte.
- [Duckduckgo](https://duckduckgo.com/) amerikanisches Unternehmen, das weniger Daten sammelt als Google
- [Searx](https://searx.space/) Suche zum selbst hosten. Es kann aber auch aus der Liste eine ausgewählt werden.
Probiert davon einige aus und entscheidet, welche euch davon besser gefallen. Einige haben auch neue Ideen, wie man die Suche effizienter gestalten kann.
### App-Store
Eine Besonderheit für Android. Wir können Alternativen zum Google-Play Store installieren.
- [Fdroid](https://f-droid.org/) Open-Source-Apps, die man so nicht auf Playstore findet.
- [Aurora](https://aurorastore.org/) Alternative Playstore Oberfläche.
Wer es sich traut, unter iOS ein wenig experimentell unterwegs zu sein, kann sich den [Altstore](https://altstore.io/) anschauen.
### E-Mail
Als Erstes schauen wir, wie wir die Kommunikation aus den großen Techfirmen gelöst bekommen. E-Mail-Dienste gibt es mittlerweile viele, die auch datenschutzfreundlich sind und auch erschwinglich sind.
- [Posteo](https://posteo.de/de) 1 € pro Monat
- [Mailbox](https://register.mailbox.org/de) 1 € pro Monat
- [Tuta](https://tuta.com/de/pricing) Kostenlos. Quasi deutsches Proton
- [Proton](http://proton.me/) Kostenlos.
Je nach Firma gibt es auch direkt Kontakt- und Kalenderfunktion mit dazu. Um diese zu bedienen, braucht es natürlich auch eine App für das Handy.
- [K9](https://k9mail.app/download) für Android. Kann alle Dienste bedienen außer Proton und Tuta
- [Tuta](https://tuta.com/de/#download) solltet ihr euch vorher für Tuta entschieden haben, müsst ihr deren App verwenden.
- [Fairmail](https://email.faircode.eu/) für Android. Kann alles, was auch K9 kann, mit einem anderen Interface.
### Nachrichtendienst
Nachrichten zu verschicken oder auch einfach einen lustigen Sticker gehört einfach dazu. Deswegen hier ein paar Alternativen zu WhatsApp und Facebook-Messenger.
- [Signal](https://signal.org/de/) benötigt eine Telefonnummer
- [SimpleX](https://simplex.chat/) Benötigt nichts. Komplett anonym
- [Threema](https://threema.ch/de/download) kostet einmalig Geld, aber dafür Anonym
- [https://element.io/](https://element.io/) Vergleichbar mit Slack oder Teams
### Browser
Wir benötigen eine Alternative zu dem Google Chrome oder was auch immer vorinstalliert ist.
- [Firefox](https://www.mozilla.org/de/) beste Alternative. Im Grunde funktioniert alles wie vorher auch.
- [Firefox Klar](https://www.mozilla.org/de/firefox/browsers/mobile/focus/) Firefox, der keine Daten hinterlässt. Hier muss man sich immer wieder neu eingeloggt werden in Websites.
- [Tor](https://www.torproject.org/de/download/) wenn Privatsphäre über alles steht. Einige Websites werden allerdings nicht mehr richtig funktionieren.
### Kartendienst
Kartendienste geben die meisten Informationen über uns preis. Wo wir sind, wo wir wohnen, wo wir arbeiten. All das kann durch eine Kartenapp herausgefunden werden.
- [OsmAnd](https://osmand.net/) gewissermaßen Alternative zu Google Maps und Applemaps. Es gibt die gleichen Funktionen und ein wenig mehr. Empfehlend sind hier die verschiedenen Kartentypen, z. B. zum Wandern.
- [Magic Earth](https://www.magicearth.com/) Alternative zum Autofahren, da hier auch Staumeldungen etc. live übertragen werden.
- [Organicmap](https://organicmaps.app/de/) komplett offline nutzbar. Gut geeignet für Personen, denen OsmAnd zu viele Funktionen bietet.
### Kontaktbuch und Kalender
Da wir oft mit mehreren Geräten unterwegs sind, oder aber auch unsere Kontakte ungern verlieren würden, lohnt es sich, diese Daten auf mehreren Geräten vorrätig zu haben. Viele von den anderen hier schon vorgestellten Apps können dies bereits.
- [Etesync](https://www.etesync.com/) verschlüsselte Synchronisierung. Das kann gewissermaßen alles, was man im Alltag benötigt. Hier muss sich vorher ein Account angelegt werden für 2 € im Monat.
- [Etar](https://github.com/Etar-Group/Etar-Calendar) Kalender-App ohne Online-Funktion. Es kann mit Nextcloud, Mailbox etc. genutzt werden.
- [Dav](https://www.davx5.com/) Synchronisiert Kontakte und Kalender bei allem, was CalDAV,CardDAV und WebDAV kann. Also fast jede Mailbox.
- [Posteo](https://posteo.de/de) 1 € pro Monat
- [Mailbox](https://register.mailbox.org/de) 1 € pro Monat
- [Tuta](https://tuta.com/de/pricing) Kostenlos. Quasi deutsches Proton
- [Proton](http://proton.me/) Kostenlos.
Wichtig dabei, wir benötigen immer einen Server, der für uns das Synchronisieren im Hintergrund unternimmt. Die hier vorgestellten Services und Apps sind ein Mix aus Nutzen von einem solchen Server. Also erst entscheiden, über welchen Server synchronisiert werden soll. Und danach mit welcher App.
### Cloudspeicher
Einen anderen Speicherplatz für all seine Daten benötigt länger, als wir Zeit auf einem Workshop haben. Da wir hier von einem großen Einschnitt reden und meistens auch von viel Geld. Deswegen hier eine Liste mit Alternativen zu iCloud und Googlecloud. Diese kann sich zu Hause in Ruhe angeschaut werden.
- [Nextcloud](https://nextcloud.com/de/) Cloud aus Europa. Wird genauso genutzt wie Gcloud oder iCloud. Angemeldet wird sich hier nicht direkt bei Nextcloud, sondern bei einer Firma, die den Dienst anbietet. Dies kann [hier](https://nextcloud.com/de/sign-up/) getan werden.
Es kann auch Kontaktbücher und Kalender synchronisieren.
- [Proton](http://proton.me/) Kostenlos.
- [Murena](https://murena.com/de/cloud/) ist auch ein Nextcloud, welches aber mit einem Branding daher kommt. Kostenlos für 15GB.
- [Syncthing](https://syncthing.net/) Synchronisieren von Dateien ohne Cloud. Hier gibt es keinen Speicherplatz, da die Synchronisierung immer von Gerät zu Gerät stattfindet.
## Alternative Betriebssysteme
Warum man ein neues Betreiebssystem nutzen sollte, ist weil man weder Googleaccount noch die Googleplayservices deinstallieren kann. Dies geht nur mit einem neuem Betriebssystem. Diese "Services" schicken nämlich im hintergund GEO-Daten,Wifi und andere Daten weiterhin an Google. Auch die Daten vieler Sensoren werden weiterhin an Google versendet. In vielen der alternativen Betriebssysteme werden deswegen diese [Nachimplementiert](https://microg.org/). So funktionieren Apps die diese Services brauchen auch weiterhin. Allerdings sammeln diese nicht im Hintergrund die genannten Daten und schicken diese an Google.
Als letzten Schritt bleibt noch das komplette Löschen von Google vom Handy. Hierfür benötigt es ein neues Betriebssystem. Hierfür gibt es momentan drei große Projekte.
- [Graphene](https://grapheneos.org/) sicherstes Betriebssystem. Kann allerdings nur auf Pixelgeräten genutzt werden. Enthält MicroG.
- [/e/Os](https://e.foundation/de/e-os/) Funktioniert für mehr Hardware. Hat direkte Einbindung in Murena als Alternative zu Google. Enthält MicroG.
- [LineageOs](https://lineageos.org/) gedacht für ältere Geräte, die ansonsten keine Unterstützung mehr bekommen. [Optional mit MicroG](https://lineage.microg.org/)
- [DivestOs](https://divestos.org/pages/devices) LineageOs mit sichereren Einstellungen. Unterstützt aber weniger Geräte. Kein MicroG.
Im Workshop schauen wir uns einmal Grapheneos an. Da dies mit dem einfachsten Installer daher kommt.
## Nützliche Links
- [Ich hab nichts zu verbergen das Spiel](https://www.lehrerfreund.de/schule/1s/datenschutz-prism-spiel)
- [Datenabfragen leicht gemacht](https://www.datenanfragen.de/)
- [Europäische alternativen](https://european-alternatives.eu/de)
- [Alternative Androids auf dem Prüftstand](https://www.kuketz-blog.de/android-grapheneos-calyxos-und-co-unter-der-lupe-custom-roms-teil1/)
[^1]: [Wikipedia](https://web.archive.org/web/20240104031141/https://de.wikipedia.org/wiki/Alphabet_Inc.)
[^2]: [Alphabet Fiscal Year 2021 Results](https://web.archive.org/web/20231016044321/https://abc.xyz/assets/investor/static/pdf/2021Q4_alphabet_earnings_release.pdf)
[^3]: [Wie deutsche Firmen am Geschäft mit unseren Daten verdienen](https://web.archive.org/web/20231226194724/https://netzpolitik.org/2023/adsquare_theadex_emetriq_werbetracking-wie-deutsche-firmen-am-geschaeft-mit-unseren-daten-verdienen/)
[^4]: [Das sind 650.000 Kategorien, in die uns die Online-Werbeindustrie einsortiert](https://web.archive.org/web/20240106103023/https://netzpolitik.org/2023/microsofts-datenmarktplatz-xandr-das-sind-650-000-kategorien-in-die-uns-die-online-werbeindustrie-einsortiert/)
[^5]: [Teens jailing shows exactly how Facebook will help anti-abortion states](https://web.archive.org/web/20230528162524/https://arstechnica.com/tech-policy/2022/08/teens-jailing-shows-exactly-how-facebook-will-help-anti-abortion-states/)
[^6]: [Totale präventive Kontrolle](https://netzpolitik.org/2022/ueberwachung-in-china-totale-praeventive-kontrolle/)
[^7]: [Europes hidden security crisis](https://www.iccl.ie/wp-content/uploads/2023/11/Europes-hidden-security-crisis.pdf)
[^9]: [Digitale Rasterfahndungen durch die US-Polizei](https://netzpolitik.org/2024/google-search-digitale-rasterfahndungen-durch-die-us-polizei/)
[^8]: [Norwegen verbietet personalisierte Werbung auf Facebook und Instagram](https://netzpolitik.org/2023/datenschutz-norwegen-verbietet-personalisierte-werbung-auf-facebook-und-instagram/)

View file

@ -0,0 +1,81 @@
---
title: "Wie mache ich Smartphone backups?"
author: "w1ntermute"
type: "blog"
date: 2024-03-12
subtitle: ""
image: ""
tags: [backups,blog]
---
# Backups
Backups sind wichtig, dass sollte jeden mittlerweile klar sein. Immerhin geht es hier um unsere wichtigsten Dokumente, Fotos oder einfach auch erinnerungen. Nur hat sich die Welt weiter gedreht. Mittlerweile benutzen wir lieber unser Smartphone als unseren Computer oder haben erst gar keinen. Das heißt unsere wichtigsten Daten liegen auf diesem Gerät.
## iPhone
Wer auf dem iPhone ist und auch die iCloud nutzt, kann dies ganz einfach aktivieren.
Alles was dafür getan werden muss, ist folgendes zu aktivieren.
"Einstellungen“ > „[dein Name]“ > „iCloud“ > „iCloud-Backup“.
Und dort die Option "iCloud-Backup"[^1].
Oder wir auf dieser Bilderreihe gezeigt wird.
![](/img/smartphone-backups/iphone_icloud_1.PNG)
![](/img/smartphone-backups/iphone_icloud_2.PNG)
![](/img/smartphone-backups/iphone_icloud_3.PNG)
![](/img/smartphone-backups/iphone_icloud_4.PNG)
![](/img/smartphone-backups/iphone_icloud_5.PNG)
Damit ist alles eingestellt und das iPhone macht ein Backup sobald dieses in einem vertrauenswürdigen Netz ist und am Strom hängt.
## Android
Auf Android ist das ganze ähnlich einfach. Hier suchen wir in den Einstellungen einfach nach "Sicherung". Und schalten dort "Google One-Back-up" ein.[^2]
![](/img/smartphone-backups/android_google_1.png)
![](/img/smartphone-backups/android_google_2.png)
![](/img/smartphone-backups/android_google_3.png)
![](/img/smartphone-backups/android_google_4.png)
![](/img/smartphone-backups/android_google_5.png)
Auf einem Samsung gerät kann dies anders aussehen.
## Android ohne Google
Ohne google wird die ganze Geschichte natürlich schwieriger. Es gibt hier momentan [Entwicklung](https://www.openandroidbackup.me/), doch dies ist noch lange nicht ausgereift. Ich würde dies eher Personen raten, die schon mehr erfahrung mit Computern haben und auch vor einer Kommandozeile nicht zurück schrecken. Deswegen werden wir hier auch keine Anleitung abbilden, sondern währen des Workshops dies einmal zeigen. Dafür ändert sich diese Software einfach zu häufig.
Installiert euch nicht irgendwelche Backup-Apps. Diese wollen meist eure Daten klauen oder machen schlicht keine Backups. Also nicht installieren.
## iOS ohne iCloud
Es gibt auch hier [diverse](https://github.com/Lakr233/BBackupp) [Applikationen](https://github.com/richinfante/iphonebackuptools) die versprechen dies ohne iCloud tun zu können. Nur braucht man zwingend einen Mac und muss wieder über kenntnisse verfügen die man nur hat, wenn man bereits unter Mac programmiert hat. Deswegen können wir hier keine tipps geben sondern nur hilfestellung.
Ihr könnt auch einfach ein Backup auf euer Gerät über iTunes machen. [Apple](https://support.apple.com/de-de/108967) hat hierfür eine sehr gute Anleitung.
## Verifizieren des Backups
Wichtig ist es aber, bevor ihr euer altes Telefon weg gibt oder euch dort abmeldet, prüft vorher ob das Backup wirklich übertragen wurde. Ein Backup ohne verifikation ist kein Backup. Apple und Google haben hierfür schon gute Software geschrieben, troztdem sollte ein wiederherstellungsprozess nicht auf die leichte Schulter genommen werden.
Auf iOS könnt ihr hier in der [iCloud](https://www.icloud.com/storage/) eure Backups einsehen. Dort könnt ihr eure Daten auch wieder herstellen.
Auf Android findet ihr diese in [Google One](https://one.google.com/backup/management/devices). Hier seht ihr alle Backups und auch die Geräte, die diese gemacht haben.
[^1]: https://support.apple.com/de-de/guide/iphone/iph3ecf67d29/ios
[^2]: https://support.google.com/android/answer/2819582?hl=de

View file

@ -0,0 +1,76 @@
---
title: "Warum Software vor der benutzung verifiziert werden muss"
author: "w1ntermute"
type: "blog"
date: 2024-04-01
subtitle: ""
image: ""
tags: [verification,blog]
---
In diesem Blogpost möchten wir uns anschauen, warum es wichtig Software darauf zu prüfen, dass diese unverändert bei uns ankommt und wie wir dies tun können.
<!-- more -->
## Die Software
Wir stellen uns einmal vor, wir möchten gerne eine Software installieren welche wir nicht kennen. Als beispiel nehmen wir dafür heute [Tails](https://tails.net/index.de.html). Dies ist ein betriebssystem welches gerne von Journalist:innen und Aktivist:innen genutzt wird, um über Sachen zu schreiben oder zu Sprechen welche im verborgengen bleiben sollen. Es ist also von großer wichtigkeit, das dieses Betriebssystem wirklich das macht für das dieses auch beworben wird. Es könnte sich hierbei auch genaus so gut um [Gimp](https://www.gimp.org/) gehen, was eine Software zur Bildbearbeitung ist. Hier ist es genau so wichtig, dass dieses Programm im Hintergrund z.B. nicht anfängt unsere Bilder die wir gerade bearbeiten wollen nicht ins Netz lädt. Immerhin sind das unsere Bilder und niemand anderes soll diese zu gesicht bekommen.
Also sollten wir uns als erstes anschauen, was die Software macht, die wir runterladen wollen. Hierfür durchstöbert wir nun das Netz nach unabhängigen Quellen. Eine gute Quelle hierbei ist immer [Wikipedia](https://de.wikipedia.org/wiki/Wikipedia:Hauptseite). Softwares die viel benutzt werden haben meist hier einen eigenen Eintrag und geben uns einen guten Indikator dafür, ob die Software tatsächlich das macht was wir von ihr wollen. Sollte es keinen Wikipedia eintrag geben, helfen uns auch Berichte von anderen Techniwebseiten. Viele Personen schreiben über Software die sie nutzen. Wir können auch in unserem Freundeskreis fragen, ob diese die Software bereits kennen. Diese überprüfung ist wichtig. Wir sollten niemals Software runterladen und ausführen, über die wir nicht Wissen was diese macht. Wir sollten also immer uns vorher überlegen, was erwarte ich von der Software und wird diese auch diese erwartung erfüllen können. Scheint das nicht der Fall zu sein, sollten wir uns etwas anderes suchen. Hier kann auch helfen, wenn die Software [Opensource](https://de.wikipedia.org/wiki/Open_Source). Das heißt wir können das innere der Software sehen den Code. Die Software hat also nichts vor uns zu verstecken.
Also gehen wir nun los und suchen nach der Software und laden diese von der ersten Website die wir finden?
## Der Download
Falsch. Auch wenn Software z.B. opensource ist, wird diese oft verändert auf Websiten angeboten, um eine leicht veränderte Form anzubieten. Wichtig ist hier, ladet euch die Software dort herunter, wo diese Software ihr Hautpseite hat. Benutzt keine Websiten, welche eine Art Bibliothek online anbieten wie die von computerbild. Diese kommen immer mit Malware oder anderen schädlichen oder ungewollten Inhalten.
Ein anderer Weg ist, den Appstore eures Betriebssystems zu nutzen. Bei Windows z.B. den [Microsoft Store](https://apps.microsoft.com/home?hl=de-de&gl=DE). Für Mac ist das der [Apple Appstore](https://www.apple.com/de/app-store/). Auf Linux sind dies die jeweiligen Repositories wie z.B. APT oder RPM. Auf Smartphones [Playstore](https://play.google.com/store/games?hl=de&gl=US), [Fdroid](https://f-droid.org/de/) und der [Apple Appstore](https://www.apple.com/de/app-store/). Diese Quellen stellen sicher, dass die Software unverändert auf eurem Gerät landet. Zusätzlich sorgen diese dafür, dass ihr immer die aktuellste Version habt.
Doch wenn die gewünschte Software nicht in einem der genannten Quellen vorhanden ist, welche gefahren lauren überhaupt im direkten Download?
## Die Gefahren
Viele Personen denke, dass bei einem Download einer Software es wie folgt aussieht.
![Einfaches Diagramm mit einem Server und einem Laptop. Der Pfeil zeigt vom Server auf den Laptop](/img/software-verification/Downloadsoftware-Seite-1.png)
Der Download geht direkt von der Website zu unserem Gerät. Dies entspricht nicht der Wirklichkeit sondern kann sich eher so Vorgestellt werden.
![Diagramm mit mehreren Switchen und Servern. Diese sind von oben nacht unten mit Pfeilen verbunden. Insgesamt sehen wir 3 Server und Swiche bis schlussendlich weit unten der eigene Router und danach das Laptop angezeigt wird.](/img/software-verification/Downloadsoftware-Seite-2.png)
So sieht es eigentlich aus. Eine anreihung von verbundenen Geräten durch die die Software jedes mal laufen muss. Das heißt diese Software muss einen langen Weg auf sich nehmen um schlussendlich bei uns anzukommen. Das Problem steckt nun in jedem einzelen dieser Übergänge. Bei jedem Sprung kann die Software von demjenigen der gerade auf einem dieser Geräte ist verändert werden. Heutzutage ist dieser Angriff nicht mehr relevant, da die meisten Websiten TLS nutzen und damit eine Verschlüsselte übertragung stattfindet. Dadurch kann nicht mehr eingesehen werden was dort nun übertragen wird. Dies gilt aber nur für gehackte Server. Es gibt noch andere Gefahren.
![Ein weiteres Diagramm dieses mal mit einem Laptop und zwei Servern. Ein Server ist dabei der DNS server und liefert unserem Laptop die IP-Adresse zu der gewünschten Website](/img/software-verification/Downloadsoftware-Seite-3.png)
Es gibt noch andere Wege Software zu verändern ohne das wir es merken. Z.B. in dem wir einfach ohne es zu merken die Software von einem anderen Ort runterladen. Hierfür kann ein Angreifen z.B. unseren DNS-Server manipulieren um uns an einen anderen Ort zu bringen. Und ohne das wir es merken, würden wir eine andere Softwarevariante runterladen. Hierfür muss nicht mal DNS benutzt werden. Es gibt auch andere Wege temporär die Gleise im Netz umzustellen. Nationen haben hierfür genug gelegenheiten erschaffen.
wir sehen, es gibt genug Anggrifszenarien um eine Software die aus dem Netz geladen wird zu verändern, ohne das wir das merken. Deswegen wurden schon in den 90ern Verteidigungen eingebaut.
Doch selbst, wenn es keinen Angriff gegeben hat, bieten viele Softwares andere wegen an um diese herunterzuladen. Viele von diesen nutzen sogenannte "Mirrors". Also Server die sie selber nicht unter kontrolle haben. Dies wird getan, damit die Software näher zum Laptop gelagert wird. Dadurch werden kosten und auch zeit gespart.
Andere bieten torrent dateien an. Hier kann gar nicht gesteuert werden woher die Software kommt.
## Wie davor schützen?
Die vorher genannten Appstore schützen uns nur solange, wie unser Angriffszenario keinen Geheimdienst beinhaltet. Denn diese können ja per dekret änderungen vornehmen. Deswegen gibt es für Software wie z.B. tails andere möglichkeiten.
Die fertige Software wird hierbei unterzeichnet. Das heißt, wir können überprüfen wer diese Software ausgestellt hat und ob diese seit der Unterzeichnung nicht mehr verändert wurde. Dies passiert über ein sogenannten asynchrones verschlüsselungsverfahren. Hierbei wird mithilfe von RSA oder Edwardskurven eine Signaturdatei erstellt vom hashwert der Software. Das heißt, sollte auf dem weg die Software verändert worden sein, sollte sich auch der hashwert ändern.
Ein Hashwert ist hierbei ein Wert, der von einer Funktion errechnet wird. Wir geben also unsere Software in diese Funktion und es entsteht dabei ein Wert. Dieser wert kann nur duch diese Software erstellt werden. Jede kleine änderung an der Software sorgt für einen erheblichen unterschied dieses Hashwerts.
```
w1ntermute@w1ntermute ~/Downloads> sha1sum firefox/firefox-bin
f269a997b730a7abf454c457f1b279887322002f firefox/firefox-bin
```
So sieht das z.B. für meine firefox version aus.
Asynchrone verschlüsselung bedeutet hierbei, dass wir mit einem privaten Schlüssel einen Wert errechnen von diesem Hash, denn jede Person mit dem öffentlichen Schlüssel überprüfen kann. Und nur dieser eine private Schlüssel kann diesen Wert erstellen. Eigentlich verschlüsseln wir hier den vorher erstellten hash mit diesem privaten Schlüssel. Und mit dem öffentlichen entschlüsseln wir diesen und können dadurch die unversehrtheit überprüfen.
Damit können wir sicherstellen, wer die Software ausgestellt hat und das diese auf den Weg zu uns nicht verändert wurde.
Aber woher wissen wir wirklich wer die Software erstellt hat? Jede Person kann diese Schlüssel erstellen.
## Web of Trust
Diese Schlüssel kommen in ein Schlüsselverzeichnnis welches öffentlich einsehbar ist. Dadurch können alle Personen auf der Welt diese einsehen. Also auch wie viele Schlüssel es gibt und wie viele davon erstellt wurden. Zusätzlich haben diese Schlüssel informationen wie z.B. den Namen und welche E-Mailadresse zu diesem Schlüssel gehören. So ist ersichtlich, ob z.B. eine Person gerade konkuriende Schlüssel besitzt. Damit nun sichergestellt werden kann, dass dieser Schlüssel wirklich zu der dort beschriebenen Person passt, können andere Personen mit Schlüssel nun unterzeichnen, ob sie diesem Schlüssel trauen und diesen Analog in der Welt überprüft haben. Dadurch steigt das vertrauen in diesen Schlüssel. Das heißt, dass Software von Sclüsseln unterzeichnet werden sollte, die ein hohes vertrauen unter Personen haben.
Dadurch, kann selbst wenn der Server der die Software ausliefert im falle eines hacks keine Software ausliefern. Denn diese verfügt nicht über den Schlüssel mit dem hohen vertrauen. Auch der wechsel des Schlüssels würde auffallen.
Deswegen ist es wichtig, immer beides zu überprüfen. Den Hashwert also die checksum und die Signatur.

21
content/page/kalender.md Normal file
View file

@ -0,0 +1,21 @@
---
title: Kalender
date: 2023-11-19
---
Um auf dem laufenden zu bleiben bei allen Terminen, die die Cryptoparty betreffen, haben wir nun einen externen Kalender. Dieser kann unter folgendem [link](https://cloud.hamburg.ccc.de/apps/calendar/p/FmR96inzrXa5om3y) aufgerunfen werden.
## Importieren des Kalenders
Wer diesen automatisch in seinem Kalenderprogramm aktualisieren möchte, kann dies folgend tun.
![](/img/screenshot_calendar.png)
Wir sehen hier den Kalender, nachdem auf den [link](https://cloud.hamburg.ccc.de/apps/calendar/p/FmR96inzrXa5om3y) geklickt wurde. Nun muss das Menü für den Kalender aufgerufen werden.
![](/img/screenshot_calendar_with_mark.png)
Dort gibt es nun zwei neue Menüoptionen. Mit dem oberen, kann ein Link generiert werden der direkt im Kalendar importiert werden kann als Webkalender. Mit diesem werden Aktualisierungen des Kalenders automatisch übernommen und ihr verpasst keine Termine mehr.

View file

@ -34,3 +34,11 @@ Verhalten und werden dementsprechend handeln. Jede/r ist willkommen,
ungeachtet der Herkunft, des Geschlechts, des Aussehens, der Meinung,
des Glaubens oder der persönlichen Fähigkeiten. Seid einfach nett und
hilfsbereit zueinander.
# Ankündigungsmailingliste
Schreib einfach ein Mail an [hallo@cryptoparty-hamburg.de](mailto:hallo@cryptoparty-hamburg.de) und bitte
darum auf unsere Ankündigungsmailingliste eingetragen zu werden. Dann
bekommst du vor der nächsten Cryptoparty eine Einladung mit
allen Informationen zur Teilnahme, wie sie auch hier auf der Webseite
stehen werden, bequem per E-Mail.

View file

@ -0,0 +1,25 @@
---
title: "24.11.2021: 123456 - fertig ist das Passwort."
author: "cryptoengel"
type: ""
date: 2021-11-07T15:00:00+02:00
subtitle: "Wo ist denn nur der Post-it hin?"
image: ""
tags: [Passwort]
---
**UPDATE** [Hier](/downloads/2021-november_Cryptoparty_Passwörter.pdf) findet ihr die Folien unseres Vortrags. Viel Spaß beim Nachlesen!
Mindestens 8 Zeichen, Großbuchstaben, Zahlen und Sonderzeichen - zeichnet das heute noch ein sicheres Passwort aus? Geht es auch einfacher und dennoch sicher?<!--more-->
Diesen und weiteren Fragen wird bei der Cryptoparty nachgegangen. Wir wollen Tipps für den Umgang mit Passwörtern und Passwortmanagern geben und ermutigen die eigenen Zugänge zu Webseiten, Apps &
Co aufzuräumen.
Alle Fragen und jeder Wissensstand sind willkommen!
Allgemeine Informationen und den Link zu unserem Webinar findest Du ab sofort unter:
https://cryptoparty-hamburg.de/webinar
Die Veranstaltung wird auf deutsch stattfinden. Veranstalter ist die Cryptoparty Hamburg
digitale Selbstverteidigung.

View file

@ -0,0 +1,29 @@
---
title: "27.08.2022 14:00 Tag des offenen Hackerspace"
author: "cryptoengel"
type: ""
date: 2022-08-03T00:00:00+02:00
subtitle: "Tag des offenen Hackerspace"
image: ""
tags: [Tag des offenen Hackerspace]
---
## CCCHH lädt zum ersten „Tag des offenen Hackerspace“ ein
Der Chaos Computer Club Hansestadt Hamburg (CCCHH) lädt am 27. August 2022 zum Tag des offenen Hackerspace („Tag der Offenen Tür“) ein. Der Club wird sich vorstellen, Projekte zeigen und sich an diesem Tage für Gäste und alle Interessierten öffnen und dabei ein paar Mythen über „Hacker“ zerlegen.
Hackerspaces sind offene Orte für den kreativen Umgang mit Technik. Dort stehen nicht nur Werkzeuge wie 3D-Drucker und Elektroniklabore bereit, sondern bieten auch den Raum, in dem sich Hacker, Maker und Bastler treffen, um sich auszutauschen und gemeinsam an Projekten zu arbeiten.
Über fünfzig Hackerspaces werden bundesweit und in der Schweiz und Luxemburg mitmachen und ihre Türen öffnen. Die Räumlichkeiten und Projekte sind so vielfältig wie die Interessen der CCC-Aktiven, die sich darin treffen und sich engagieren.
Auch der Chaos Computer Club der Hansestadt Hamburg (CCCHH) nimmt teil
am 27. August 2022 von 14:00 bis 23:59 Uhr
im Helenenviertel, ehem. Viktoriakaserne
Anschrift: Zeiseweg 9 in 22765 Hamburg [Wegbeschreibung](https://hamburg.ccc.de/#wegbeschreibung)
**Die Veranstaltung ist kostenlos. In den Innenräumen besteht Maskenpflicht. Ein freiwilliger Selbsttest schafft zusätzliches Vertrauen für unbeschwerte Begegnungen.**
Am 27. August öffnen sich auch in über fünfzig anderen Hackerspaces die Türen. Die CCC-Aktiven hoffen auf zahlreichen Besuch in Aachen, Aalen, Andernach, Aschaffenburg, Backnang, Bamberg, Bayreuth, Bielefeld, Bochum, Bremen, Chemnitz, Coburg, Darmstadt, Dresden, Düsseldorf, Erfurt, Essen, Freiburg, Fulda, Fürth, Gotha, Hamburg, Itzehoe, Jena, Kaiserslautern, Kiel, Köln, Leipzig, Lübeck, Mannheim, München, Neuss, Offenburg, Paderborn, Potsdam, Ransbach-Baumbach, Regensburg, Siegen, Stralsund, Stuttgart, Unna, Villingen-Schwenningen, Wiesenburg, Würzburg, Wuppertal, Wülfrath und Zwickau, außerdem in der Schweiz in Beringen, Bern, Kriens und Muttenz sowie in Luxemburg.
Die vollständige Liste der teilnehmenden „CCC-Erfas“ und „Chaostreffs“ findet sich auf https://md.darmstadt.ccc.de/tagderoffenentuer?both

View file

@ -0,0 +1,31 @@
---
title: "26.01.2022 19:00 Zwei-Faktor-Authentifizierung unbequem, aber wichtig"
author: "cryptoengel"
type: ""
date: 2022-01-11T15:00:00+02:00
subtitle: "Warum der Aufwand?"
image: ""
tags: [2FA]
---
Bankkarte und PIN beim Geldautomaten, Fingerabdruck und Zugangscode in
Gebäuden, oder Passphrase und Transaktionsnummer (TAN) beim Online-
Banking: Die Zwei-Faktor-Authentisierung (2FA) für den
Identitätsnachweis kann im Alltag ganz schön nerven.
Warum die 2FA so wichtig ist? Damit Dein Passwort nicht der einizige
Schutz Deiner sensiblen Daten bleibt. <!--more-->
Unser Vortrag bringt Licht ins Dunkle der Geheimnisse um die 2FA,
zugleich motivieren wir, die Umstellung auf die Zwei-Faktor-
Authentisierung noch viel häufiger selbst zu machen und geben wertvolle
Tipps, wie das problemlos gelingen kann.
Alle Fragen und jeder Wissensstand sind willkommen!
Allgemeine Informationen und den Link zu unserem Webinar findest Du ab sofort unter:
https://cryptoparty-hamburg.de/webinar
Die Veranstaltung wird auf deutsch stattfinden. Veranstalter ist die Cryptoparty Hamburg
digitale Selbstverteidigung.

View file

@ -0,0 +1,29 @@
---
title: "30.03.2022 19:00 Nachhaltige IT"
author: "cryptoengel"
type: ""
date: 2022-03-05T15:00:00+02:00
subtitle: "Reicht eine grüne Steckdose?"
image: ""
tags: [Nachhaltigkeit]
---
Welche Hard- und Softwarelösungen gibt es, um auch hier mit Ressourcen verantwortungsvoller umzugehen.
Wir möchten gemeinsam auf die Reise gehen und Ansätze vorstellen, wie unsere Cyberwelt nachhaltiger werden kann. <!--more-->
Mittwoch 30.03.2022
Die digitalen Türen öffnen sich um 18:30Uhr
Start ist um 19Uhr
Alle Fragen und jeder Wissensstand sind willkommen!
Allgemeine Informationen und den Link zu unserem Webinar findest Du ab sofort unter:
https://cryptoparty-hamburg.de/webinar
Die Veranstaltung wird auf deutsch stattfinden. Veranstalter ist die Cryptoparty Hamburg
digitale Selbstverteidigung.
Vortragsunterlagen:
[Vortrag](</downloads/Nachhaltige-IT.pdf> "Folien Nachhaltige-IT")
[Zusätzliche Infos](</downloads/zusätzliche_infos.pdf> "Folien Zusatzinfos")

View file

@ -0,0 +1,29 @@
---
title: "25.05.2022 19:00 Fake News und Fact Checking"
author: "cryptoengel"
type: ""
date: 2022-05-12T00:00:00+02:00
subtitle: "Authentizität/Identität im Internet"
image: ""
tags: [Medienkompetenz]
---
Das Internet ist voller Texte, Bilder und Videos. Nicht nur in den sozialen Medien, sondern auch immer wieder in den klassischen Medien,
werden Inhalte ohne Prüfung veröffentlicht und weiterverbreitet. <!--more-->
Das kann dazu führen, dass sich Falschmeldungen viral verbreiten und wir die Internet-Nutzer selbst herausfinden müssen, ob das, was wir lesen und sehen, echt, falsch wiedergegeben oder vielleicht doch gefälscht ist. In diesem Webinar lernen wir gemeinsam die wichtigsten Grundlagen, um selbst Texte, Bilder und Videos auf ihre Glaubwürdigkeit zu prüfen.
Mittwoch 25.05.2022
Die digitalen Türen öffnen sich um 18:30Uhr
Start ist um 19Uhr
Alle Fragen und jeder Wissensstand sind willkommen!
Allgemeine Informationen und den Link zu unserem Webinar findest Du ab sofort unter:
https://cryptoparty-hamburg.de/webinar
Die Veranstaltung wird auf deutsch stattfinden. Veranstalter ist die Cryptoparty Hamburg
digitale Selbstverteidigung.

View file

@ -0,0 +1,32 @@
---
title: "26.10.2022 19:00 Sicherheit für Privatpersonen"
author: "cryptoengel"
type: ""
date: 2022-10-05T00:00:00+02:00
subtitle: "Sicherheit für Privatpersonen"
image: ""
tags: [pishing,smishing,spam,scam]
---
Man kennt es. Dauernd bekommt man Anrufe von fremden Personen oder Nachrichten auf sein Handy. Meist wollen diese etwas bezwecken, doch was genau, bleibt den meisten
verborgen.
<!--more-->
Wir wollen gerne darüber reden und Tipps geben, wie man mit solchem Spam umgehen sollte. In diesem Webinar lernt ihr alles zu Phishing, Spam, Smishing und Scam, was es zu wissen gibt.
Mittwoch, 26.10.2022
Die digitalen Türen öffnen sich um 18:30 Uhr.
Start ist um 19 Uhr.
Alle Fragen und jeder Wissensstand sind willkommen!
Allgemeine Informationen und den Link zu unserem Webinar findest Du ab sofort unter:
https://cryptoparty-hamburg.de/webinar
Die Veranstaltung wird auf Deutsch stattfinden. Veranstalter ist die Cryptoparty Hamburg digitale Selbstverteidigung.
Vortragsunterlagen:
[Vortrag](</downloads/2022_okotkober_sicherheitfurprivatpersonen.pdf> "Folien Sicherheit für Privatpersonen")

View file

@ -0,0 +1,16 @@
---
title: "2023 Freitalk Oktober"
author: ""
type: ""
date: 2023-10-06T20:41:13+02:00
subtitle: ""
image: ""
tags: [freitalk]
---
## Handysicherheit Grundlagen am 06.10.2023
Hier einmal die folien vom freitalk. Diese öffnen sich nach dem entpacken mit einem klick im Browser.
[Slide]( </downloads/2023-freitalk-slide/slides.zip> "Folien Handysicherheit")

View file

@ -0,0 +1,18 @@
---
title: "25.03.2023 14:00 Tag des offenen Hackspace"
author: ""
type: ""
date: 2023-03-17T11:57:32Z
subtitle: ""
image: ""
tags: [Tag des offenen Hackerspace]
---
## CCCHH lädt wieder zum „Tag des offenen Hackerspace“ ein
Am Samstag, den 25. März 2023, öffnet der Chaos Computer Club Hansestadt Hamburg eV seine Türen für alle Interessierten, von 14:00 bis 24:00 Uhr.
Alle Details finden sich auf unserer Seite zum [Tag des offenen Hackspace im CCCHH](https://hamburg.ccc.de/events/tag-des-offenen-hackspace/)
Auch wir als Cryptoparty werden vor Ort sein und einige Vorträge und Workshops halten.

View file

@ -0,0 +1,25 @@
---
title: "Termine im Oktober"
author: ""
type: ""
date: 2023-10-03T13:36:35+02:00
subtitle: ""
image: ""
tags: [termine]
---
## Termine im Oktober
<!--more-->
Wir haben einige offene Termine im Oktober, in denen die Cryptoparty vorträge und workshops anbietet.
* Am 06.10 reden wir über Handysicherheit im CCCHH [CCCHH Freitalk](https://hamburg.ccc.de/2023/09/29/freitalk-talk-1-index/)
* Am 06.10 in der Bücherhalle Volksdorf [Von Passwörtern und Verschlüsselung](https://www.hamburg.de/tickets/e/17334338/von-passwoertern-und-verschluesselung-ein-vortrag-von-stefan-lysenko-vom-chaos-computer-club/)
* Am 11.10 Bücherhalle Bergedorf [Lauscht mein Smartphone heimlich mit?](https://www.buecherhallen.de/bergedorf-termin/vortrag-lauscht-mein-smartphone-heimlich-mit-bergedorf.html?day=20231011&times=1697036400,1697040000)
* Am 15.10 [Codeweek Cryptoparty Handysicherheit](https://hamburg.codeweek.de/programm/veranstaltung/2023-10-15-was-weiss-mein-handy-ueber-mich)
* Am 03.11 in der Bücherhalle Volksdorf [Kein Backup - Kein Mitleid!](https://www.buecherhallen.de/volksdorf-termin/kein-backup-kein-mitleid-der-chaos-computer-club-informiert.html?day=20231103&times=1699027200,1699032600)
Bitte Informiert euch über den jeweiligen Link, ob eine Anmeldung zuvor nötig ist. Wir freuen uns auf euren Besuch.

View file

@ -0,0 +1,18 @@
---
title: "2023 Termine Dezember"
author: "cryptoengel"
type: ""
date: 2023-11-19T19:36:24+01:00
subtitle: ""
image: ""
tags: [termine]
---
Es gibt nun einen [Kalender](</page/kalendar>). Diesen könnt ihr nun nutzen und abbonnieren, um nie wieder Termine zu verpassen.
Der nächste Termin wäre hier:
- Am 01.12 in der Zentralbibliothek Hamburg und heißt ["Lauscht mein Smartphone..."](https://www.buecherhallen.de/zentralbibliothek-termin/lauscht-mein-smartphone-wirklich-mit-ein-vortrag-von-stefan-lysenko-vom-chaos-computer-club.html)
Meldet euch dazu vorher an Tickets gibt es genug. Eintritt natürlich kostenlos.

View file

@ -0,0 +1,21 @@
---
title: "2024 Januar Update"
author: "cryptoengel"
type: ""
date: 2024-01-13T17:02:45+01:00
subtitle: ""
image: ""
tags: [termine]
---
Auch in diesem Jahr, haben wir wieder einige Vorträge und Workshops geplant.
- Am 12.01 haben wir eine Schule in Hitzacker besucht gehabt. Dies war ein Workshop um zu erleutern, was es bedeutet ein Handy ohne Googledienste zu benutzen. Alle Informationen dazu findet ihr [hier](</blog/smartphone-ohne-google/>).
- Am 15.01 gibt es den Vortrag [Digitalschulungen für Senior:innen: Lauscht mein Smartphone wirklich mit?](https://kulturkreis-walddoerfer.net/veranstaltungen/digitalschulungen-fuer-seniorinnen-lauscht-mein-smartphone-wirklich-mit/) erneut in der Ohlendorff´sche Villa. Melet euch vorher dafür an.
- Am 26.01 findet der Vortrag "Starkes Passwort, sichere Identität!" in der Bücherhalle Zentralbibliothek statt. Nähere Informatione findet ihr dazu [hier](https://www.buecherhallen.de/zentralbibliothek-termin/starkes-passwort-sichere-identitaet-ein-vortrag-vom-chaos-computer-club.html?day=20240126&times=1706284800,1706284800). Hierfür wird ein kostenloses Ticket benötigt.
- Am 02.02 wird es dazu einen Workshop geben [Passwortmanager und 2-Faktor](https://www.buecherhallen.de/zentralbibliothek-termin/login-ohne-angst-2fa-und-co-ein-workshop-vom-chaos-computer-club.html?day=20240202&times=1706889600,1706895000) in der Zentralbibliothek. Hierfür benötigt ihr auch ein kostenloses Ticket.
- Am 12.02 findet in der Ohlendorff´sche Villa der Vortrag [Digitalschulungen für Senior:innen: Starkes Passwort, sichere Identität!](https://kulturkreis-walddoerfer.net/veranstaltungen/digitalschulungen-fuer-seniorinnen-starkes-passwort-sichere-identitaet/) statt. Meldet euch dazu vorher auf der Website an.
- Am 08.03 findet der Vortrag [Kein Backup - Kein Mitleid!](https://www.buecherhallen.de/zentralbibliothek-termin/kein-backup-kein-mitleid-ein-vortrag-vom-chaos-computer-club.html?day=20240308&times=1709913600,1709913600) in der Zentralbibliothek statt. Auch hierfür wird ein kostenloses Ticket benötigt.
- Am 21.03 wird es erneut den Vortrag "Lauscht mein Smartphone wirklich mit" geben. Dieses mal in der Bücherhalle von Blankenese. Sobald es hierzu mehr Informationen gibt, erfahrt ihr das hier.
- Am 12.04 gibt es wieder einen Vortrag in der Zentralen Bücherhalle hat momentan noch den Titel "Verschlüsselung?". Auch hierzu noch keine weiteren Informationen.

View file

@ -0,0 +1,21 @@
---
title: "Aufmerksam sein und gegen Chatkontrolle sein"
author: "w1ntermute"
type: ""
date: 2024-06-18T18:10:57+02:00
subtitle: ""
image: ""
tags: [information]
---
Wir möchten einmal darauf aufmerksam machen, dass diese Woche
im EU-Rat die Chatkontrolle besprochen wird. Das heißt, die Länder
besprechen in welcher Form dieses Vorhaben zur Absprache gebracht werden soll.
Diese Chatkontrolle würde einen totalen verlust der Privatsphäre bei allen Nachrichten die wir senden
bedeuten.
Dies muss verhindert werden.
Wie ihr das könnt und mehr Informationen zur Chatkontrolle unter der Website von [Patrick Breyer](https://www.patrick-breyer.de/beitraege/chatkontrolle/) und
dem [Bündnis Chatkontrolle Stoppen](https://chat-kontrolle.eu/).

View file

@ -1,11 +1,11 @@
---
title: "Webinar"
author: ""
author: "cryptoengel"
type: ""
date: 2020-05-28T16:42:22+02:00
subtitle: ""
image: ""
tags: []
tags: [webinar]
---
In diesen ungewöhnlichen Zeiten wollen wir Euch auch weiterhin mit
@ -31,10 +31,8 @@ den Chat mit uns Kontakt aufnehmen um Fragen zu dem Vortrag für die
Fragerunde am Ende zu stellen oder Hilfe bei technischen Problemen zu
bekommen.
Das nächste Webinar findet **am Mittwoch den 26.05.2021 um 19 Uhr**
statt. Das Motto diesmal:
Hier findest du den nächsten [Termin](/)
**Backup not found (A)bort, \(R\)etry, (P)anic?**
Klicke hier um zum Webinar zu kommen:
https://bbb.cyber4edu.org/b/cri-anc-77r

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +0,0 @@
<html><head></head><body>
<a href="Download_Win.zip">Download f&uuml;r Windows</a><br />
<a href="Download_Win.zip.sig">Download f&uuml;r Windows (Signatur)</a><br />
<a href="Download_Mac.zip">Download f&uuml;r Mac OS X</a><br />
<a href="Download_Mac.zip.sig">Download f&uuml;r Mac OS X (Signatur)</a><br />
</body></html>

33
font-awesome.min.css vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 B

View file

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="2607.539px" height="278.268px" viewBox="0 0 2607.539 278.268" enable-background="new 0 0 2607.539 278.268"
xml:space="preserve">
<polygon fill="#D900FF" points="39.394,11.993 10.729,11.993 10.729,40.698 10.729,69.367 10.729,98.034 10.729,126.734
39.394,126.734 68.12,126.734 96.785,126.734 96.785,98.034 68.12,98.034 39.394,98.034 39.394,69.367 39.394,40.698 68.12,40.698
96.785,40.698 96.785,11.993 68.12,11.993 "/>
<path fill="#D900FF" d="M154.115,11.993H125.45v28.705v28.669v28.667v28.699h28.665V98.034h28.727V69.406h28.665V40.698l0,0V11.993
h-28.665H154.115z M182.841,40.698V69.33h-28.727V40.698H182.841L182.841,40.698z"/>
<rect x="182.841" y="98.034" fill="#D900FF" width="28.665" height="28.699"/>
<polygon fill="#D900FF" points="297.564,40.698 297.564,69.33 268.899,69.33 268.899,40.665 268.838,40.665 268.838,11.993
240.173,11.993 240.173,40.665 240.173,40.698 240.173,69.33 240.173,98.034 268.838,98.034 268.899,98.034 297.564,98.034
297.564,126.734 326.229,126.734 326.229,98.034 326.229,69.367 326.229,40.698 326.229,11.993 297.564,11.993 "/>
<path fill="#D900FF" d="M383.555,11.993h-28.661v28.705v28.669v28.667v28.699h28.661V98.034h28.732h28.665V69.33V40.698v-0.033
V11.993h-28.665H383.555z M412.287,69.33h-28.732V40.698h28.732V69.33z"/>
<polygon fill="#D900FF" points="498.294,11.993 469.621,11.993 469.621,40.698 498.294,40.698 498.338,40.698 498.338,69.367
498.338,98.034 498.338,126.734 527.007,126.734 527.007,98.034 527.007,69.367 527.007,40.698 555.68,40.698 555.68,11.993
527.007,11.993 "/>
<path fill="#D900FF" d="M385.818,155.403h-28.665v28.652v28.665v28.714v28.694h28.665v-28.694h28.728v28.694h28.666v-28.694v-28.715
v-28.664v-28.652h-28.666H385.818L385.818,155.403z M414.546,212.721h-28.728v-28.665h28.728V212.721z"/>
<path fill="#D900FF" d="M271.101,155.403h-28.667v28.652v28.665v28.714v28.694h28.667v-28.694h28.718h28.669v-28.715v-28.664v-0.038
v-28.614h-28.669H271.101z M299.819,212.721h-28.718v-28.665h28.718V212.721z"/>
<polygon fill="#D900FF" points="615.265,155.403 586.6,155.403 586.6,184.056 615.265,184.056 615.328,184.056 615.328,212.721
615.328,241.435 615.328,270.13 643.993,270.13 643.993,241.435 643.993,212.721 643.993,184.056 672.658,184.056 672.658,155.403
643.993,155.403 "/>
<path fill="#D900FF" d="M500.545,155.403h-28.664v28.652v28.665v28.714v28.694h28.664v-28.694h28.725V212.76h28.665v-28.664v-0.04
v-28.652H529.27L500.545,155.403L500.545,155.403z M529.27,184.096v28.625h-28.725v-28.665h28.725V184.096z"/>
<rect x="529.27" y="241.435" fill="#D900FF" width="28.665" height="28.694"/>
<polygon fill="#D900FF" points="758.712,155.403 758.712,184.056 758.712,212.721 730.047,212.721 730.047,184.018 729.988,184.018
729.988,155.403 701.323,155.403 701.323,184.018 701.323,184.056 701.323,212.721 701.323,241.435 729.988,241.435
730.047,241.435 758.712,241.435 758.712,270.13 787.377,270.13 787.377,241.435 787.377,212.721 787.377,184.056 787.377,155.403
"/>
<rect x="614.311" y="97.766" fill="#FF0098" width="28.665" height="28.704"/>
<rect x="700.306" y="98.034" fill="#FF0098" width="28.665" height="28.699"/>
<rect x="642.976" y="98.034" fill="#FF0098" width="28.665" height="28.699"/>
<rect x="585.646" y="98.034" fill="#FF0098" width="28.663" height="28.699"/>
<rect x="700.306" y="69.25" fill="#FF0098" width="28.665" height="28.705"/>
<rect x="671.641" y="69.25" fill="#FF0098" width="28.665" height="28.705"/>
<rect x="757.584" y="98.034" fill="#FF0098" width="28.665" height="28.699"/>
<rect x="757.584" y="69.25" fill="#FF0098" width="28.665" height="28.705"/>
<rect x="728.919" y="69.25" fill="#FF0098" width="28.665" height="28.705"/>
<rect x="642.976" y="69.25" fill="#FF0098" width="28.665" height="28.705"/>
<rect x="585.646" y="69.25" fill="#FF0098" width="28.663" height="28.705"/>
<rect x="642.976" y="40.431" fill="#FF0098" width="28.665" height="28.702"/>
<rect x="585.646" y="40.431" fill="#FF0098" width="28.663" height="28.702"/>
<rect x="642.976" y="11.728" fill="#FF0098" width="28.665" height="28.704"/>
<rect x="614.311" y="11.728" fill="#FF0098" width="28.665" height="28.704"/>
<rect x="585.646" y="11.728" fill="#FF0098" width="28.663" height="28.704"/>
<rect x="156.429" y="241.165" fill="#FF0098" width="28.665" height="28.695"/>
<rect x="70.432" y="241.435" fill="#FF0098" width="28.669" height="28.694"/>
<rect x="127.766" y="241.435" fill="#FF0098" width="28.663" height="28.694"/>
<rect x="185.094" y="241.435" fill="#FF0098" width="28.665" height="28.694"/>
<rect x="70.432" y="212.61" fill="#FF0098" width="28.669" height="28.701"/>
<rect x="99.101" y="212.61" fill="#FF0098" width="28.665" height="28.701"/>
<rect x="13.157" y="241.435" fill="#FF0098" width="28.664" height="28.694"/>
<rect x="13.157" y="212.61" fill="#FF0098" width="28.664" height="28.701"/>
<rect x="41.82" y="212.61" fill="#FF0098" width="28.673" height="28.701"/>
<rect x="127.766" y="212.61" fill="#FF0098" width="28.663" height="28.701"/>
<rect x="185.094" y="212.61" fill="#FF0098" width="28.665" height="28.701"/>
<rect x="127.766" y="183.828" fill="#FF0098" width="28.663" height="28.704"/>
<rect x="185.094" y="183.828" fill="#FF0098" width="28.665" height="28.704"/>
<rect x="127.766" y="155.135" fill="#FF0098" width="28.663" height="28.693"/>
<rect x="156.429" y="155.135" fill="#FF0098" width="28.665" height="28.693"/>
<rect x="185.094" y="155.135" fill="#FF0098" width="28.665" height="28.693"/>
<g>
<polygon fill="#00C1FF" points="2095.955,115.178 2147.534,115.178 2147.534,63.778 2147.534,63.706 2095.955,63.706 "/>
<polygon fill="#00C1FF" points="1675.776,115.178 1727.355,115.178 1727.355,63.778 1727.355,63.706 1675.776,63.706 "/>
<path fill="#00C1FF" d="M1120.755,12.346h-51.47v51.449v51.472v51.56v51.524h-0.002v51.524h51.472v-51.524v-51.524h51.586v51.524
h0.002v51.524h51.472v-51.524v-51.524v-51.562v-51.47V12.346h-51.474H1120.755z M1172.341,115.269h-51.586V63.797h51.586V115.269z"
/>
<path fill="#00C1FF" d="M1633.392,12.257v-0.002h-51.471v51.449v51.472v51.559v51.525v51.524h51.473v-51.524h-0.002v-51.525h51.579
v-51.487h51.472v-51.47v-0.072V12.257h-51.472H1633.392z M1684.971,63.778v51.4h-51.579V63.706h51.579V63.778z"/>
<polygon fill="#00C1FF" points="1684.971,218.261 1684.971,218.262 1684.971,269.785 1736.442,269.785 1736.442,218.262
1736.442,218.261 1736.442,166.738 1684.971,166.738 "/>
<rect x="1633.446" y="218.261" fill="#00C1FF" width="51.472" height="51.524"/>
<g>
<polygon fill="#00C1FF" points="2355.027,12.255 2355.027,12.257 2303.557,12.257 2251.977,12.257 2251.977,12.255
2200.507,12.255 2200.507,63.704 2200.507,115.177 2200.507,166.736 2200.507,218.261 2200.507,269.785 2251.979,269.785
2251.979,218.261 2251.977,218.261 2251.977,166.736 2252.055,166.736 2252.055,115.281 2251.977,115.178 2251.977,63.706
2303.557,63.706 2303.557,63.778 2303.557,63.78 2355.027,63.78 2406.5,63.78 2406.5,12.255 "/>
<polygon fill="#00C1FF" points="2355.027,115.304 2303.557,115.304 2303.557,115.281 2303.557,115.248 2303.557,115.178
2303.526,115.281 2303.526,166.736 2303.557,166.736 2303.557,166.806 2355.027,166.806 2355.027,218.261 2303.557,218.261
2303.557,269.785 2355.027,269.785 2406.5,269.785 2406.5,218.262 2406.5,218.261 2406.5,166.738 2355.027,166.738 "/>
<rect x="2252.031" y="218.261" fill="#00C1FF" width="51.473" height="51.524"/>
</g>
<path fill="#00C1FF" d="M2045.789,12.257v-0.002h-51.47v51.449v51.472v51.559v51.525v51.524h51.472v-51.524h-0.002v-51.525h51.579
v-51.487h51.472v-51.47v-0.072V12.257h-51.472H2045.789z M2097.368,63.778v51.4h-51.579V63.706h51.579V63.778z"/>
<polygon fill="#00C1FF" points="2097.368,218.261 2097.368,218.262 2097.368,269.785 2148.84,269.785 2148.84,218.262
2148.84,218.261 2148.84,166.738 2097.368,166.738 "/>
<polygon fill="#00C1FF" points="966.513,115.178 914.927,115.178 914.927,12.255 863.457,12.255 863.457,63.704 863.457,115.177
863.457,166.736 863.457,218.261 863.457,269.785 914.929,269.785 914.929,218.261 914.927,218.261 914.927,166.736
966.513,166.736 966.513,218.261 966.515,218.261 966.515,269.785 1017.986,269.785 1017.986,218.261 1017.986,166.736
1017.986,115.175 1017.986,63.704 1017.986,12.255 966.513,12.255 "/>
<polygon fill="#00C1FF" points="1890.991,218.243 1839.405,218.243 1839.405,12.255 1787.936,12.255 1787.936,63.704
1787.936,115.177 1787.936,166.736 1787.936,218.261 1787.936,269.785 1839.405,269.785 1839.405,269.801 1890.991,269.801
1890.991,218.261 1890.993,218.261 1890.993,269.785 1942.465,269.785 1942.465,218.261 1942.465,166.736 1942.465,115.175
1942.465,63.704 1942.465,12.255 1890.991,12.255 "/>
<polygon fill="#00C1FF" points="1429.774,12.255 1427.376,12.255 1378.301,12.255 1375.905,12.255 1326.715,12.255
1275.245,12.255 1275.245,63.704 1275.245,115.177 1275.245,166.736 1275.245,218.261 1275.245,269.785 1326.717,269.785
1326.717,218.261 1326.715,218.261 1326.715,166.736 1326.715,115.178 1326.715,63.706 1375.905,63.706 1375.905,115.177
1375.905,115.178 1375.905,166.736 1375.905,218.261 1378.301,218.261 1427.376,218.261 1429.774,218.261 1429.774,166.736
1429.774,115.178 1429.774,115.175 1429.774,63.706 1478.962,63.706 1478.962,115.178 1478.963,115.178 1478.963,218.261
1478.963,269.785 1530.436,269.785 1530.436,218.261 1530.436,166.736 1530.436,115.175 1530.436,63.704 1530.436,12.255
1478.962,12.255 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.6 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 KiB

View file

@ -1,148 +0,0 @@
<DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Cryptoparties in Hamburg</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Cryptoparties in Hamburg.">
<meta name="author" content="Frederick Nord">
<!--[if lt IE 9]>
<script src="js/html5.js"></script>
<![endif]-->
<link href="bootstrap.min.css" rel="stylesheet">
<link href="bootstrap-responsive.min.css" rel="stylesheet">
<link href="font-awesome.min.css" rel="stylesheet">
<link href="bootswatch.css" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<div class="container">
<!-- Masthead
================================================== -->
<header class="jumbotron subhead" id="overview">
<div class="row">
<div class="span2"></div>
<div class="span8">
<img src="img/CryptoPartyLogo_HH.png" alt="Logo der CryptoParty Hamburg" width="100%" class="logo" />
</div>
<div class="span2"></div>
</div>
<div class="subnav">
<ul class="nav nav-pills">
<li><a href="#overview">&Uuml;bersicht</a></li>
<li><a href="#reg">Anmeldung</a></li>
<img src="img/CryptoPartyLogo_HH.png" alt="Logo der Hamburger Cryptoparty" style="float:right; margin-top:5px;" class="logo_klein" width="250px"/>
</ul>
</div>
</header>
<div class="row">
<div class="span12 teaser">Verschlüsselung &amp; Internetsicherheit<br /> für Anfänger und Fortgeschrittene</div>
</div>
<section id="overview">
<div class="row">
<div class="span4">
<h2>Cryptoparty?!</h2>
<p>
<strong>Der <a href="http://hamburg.ccc.de/" target="_blank">Chaos Computer Club Hamburg</a> und der <a href="http://www.ak-vorrat-hamburg.de/" target="_blank">Arbeitskreis Vorratsdatenspeicherung Hamburg</a> laden ein zur Cryptoparty am Sonntag, dem 21.05.2017, um 14:00 Uhr.</strong>
</p>
<p>
Eine Cryptoparty ist ein Zusammentreffen in netter Atmosphäre bei dem Menschen mit Erfahrung anderen beibringen sicher mit Email und Chat zu kommunizieren und ihre Festplatten zu verschlüsseln.
</p>
</div>
<div class="span4">
<h2>Voraussetzungen zur Teilnahme</h2>
<p>
<strong>Teilnehmen kann generell jeder Mensch vom Schüler bis zum Rentner. Wir werden euch ohne komplizierte Fachwörter erklären, wie Kryptographie im Alltag angewendet wird.</strong>
</p>
<p>
Um an der Cryptoparty teilzunehmen braucht ihr lediglich einen Laptop und Interesse am Thema. Die Software wird von uns gestellt.
</p>
<p>
Die Teilnahme an der Cryptoparty ist generell kostenlos. Um eine Spende wird gebeten.
</p>
</div>
<div class="span4">
<h2>Wo?</h2>
<p class="lead">
<strong><em>Chaos Computer Club Hamburg</em></strong><br><br />
Zeiseweg 9<br />
22765 Hamburg
</p>
</div>
</div>
<section id="more-info">
<div class="row">
<div class="span4">
<h2>Warum?</h2>
<p>
Seit den Enthüllungen über die Reichweite der Abhörprogramme der amerikanischen und britischen Regierungen ist klar, dass jede Kommunikation aller Bundesbürger registriert, bewertet und abgespeichert wird.
</p>
<p>
Niemand kann uns garantieren, dass neben den Verbindungsdaten wie Uhrzeit, Dauer, Absender und Empfänger nicht auch die komplette Nachricht abgeschnorchelt wird.
</p>
<p>
Bis die erstarrte Politik handelt und diesem Grundrechtsbruch ein Ende bietet, sind wir auf uns selbst gestellt und müssen zur digitalen Selbstverteidigung greifen: Der Verschlüsselung all unserer Kommunikation und Daten!
</p>
</div>
<div class="span4">
<h2>&nbsp;</h2>
<p>
Wie das genau funktioniert, bringen erfahrene Mitglieder des Chaos Computer Club Hamburg und AK Vorrat 25 interessierten Gästen vom Anfänger bis zum fortgeschrittenen Computer-Nutzer bei.
</p>
<p>
In netter Atmosphäre wird sich zusammengesetzt, gelernt und bei einem Getränk die Programme auf den mitgebrachten Laptops installiert. Nach etwa vier Stunden wird jeder Gast verschlüsselt chatten und emailen können und wissen, wie er seine Festplatte daheim verschlüsseln kann.
</p>
</div>
<div class="span4" id="reg">
<h2>Anmeldung</h2>
<!-- <p class="lead">Leider sind alle Plätze für die nächste Cryptoparty bereits belegt. Wenn wir euch über weitere Cryptoparties informieren sollen, schickt uns bitte eine E-Mail an <a href="mailto:&#097;&#110;&#109;&#101;&#108;&#100;&#117;&#110;&#103;&#064;&#099;&#114;&#121;&#112;&#116;&#111;&#112;&#097;&#114;&#116;&#121;&#045;&#104;&#097;&#109;&#098;&#117;&#114;&#103;&#046;&#100;&#101;">&#097;&#110;&#109;&#101;&#108;&#100;&#117;&#110;&#103;&#064;&#099;&#114;&#121;&#112;&#116;&#111;&#112;&#097;&#114;&#116;&#121;&#045;&#104;&#097;&#109;&#098;&#117;&#114;&#103;&#046;&#100;&#101;</a> und erwähnt explizit, dass ihr wir euch über zukünftige Cryptoparties informieren sollen.</p> -->
<p class="lead">Die nächste Cryptoparty findet am Sonntag, dem 21.05.2017, um 14:00 Uhr in den Räumenlichkeiten des CCCHH statt. Bitte meldet euch unter <a href="mailto:&#097;&#110;&#109;&#101;&#108;&#100;&#117;&#110;&#103;&#064;&#099;&#114;&#121;&#112;&#116;&#111;&#112;&#097;&#114;&#116;&#121;&#045;&#104;&#097;&#109;&#098;&#117;&#114;&#103;&#046;&#100;&#101;">&#097;&#110;&#109;&#101;&#108;&#100;&#117;&#110;&#103;&#064;&#099;&#114;&#121;&#112;&#116;&#111;&#112;&#097;&#114;&#116;&#121;&#045;&#104;&#097;&#109;&#098;&#117;&#114;&#103;&#046;&#100;&#101;</a> an.</p>
<h2>Links</h2>
<p class="lead"><a href="//slides.cryptoparty-hamburg.de/master">Folien</a></p>
<p class="lead"><a href="//cryptoparty-hamburg.de/download">Downloads</a>
</div>
</div>
</section>
<br><br><br><br>
<!-- Footer
================================================== -->
<hr>
<footer id="footer">
<p class="pull-right"><a href="#top">Back to top</a></p>
<div class="links">
<a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/"><img alt="Creative Commons Lizenzvertrag" style="border-width:0" src="img/80x15.png" /></a>
Die Inhalte auf dieser Seite stehen, soweit nicht anders gekennzeichnet, unter der <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Namensnennung 3.0 Deutschland Lizenz.</a>
<br />
<p style="text-align:center;">Chaos Computer Club Hansestadt Hamburg e.V. • Zeiseweg 9 • 22765 Hamburg • <a href="mailto:hallo@cryptoparty-hamburg.de">hallo@cryptoparty-hamburg.de</a></p><br />
<p>PGP: <a href="http://pgp.mit.edu/pks/lookup?search=0x39C51E5251C6856E3062DA728D5F7E7CB960EC68&op=index">39C5 1E52 51C6 856E 3062 DA72 8D5F 7E7C B960 EC68</a></p>
</div>
</footer>
</div><!-- /container -->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/jquery.min.js"></script>
<script src="js/jquery.smooth-scroll.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootswatch.js"></script>
</body>
</html>

6
js/bootstrap.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -1,45 +0,0 @@
$('a[rel=tooltip]').tooltip({
'placement': 'bottom'
});
$('.navbar a, .subnav a').smoothScroll();
(function ($) {
$(function(){
$('.logo_klein').toggle();
// fix sub nav on scroll
var $win = $(window),
$body = $('body'),
$nav = $('.subnav'),
navHeight = $('.navbar').first().height(),
subnavHeight = $('.subnav').first().height(),
subnavTop = $('.subnav').length && $('.subnav').offset().top - navHeight,
marginTop = parseInt($body.css('margin-top'), 10);
isFixed = 0;
processScroll();
$win.on('scroll', processScroll);
function processScroll() {
var i, scrollTop = $win.scrollTop();
if (scrollTop >= subnavTop && !isFixed) {
isFixed = 1;
$nav.addClass('subnav-fixed');
$('.logo_klein').toggle();
$body.css('margin-top', marginTop + subnavHeight + 'px');
} else if (scrollTop <= subnavTop && isFixed) {
isFixed = 0;
$nav.removeClass('subnav-fixed');
$('.logo_klein').toggle();
$body.css('margin-top', marginTop + 'px');
}
}
});
})(window.jQuery);

View file

View file

@ -1,9 +0,0 @@
/*
HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
Uncompressed source: https://github.com/aFarkas/html5shiv
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

5
js/jquery.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -1,7 +0,0 @@
/*!
* Smooth Scroll - v1.4.10 - 2013-03-02
* https://github.com/kswedberg/jquery-smooth-scroll
* Copyright (c) 2013 Karl Swedberg
* Licensed MIT (https://github.com/kswedberg/jquery-smooth-scroll/blob/master/LICENSE-MIT)
*/
(function(l){function t(l){return l.replace(/(:|\.)/g,"\\$1")}var e="1.4.10",o={exclude:[],excludeWithin:[],offset:0,direction:"top",scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficent:2},r=function(t){var e=[],o=!1,r=t.dir&&"left"==t.dir?"scrollLeft":"scrollTop";return this.each(function(){if(this!=document&&this!=window){var t=l(this);t[r]()>0?e.push(this):(t[r](1),o=t[r]()>0,o&&e.push(this),t[r](0))}}),e.length||this.each(function(){"BODY"===this.nodeName&&(e=[this])}),"first"===t.el&&e.length>1&&(e=[e[0]]),e};l.fn.extend({scrollable:function(l){var t=r.call(this,{dir:l});return this.pushStack(t)},firstScrollable:function(l){var t=r.call(this,{el:"first",dir:l});return this.pushStack(t)},smoothScroll:function(e){e=e||{};var o=l.extend({},l.fn.smoothScroll.defaults,e),r=l.smoothScroll.filterPath(location.pathname);return this.unbind("click.smoothscroll").bind("click.smoothscroll",function(e){var n=this,s=l(this),c=o.exclude,i=o.excludeWithin,a=0,f=0,h=!0,u={},d=location.hostname===n.hostname||!n.hostname,m=o.scrollTarget||(l.smoothScroll.filterPath(n.pathname)||r)===r,p=t(n.hash);if(o.scrollTarget||d&&m&&p){for(;h&&c.length>a;)s.is(t(c[a++]))&&(h=!1);for(;h&&i.length>f;)s.closest(i[f++]).length&&(h=!1)}else h=!1;h&&(e.preventDefault(),l.extend(u,o,{scrollTarget:o.scrollTarget||p,link:n}),l.smoothScroll(u))}),this}}),l.smoothScroll=function(t,e){var o,r,n,s,c=0,i="offset",a="scrollTop",f={},h={};"number"==typeof t?(o=l.fn.smoothScroll.defaults,n=t):(o=l.extend({},l.fn.smoothScroll.defaults,t||{}),o.scrollElement&&(i="position","static"==o.scrollElement.css("position")&&o.scrollElement.css("position","relative"))),o=l.extend({link:null},o),a="left"==o.direction?"scrollLeft":a,o.scrollElement?(r=o.scrollElement,c=r[a]()):r=l("html, body").firstScrollable(),o.beforeScroll.call(r,o),n="number"==typeof t?t:e||l(o.scrollTarget)[i]()&&l(o.scrollTarget)[i]()[o.direction]||0,f[a]=n+c+o.offset,s=o.speed,"auto"===s&&(s=f[a]||r.scrollTop(),s/=o.autoCoefficent),h={duration:s,easing:o.easing,complete:function(){o.afterScroll.call(o.link,o)}},o.step&&(h.step=o.step),r.length?r.stop().animate(f,h):o.afterScroll.call(o.link,o)},l.smoothScroll.version=e,l.smoothScroll.filterPath=function(l){return l.replace(/^\//,"").replace(/(index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},l.fn.smoothScroll.defaults=o})(jQuery);

View file

@ -0,0 +1,8 @@
{{ if .Title }}
<figure>
<img src="{{ .Destination | safeURL }}" alt="{{ .Text }}">
<figcaption style="font-size: x-small">{{ .Title | safeHTML }}</figcaption>
</figure>
{{ else }}
<img src="{{ .Destination | safeURL }}" alt="{{ .Text }}">
{{ end }}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Some files were not shown because too many files have changed in this diff Show more