Compare commits
1 commit
master
...
soma-test-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f44348d59 |
|
|
@ -1,24 +0,0 @@
|
|||
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 }}/"
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
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
|
|
@ -1,4 +1,3 @@
|
|||
slides
|
||||
.DS_Store
|
||||
public
|
||||
/.hugo_build.lock
|
||||
|
|
|
|||
32
.gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
54
README.md
|
|
@ -11,12 +11,12 @@ Linux Distributions, install them like this:
|
|||
|
||||
Now you can clone the repository:
|
||||
|
||||
$ git clone ssh://forgejo@git.hamburg.ccc.de/Cryptoparty/cryptoparty-website.git
|
||||
$ git clone ssh://git@gitlab.hamburg.ccc.de:4242/cryptoparty/website-content.git
|
||||
|
||||
If this doesn't work, you may need to add a ssh authentication key to
|
||||
your Forgejo profile on [this page]:
|
||||
your gitlab profile on [this page]:
|
||||
|
||||
[this page]: https://git.hamburg.ccc.de/user/settings/keys
|
||||
[this page]: https://gitlab.hamburg.ccc.de/profile/keys
|
||||
|
||||
Furthermore, you need to checkout the submodules:
|
||||
|
||||
|
|
@ -64,24 +64,44 @@ 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 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.
|
||||
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.
|
||||
|
||||
[create a pull request]: https://git.hamburg.ccc.de/Cryptoparty/cryptoparty-website/pulls
|
||||
[create a merge request]: https://gitlab.hamburg.ccc.de/cryptoparty/website-content/merge_requests
|
||||
|
||||
How this is set up on the server
|
||||
================================
|
||||
|
||||
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].
|
||||
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:
|
||||
|
||||
[CCCHH Website]: https://git.hamburg.ccc.de/CCCHH/ccchh-website
|
||||
# adduser --system --home /var/www/www-data-rsync --shell /bin/sh --disabled-password --ingroup www-data www-data-rsync
|
||||
|
||||
[ansible-infra]: https://git.hamburg.ccc.de/CCCHH/ansible-infra
|
||||
[nix-infra]: https://git.hamburg.ccc.de/CCCHH/nix-infra
|
||||
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.
|
||||
|
|
|
|||
9
bootstrap-responsive.min.css
vendored
Normal file
1
bootstrap.min.css
vendored
Normal file
433
bootswatch.css
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
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 */
|
||||
}
|
||||
}
|
||||
15
config.toml
|
|
@ -52,7 +52,7 @@ pygmentsCodefencesGuessSyntax = true
|
|||
# github = "username"
|
||||
# gitlab = "username"
|
||||
# bitbucket = "username"
|
||||
#twitter = "CryptopartyHH"
|
||||
twitter = "CryptopartyHH"
|
||||
# reddit = "username"
|
||||
# linkedin = "username"
|
||||
# xing = "username"
|
||||
|
|
@ -94,19 +94,6 @@ 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"
|
||||
|
|
|
|||
|
|
@ -1,307 +0,0 @@
|
|||
---
|
||||
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
|
||||
|
||||

|
||||
|
||||
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
|
||||

|
||||
|
||||
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
|
||||
|
||||

|
||||
|
||||
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.
|
||||

|
||||
Hier suchen wir dann die Einstellung automatisch Einfügen.
|
||||

|
||||
Hier werden wir nun einige Einstellungen vornehmen müssen.
|
||||

|
||||
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.
|
||||

|
||||
Danach sind wir wieder in Bitwarden und erlauben genau so Bedienungshilfe verwenden.
|
||||

|
||||
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.
|
||||
|
||||

|
||||
|
||||
Hier können wir nun unten sehen, dass Bitwarden uns vorschlägt den Tresor zu öffnen. Der Tresor enthält unsere Passwörter.
|
||||
|
||||

|
||||
|
||||
Hier erstellen wir nun mittels dem Plus unten rechts einen neuen Eintrag.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||

|
||||
|
||||
Zuerst müssen wir eine neue Datenbank erstellen.
|
||||
|
||||
|
||||

