Zum Hauptinhalt springen

Kunden-Lebenszyklus (offline)

Niveau Anfänger
Lesezeit ⏱ 10 Min.
Wörter 1007
Themen licenseactivation

Kunden-Lebenszyklus (Offline-Aktivierung, Self-Service)

Dieses Dokument beschreibt ausschließlich den kundenseitigen Lebenszyklus: Installation der Binärdatei, Self-Service-Deklaration von Maschinen, Kontingente, Laufzeitprüfung und Wechsel zwischen mehreren Lizenzen.

Wichtiger Hinweis: Die SCA-Binärdatei macht NIEMALS einen HTTP-Aufruf. Jede Kommunikation Server ↔ Client läuft über E-Mail + Nutzeraktionen im Webportal (www.codefixture.com).

Chronologische Übersicht (3 Phasen, in dieser Reihenfolge)

Diagramm der 3 Phasen des Kunden-Lebenszyklus

Phase A — Erstinstallation (einmal pro Kunde)

  1. Angebot, dann Rechnungsstellung — das Preismodell wird auf Anfrage mitgeteilt (how-we-price.php), kein Online-Selbstbedienungs-Checkout.
  2. Aktivierungs-E-Mail, gesendet sobald das Kundenkonto angelegt ist, zum Festlegen des Portal-Passworts (signierter Link, 2 Stunden gültig). Eine zweite E-Mail „Paket bereit" folgt, sobald der Betreiber eine Binärdatei geliefert hat.
  3. Anmeldung auf www.codefixture.com/login.php: E-Mail + Passwort, danach ein 6-stelliger Anmeldecode per E-Mail, eingegeben auf otp.php (systematische Zwei-Faktor-Authentifizierung bei jeder Anmeldung).

Phase B — Für JEDE genutzte Plattform (Linux, macOS, Windows…)

  1. Auf /downloads.php in der Zeile der gewünschten Plattform auf Herunterladen klicken. Man erhält eine Datei:
    • sca-<version>-<platform>-<id>.tar.gz (Linux)
    • sca-<version>-<platform>-<id>.dmg (macOS)
    • sca-<version>-<platform>-<id>.zip (Windows)
  2. SHA-256 prüfen (empfohlen):
    shasum -a 256 sca-1.0.0-linux-x86_64-acme.tar.gz   # macOS / Linux
    certutil -hashfile sca-1.0.0-win-x86_64-acme.zip SHA256   # Windows
    
    → mit dem auf /downloads.php angezeigten Wert vergleichen.
  3. Paket entpacken. Inhalt:
    • staticcodeaudit-<platform> (die ausführbare Binärdatei)
    • README.txt (Offline-Aktivierungsverfahren)
    • NOTICE.txt (Lizenzhinweise + Erinnerung an das Offline-Prinzip)

Downloads-Seite des Kundenportals mit den verfügbaren Paketen je Plattform, Größe und SHA-256

Phase C — Für JEDE zu aktivierende Maschine (bis zu max_machines, Self-Service)

  1. Maschinen-Fingerabdruck berechnen (SHA-256, 64 Hex-Zeichen, abgeleitet aus Hostname + Architektur + Betriebssystem + MAC, ohne Netzwerkaufruf) — zwei gleichwertige Wege:
    • Ohne installierte Binärdatei: Auf www.codefixture.com/activate.php bieten ein Linux/macOS-Tab und ein Windows-Tab je einen Einzeiler (Python 3 oder PowerShell) zum Einfügen in ein Terminal, mit Kopieren-Button.
    • Binärdatei bereits installiert: ./staticcodeaudit-<platform> activate zeigt denselben Fingerabdruck direkt im Terminal an (oder die SCA-Fußzeile bei einem Scan auf einer noch nicht aktivierten Maschine).

