Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FreeBasic-Beispiel mit Signatur

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 02.01.2011, 19:18    Titel: FreeBasic-Beispiel mit Signatur Antworten mit Zitat

Eine hübsche Kleinigkeit, wovon vermutlich der eine oder andere von Euch auch schon geträumt hat:

http://beilagen.dreael.ch/QB/Hallo_Welt_signiert.exe

Applikation selber ist nur ein kleines "Hallo Welt" und deswegen nichts für "Projektvorstellungen" hier im Forum, aber mit einer Besonderheit betreffend Sicherheit (auf die berühmte Microsoft-Sicherheitswarnung einmal genau achten!). Am besten mit dem Internet Explorer in einen NTFS-formatierten Ordner downloaden (Stichwort Zone.Identifier-ADS!) und dann wie jeder Donwload mit "Start", "Ausführen..." oder Doppelklick einmal testen (Windows XP ab SP2/Vista/7 notwendig)...

Hinweis: Evtl. ist es notwendig, vorher noch das Stammzertifikatsupdate mittels Windows Update (benutzerdefinierte Suche) einzuspielen!

Details, um so etwas auch machen zu können, folgen von mir später noch.

/edit: Eine winzig kleine Unschönheit befindet sich noch in der Signatur, die ich aber bereits mit meinem Anbieter am Abklären bin. Wer findet sie heraus (nette kleine Rätselaufgabe für alle!)?
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 03.01.2011, 00:52    Titel: Antworten mit Zitat

Ich tippe mal auf
Zitat:
Andreas Hermann Meile (Qualified Signature)

Weil dein Nachname ist ja nicht (Qualified Signature) zwinkern

In der Signatur findet sich auch ein Verweis auf http://www.dreael.ch/Deutsch/Download/
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 03.01.2011, 12:48    Titel: Antworten mit Zitat

Zum Rätsel: Der Moderator im Fernsehratespiel würde antworten "Leider nicht die richtige Antwort. Nächster Kandidat." ;-) Eine kleine Hilfe gebe ich aber noch fürs Rätsel: Es hat mit der Internet-Norm Nr. 3161 zu tun...

Ansonsten ist das Ganze eine nette Anwendung der bei uns neu eingeführten SuisseID, d.h. eine solche nenne ich seit Kurzen auch mein eigen. Eignet sich übrigens auch für die zertifikatsbasierte Anmeldung auf Webseiten (=man braucht dann keine Passwörter, womit Single Sign On erst richtig möglich wird), wofür derzeit ebenfalls eine von mir aufgesetzte Testinstallation läuft.

Das Ganze ist aber bekanntlich nicht nur an Software-Pakete wie SwissSigner in meinem Fall gebunden, sondern eignet sich für praktisch jede X.509-Zertifikatsanwendung unter Windows, unter anderem auch für Microsoft Authenticode, weil das Signatur-Zertifikat auf der SuisseID-Smartcard auch das Zulassungsmerkmal (Verwendungszweck) für Codesignierung besitzt, was ich hier im Wesentlichen einmal mit einem kleinen FreeBasic-Programm erfolgreich getestet habe. => In diesem Sinn kann ich also downloadbare .EXE-Dateien als echt aus meiner Feder stammend verteilen.

Für die Interessierten: Es braucht dazu SIGNTOOL.EXE aus dem Microsoft Platform SDK. Dieses Werkzeug unterstützt auch Zertifikat auf Chipkarten wie in meinem Fall, d.h. PFX-Datei ist überhaupt nicht notwendig. Dinge wie eine AboutURL kann ich logischerweise ebenfalls mitgeben, wie Michael Frey richtig beobachtet hat.

Experimente mit selbstsignierten Zertifikaten kann übrigens jeder von Euch ebenfalls starten, nur wird sie Windows natürlich nicht als gültig qualifizieren. Dies ist in etwa derselbe Prozess wie ein Fantasie-Ausweis mit Tintenstrahldrucker und Laminiergerät zu erstellen und verteilen: Dieser entspricht dann nicht den System "Staat X" sondern dem System "Privatperson Hans Muster" -> jeder muss dann selber entscheiden, ob er ein solches Kärtchen als vertrauenswürdig betrachtet und akzeptiert, wenn er beispielsweise beim Alkoholausschank eine Alterkontrolle durchführen muss.

