Elegant IPB Skin By Skinbox

.NET Base: Dateien signieren - .NET Base

Zum Inhalt wechseln

Seite 1 von 1
  • Du kannst kein neues Thema erstellen
  • Antworten nicht möglich

Dateien signieren Anwendungen mit Authenticode signieren

Geschrieben 10. Sep 2009 - 17:23 (#1) Mitglied ist offline   Dennis Alexander 

  • Administrator
  • Blog anzeigen
  • Gruppe: Administratoren
  • Beiträge: 533
  • Registriert: 09. Sep. 09
  • Wohnort: Bad Essen
  • OS: Windows 7 Prof.
  • IDE: Visual Studio 2010 Ultimate

Ich habe in meinem aktuellen Projekt eine Klasse entwickelt, welche aus dem Windows eigenen Zertifikats-Store ein beliebiges Zertifikat nutzt, um eine Datei zu signieren.

Logischerweise muss es ein Zertfikat sein, welches die Codesignatur unterstüzt. (Extension ID: 1.3.6.1.4.1.6449.1.2.1.3.2) [Diese Zertifikate können nur .dll, .cab, .exe Dateien signieren]

Ich habe die Funktion etwas weiter ausgebaut und dazu eine eigene Library erstellt, welche in jedes .NET Projekt eingefügt werden kann.

Darüberhinaus habe ich eine kleine Demo-Anwendung entwickelt, welche die Funktionsweise verdeutlichen soll:

Visual C#
 // Mein Objekt
 signProvider sP;


 // Load Event
 private void Form1_Load(object sender, EventArgs e)
 {
 // Instanziiere neues signProvider Objekt
 sP = new signProvider(true);
 }

 private void button1_Click(object sender, EventArgs e)
 {
 // Öffne Auswahldialog der Zertifikate
 sP.selectFromStore("Überschrift", "Beschreibung");

 // Wenn ein Zertifikat ausgewählt wurde, Informationen auslesen
 if (sP.Selected == true)
 {
 listBox1.Items.Clear();
 listBox1.Items.Add("Aussteller: " + sP.Issuer);
 listBox1.Items.Add("Besitzer: " + sP.Owner);
 listBox1.Items.Add("mit TimeStamp?: " + sP.TimeStamp.ToString());
 listBox1.Items.Add("Fingerabdruck: " + sP.Thumbprint);
 listBox1.Items.Add("gültig seit: " + sP.ValidSince);
 listBox1.Items.Add("gültig bis : " + sP.ValidUntil);
 }
 }

 private void button3_Click(object sender, EventArgs e)
 {
 openFileDialog1.ShowDialog();
 if (openFileDialog1.FileName != null)
 {
 textBox1.Text = openFileDialog1.FileName;
 }
 }

 private void button2_Click(object sender, EventArgs e)
 {
 // signiere Datei
 if (sP.signSingleFile(textBox1.Text) == true)
 {
 label3.Text = "Ergebnis: Datei wurde erfolgreich signiert";
 }
 else
 {
 label3.Text = "Ergebnis: Datei konnte nicht signiert werden";
 };
 }
 }


Damit die Signatur geschrieben werden kann, ist es unabdingbar, das die signtool.exe (Microsoft-Tool zum Signieren) im Windows bzw. System32 Verzeichnis liegt. Diese Datei findet man im Ordner:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin


oder im Microsoft SDK Kit.


Im Dateianhang befinden sich die Library sowie die Beispieldateien.

Ich hoffe, dass diese Library für den ein oder anderen eine hilfreiche Resource sein wird!


Dieser Artikel ist Eigentum des Autors und darf ohne eine schriftliche Gehnehmigung nicht auf anderen Websiten oder Medien publiziert werden. Dies gilt auch für evtl. Attachments sowie optionale außenstehende Resourcen.

Angehängte Datei(en)


Eingefügtes Bild
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” – Rich Cook
0

