Forum: PC-Programmierung Code Signierung


von Thomas_jhfd (Gast)


Lesenswert?

Hi,

soll ich als Hobbyprogrammierer tatsächlich jedes Jahr ca. 100€ für ein 
Zertifikat zahlen, wenn ich meine SW veröffentlichen möchte?

Das kann doch wohl nicht wahr sein...?!

von Mark B. (markbrandis)


Lesenswert?

Thomas_jhfd schrieb:
> soll ich als Hobbyprogrammierer tatsächlich jedes Jahr ca. 100€ für ein
> Zertifikat zahlen

Sagt wer?

von Teo (Gast)


Lesenswert?

KA von was du da sprichst, ABER ich bin mir ziemlich sicher, das in 
allen Verträgen nur was von "Kommerzieller-Nutzung" steht. Dein 
"Privatscheiß" interessiert da niemanden.
Ich bin aber auch ein Naivling, der ans Gute im Menschen glaubt.... :/

von Thomas_jhfd (Gast)


Angehängte Dateien:

Lesenswert?

> Sagt wer?
Der (siehe Anhang).

von Holger (Gast)


Lesenswert?

Ja ... den Dialog kenne ich auch. Da geht's weiter, wenn man (völlig 
intuitiv) auf "Weitere Informationen" klickt.

von Thomas_jhfd (Gast)


Lesenswert?

@Holger:
Weiß ich.
Das will ich aber meinen Anwendern nicht zumuten.
Schlechte Usability.

von Erwin D. (Gast)


Lesenswert?

Thomas_jhfd schrieb:
>> Sagt wer?
> Der (siehe Anhang).

Wenn du das Programm selbst geschrieben hast, wirst du doch selbst am 
besten wissen, ob es eine Gefahr für deinen PC darstellt. Deshalb steht 
da "u.U."

von Thomas_jhfd (Gast)


Lesenswert?

@Erwin: Ja, ICH weiß das.

von Georg (Gast)


Lesenswert?

Thomas_jhfd schrieb:
> Ja, ICH weiß das.

Es gibt nun mal nur die beiden Möglichkeiten: entweder du signierst 
deine Software oder du sagst deinen Kunden, sie müssten dir halt 
vorbehaltlos vertrauen. Oder du schreibst gleich dazu "Zum Betrieb der 
Software schalten sie bitte Defender oder andere Schutzsoftware ab".

Georg

von selbst schuld (Gast)


Lesenswert?

Georg schrieb:
> Es gibt nun mal nur die beiden Möglichkeiten

In der Windows Welt.

von Thomas_jhfd (Gast)


Lesenswert?

Vorbehaltlos vertrauen müssen sie mir so oder so.
Mit Signatur können sie lediglich verifizieren, dass ich auch wirklich 
der Herausgeber bin.
Ich hätte kein Problem mit einem fetten Warnhinweis, dass der 
Herausgeber der SW nicht verifiziert werden kann, dennoch installierem? 
JA / NEIN

Aber so, wie auf dem Foto? Das kann man keinem anbieten.

Und dann soll so ein Zertifikat 100€ jedes Jahr kosten?!
Was tut denn der Anbieter für mich? Einmalig meine Identität prüfen...

von Matthias L. (Gast)


Lesenswert?

Thomas_jhfd schrieb:
> Was tut denn der Anbieter für mich?

JEdes Jahr den Zahlungseingang prüfen.

von Jim M. (turboj)


Lesenswert?

Thomas_jhfd schrieb:
> Das will ich aber meinen Anwendern nicht zumuten.
> Schlechte Usability.

Korrekt.

Den Dialog kann man aber AFAIK umgehen, wenn man das Programm nicht als 
exe sondern als Zip Datei verpackt auf den Webserver stellt.

von Erwin D. (Gast)


Lesenswert?

Jim M. schrieb:
> Thomas_jhfd schrieb:
>> Das will ich aber meinen Anwendern nicht zumuten.
>> Schlechte Usability.
>
> Korrekt.
>
> Den Dialog kann man aber AFAIK umgehen, wenn man das Programm nicht als
> exe sondern als Zip Datei verpackt auf den Webserver stellt.

Vermutlich wird die Warnung dann beim Anwender kommen beim Auspacken des 
ZIP oder dann beim Starten des Programms.

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Kontrolle ist Macht ist Geld. Apple hat mit seinem App Store volle 
Kontrolle darüber, wer was installieren kann. Android kommt dem auch 
schon relativ nahe. Aber bei MS installieren nur wenige über den 
Appstore. Ich könnte mir vorstellen, dass MS die gefährlich aussehende 
Warnung deshalb da platziert hat. Damit die Entwickler anfangen, den 
Code zu Signieren, oder noch besser, deren App Store zu verwenden. 
Irgendwann kann MS dann den unsignierten Code ganz abschalten, richtig 
kohle machen, und raus werfen, was ihnen gerade nicht in den kram passt.

von Arc N. (arc)


Lesenswert?

Wenn ich's recht in Erinnerung habe, dann hilft ein normales 
Code-Signing-Zertifikat auch nicht sofort, sondern erst nach einiger 
Zeit/genügend Installationen...