Genau hier liegt natürlich der Vorteil meiner SuisseID-Signierung: Zertifikat auf der Chipkarte wurde von einem offiziellen Aussteller herausgegeben, den Microsoft daher offiziell in sein Stammzertifikatsupdate aufgenommen hat, insbesondere, weil es auch ein vom schweizerischen Staat akkreditierter Herausgeber ist, unter anderem, weil ich mich für den Erwerb der SuisseID ganz offiziell mit Pass ausweisen musste. Aus diesem Grund trägt der Common Name auch den Zusatz "Qualified Signature", weil dieses Zertifikat die gesetzlichen Richtlinien für eine qualifizierte Signatur erfüllt.

In Österreich gibt es als Pendant die Bürgerkarte. -> Weil hier im Forum doch diverse auch von Österreich her kommen, würde ich es toll finden, wenn sich jemand dort ebenfalls eine solche Bürgerkarte als E-Card (Chipkarte, d.h. nicht die Handy-Variante!) erwerben würde und ebenfalls einmal den Versuch machen würde, damit ein compiliertes FreeBasic-Programm zu signieren.

Benutzer aus Deutschland müssen diesbezüglich noch etwas warten, bis der nPA ebenfalls offiziell draussen ist (oder ist dieser bereits erhältlich?). Alternative ansonsten für jeden ist der Erwerb eines klassischen Codesignier-Zertifikats bei VeriSign oder Thawte.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 06.01.2011, 13:12    Titel: Antworten mit Zitat

Ich kann doch aber auch mit irgendeinem Cert meinen Code signieren, nur wird Windows dann wahrscheinlich ein wenig rumschreien...?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 06.01.2011, 22:30    Titel: Antworten mit Zitat

@28398:
Selbstverständlich kannst Du problemlos eine eigene PKI aufbauen (Anleitung für Linux/openssl). => Ist vergleichbar wie in einem Verein mit Farbtintenstrahldrucker und Laminiergerät Mitgliederausweise herstellen. Diese Kärtchen stellen absolut vollwertige Ausweise dar, aber sie werden jedoch nur von Personen, die Dich persönlich kennen (=in deren Gehirn bist Du bzw. der Verein quasi als vertrauenswürdiges Stammzertifikat gespeichert!) akzeptiert.

Genauso hier: Erst wenn der Benutzer Dein PKI-Stammzertifikat aufnimmt, behandelt Windows die Datei als gültig signiert. VeriSign & Co. gelten wie Behörden und Ämter quasi soweit allgemein vertrauenswürdig, weil jeder von uns im Normalfall davon ausgeht, dass der Staat bei der Ausstellung eines amtlichen Passes für eine Person mit einer konstanten Sorgfaltspflicht herangeht, so dass Du z.B. als Verkäufer vom Alkoholausschank, der das Alter von Jugendlichen überprüfen möchte, den Pass gegenüber unserem Vereinsausweiskärtchens als etwas Vertrauenswürdiges zur Bestimmung des Alters betrachtest. Dabei entsprechen die Fälschungs-Sicherheitsmerkmale am Pass dem Inhalt vom öffentlichen Schlüssel im Zertifikat.

An dieser Stelle zur Lektüre: Microsoft Root Certificate Program

Ebenfalls ganz wichtig: www.cabforum.org
Hier sind alle namhaften Browserhersteller und CAs dabei!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 03.04.2011, 23:55    Titel: Problem und Rätsel gelöst Antworten mit Zitat

Inzwischen konnte ich die zu Beginn genannte Unschönheit übrigens lösen (wenn auch mit gewissen Einschränkungen), so dass Interessierte von Euch das Beispiel neu herunterladen und testen können.

An dieser Stelle noch die Lösung zum zu Beginn genannten Rätsel:

http://beilagen.dreael.ch/Diverses/XP_Sig_Zs_inkorrekt.PNG

Mit der "Internet-Norm Nr. 3161" war natürlich RFC 3161 gemeint. An dieser Stelle die notwendige Hintergrundinformation: Meine SuisseID besitzt nur eine befristete Gültigkeit ähnlich einem normalen Ausweis => heute/jetzt erstellte Signaturen sollen jedoch auch in Zukunft gültig bleiben, wofür es eine sog. Zeitstempel-Gegensignatur braucht, also quasi einen elektronischen "Notar", welcher den Zeitpunkt der Signierung beurkundet, so dass ein Windows auch in 50 Jahren mein jetziges .EXE-Beispiel als gültig signiert erkennt.