Geschrieben 10. Jan 2010 - 20:08 (#2) Mitglied ist offline   VB-Programer 

  • Semi-Profi
  • PIPPIPPIPPIPPIP
  • Gruppe: Senior Mitglieder
  • Beiträge: 345
  • Registriert: 11. Sep. 09
  • OS: Windows 7 Ultimate
  • IDE: Visual Studio 2008 Pro

Wo bekomme ich so ein Zertifikat?
0

Geschrieben 10. Jan 2010 - 20:15 (#3) Mitglied ist online   Maximilian 

  • capo dei capi
  • Blog anzeigen
  • Gruppe: Administratoren
  • Beiträge: 816
  • Registriert: 10. Sep. 09
  • Wohnort: Im dicken B oben an der Spree
  • OS: Windows 7 Ultimate (x64)
  • IDE: VS 2010 Premium

Bei einer anerkannten Certificate Authority. Mehr dazu gibts hier.

Cheerio :)
Mit freundlichen Grüßen
Eingefügtes Bild
MaximilianKrauss.Net | updateSystem.NET

"Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why."


Unterstütze qualitative Beiträge durch ein Klick auf Eingefügtes Bild.
0

Geschrieben 10. Jan 2010 - 20:25 (#4) Mitglied ist offline   VB-Programer 

  • Semi-Profi
  • PIPPIPPIPPIPPIP
  • Gruppe: Senior Mitglieder
  • Beiträge: 345
  • Registriert: 11. Sep. 09
  • OS: Windows 7 Ultimate
  • IDE: Visual Studio 2008 Pro

Gibt es da nichts kostenloses? Wenn ich mir ein Zertifikat kaufe, gilt das nur für ein Programm oder für alle die ich entwickle
0

Geschrieben 10. Jan 2010 - 20:27 (#5) Mitglied ist offline   Dennis Alexander 

  • Administrator
  • Blog anzeigen
  • Gruppe: Administratoren
  • Beiträge: 533
  • Registriert: 09. Sep. 09
  • Wohnort: Bad Essen
  • OS: Windows 7 Prof.
  • IDE: Visual Studio 2010 Ultimate

Es gibt keine kostenlosen Zertifikate.

Anschließend besitzt du ein Zertifikat, was beispielsweise 1 Jahr zum signieren von Anwendungen und Komponenten genutzt werden kann. Wieviele Komponenten du signierst, spielt keine Rolle.
Eingefügtes Bild
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” – Rich Cook
0

Thema verteilen:


Seite 1 von 1
  • Du kannst kein neues Thema erstellen
  • Antworten nicht möglich


Seite 1 von 1
Trackbacks
Trackback URL Trackback Date Total Hits
Windows-EXE-Datei signieren? - CAcert - Freie Zertifikate | XING 08. Mai. 2010 19:30 3
Windows-EXE-Datei signieren? - CAcert - Freie Zertifikate | XING 21. Apr. 2010 13:07 2
dateien signieren - Forestle 15. Apr. 2010 19:36 1
1.3.6.1.4.1.6449.1.2.1.3.2 - Google-Suche 30. Jan. 2010 17:22 2
Seite 1 von 1

Similar Topics
  Thema Themenstarter Statistik Letzter Beitrag
Neue Antworten Symbol Anwendungen sind das größte Risiko für einen Windows-PC! Simon 
  • 0 Antworten
  • 96 Aufrufe
Keine neuen Antworten EXE-Dateien schreiben whsprogger 
  • 4 Antworten
  • 379 Aufrufe
Neue Antworten Symbol [C#|VB.NET] Zeichenfolgen signieren
Mit RSA
Maximilian 
  • 8 Antworten
  • 1.122 Aufrufe
Neue Antworten Symbol [ASP.NET] Ermitteln und Darstellen aller Dateien (hier Bilder) eines Ordners. mikeb69 
  • 0 Antworten
  • 360 Aufrufe
Neue Antworten Symbol [C#|VB.NET] Verschlüsseln von Dateien mit Statistiken
Incl. Backgroundworker, Verbleibende Zeit, Bytes pro Sekunde
Dennis Alexander 
  • 13 Antworten
  • 546 Aufrufe

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0


Enter your sign in name and password


Sign in options
Mit OpenID anmelden   Or sign in with these services