Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Vierde jaar Beveiliging Labo's  PGP - GnuPG

Labo PGP - GPG

Vermits de vrij te gerbuiken versie 8 van pgp niet meer functioneert vanaf Fedora4, gebruiken we voor dit labo GnuPG, een volledige en vrij te gebruiken vervanging van PGP. GnuPG is een toepassing die volledig compatibel is met RFC2440 (OpenPGP) en die standaard geïnstalleerd is onder linux.
Alle verdere informatie over GnuPG vind je hier.

Documentatie

Algemene informatie over PGP kan je vinden in

Meer specifieke informatie over GnuPG kan je vinden in

De bedoeling van dit labo is om de belangrijkste mogelijkheden van gpg uit te proberen als gewone gebruiker.

Verslag

Van al je activiteiten schrijf je een elektronisch verslag. Vermeld steeds
  • vraagnummer
  • wat je doet
  • met welke commando's
  • problemen die je tegenkomt
  • hoe je ze oplost.
Geef ook het antwoord op de gestelde vragen.

Dit elektronisch verslag is een niet opgemaakt tekstbestand met als naam pgp.txt dat je plaatst op je U-drive binnen de map beveiliging/pgp.

Uiterste datum om in te dienen: 3/12/2009 om 13u30.

Opgave uit te voeren als gewone gebruiker

Om synchronisatieproblemen te vermijden voer je eerst (als root) volgend commando's uit:

   service ntpd stop
   ntpdate time.hogent.be

1. Maak voor jezelf minstens drie sleutelparen aan (DSA+ElGamal, DSA en RSA) met een verschillend userID. Je gebruikt best iets in de aard van "voornaam familienaam".
Kies een verschillende geldigheidsperiode voor deze sleutels.
Vraag 1: waarvoor wordt de passphrase gebruikt?
Vraag 2: waarom wordt er bij het aanmaken van een sleutel soms naar extra toetsaanslagen gevraagd en soms niet?

2. Exporteer al je publieke sleutels naar meerdere bestanden die je aan andere gebruikers kan aanbieden.
Exporteer in 2 verschillende formaten, waarvan er één geschikt is voor transport via e-mail of publicatie op een webserver.
Vraag: wat is het formaat van deze bestanden?

3. Wissel dergelijke bestanden uit met minstens 4 andere gebruikers. Dit kan via diskette, publieke directory, usbstick, e-mail, ...
We gaan er op dit ogenblik van uit dat sleutels die op deze manier zijn verkregen, volledig te vertrouwen zijn.

4. Voeg deze publieke sleutels toe aan je publieke sleutelhanger. Verifieer of ze wel zijn opgenomen. Verwijder een van de sleutels uit de sleutelhanger. Controleer. Voeg hem er nadien weer bij.

5. Editeer een van je sleutels: verander de passeerzin.

6. Check je sleutels en de handtekeningen die er bij horen. Verifieer de fingerprint van je sleutels bij je correspondenten. Zorg er voor dat al je sleutels in je sleutelhanger volledig vertrouwd worden, indien dit niet het geval zou zijn. Teken al je eigen sleutels en die van de personen van wie je de sleutel vertrouwt.

7. Maak vijf korte tekstbestanden aan die je aan andere gebruikers wil overmaken.

  • het eerste encrypteer je met conventionele encryptie op twee manieren: een eerste keer met het default algortime (welk?), de tweede keer geef je ook het algoritme op (bv. AES256).

  • het tweede bestand encrypteer je zodat alleen één van je correspondenten uit je sleutelhanger het bestand kan decrypteren.
    Vraag: met welk algoritme is de encryptie gebeurd?

  • het derde encrypteer je zodat die door minstens twee gebruikers is te ontvangen en te gebruiken. Zorg dat de encryptie met een ander dan het default algoritme gebeurt.

  • het vierde encrypteer je zodat de ontvanger hem niet zonder meer kan opslaan op zijn harddisk.

  • het vijfde encrypteer je conventioneel maar het resultaat is in radix64.

8. Veeg de originele plaintextbestanden uit. Probeer nu de plaintext te herstellen uitgaande van de ciphertext van elk bestand. Controleer wat er al dan niet nog kan gebeuren.

9. Wissel de geëncrypteerde bestanden uit met je collega's.

10. Decrypteer alle ontvangen bestanden. Beschrijf in elk van de gevallen wat er gebeurt.
Vraag 1: wat is het verschil tussen het al dan niet gebruiken van de optie -d. Test uit.

11. Maak drie nieuwe tekstbestanden aan. Behandel ze als volgt:

  • teken het eerste bestand en encrypteer het voor een van je correspondenten.
  • plaats een handtekening op het tweede bestand
  • maak van de derde een gehandtekende file die bruikbaar is voor e-mail.
Maak een kopie van een van de bestanden en verander het zodat de handtekening niet meer klopt. Wissel al deze files uit met je collega's.

12. Decrypteer de ontvangen bestanden en verifieer de handtekening.

13. Maak van een nieuwe tekstbestand een apart handtekeningcertificaat. Zorg er voor dat deze tekst ook door 2 of 3 andere gebruikers wordt getekend. Wissel de tekst en de handtekenigen uit en controleer. Test wat er gebeurt indien je het originele tekstbestand verwijderd hebt.

14. Maak van een tekstbestand een clearsigned document. Wat is de inhoud? Verstuur het via e-mail naar een correspondent. Verifieer de handtekening van een ontvangen bestand en decrypteer.

15. PGP maakt geen gebruik van 1 CA, maar wel van een web-of-trust. We simuleren dit hier met 5 gebruikers A, B, C, D en E. Jij bent gebruiker A en je buren zijn gebruikers B, C , D en E. Indien je onafhankelijk wil werken, kan je ook op je eigen machine lokale gebruikers aanmaken
Noteer duidelijk in je verslag wat je precies gedaan hebt en wat je bevindingen zijn in onderstaande situaties. Geef eventueel een verklaring.

Situatie 1:

  • B importeert een sleutel van C, tekent hem en vertrouwt hem volledig.
  • B exporteert de sleutel van C, geeft deze door aan A.
  • A importeert de sleutel van B en de door B geëxporteerde sleutel van C.
  • A verifieert nu de status van sleutels B en C. Wat valt er op.
  • A tekent nu de sleutel van B en vertrouwt hem volledig.
  • A verifieert nu opnieuw de status van sleutel C. Wat is er veranderd?

Situatie 2:

  • B, C en D importeren dezelfde sleutel van E, tekenen hem en vertrouwen hem marginaal.
  • B, C en D exporteren deze sleutel van E, geven deze door aan A.
  • A importeert de sleutel van B, C en D, tekent deze en vertrouwt ze marginaal.
  • A importeert sleutel E getekend door B. Verifieer de status van sleutel E.
  • A importeert sleutel E getekend door C. Verifieer de status van sleutel E.
  • A importeert sleutel E getekend door D. Verifieer de status van sleutel E.

G. Van hoogenbemt 02/12/2008

Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet