lehrkraefte:blc:informatik:glf22:crypto:joker-chain

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf22:crypto:joker-chain [2022/08/18 09:09]
Ivo Blöchliger [Joker Einlösen]
lehrkraefte:blc:informatik:glf22:crypto:joker-chain [2024/05/07 16:49] (current)
Ivo Blöchliger [JokerChain]
Line 1: Line 1:
-~~NOTOC~~ +====== JokerChain ====== 
-====== Setup ======+Eventuell eine JavaScript-Version? https://asecuritysite.com/node/node_signec 
 +===== Setup und Verwendung ===== 
 +==== Nötige Software ====
  
 +  * git (plus OpenSLL, ist in git for Windows dabei), Python und VisualStudio Code, siehe [[lehrkraefte:blc:informatik:glf22:technisches|Anleitungen hier]]
 +
 +==== Setup der JokerChain ====
 +Screencast dazu auf dem [[https://fginfo.ksbg.ch/~ivo/videos/informatik/22-23/03-setup-der-jokerchain.mp4|Web]] oder auf [[https://web.microsoftstream.com/video/4fa2f480-7175-4ad5-a6bf-72c1b8931047|Stream]]
 +  * git bash starten
 +  * in geeigntes Verzeichnis gehen: ''cd pfadangabe''
 +  * ''git clone https://github.com/techlabksbg/jokerchain.git''
 +  * ''cd jokerchain''
 +  * Erster Test: ''python jokerchain.py''
 +    * Schlägt fehl, weil ein package fehlt. Also dieses installieren mit
 +    * ''pip install requests''
 +    * Und dann gleich noch pip updaten mit
 +    * ''pip install --upgrade pip''
 +  * Bereits existierende Schlüssel ins Verzeichnis kopieren oder
 +    * Neue Schlüssel anlegen (nur wenn noch keiner vorhanden): ''python jokerchain.py -n''
 +    * Die Datei ''public-key-joker.pem'' an ivo.bloechliger@ksbg.ch senden.
 +    * Die Datei ''secret-private-key-joker.pem'' sicher verwahren und mindestens ein Backup erstellen.
 +
 +==== Update der Chain ====
 +  * ''cd'' ins Verzeichnis, wo das Pythonprogramm ''jokerchain.py'' gespeichert ist.
 +  * ''git pull''  (lädt die neueste Version herunter).
 +
 +==== Joker einlösen ====
 +  * ''python jokerchain.py -d 2022-08-29'' wobei das Datum in diesem Format (JJJJ-MM-TT) und in der Zukunft liegen muss.
 +==== Joker transferieren ====
 +  * ''python jokerchain.py -t c001f4c3'' wobei nach -t ein existierender Hash eines anderen Nutzers stehen muss. **Achtung**, die Überweisung eines Jokers an den Admin zählt nicht als Einlösen!
 +==== Transaktionen und Kontostand anschauen ====
 +  * ''python jokerchain.py''
 +==== Weitere Optionen ====
 +  * ''python jokerchain.py -h''  Hilfe anzeigen
 +  * ''python jokerchain.py -v ...''  Verbose: Anzeigen was, das Programm so alles tut.
 +
 +====== Technische Umsetzung mit openssl ======
 +Das Python-Script ''jokerchain.py'' führt die im folgenden erklärten openssl-Kommandos aus. Es ist im Prinzip möglich, alle Manipulation auch «von Hand» auszuführen und so neue valide Einträge zu erstellen.
 ===== Schlüsselerzeugung ===== ===== Schlüsselerzeugung =====
 In Git-Bash: In Git-Bash:
Line 67: Line 103:
 list of joker tokens list of joker tokens
 </code> </code>
- +Darauf muss eine ''# rootsignature'' folgen.
 ===== Überweisung ===== ===== Überweisung =====
 <code txt> <code txt>
Line 83: Line 118:
 Signatur der ganzen Datei bis und mit ## signature\n Signatur der ganzen Datei bis und mit ## signature\n
 </code> </code>
 +Hinweis: Der Sender kann auch der Admin sein, der damit neue Joker erschaffen kann. Das ist nötig, wenn z.B. ein Joker eingelöst wurde, die Schülerin aber wegen Krankheit gar nicht anwesend war. Oder sich der Lehrer mal wieder zu spät bewusst wird, dass die Miniaufgabe «ungeeignet» war.
  
 ===== Joker Einlösen ===== ===== Joker Einlösen =====
  • lehrkraefte/blc/informatik/glf22/crypto/joker-chain.1660806561.txt.gz
  • Last modified: 2022/08/18 09:09
  • by Ivo Blöchliger