https://security.stackexchange.com/questions/222140/transferring-microsoft-smartscreen-reputation-to-renewed-certificate
https://getimageview.net/2020/06/02/microsoft-defender-smartscreen-is-hurting-independent-developers/

In den Links findet man den Hinweis, dass es möglicherweise hilft das 
Programm bei https://www.microsoft.com/en-us/wdsi/filesubmission 
einzureichen.
Bei winget gibt's das Problem auch 
https://github.com/microsoft/winget-cli/issues/424
Hier 
https://stackoverflow.com/questions/12311203/how-to-pass-the-smart-screen-on-win8-when-install-a-signed-application 
gibt's den Tipp das Windows App Certification Kit 
https://developer.microsoft.com/en-us/windows/downloads/app-certification-kit/ 
zu verwenden (geht auch für Desktop-(Bridge-)Anwendungen/MSIX).
Ansonsten bleibt nur ein Zertifikat mit erweiterter Validierung (gibt es 
afaik nicht für Privatpersonen). Wenn's wirklich nur an der Anzahl an 
Downloads/Installationen liegt, könnte man versuchen dies im Rahmen 
eines "Beta"-Tests mit genügend Usern beheben.

Ich hab den Kram aufgegeben und verteile nur noch selbst-signierte 
Programme.

von Thomas_jhfd (Gast)


Lesenswert?

Ich hätte kein Problem damit den Code zu signieren und meinen Anwendern 
so etwas mehr Sicherheit / Vertrauen zu geben.
Für ein Zertifikat würde ich sogar einmalig Geld ausgeben.
Aber ich kann mir doch als Hobbyentwickler keine laufenden Kosten von 
100€ pro Jahr dafür ans Bein binden.

Installer muss schon sein, weil neben Dateien kopieren auch noch Addins 
registriert werden. Das soll der Anwender nicht selbst machen müssen.

Bis jetzt gab es das Problem nicht, weil alle Anwender sich das selbst 
aus dem Code kompilieren mussten.
Den Installer habe ich schon lange vor mir hergeschoben, weil ich den 
Einarbeitungsaufwand dafür gescheut habe.

von Thomas_jhfd (Gast)


Lesenswert?

@Arc
Danke für deinen Beitrag.
Selbst signieren bringt nur, dass da nicht mehr "Unbekannter 
Herausgeber" steht. Der Dialog aus dem Foto oben kommt trotzdem, 
richtig?

von Hmmm (Gast)


Lesenswert?

Thomas_jhfd schrieb:
> Bis jetzt gab es das Problem nicht, weil alle Anwender sich das selbst
> aus dem Code kompilieren mussten.

Wenn es um Open-Source-Software geht, guck mal bei Certum, die bieten 
dafür günstigere Zertifikate an.

von Thomas_jhfd (Gast)


Lesenswert?

Ist kein Open Source, jedenfalls nicht nach den Richtlinien der FSF.
Zwar liegt der Code für alle sichtbar auf Github, Lizenz gibt es aber 
keine.
Ich habe lediglich per Copyright meine Urheberschaft vermerkt.

Ich frage mich aber schon wie kleine Open Source Projekte das handhaben.
De facto schließt MS Hobbyentwickler aus.

von Hmmm (Gast)


Lesenswert?

Thomas_jhfd schrieb:
> Ist kein Open Source, jedenfalls nicht nach den Richtlinien der FSF.

Lies doch bei Certum nach, was die genauen Bedingungen sind.

Ich glaube, beim Zertifikat ist der "Haken", dass als CN "Vorname 
Nachname (open source developer)" drinsteht.

Thomas_jhfd schrieb:
> Ich frage mich aber schon wie kleine Open Source Projekte das handhaben.

Genau wie viele kommerzielle Anbieter: Das Zertifikat weglassen.

Thomas_jhfd schrieb:
> De facto schließt MS Hobbyentwickler aus.

Wegen eines popeligen Warnbildschirms? Schwierig wird es erst, wenn Du 
Treiber entwickeln willst.

von bluppdidupp (Gast)


Lesenswert?

Für den SmartScreen-Warnhinweis ist eine digitale Signatur nur ein 
Faktor.
Selbst mit digitaler Signatur erscheint der Hinweis noch, solange die 
Software keine relevante Verbreitung hat (Ausnahme ist meine ich 
Code-Signing mit EV)

von Achim M. (minifloat)


Lesenswert?

🐧 DPA 🐧 schrieb:
> Apple hat mit seinem App Store volle Kontrolle darüber, wer was
> installieren kann.

Selten so geschmunzelt. Am Telefon oder am Rechner? Bei letzterem geht 
es in Richtung der Windoof-Lösung, allerdings muss man da über die 
"Systemsteuerung"/Sicherheit. Nach Admin-Passwort geht es weiter und 
fortan immer. Den Tipp, das so zu machen, bekommt man aber mit der 
Warnung mit. Ist aber unterm Strich genau so beknackt wie jeder andere 
Unixoid mit GUI-Paketverwaltung.
Also wenn schon dissen, dann korrekt, ja? tststs... mfg mf

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Achim M. schrieb:
> Ist aber unterm Strich genau so beknackt wie jeder andere
> Unixoid mit GUI-Paketverwaltung.

