Einen SQL Server-Datenbankeintrag oder eine Einfüge- / Aktualisierungsoperation digital signieren

8

Gibt es eine Möglichkeit, den aktuellen Status eines Datenbankeintrags oder eines bestimmten Felds mit einem bestimmten Benutzerzertifikat oder AD-Berechtigungsnachweis usw. digital zu signieren? Ich muss eine Art von Genehmigung auf Datensatzebene implementieren, bei der die Korrektheit und Gültigkeit eines bestimmten Felds oder bestimmter Felder oder einer Zeile durch eine Kombination aus Benutzername / Passwort oder mit einem Zertifikat signiert wird. Daten sollten immer in der Aufzeichnung sichtbar sein, alles was ich brauche, ist zu sagen, wer und wann die Daten genehmigt wurden. Ich muss eine Statusänderung nicht verhindern (Lockdown), nur um zu überprüfen, ob der aktuelle Status signiert wurde.

    
Peter Aron Zentai 17.12.2013, 09:14
quelle

2 Antworten

8

Sie können die SIGNBYASYMKEY-Funktion verwenden, um eine Signatur mit einem asymmetrischen Schlüssel zu erstellen:

%Vor%     
Twinkles 17.12.2013, 10:13
quelle
6

[Offenlegung: Ich arbeite für CoSign]

Wie standardisiert eine digitale Signatur? Möchten Sie eine X.509-Signatur , die "echte Sache"?

Wenn ja:

  1. serialisieren (glätten) Sie die Datenfelder in einer bestimmten, dokumentierten und wiederholbaren Weise in einen Puffer.
  2. Verwenden Sie eine signierende Bibliothek, um den Puffer zu signieren.
  3. Die resultierende digitale Signatur sollte eine "abgetrennte digitale Signatur" sein. Der empfohlene Standard für abgeleitete Signaturen ist der .p7b-Dateityp - eine digitale Signaturstruktur ohne PKCS # 7 die Daten.
  4. Speichern Sie die abgetrennte digitale Signatur als zusätzliches Feld im dbms-Datensatz.

Sie müssen außerdem einen Signaturverifizierungsdienst bereitstellen, um sicherzustellen, dass die Person (oder der Computer) die Daten seit ihrer Unterzeichnung nicht geändert hat und dass die Identität des Unterzeichners vertrauenswürdig ist:

>
  1. Unter Verwendung des gleichen Algorithmus wie oben, serialisieren Sie die Daten in einen Puffer
  2. Rufen Sie die Überprüfungsmethode der unterzeichnenden Bibliothek auf
  3. Präsentieren Sie die Ergebnisse dem Benutzer.

Wenn Sie die Auditfunktionen Ihres Systems verbessern möchten, sollten Sie die serialisierten Daten und die externe Signatur herunterladen. Dies ermöglicht eine Überprüfungsprüfung: Verwenden von Software von Drittanbietern, um den Effekt Ihrer Verifikationssoftware zu duplizieren.

Idealerweise sollte die serialisierte Version der Daten leicht überprüft werden, dass sie mit den Klartextdaten übereinstimmt. ZB serialisieren in ein json, csv oder xml utf-8-Format anstelle eines binären Formats. Jedes Bündel von Bits kann signiert werden, aber ein einfaches Textformat wird viel einfacher zu überwachen sein.

Wenn Sie möchten, dass die Signaturbibliothek alle Sicherheitsprobleme beim richtigen Schützen der privaten Schlüssel des Unterzeichners behandelt, lesen Sie die CoSign-Datei SAPI-APIs.

Denken Sie daran, dass das Speichern privater Signaturen von Unterzeichnern in einer Datei im Dateisystem bedeutet, dass die gesamte Anwendung nicht ist, um einen Signaturnachweis zu erbringen. Die einzige Möglichkeit, einen echten Signaturnachweis zu erstellen, ist die Verwendung eines Secure Signature Creation Device (SSCD). Eine einfache Möglichkeit dazu besteht in der Verwendung einer CoSign Central-Signatur-Appliance oder ähnlichem. Die Hauptalternative sind Smartcards, die in einer Client / Server / Webbrowserumgebung ziemlich schwierig zu implementieren sind.

    
Larry K 18.12.2013 05:49
quelle

Tags und Links