Afmaken encryptie opgave

Paul Wagener 10 years ago
parent 19f3623f6e
commit 961e236b9d
  1. BIN
      static/img/encryption_project.png
  2. BIN
      static/img/web_of_trust.gif
  3. 74
      templates/encryptie.html

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@ -19,23 +19,6 @@
<p>Bob kan op dezelfde manier ook berichten naar Alice sturen die Alice weer kan ontcijferen. Zolang de sleutel geheim blijft kunnen Alice en Bob veilig met elkaar communiceren.</p>
<img src="static/img/sym_decryptie.png">
<!--
Opdrachten:
== Asymmetrische encryptie ==
- GPG public key inleveren, verstuur naar sec1.aii.avans.nl keyserver
- Ontsleutel deze ciphertekst met onze public key
- Versleutel deze tekst met onze public key
- Verstuur een PGP email?
- Sign sleutel van iemand anders, en verstuur dat naar de keyserver
- Maak miniwebapplicatie, zorg ervoor dat je zelf niet kan ontsleutelen alleen met die van gebruiker
- Host de site ergens, leg kort uit welke technieken je hebt gebruikt
-->
<p>We kunnen met OpenSSL (zie vorige week als je dat nog niet hebt geinstalleerd) ook encrypten en decrypten met verschillende soorten encryptie algoritmes. Met onderstaande commando kunnen we bijvoorbeeld een bestand ontsleutelen.</p>
@ -67,13 +50,13 @@
<div class="question">
<span class="question-string">Wat is de geheime code die in dit versleutelde bestandje staat?</span>
<div class="points"><span class="question-points">10</span> punten</div>
<input class="question-input" name="answer_encryption_decrypt" value="{{ answers.answer_encryption_decrypt }}"></input>
<input class="question-input" name="answer_encryption_decrypt" value="{{ answers.answer_encryption_decrypt.string }}"></input>
</div>
<div class="question">
<span class="question-string">Versleutel de tekst "<em>Avans Hogeschool</em>" met het aes-256-cbc algoritme in base64 mode. Plak de versleutelde tekst in het tekstveld, gebruik <code>Ab12345</code> als wachtwoord.</span>
<div class="points"><span class="question-points">10</span> punten</div>
<textarea class="question-input" name="answer_encryption_encrypt">{{ answers.answer_encryption_encrypt }}</textarea>
<textarea class="question-input" name="answer_encryption_encrypt">{{ answers.answer_encryption_encrypt.string }}</textarea>
</div>
<p class="hint">Hint: Je kan dit commando gebruiken: <code class="terminal">openssl enc -aes-256-cbc -base64 -in avans.txt -out avansgeheim.aes256.txt</code></p>
@ -113,17 +96,17 @@
Leg uit in welke volgorde Alice en Bob encrypten, decrypten en versturen en met welke sleutels. Je mag er van uit gaan dat ze (alleen) elkaars publieke sleutel weten.
</span>
<div class="points"><span class="question-points">10</span> punten</div>
<textarea class="question-input" name="answer_encryption_securesend">{{ answers.answer_encryption_securesend }}</textarea>
<textarea class="question-input" name="answer_encryption_securesend">{{ answers.answer_encryption_securesend.string }}</textarea>
</div>
<img src="static/img/bleep.png">
<p>Deze screenshot hebben we op internet gevonden van een app die beweert dat alle chatberichten 100% geheim blijven en dat het bedrijf zelf niet de berichten kan lezen.</p>
<p>Deze screenshot hebben we op internet gevonden van een app die beweert dat alle chatberichten 100% geheim blijven en dat het bedrijf zelf niet de berichten kan lezen. De berichten worden wel verstuurd via de servers van Bleep.</p>
<div class="question">
<span class="question-string">Leg kort uit hoe de app deze claim kan waarmaken, waarom daar de QR code voor nodig is en hoe beveiligde berichten waarschijnlijk verstuurd worden.</span>
<span class="question-string">Leg kort uit hoe de app deze claim kan waarmaken, waarom daar de QR code voor nodig is en hoe beveiligde berichten waarschijnlijk verstuurd worden (niet alleen maar: 'het wordt versleuteld').</span>
<div class="points"><span class="question-points">10</span> punten</div>
<textarea class="question-input" name="answer_encryption_bleem">{{ answers.answer_encryption_bleem }}</textarea>
<textarea class="question-input" name="answer_encryption_bleep">{{ answers.answer_encryption_bleep.string }}</textarea>
</div>
@ -148,6 +131,7 @@
<li><b>--encrypt</b> Gebruik iemand anders publieke sleutel om een bestand te encrypten.</li>
<li><b>--recv-keys --keyserver sec1.aii.avans.nl <i>sleutel-ID</i></b> Haal een publieke sleutel op van de onze keyserver</li>
<li><b>--send-keys --keyserver sec1.aii.avans.nl <i>sleutel-ID</i></b> Verstuur een publieke sleutel naar onze keyserver</li>
<li><b>--sign-key</b> Signeer een publieke sleutel met jouw eigen private sleutel</li>
<li><b>-a</b> Output in ASCII base64 formaat</li>
<p>
@ -156,7 +140,7 @@
<div class="question">
<span class="question-string">Welke zin hebben we versleuteld?</span>
<div class="points"><span class="question-points">5</span> punten</div>
<input class="question-input" name="answer_encryption_decrypt_public_key" value="{{ answers.answer_encryption_decrypt_public_key }}">
<input class="question-input" name="answer_encryption_decrypt_public_key" value="{{ answers.answer_encryption_decrypt_public_key.string }}">
</div>
<p>Gebruik onze publieke sleutel om zelf een tekstbestandje te versleutelen. Zorg ervoor dat ergens in de tekst van dit bestandje de geheime code "555-0690" en je Avans e-mailadres staat.</p>
@ -164,19 +148,55 @@
<div class="question">
<span class="question-string">Plak de inhoud van het versleutelde bestand (inclusief begin en einde <code>-----BEGIN PGP MESSAGE-----</code>)</span>
<div class="points"><span class="question-points">5</span> punten</div>
<textarea class="question-input" name="answer_encryption_encrypt_public_key">{{ answers.answer_encryption_decrypt_public_key }}</textarea>
<textarea class="question-input" name="answer_encryption_encrypt_public_key">{{ answers.answer_encryption_encrypt_public_key.string }}</textarea>
</div>
<p>Tijd om je eigen sleutels te gebruiken! Maak je eigen publieke/private sleutelpaar en verstuur de publieke sleutel naar de sec1.aii.avans.nl keyserver. <b>Gebruik je Avans e-mailadres voor het e-mailveld</b>.</p>
<p>Vergeet niet om je publieke sleutel naar de sec1.aii.avans.nl keyserver te sturen zodat anderen die kunnen opzoeken en geheime berichten naar je kunnen sturen (en zodat wij de opdrachten kunnen nakijken)</p>
<div class="question">
<span class="question-string">Versleutel een bestandje met de tekst "Security 2" met je eigen private sleutel. Plak de versleutelde tekst in het tekstveld</span>
<div class="points"><span class="question-points">5</span> punten</div>
<textarea class="question-input" name="answer_encryption_encrypt_with_own_private">{{ answers.answer_encryption_encrypt_with_own_private.string }}</textarea>
</div>
<p>Tijd om je zelf wat te encrypten! Maak je eigen publieke/private sleutelpaar en verstuur de publieke sleutel naar de sec1.aii.avans.nl keyserver. <b>Gebruik je Avans e-mailadres</b>.</p>
<h3>Web of Trust</h3>
<p>Probleempje: elke mafketel kan sleutels aanmaken en daar elke naam bij zetten die hij maar wil. Hoe zorgen we ervoor dat de naam en e-mailadres die bij een sleutel staan ook echt klopt? Dit probleem heeft GPG opgelost door het mogelijk te maken om met jouw private sleutel een <b>handtekening</b> (signature) te maken voor een publieke sleutel van iemand anders. Je geeft daarmee aan dat je gecontroleerd hebt dat de naam die bij een sleutel staat klopt en dat je die persoon vertrouwd.</p>
<p>Op die manier ontstaat er een web van vertrouwensrelaties. En als jij Tony vertrouwd, en Tony vertrouwd Steve. Dan kan je indirect ervan uitgaan dat de naam van de sleutel van Steve klopt. Op die manier kan je indirect een hele hoop sleutels vertrouwen. Op onze keyserver zie je bijvoorbeeld<a href="http://sec1.aii.avans.nl:11371/pks/lookup?op=vindex&search=0XD555F2F5FA9E1C5A">wie er allemaal direct onze sleutel vertrouwd.</a></p>
<img src="static/img/web_of_trust.gif">
<p>Als je je eigen sleutel wil gebruiken om andere sleutels te ondertekenen/vertrouwen doe je dat door eerst een publieke sleutel te downloaden van de keyserver, dan deze lokaal te ondertekenen met je eigen sleutel en vervolgens de publieke sleutel weer opnieuw te versturen naar de keyserver.</p>
<div class="question">
<span class="question-string">Gebruik je eigen sleutel om onze sleutel (sleutel-ID: FA9E1C5A) en de sleutel van drie medestudenten te ondertekenen. Upload je ondertekening terug naar de keyserver. Plak je eigen sleutel-ID als antwoord hier.</span>
<div class="points"><span class="question-points">5</span> punten</div>
<input class="question-input" name="answer_encryption_sign_keys" value="{{ answers.answer_encryption_sign_keys.string }}">
</div>
<h3>Laatste opdracht</h3>
<p>Het vak is bijna afgelopen, en we hebben nog één laatste grote opdracht voor je waarbij je kennis van deze week nog een kan toepassen in een programmeerprojectje. Maak een kleine webapplicatie waar een gebruiker de volgende dingen kan invoeren:</p>
<ul>
<li>Een naam</li>
<li>Een geheime tekst</li>
<li>Een wachtwoord</li>
</ul>
<p>Zorg ervoor dat de webapplicatie de geheime tekst versleuteld opslaat zodat als iemand de database steelt het onmogelijk is om de geheime tekst te lezen. Als de gebruiker alleen een naam en het juiste wachtwoord invult krijgt hij zijn originele tekst weer te zien.</p>
<p>Zet de code op GitHub en leg in de README.md kort uit welke technieken, libraries en frameworks je hebt gebruikt. Je mag zelf kiezen welke programmeertaal je gebruikt.</p>
<div class="question">
<span class="question-string">Plak hier de link naar je GitHub project</span>
<div class="points"><span class="question-points">25</span> punten</div>
<input type="url" class="question-input" name="answer_encryption_github_project" value="{{ answers.answer_encryption_github_project.string }}">
</div>
<img src="static/img/encryption_project.png" class="screenshot" style="width: 50%">
<p>
{% endblock %}
Loading…
Cancel
Save