Wenn ich z.B. meinem Debian Linux sage, es soll mir ein manuell 
runtergeladenes .deb installieren, reklamiert es jedenfalls nicht. Und 
das ganz egal, ob ich es über dpkg, apt, synaptic, oder sonst was mache.

Auch wenn ich ein tar Archiv runterlade und entpacke, beschwert es sich 
nicht, wenn ich daraus nachher eine Datei ausführen will. Wenn ich z.B. 
ein python/shell/etc. script oder so anklicke, fragt es nur "mit 
Terminal ausführen", "Ausführen", "im Texteditor öffnen". Und wenn da ne 
.desktop Datei ist, bei der fragt es gar nicht.

Meldungen in die Richtung "Gefährlich, tues nicht, tues nicht!!!" gibt 
es dabei keine.

Und es ist nicht nur bei Debian so, auch bei einigen anderen Distros, 
die ich mal ausprobiert hatte, (z.B. Tiny Core Linux, SliTaz, etc.), war 
das nicht anders.

von Karl (Gast)


Lesenswert?

🐧 DPA 🐧 schrieb:
> Meldungen in die Richtung "Gefährlich, tues nicht, tues nicht!!!" gibt
> es dabei keine.

Liegt wahrscheinlich daran, das der gemeine Linux-User ungefähr weis was 
er tut. Windows hat ganz früher auch einfach alles ausgeführt (was halt 
in Verbindung mit der mangelnden Mehrbenutzerfähigkeit / Trennung 
Admin/User) zu der katastrophalen Unsicherheit geführt. Dann kamen die 
Frag nach Admin-Rechten-Dialoge. Offensichtlich haben da auch noch zu 
viele einfach draufgeklickt (geht mir unter Windows auch so, wenn eine 
Fehlermeldung kommt versucht man reflexartig die irgendwie wegzuklicken, 
egal wie, Hauptsache weg). Jetzt hat man es so gut versteckt, dass man 
erstmal googeln muss, da ist der DAU raus.

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Karl schrieb:
> 🐧 DPA 🐧 schrieb:
>> Meldungen in die Richtung "Gefährlich, tues nicht, tues nicht!!!" gibt
>> es dabei keine.
>
> Liegt wahrscheinlich daran, das der gemeine Linux-User ungefähr weis was
> er tut. Windows hat ganz früher auch einfach alles ausgeführt (was halt
> in Verbindung mit der mangelnden Mehrbenutzerfähigkeit / Trennung
> Admin/User) zu der katastrophalen Unsicherheit geführt.

Naja, wenn man ein Script oder ein Programm runterlädt, also kein .deb 
oder .tar, muss man schon noch das Ausführbar Flag setzen, sonst öffnet 
es das im Texteditor oder fragt womit man das öffnen will. Damit sind 
die meisten derartigen Probleme dann erschlagen.

von Uwe B. (uwebre)


Lesenswert?

Thomas_jhfd schrieb:

> Aber so, wie auf dem Foto? Das kann man keinem anbieten.
>
> Und dann soll so ein Zertifikat 100€ jedes Jahr kosten?!

Ich schiebe dieses Problem ebenfalls vor mir her. Es geht um eine kleine 
Auslesesoftware für Datenlogger an Baumaschinen. Kleines Progrämmchen, 
mit LCC programmiert. Das Programm wird bisher auf dem auszulesenden 
(als Übertragungsmedium dinenenden) USB-Stick geliefert und kann auch 
von Diesem gestartet werden.
Das Programm gibt es kostenlos, kann auch von der Firmenseite meines 
Kunden heruntergeladen werden.
Den eigentlichen (End-)Kunden kann man zur Not noch erklären daß man die 
Warnhinweise wegklicken kann, dummerweise kommen aber auch Behörden ins 
Spiel, da bekommen die Admins allerdings Pickel.

Wir machen normal eigentlich keine PC-Software welche auf beliebigen 
Kundenrechnern installiert werden soll. Deswegen fehlt jegliche 
Erfahrung.

Mein, bisher nicht umgesetzter, Ansatz:

https://marketmix.com/de/windows-apps-guenstiges-ssl-zertifikat-code-signieren/

Was ich nicht verstehe: Berappe ich die Kohle dafür daß ich ein Jahr 
lang bliebige eigene, neue, Programme mit dem Zertifikat versehen kann 
oder läßt sich eine zertifizierte Software nicht mehr installieren bzw. 
gibt Alarm, wenn ich im nächstern Jahr nicht wieder bezahle.

Wie macht ihr das?

Uwe

von bluppdidupp (Gast)


Lesenswert?

Sofern man beim Signieren einen Timestamp-Server genutzt hat, ist die 
Installation weiterhin möglich:
https://www.psw-group.de/support/was-ist-ein-time-stamp/

von Thomas_jhfd (Gast)


Lesenswert?

@Uwe:
Dein Ansatz ist der normale.
Kostet inkl. MwSt. 70€ pro Jahr (bei drei Jahres-Abo).

So lange du Updates raus bringst musst du auch Zahlen.
Timestamp Server hat bluppdidupp ja schon geschrieben.

Warum kann man seinen Code nicht einfach kostenlos mit dem digitalen 
Personalausweis signieren?

von Ralf D. (doeblitz)


Lesenswert?

Thomas_jhfd schrieb:
> Warum kann man seinen Code nicht einfach kostenlos mit dem digitalen
> Personalausweis signieren?

Seit wann ist das Zertifikat für den nPA kostenlos? Ich habe damals 35 
EUR für ein Jahr bezahlt. Und dann ist eben die Frage, welche CAs 
akzeptiert werden, da muss man manchmal in den sauren Apfel beissen – 
Firmen wollen (bzw. müssen) halt Geld verdienen.

von Thomas_jhfd (Gast)


Lesenswert?

Ok, wusste ich nicht. Dachte das ist automatisch dabei.

von Richy (Gast)


Lesenswert?

Komisch... Ich erstelle seit ca. 5 Jahren privat kommerzielle Software. 
Die läuft bei meinen Kunden unter Windows 7 und 10 (jeweils aktuellster 
Stand). Dabei ist die oben gezeigte Meldung noch nie aufgetaucht. Die 
Software lässt sich ganz entspannt ohne weitere Nachfragen installieren. 
Und das ohne jegliche Form der Signierung.

Was ist bei euch anders?

PS: Ich baue die SW mit VS 2019 in C++ und .NET 4.8 für x64. Das Setup 
erstelle ich mit Advanced Installer.

von Hmmm (Gast)


Angehängte Dateien:

Lesenswert?

Richy schrieb:
> Was ist bei euch anders?

Auf welchem Weg gelangt Deine Software zum Kunden?

Standardmässig passiert das wohl nur bei (per NTFS-ADS entsprechend 
gekennzeichneten) Internet-Downloads, unter Windows 7 sieht das dann aus 
wie angehängt.

von Richy (Gast)


Lesenswert?

Hmmm schrieb:
> Richy schrieb:
>> Was ist bei euch anders?
>
> Auf welchem Weg gelangt Deine Software zum Kunden?
>
> Standardmässig passiert das wohl nur bei (per NTFS-ADS entsprechend
> gekennzeichneten) Internet-Downloads, unter Windows 7 sieht das dann aus
> wie angehängt.

Ich lade die fertig gebauten Installer (.msi, nicht .exe!!!) auf meinen 
privaten GitTea-Server. Von da können es sich die Kunden herunterladen.
Der Server hat eine .de-Domain von Strato und ein SSL-Zertifikat von 
LetsEncrypt. Der Download geschieht also per HTTPS.

von Matthias (Gast)


Lesenswert?

Richy schrieb:
> Ich lade die fertig gebauten Installer (.msi, nicht .exe!!!) auf meinen
> privaten GitTea-Server. Von da können es sich die Kunden herunterladen.
> Der Server hat eine .de-Domain von Strato und ein SSL-Zertifikat von
> LetsEncrypt. Der Download geschieht also per HTTPS.

SSL-Zertifikate und Download per HTTPS spielen hier keine Rolle. 
Codesignaturzertifikate sind nochmal etwas anderes.

Wir hatten mit unserer kommerziellen Software auch schon Spaß damit. Es 
gibt grundsätzlich zwei Stufen von Zertifikaten, OV (Organisation 
Validation) und EV (Extended Validation). Letzere sind nochmal teurer. 
Selbst die OV-Zertifikate genügen bei heruntergeladener Software nicht 
in allen Fällen, um Microsofts Warnmechanismen zu befriedigen. Microsoft 
unterhält eine Datenbank, in der Filehashes für Installer abgelegt sind, 
die als "sicher" betrachtet werden. Veröffentlicht man nun eine neue 
Version seiner Software - am besten auch noch "Nischensoftware" - ist 
der Hash erstmal nicht auf der Liste, und das Betriebssystem meldet 
"potentiell unsichere Software". Deine Software landet irgendwann auf 
der "Sicher-Liste", wenn nach einigen hundert Downloads durch Anwender 
quasi heuristisch festgelegt wurde, dass die Software schon ok sein 
wird. Wenn man den ersten paar Anwendern seiner (teuren) Software keine 
Sicherheitswarnungen zumuten möchte, gibt es keine andere Möglichkeit, 
als in ein EV-Zertifat zu investieren. EV-signierte Software hält 
Windows automatisch für sicher.

Es mag sein, dass für Downloadquellen wie github nochmal eigene Regeln 
gelten, da dass ja auch von Microsoft betrieben wird. Für Downloads von 
eigenen Servern gelten i.A. die obigen Regeln.

von Matthias (Gast)


Lesenswert?


von Christian R. (supachris)


Lesenswert?

Matthias schrieb:
> Wenn man den ersten paar Anwendern seiner (teuren) Software keine
> Sicherheitswarnungen zumuten möchte, gibt es keine andere Möglichkeit,
> als in ein EV-Zertifat zu investieren. EV-signierte Software hält
> Windows automatisch für sicher.

Wir hatten auch mal überlegt, statt OV doch EV einzusetzen, aber das 
geht nur mit Hardware Token und ist daher quasi unbrauchbar für 
automatisierte Build Prozesse auf virtuellen Maschinen. zum Glück ist 
GlobalSign bei den OV wieder zurück gerudert auf normale Zertifikate 
ohne HW Token. Mit GlobalSign Code Signing OV und Timestamp signiert, 
hat aber auch bei unserem super Nischen-Setup noch zu keinem Smart 
Screen geführt...

von Matthias (Gast)


Lesenswert?

Christian R. schrieb:
> Wir hatten auch mal überlegt, statt OV doch EV einzusetzen, aber das
> geht nur mit Hardware Token und ist daher quasi unbrauchbar für
> automatisierte Build Prozesse auf virtuellen Maschinen.

Wir haben tokenbasiertes EV mit automatisierten TeamCity-Builds im 
Betrieb. Funktioniert gut. Der Token wird über einen SEH-Dongleserver im 
Netzwerk freigegeben, und der jeweils aktive Buildagent "mounted" sich 
den Token dann lokal, für die Zeit des Builds. Danach wird er 
freigegeben, sodass der nächste Build auch auf einem anderen Agent 
laufen kann. Wenn man das Ding im Netzwerk hat, muss man natürlich 
schauen, dass den nur die Clients sehen, die ihn wirklich nutzen sollen 
dürfen.

Man muss auch nicht diese ollen UI-Tools nutzen, Token-Signierung geht 
auch via signtool.exe auf der Kommandozeile. Leider alles mies 
dokumentiert, und fummelig, bis es läuft. Seit dem aber stabil.

> Christian R. schrieb:
>Mit GlobalSign Code Signing OV und Timestamp signiert,
> hat aber auch bei unserem super Nischen-Setup noch zu keinem Smart
> Screen geführt...

Okay, interessant, wir hatten das mit jedem Patch - trotz OV-Signatur, 
DL von eigener Infrastruktur. Wahrscheinlich ca. 1000 Downloads je 
Release.

von Uwe B. (uwebre)


Lesenswert?

Danke an die Beteiligten für viel Info, der Hinweis auf den Timeserver 
ist ja schonmal "Gold" wert.

Allerdings wird es für mich immer verwirrender:

Matthias schrieb:
> Microsoft
> unterhält eine Datenbank, in der Filehashes für Installer abgelegt sind,
> die als "sicher" betrachtet werden.
> [...]
> wenn nach einigen hundert Downloads durch Anwender
> quasi heuristisch festgelegt wurde, dass die Software schon ok sein
> wird.

Wie und wann genau wird diese Datenbank gefüttert? Wieso Download? von 
wo?
Wer (oder was) telefoniert da?
Wie soll das gehen bei einem kleinen Progrämmchen welches einem 
(Nieschen-) Produkt beiliegt und normal nirgendwo downgeloaded wird, 
außer evtl. später als Update.

Ich hatte die - wohl naive - Vorstellung daß einfach nur die Herkunft 
und "Unversehrtheit" einer Software sichergestellt wird.

Uwe

von Hmmm (Gast)


Lesenswert?

Uwe B. schrieb:
> Wie und wann genau wird diese Datenbank gefüttert?

https://en.wikipedia.org/wiki/Microsoft_SmartScreen

Kann man unter Windows Security - App & browser control deaktivieren.

Uwe B. schrieb:
> Ich hatte die - wohl naive - Vorstellung daß einfach nur die Herkunft
> und "Unversehrtheit" einer Software sichergestellt wird.

Dafür ist das Zertifikat da.

Aber dass eine Software von einem Autor stammt, sagt ja nichts darüber 
aus, ob er gute Absichten hat. SmartScreen hängt deshalb ein 
Reputationssystem dran, das allerdings lt. Wikipedia-Artikel an das 
Zertifikat gebunden ist, d.h. bei einer Verlängerung fängt man wieder 
bei 0 an.

von Cyblord -. (cyblord)


Lesenswert?

Karl schrieb:
> Liegt wahrscheinlich daran, das der gemeine Linux-User ungefähr weis was
> er tut.

Halte ich für unwahrscheinlich. Ich kann dir nämlich aus dem Stand zig 
Posts von Linuxern hier zeigen welche alle Schwören dass ihre Omas, 
Mütter, Tanten und Wellensittiche Linux nutzen ohne auch nur eine Spur 
von Ahnung zu haben.

von Thomas_jhfd (Gast)


Lesenswert?

Die Windows7 Warnung, gepostet von Hmmm im Beitrag #6581320 finde ich 
gut.
Das versteht jeder.
Die Windows10 Warnung geht gar nicht. Daran werden 2/3 aller Anwender 
scheitern.

Wertvolle Informationen hier, danke dafür!

von Uwe B. (uwebre)


Lesenswert?

Thomas_jhfd schrieb:
> Die Windows7 Warnung, gepostet von Hmmm im Beitrag #6581320 finde ich
> gut.

Ich bekomme diese Sicherheitswarnung (auf Win7) wenn ich mein 
selbstgschriebenes Programm vom Server starte.
"Es kann nicht überprüft werden wer diese Datai erstellt hat... Möchten 
Sie.."
Wenn ich das Programm von Platte oder einem Stick starte passiert das 
nicht.

Verstehe ich das richtig daß dieses Smartscreending nur ins Spiel kommt 
wenn Programme oder Installer aus dem Netz geladen werden?
Auf die Möglichkeit daß Kunden das Prog downloaden können kann ich zur 
Not  verzichten. Oder würde es helfen das Programm (oder eine 
Installationsdatei) per ZIP-Archiv zu verteilen.

Dann würde das einfache Zertifikat reichen, falls überhaupt 
erforderlich?

Uwe

: Bearbeitet durch User
von Christian R. (supachris)


Lesenswert?

Matthias schrieb:
> Christian R. schrieb:
>> Wir hatten auch mal überlegt, statt OV doch EV einzusetzen, aber das
>> geht nur mit Hardware Token und ist daher quasi unbrauchbar für
>> automatisierte Build Prozesse auf virtuellen Maschinen.
>
> Wir haben tokenbasiertes EV mit automatisierten TeamCity-Builds im
> Betrieb. Funktioniert gut. Der Token wird über einen SEH-Dongleserver im
> Netzwerk freigegeben, und der jeweils aktive Buildagent "mounted" sich
> den Token dann lokal, für die Zeit des Builds. Danach wird er
> freigegeben, sodass der nächste Build auch auf einem anderen Agent
> laufen kann. Wenn man das Ding im Netzwerk hat, muss man natürlich
> schauen, dass den nur die Clients sehen, die ihn wirklich nutzen sollen
> dürfen.

Interessant. Wir haben auch Teamcity im Einsatz und die Agents auf 
einige VMs verteilt. Wir hatten dann die 3 Jahre den Globalsign Dongle 
in eine VM gereicht, aber direkt, ohne Server. Ich hatte dann ein AutoIt 
Script geschrieben, was dass Passwort eingibt, falls die SafeSign 
Software danach fragt. Ging ganz gut, aber halt nur für die Agents auf 
der VM.

> Man muss auch nicht diese ollen UI-Tools nutzen, Token-Signierung geht
> auch via signtool.exe auf der Kommandozeile. Leider alles mies
> dokumentiert, und fummelig, bis es läuft. Seit dem aber stabil.

Das sowieso. Blöd ist dass mal der eine mal der andere Timestamp Server 
gerade offline ist.

>> Christian R. schrieb:
>>Mit GlobalSign Code Signing OV und Timestamp signiert,
>> hat aber auch bei unserem super Nischen-Setup noch zu keinem Smart
>> Screen geführt...
>
> Okay, interessant, wir hatten das mit jedem Patch - trotz OV-Signatur,
> DL von eigener Infrastruktur. Wahrscheinlich ca. 1000 Downloads je
> Release.

Hm, wie gesagt, bisher keine Probleme, das ist Software für industrielle 
Prüfanlagen, da sind eine handvoll Kunden.

von bluppdidupp (Gast)


Lesenswert?

Uwe B. schrieb:
> Verstehe ich das richtig daß dieses Smartscreending nur ins Spiel kommt
> wenn Programme oder Installer aus dem Netz geladen werden?
> Auf die Möglichkeit daß Kunden das Prog downloaden können kann ich zur
> Not  verzichten. Oder würde es helfen das Programm (oder eine
> Installationsdatei) per ZIP-Archiv zu verteilen.

Eine Software die von einem Netzlaufwerk gestartet wird ist generell 
erstmal als unsicher anzusehen, da das Betriebssystem externe 
Datenquellen nicht unter seiner Kontrolle hat und da potentiell beliebig 
rum-manipuliert werden könnte ohne das ein Client das mit bekommt. 
Netzlaufwerke/Freigaben kann man allerdings in eine sichere Zone packen 
(Windows-Startmenü-Suche: "Internet" > "Sicherheit")
Ansonsten gilt: Alle üblichen Browser markieren heruntergeladene Dateien 
per ADS, wodurch sie als potentiell weniger sicher erkannt werden:
https://www.borncity.com/blog/2018/09/22/infos-zu-windows-ntfs-alternative-data-streams/

SmartScreen greift nicht nur bei heruntergeladenen Dateien, von denen 
geht allerdings wohl vermutlich mit das höchste Risiko aus, deswegen 
schlägt es da vermutlich vermehrt zu.
Ich würde auch wetten, das SmartScreen sich z.B. anschaut welche APIs 
die jeweilige exe nutzt um dessen Risiko einzuschätzen und weitere 
Heuristiken nutzt.

Thomas_jhfd schrieb:
> Die Windows10 Warnung geht gar nicht. Daran werden 2/3 aller Anwender
> scheitern.
Ich würde wetten das sie das nicht ohne Absicht verschärft haben und das 
eher so gekommen ist, weil es einfach nötig ist. Da gilt vermutlich 
eher: Ziel erreicht.
Das legitime Software da auch drunter leidet ist praktisch 
Kollateralschaden.

Früher wurde ja immer viel gemeckert, das man sich bei Windows leicht 
alles mögliche einfangen kann. Ich würde allerdings wetten, das die 
meisten Windows-User sich die Malware sogar noch selbst installiert 
haben (und das auch heute noch tun)

von Matthias (Gast)


Lesenswert?

bluppdidupp schrieb:
> Ich würde wetten das sie das nicht ohne Absicht verschärft haben und das
> eher so gekommen ist, weil es einfach nötig ist. Da gilt vermutlich
> eher: Ziel erreicht.
> Das legitime Software da auch drunter leidet ist praktisch
> Kollateralschaden.
>
> Früher wurde ja immer viel gemeckert, das man sich bei Windows leicht
> alles mögliche einfangen kann. Ich würde allerdings wetten, das die
> meisten Windows-User sich die Malware sogar noch selbst installiert
> haben (und das auch heute noch tun)

Ja, natürlich, ist ja auch sinnvoll. Man kann nicht gleichzeitig im 
Heise-Forum rumnölen, dass Softwarehersteller keinen Wert auf Sicherheit 
legen, aber gleichzeitig meckern, wenn Lösungen gefunden werden, die 
aber mal ein bisschen Geld kosten. Ich halte das auch für 
Hobby-Entwickler nicht für so problematisch. Anwender, die nischige 
Software einsetzen, wissen in der Regel einigermaßen, was sie tun, und 
sollten mit der SmartScreen-Warnung klarkommen. Bei OSS und 
Selbstkompiliertem stellt sich die Frage ohnehin nicht. Außerdem dürfte 
Software von Hobbyentwicklern nur einen winzigen Bruchteil des Marktes 
ausmachen.

Aus Entwicklersicht würde ich mir aber mal wünschen, dass das ganze 
Geraffel ein bisschen besser dokumentiert ist, auch mit Best Practices, 
für wiederkehrende Szenarien wie CI-Builds, etc. Das mussten wir leider 
schmerzhaft lernen. Die Arbeitszeit davon wird ein vielfaches von den 
1500 EUR für das DigiCert-EV gekostet haben. :D

> Wie und wann genau wird diese Datenbank gefüttert? Wieso Download? von wo?
> Wer (oder was) telefoniert da?

Das musst du, im Detail, Microsoft fragen, aber:

"Microsoft Defender SmartScreen determines whether a downloaded app or 
app installer is potentially malicious by:

Checking downloaded files against a list of reported malicious software 
sites and programs known to be unsafe. If it finds a match, Microsoft 
Defender SmartScreen shows a warning to let the user know that the site 
might be malicious.

Checking downloaded files against a list of files that are well known 
and downloaded by many Windows users. If the file isn't on that list, 
Microsoft Defender SmartScreen shows a warning, advising caution."

Aus dem Netz heruntergeladene Dateien sind über ein spezielles 
Dateisystemattribut markiert, sodass Windows Defender/SmartScreen sie 
erkennen können. Ob dieser Check jetzt online oder offline (man könnte 
die "list of files that are well known"-Datenbank ja auch via Windows 
Update aktualisieren - glaube ich aber nicht so recht..) stattfindet, 
geht aus dem o.g. Zitat nicht hervor. Wahrscheinlich gibt es da einfach 
eine API-Anfrage, wenn so eine Datei erkannt wird. Dann gibt es mehrere 
Fälle:

(1) Hash in der Datenbank bekannt, nicht als bedrohlich eingestuft -> 
keine Meldung
(2) Hash in der Datenbank bekannt, als bedrohlich eingestuft -> Meldung
(3) Hash nicht bekannt -> es gibt erstmal eine Meldung, Hash wird aber 
gemerkt. Dann greifen vermutlich verschiedene Heuristiken (Anzahl 
Downloads, Analyse, was das Binary so aufruft, etc), und irgendwann 
rutscht der Hash dann in die Datenbank "nicht als bedrohlich 
eingestuft". Dann weiter bei (1).

Man kann da nur spekulieren, meines Wissens nach ist das nicht in die 
Tiefe dokumentiert. Das kann durchaus auch Absicht durch Microsoft sein, 
damit man die Heuristiken nicht zu einfach umschiffen kann, sollte man 
böses im Schilde führen.

von Thomas_jhfd (Gast)


Lesenswert?

Matthias schrieb:
> Bei OSS ... stellt sich die Frage ohnehin nicht.
Warum nicht?

Matthias schrieb:
> Außerdem dürfte Software von Hobbyentwicklern nur einen winzigen Bruchteil
> des Marktes ausmachen.
Auch Hobbyentwickler wollen geile SW mit guter Usability ausliefern.
Ich habe gerade mal geschaut:
* Notepad++: Ist signiert mit https://www.digicert.com
* 7ZIP: Ist nicht signiert, funktioniert dennoch. Warum?

bluppdidupp schrieb:
> Ich würde allerdings wetten, das die meisten Windows-User sich die Malware
> sogar noch selbst installiert haben (und das auch heute noch tun)
Da werde ich nicht gegen wetten... ;)

von Hmmm (Gast)


Lesenswert?

Thomas_jhfd schrieb:
> 7ZIP: Ist nicht signiert, funktioniert dennoch. Warum?

Lässt sich doch alles nachlesen.

"Reputation is generated and assigned to digital certificates as well as 
specific
files. Digital certificates allow data to be aggregated and assigned to 
a single certificate rather than many individual programs."

Quelle: 
https://docs.microsoft.com/en-us/archive/blogs/ie/microsoft-smartscreen-extended-validation-ev-code-signing-certificates

von Bernd H. (geeky)


Lesenswert?

Thomas_jhfd schrieb:
> * 7ZIP: Ist nicht signiert, funktioniert dennoch. Warum?

7zip wird allein aufgrund der hohen Verbeitung bei MS gewhitelisted 
sein.
(Mehrere Mio. Downloads pro Monat)

von Uwe B. (uwebre)


Lesenswert?

Matthias schrieb:

> Checking downloaded files against a list of reported malicious software
> sites and programs known to be unsafe. If it finds a match, Microsoft
> Defender SmartScreen shows a warning to let the user know that the site
> might be malicious.

Viel gelernt, Danke, aber noch nicht alles Verstanden :-(

Sehe ich das richtig daß der Aufwand mit der Zertifizierung nur 
erforderlich ist wenn Software aus dem Netz geladen wird, weil (nur) 
dann die geladene Datei vom Browser entsprechend (als heruntergeladene 
Datei) markiert wird?

Was passiert wenn ich meinen Kunden die (Nieschen-) Software in einem 
Zip-Archiv zum Download anbiete? Wird die lokal entpackte Programmdatei 
dann von Defender / SmartScreen angemeckert?

Uwe

von Bernd H. (geeky)


Lesenswert?

Uwe B. schrieb:
> Sehe ich das richtig daß der Aufwand mit der Zertifizierung nur
> erforderlich ist wenn Software aus dem Netz geladen wird, weil (nur)
> dann die geladene Datei vom Browser entsprechend (als heruntergeladene
> Datei) markiert wird?
Ob SmartScreen die Datei ggf. anmeckert hängt davon ab in welcher 
"Sicherheitzone" sich die Datei befindet. Alle modernen browser flaggen 
heruntergeladene Dateien mit einem "Zone.Identifier" mit Wert "3" 
(="Internet").
Die Sicherheitszone kann sich allerdings auch z.B. durch das Laufwerk 
auf das gespeichert wurde ergeben und das Laufwerk an sich kann einer 
Zone zugeordnet sein.
siehe zu den alternativen Datenströmen/ADS/Zone.Identifier auch z.B.:
https://www.der-windows-papst.de/wp-content/uploads/2017/09/Alternative-Datenstr%C3%B6me-ADS-Zone.Identifier.pdf

Es ist aber gut möglich das SmartScreen generell immer aktiv wird, aber 
bei Dateien mit Zone 0 ("Local Machine") sich nur unter sehr speziellen 
Umständen auch zeigt.

Bei Software die mit einem EV-Zertifikat signiert ist, gibt sich 
SmartScreen damit zufrieden und die Zone, etc. interessiert ihn dann 
nicht.
Es wird wohl angenommen, das Schadsoftware-Hersteller auf den 
Identifizierungs-Prozess und Richtlinien bei EV-Zertifikaten keine Lust 
haben und das Merkmal ausreichend sicher ist.

> Was passiert wenn ich meinen Kunden die (Nieschen-) Software in einem
> Zip-Archiv zum Download anbiete? Wird die lokal entpackte Programmdatei
> dann von Defender / SmartScreen angemeckert?

Das hängt davon ab, ob die Software mit der das ZIP-Archiv entpackt wird 
die Zonen-Information ggf. von der .zip-Datei selbst auch auf die 
entpackten Dateien übernimmt.
Wird mit dem Windows Explorer selbst die zip entpackt, dann sind in der 
Regel auch die entpackten Dateien entsprechend als potentiell unsicher 
geflagged und SmartScreen wird greifen.
Bei Drittanbieter-Tools wird das teils allerdings nicht unterstützt und 
SmartScreen greift dann ggf. nicht.
Bei 7zip hängt es meine ich davon ab wie die zip entpackt wird: Bei 
Doppelklick auf eine exe in der zip entpackt 7zip meine ich in einen 
Temp-Ordner und flagged dabei dann die entpackten Dateien ebenfalls mit 
Zone 3 und SmartScreen greift dann.
Bei direktem Entpacken in einen Ordner und dann manuell von dort starten 
werden Zoneninformationen meine ich durch 7zip aus irgendwelchen Gründen 
nicht gesetzt und SmartScreen greift nicht.

: Bearbeitet durch User
Beitrag #7390819 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.