Seite „Lizenz aktivieren": Einzeiler-Befehl zur Berechnung des Maschinen-Fingerabdrucks, und die Lizenzkarte mit ihren Kontingenten

  1. Diesen Fingerabdruck kopieren (USB-Stick, Telefon, Copy-Paste) auf ein mit dem Internet verbundenes Gerät — kann dasselbe Gerät sein, das zur Berechnung verwendet wurde.
  2. Auf diesem verbundenen Gerät zu www.codefixture.com/activate.php gehen (Anmeldung erforderlich). Alle Lizenzen des Kunden werden automatisch aufgelistet — keine erneute Eingabe der Seriennummer nötig. Für die betreffende Lizenz:
    • Plattform auswählen (Dropdown)
    • Maschinen-Fingerabdruck einfügen
    • Optionale Bezeichnung angeben (z. B. „MacBook Büro")
    • Auf + Hinzufügen klicken

Liste der auf einer Lizenz deklarierten Maschinen mit dem verbleibenden Kontingent, und das Formular zum Hinzufügen einer Maschine

  1. Die Website aktualisiert license.key sofort serverseitig (neuer Fingerabdruck zur signierten Liste hinzugefügt). Diese Datei über die entsprechende Schaltfläche auf der Lizenzkarte herunterladenjederzeit verfügbar, nicht nur direkt nach dem Hinzufügen.
  2. Die license.key auf die Zielmaschine übertragen (USB-Stick / scp / AirDrop) und im selben Ordner wie die Binärdatei ablegen.
  3. SCA erneut starten:
    ./staticcodeaudit-linux-x86_64 scan ~/mein-projekt
    
    → SCA:
    • liest die lokale license.key
    • prüft die HMAC-HKDF-Signatur (eingebetteter öffentlicher Schlüssel — null Netzwerkaufrufe)
    • prüft, ob der lokale Fingerabdruck ∈ der signierten Liste ist
    • prüft expires_at > today
    • startet den Scan
    • Fußzeile am Ende: Status: OK (Maschine aktiviert)

Self-Service-Kontingente (2 unterschiedliche Dimensionen)

Jede Lizenz hat zwei unabhängige Kontingente, konfigurierbar je nach Preistarif (Tier):

Kontingent Was es begrenzt Rücksetzung
Plätze (max_machines) Anzahl gleichzeitig deklarierter Maschinen auf der Lizenz Nie — ein Entfernen gibt sofort einen Platz frei
Hinzufügefrequenz (max_machine_changes_per_year) Anzahl der Hinzufügungen von Maschinen in einem gleitenden 365-Tage-Fenster Gleitend — eine über ein Jahr alte Hinzufügung fällt automatisch aus der Zählung

Angezeigt auf /activate.php, pro Lizenz: „X / Y Maschine(n) deklariert · Z Hinzufügung(en) übrig in den letzten 12 Monaten".

Nur Hinzufügungen verbrauchen das Frequenzkontingent — ein Entfernen (Button „✕ Entfernen") ist immer möglich, ohne Limit: Es gibt einen Platz frei, ohne jemals zusätzliche Hardware hinzuzufügen — auf dieser Seite gibt es also nichts zu begrenzen. Das Entfernen löst sofort eine Neusignierung der license.key aus (Fingerabdruck aus der Liste entfernt): Die Binärdatei stoppt auf diesem Gerät bei ihrer nächsten Prüfung (kein sofortiger Stopp — es gibt keinen Netzwerkaufruf, der ihn früher auslösen könnte).

Das Umbenennen der Bezeichnung einer Maschine (notes) gilt nie als Änderung — immer möglich, selbst bei ausgeschöpftem Hinzufügekontingent.

Mögliche Fehlermeldungen (Self-Service)

Situation Angezeigte Meldung
Dieser Fingerabdruck ist bereits für diese Lizenz deklariert Diese Maschine ist bereits für diese Lizenz deklariert.
Platzkontingent (max_machines) erreicht Maschinenkontingent für diese Lizenz erreicht.
Hinzufügekontingent (365-Tage-Fenster) erreicht Kontingent für Maschinen-Hinzufügungen in den letzten 12 Monaten erreicht.
Lizenz nicht aktiv (suspendiert, abgelaufen, widerrufen) Diese Lizenz ist nicht aktiv: Maschinendeklaration nicht möglich.

1 Laufzeitprüfung (ohne Internet)

Bei jeder Ausführung auf einer bereits aktivierten Maschine prüft SCA: - liest die lokale license.key von der Festplatte - prüft die HMAC-HKDF-Signatur (Integrität + Fälschungssicherheit — öffentlicher Schlüssel in der Binärdatei eingebettet) - prüft, ob der lokale Fingerabdruck ∈ fingerprints des Payloads ist - prüft expires_at > today - kein Netzwerkaufruf, kein Ping, keine Telemetrie.

Konsequenz: Ein Entfernen einer Maschine oder ein administrativer Widerruf wird erst bei der nächsten Prüfung der betroffenen Binärdatei wirksam (ein erneuter Download der license.key verbreitet ein Entfernen sofort; für einen vollständigen Lizenzwiderruf muss der Nutzer eine neue license.key herunterladen, die seinen Fingerabdruck nicht mehr enthält oder ein näheres expires_at hat).

2 Mehrere Lizenzen auf einer Maschine — SCA_LICENSE_PATH

Hat ein Kunde 2 unterschiedliche Lizenzen (z. B. persönliches Solo Plus + Team-Lizenz — seltener Fall), kann er ohne Dateien zu verschieben zwischen ihnen wechseln:

SCA_LICENSE_PATH=~/lizenzen/team.key       ./sca scan ~/arbeitsprojekt
SCA_LICENSE_PATH=~/lizenzen/solo-plus.key  ./sca scan ~/privatprojekt

Prioritätsreihenfolge von SCA zum Auffinden seiner license.key:

  1. $SCA_LICENSE_KEY (roher JSON-Inhalt, von einem Wrapper gesetzt)
  2. $SCA_LICENSE_PATH (Pfad zu einer .key-Datei — empfohlen zum Wechseln zwischen Lizenzen)
  3. ./license.key (cwd, Standardkonvention)

3 Sonderfälle auf Kundenseite

Fall Vorgehen
N-te Maschine hinzufügen Phase C (Schritte 7→12) auf der neuen Maschine wiederholen. Verbraucht 1 Hinzufügung des Frequenzkontingents (sofern Plätze max_machines verfügbar sind).
Neuinstallation des Betriebssystems auf derselben Maschine Der Fingerabdruck ändert sich → Phase C wiederholen (neue Hinzufügung). Ist das Platzkontingent erreicht, zuerst den alten Fingerabdruck über /activate.php entfernen (kostenlos, ohne Limit).
Gerätewechsel Das alte Gerät über /activate.php entfernen → Phase C auf dem neuen wiederholen (1 Hinzufügung verbraucht).
Verlorene/gestohlene Maschine Über /activate.php entfernen — wirksam bei der nächsten Prüfung dieser Binärdatei.
license.key-Datei verloren Jederzeit über /activate.php erneut herunterladen (eigene Schaltfläche pro Lizenz) — Phase C muss nicht wiederholt werden, der Fingerabdruck ist bereits deklariert.
Jährliche Verlängerung Der Kunde wiederholt Schritt 4 (neues Paket herunterladen) + Schritt 11 (neue license.key übertragen) auf jeder Maschine, falls sich die Version geändert hat.