|
||||
|
||||
Wir werden gefragt, ob wir benachrichtigungen zulassen. Das akzeptieren wir.
|
||||
|
||||
|
||||

|
||||
|
||||
Wir erstellen ein neues Passwort für unsere Datenbank.
|
||||
|
||||
|
||||

|
||||
|
||||
Und speichern diese auf unserem Telefon. Hier kann auch ein Cloudspeicher genutzt werden zum Speichern.
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
Hier wollen wir das Ausfüllen von Formularen erlauben.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
Hier auch wieder KeepassDX auswählen. Auch genannt Magickeyboard.
|
||||
|
||||
|
||||

|
||||
|
||||
Das sieht dann so aus, dass nun mehrere Tastaturen ausgewählt sind.
|
||||
|
||||
|
||||

|
||||
|
||||
Danach wollen wir weiter unten in den Einstellungen noch einstellen, dass wir Benachrichtigungen bekommen, wenn Passwörter im zwischenspeicher liegen.
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
KeepassDX öffnet sich und wir legen einen neuen Eintrag an.
|
||||
|
||||
|
||||

|
||||
|
||||
Wir wählen "Eintrag hinzufügen" aus.
|
||||
|
||||
|
||||

|
||||
|
||||
Hier generieren wir uns ein neues Passwort.
|
||||
|
||||

|
||||
|
||||
Hier können wir alles einstellen was wir brauchen aber sind erstmal zufrieden. Also klicken wir das Ok häckchen.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
Zurück in der Website, müssen wir noch mal in das Feld klicken.
|
||||
|
||||

|
||||
|
||||
Wir sollten nun zur Auswahl haben, dass wir das Passwort von KeePassDX nutzen können.
|
||||
|
||||

|
||||
|
||||
Und das Passwort wird in das Feld gefüllt ohne das wir das Passwort sehen müssen.
|
||||
|
||||

|
||||
## 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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
Hier können wir das Bild speichern.
|
||||
|
||||

|
||||
|
||||
Alternativ kann auch der Text kopiert werden.
|
||||
|
||||

|
||||
|
||||
Nun wechseln wir zu der AEGIS-App. Und legen hier einen neuen Eintrag an.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
Danach im das Passwortfeld wechseln. Hier sollte nun unten ein Passwortsymbol angezeigt sein.
|
||||
|
||||
|
||||

|
||||
|
||||
Nach einem Klick auf dieses Symbol, öffnet sich die Passwortmanager App.
|
||||
|
||||
|
||||

|
||||
|
||||
Hier können wir einen neuen Eintrag erstellen mit einem Klick auf "Neues Passwort erstellen".
|
||||
|
||||
|
||||

|
||||
|
||||
Hier müssen wir nun die Benutzer:in eintragen. Ansonsten können wir diesen Eintrag nicht speichern.
|
||||
|
||||
|
||||

|
||||
|
||||
Danach einfach auf fertig.
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||

|
||||
|
||||
Mit einem klick auf den blauen Button werden dann alle Felder ausgefüllt.
|
||||
|
||||
|
||||
Für den zweiten Faktor sieht das ganze ähnlich aus.
|
||||
|
||||
|
||||

|
||||
|
||||
Hier können wir durch langes drücken auf den QR-Code diesen zweiten faktor in der App speichern.
|
||||
|
||||
|
||||

|
||||
|
||||
Wie sehen ein Dialogfenster dass uns anbietet den Bestätigungscode in "Passwörter" hinzufügen.
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
Nach dem klick darauf, erscheinen die Zahlen die wir brauchen auch schon im Feld.
|
||||
|
||||

|
||||
|
||||
|
||||
## 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/
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
---
|
||||
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
|
||||

|
||||
|
||||
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?
|
||||

|
||||
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].
|
||||
|
||||

|
||||
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
|
||||

|
||||
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
|
||||

|
||||
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]: [Teen’s 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]: [Europe’s 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/)
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
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]
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
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
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
---
|
||||
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.
|
||||

|
||||
|
||||
Der Download geht direkt von der Website zu unserem Gerät. Dies entspricht nicht der Wirklichkeit sondern kann sich eher so Vorgestellt werden.
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
|
@ -34,11 +34,3 @@ 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.
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
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.
|
||||
13
content/termine/2021-test.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: "2021 Test"
|
||||
author: "Die Cryptoengel"
|
||||
type: ""
|
||||
date: 2021-06-04T17:39:39+02:00
|
||||
subtitle: "mega-sub"
|
||||
image: ""
|
||||
tags: []
|
||||
---
|
||||
|
||||
<!--more-->
|
||||
|
||||
Text Sub Header
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
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
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
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")
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
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")
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
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")
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
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×=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×=1699027200,1699032600)
|
||||
|
||||
|
||||
Bitte Informiert euch über den jeweiligen Link, ob eine Anmeldung zuvor nötig ist. Wir freuen uns auf euren Besuch.
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
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.
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
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×=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×=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×=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.
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
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/).
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
---
|
||||
title: "Webinar"
|
||||
author: "cryptoengel"
|
||||
author: ""
|
||||
type: ""
|
||||
date: 2020-05-28T16:42:22+02:00
|
||||
subtitle: ""
|
||||
image: ""
|
||||
tags: [webinar]
|
||||
tags: []
|
||||
---
|
||||
|
||||
In diesen ungewöhnlichen Zeiten wollen wir Euch auch weiterhin mit
|
||||
|
|
@ -31,8 +31,10 @@ 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.
|
||||
|
||||
Hier findest du den nächsten [Termin](/)
|
||||
Das nächste Webinar findet **am Mittwoch den 26.05.2021 um 19 Uhr**
|
||||
statt. Das Motto diesmal:
|
||||
|
||||
**Backup not found – (A)bort, \(R\)etry, (P)anic?**
|
||||
|
||||
Klicke hier um zum Webinar zu kommen:
|
||||
https://bbb.cyber4edu.org/b/cri-anc-77r
|
||||
|
|
|
|||
BIN
download/Download_Mac.zip
Normal file
BIN
download/Download_Mac.zip.sig
Normal file
BIN
download/Download_Win.zip
Normal file
BIN
download/Download_Win.zip.sig
Normal file
6
download/index.html
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<html><head></head><body>
|
||||
<a href="Download_Win.zip">Download für Windows</a><br />
|
||||
<a href="Download_Win.zip.sig">Download für Windows (Signatur)</a><br />
|
||||
<a href="Download_Mac.zip">Download für Mac OS X</a><br />
|
||||
<a href="Download_Mac.zip.sig">Download für Mac OS X (Signatur)</a><br />
|
||||
</body></html>
|
||||
33
font-awesome.min.css
vendored
Normal file
BIN
img/80x15.png
Normal file
|
After Width: | Height: | Size: 640 B |
108
img/CryptoPartyLogo.svg
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<?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>
|
||||
|
After Width: | Height: | Size: 9.6 KiB |
312
img/CryptoPartyLogo_HH.ai
Normal file
BIN
img/CryptoPartyLogo_HH.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
4527
img/hbgu.ai
Normal file
BIN
img/hbgu.eps
Normal file
2155
img/hbgu.pdf
Normal file
BIN
img/hbgu.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
4730
img/hbgu_breit.ai
Normal file
BIN
img/hbgu_breit.eps
Normal file
2157
img/hbgu_breit.pdf
Normal file
BIN
img/hbgu_breit.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
img/karte.png
Normal file
|
After Width: | Height: | Size: 353 KiB |
148
index.html
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
<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">Ü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 & 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> </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:anmeldung@cryptoparty-hamburg.de">anmeldung@cryptoparty-hamburg.de</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:anmeldung@cryptoparty-hamburg.de">anmeldung@cryptoparty-hamburg.de</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
Normal file
45
js/bootswatch.js
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
$('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);
|
||||
0
js/hbgu.js
Normal file
9
js/html5.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
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
Normal file
7
js/jquery.smooth-scroll.min.js
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/*!
|
||||
* 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);
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{{ 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 }}
|
||||
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 789 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 231 KiB |