Microsoft hat für AuthentiCode die Zeitstempelung zwar auch schon von Anfang an vorgesehen, jedoch dafür ein eigenes Protokollformat für den Zeitstempelserver verwendet ("legacy Authenticode timestamp URL"). Klassische Codesignierungsdienste von VeriSign und Thawte unterstützen dies meines Wissens auch jetzt noch (Tipp: Schaut Euch eine z.B. vom Adobe Acrobat Reader heruntergeladene Setup-Datei bezüglich Signatur etwas genauer an!), jedoch nicht mein SuisseID-Herausgeber, weshalb es seinerzeit mit der Option
Code:
/t http://tsa.swisssign.net

nicht geklappt hat. Weil für qualifizierte elektronische Signaturen die Zeitstempelung genauso benötigt wird, hat sich mein SuisseID-Anbieter an den RFC 3161-Standard gehalten. Diesen allgemeinen Standard hat Microsoft übrigens erst bei ihrem jüngsten Platform SDK v7.1 ebenfalls übernommen mit der /tr-Option bei SIGNTOOL.EXE:

Code:
D:\DATEN\FreeBasic\Hallo_Welt_signiert>"%programFiles%\Microsoft SDKs\Windows\v7.1\Bin\signtool" sign /v /a /tr http://tsa.swisssign.net /du http://www.dreael.ch/Deutsch/Download/ Hallo_Welt_signiert.exe
The following certificate was selected:
    Issued to: Andreas Hermann Meile (Qualified Signature)
    Issued by: SwissSign Qualified Platinum CA 2010 - G2
    Expires:   Sat Dec 14 19:44:19 2013
    SHA1 hash: 7E3B2BD26E3875647F685E1A9C1B4B0DE436598B

Done Adding Additional Store
Successfully signed and timestamped: Hallo_Welt_signiert.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

D:\DATEN\FreeBasic\Hallo_Welt_signiert>ECHO %ERRORLEVEL%
0

D:\DATEN\FreeBasic\Hallo_Welt_signiert>_


Ergebnis:

http://beilagen.dreael.ch/Diverses/Win7_Sig_Zs_korrekt.png

Einzige Einschränkung: Nur unter Windows 7(!) erscheint die Signatur korrekt, Windows XP meldet immer noch den fehlenden Zeitstempel, wie jeder hier beim Prüfen feststellen kann. Auch klappt bei XP die /tr-Option trotz installiertem .NET 4-Framework ebenfalls noch nicht:
Code:
P:\FreeBasic\Hallo_Welt_signiert>"%programFiles%\Microsoft SDKs\Windows\v7.1\Bin\signtool" sign /v /a /tr http://tsa.swisssign.net /du http://www.dreael.ch/Deutsch/Download/ Hallo_Welt_signiert.exe
The following certificate was selected:
    Issued to: Andreas Hermann Meile (Qualified Signature)
    Issued by: SwissSign Qualified Platinum CA 2010 - G2
    Expires:   Sat Dec 14 19:44:19 2013
    SHA1 hash: 7E3B2BD26E3875647F685E1A9C1B4B0DE436598B

Done Adding Additional Store
SignTool Error: A required function is not present.
        This error likely means that you are running SignTool on an OS that
        does not support the options you've specified.

P:\FreeBasic\Hallo_Welt_signiert>ECHO %ERRORLEVEL%
1

P:\FreeBasic\Hallo_Welt_signiert>_

Somit muss ich also aktuell fürs Signieren ausschliesslich eine Windows 7-Station einsetzen.

Sonst unabhängig von FreeBasic gibt es noch eine neue SuisseID-Beispielanwendung zum Ausprobieren: Wie vielleicht in Zukunft Geschäfte mit Verträge abgeschlossen werden könnten. Für Benutzer aus Deutschland: Sollte mit dem neuen Personalausweis ebenfalls funktionieren, wenn die entsprechenden Funktionen aktiviert sind. Dito für Österreicher mit der Bürgerkarte. Bitte in beiden Fällen sich vorher bei mir mit Privatnachricht melden, da ich einmal noch die Stammzertifikate für .de und .at zur Ergänzung auf meinem Test-Webserver benötige.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz