Blog Post: BitBastelei #221 - Transistor-Tester "T4" mit Grafik-LCD bit.ly/2fSDINf
— adlerweb|BitBastelei (@adlerweb) 27.11.2016 11:01
Archiv für das Jahr: 2016
Da hat sich wer bei den Fernsehanstalten beliebt gemacht – @GreenDay setzt einen Anti-Trump-Part in ihren Auftritt youtu.be/eSZ0KzA9e1s?t=…
Da hat sich wer bei den Fernsehanstalten beliebt gemacht - @GreenDay setzt einen Anti-Trump-Part in ihren Auftritt youtu.be/eSZ0KzA9e1s?t=…
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 21:38
Blog Post: Windows/GPG/Smartcard – GPG mit Powershell bei SC-Verbindung neu starten bit.ly/2fQGoel
Blog Post: Windows/GPG/Smartcard - GPG mit Powershell bei SC-Verbindung neu starten bit.ly/2fQGoel
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 21:27
Windows/GPG/Smartcard – GPG mit Powershell bei SC-Verbindung neu starten
Beim Thema E-Mail-Verschlüsselung ist GPG weit verbreitet. Die Gundfunktionen sind z.B. mit Thunderbird und Enigmail oder gar eine Appliance auch für Einsteiger nutzbar und durch das WoT erstpart man sich die Abhängigkeit von – teils Zweifelhaften – zentralen Zertifizierungsstellen. Ich selbst nutze seit einiger Zeit keinen Softwareschlüssel sondern ein dediziertes HSM (Hardware Security Module) in Form eines YubiKey. Hiermit befindet sich der Key nicht mehr auf dem PC und auch die Verschlüsselung/Signierung läuft in Teilen auf dem Prozessor des YubiKey. Was unter Linux ohne große Änderungen funktioniert macht bei Windows eher wenig Spaß. Zwar ist auch GPG4Win in der Lage mit CryptoCards & Co umzugehen, häufiges Ein- und Ausstecken führt jedoch schnell zu einem hängenden GPG-Agent oder Absturzen der scdaemon.exe (GPG SmartCard Daemon). Einzige Abhilfe: Alle GPG-Prozesse beenden und neu starten. Da Verschlüsselung und Windows ohnehin eher selten zu finden ist sind auch Informationen dazu dünn gesät. Da ich teilweise um das System aus Redmond nicht herum komme und ein Fix in GPG4Win nicht in Sichtweite ist muss also wieder einmal der Holzhammer her: Irgendwie muss beim Einstecken des USB-Gerätes das GPG-System zurückgesetzt werden.
Also frisch ans Werk. Als Sprache soll mal wieder Powershell herhalten – direkt verfügbar, halbwegs systemnah, sollte passen. Über WMI kann man sich auch über ab- und angesteckte Geräte informieren lassen. Leider konnte ich keine Möglichkeit finden weitere Infos wie z.B. Hersteller oder Treiber gleich mit zu erhalten. Da sonst eher wenig Gerätefluktuation zu erwarten ist ziehe ich die „passt scho“-Karte und werde das GPG-System bei jedem neu auftauchenden Gerät einmal zurücksetzen.
#Requires -version 2.0 Register-WmiEvent -Class Win32_DeviceChangeEvent -SourceIdentifier deviceChange write-host (get-date -format s) " Beginning script..." do { $newEvent = Wait-Event -SourceIdentifier deviceChange $eventType = $newEvent.SourceEventArgs.NewEvent.EventType $eventTypeName = switch($eventType) { 1 {"Configuration changed"} 2 {"Device arrival"} 3 {"Device removal"} 4 {"docking"} } write-host (get-date -format s) " Event detected = " $eventTypeName $newEvent.SourceEventArgs.NewEvent | fl if ($eventType -eq 2) { write-host (get-date -format s) " Starting task in 3 seconds..." start-sleep -seconds 3 taskkill /T /F /IM gpg-agent.exe taskkill /T /F /IM scdaemon.exe taskkill /T /F /IM kleopatra.exe start -FilePath 'C:\Program Files (x86)\GNU\GnuPG\gpg-agent.exe' -ArgumentList '--daemon' -WorkingDirectory 'C:\Program Files (x86)\GNU\GnuPG\' -LoadUserProfile -WindowStyle Minimized } Remove-Event -SourceIdentifier deviceChange } while (1-eq1) #Loop until next event Unregister-Event -SourceIdentifier deviceChange
Das Grundkonstrukt selbst scheint von Andy.L13 zu stammen, die kläglichen versuche von Mass-Storage auf andere USB-Geräte umzustellen stammen von mir. In Zeile 24 kann man für WindowStyle statt Minimized auch Hidden nutzen um das Ganze im Hintergrund laufen zu lassen – ich bevorzuge ein optisches Feedback. Das Script kann passend in Autostart oder als geplanter Task verstaut werden.
Sicher keine saubere Lösung, aber „works for me“.
Edit: Stackoverflow (bzw warriorpostman) liefert…
Das folgende Script reagiert nur noch auf den vom YubiKey emulierten Smartcard-Reader. Das Objekt $Event.SourceEventArgs.NewEvent.TargetInstance sieht wie folgt aus – die Informationen für’s Query sollten sich im Gerätemanager finden lassen:
__GENUS : 2 __CLASS : Win32_PnPEntity __SUPERCLASS : CIM_LogicalDevice __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_PnPEntity.DeviceID="USB\\VID_1050&PID_0116&MI_02\\6&***&0&0002" __PROPERTY_COUNT : 24 __DERIVATION : {CIM_LogicalDevice, CIM_LogicalElement, CIM_ManagedSystemElement} __SERVER : TESTRECHNER __NAMESPACE : root\CIMV2 __PATH : \\TESTRECHNER\root\CIMV2:Win32_PnPEntity.DeviceID="USB\\VID_1050&PID_0116&MI_02\\6&***&0&0002" Availability : Caption : Microsoft Usbccid-Smartcard-Leser (WUDF) ClassGuid : {50dd5230-ba8a-11d1-bf5d-0000f805f530} CompatibleID : {USB\Class_0b&SubClass_00&Prot_00, USB\Class_0b&SubClass_00, USB\Class_0b} ConfigManagerErrorCode : 0 ConfigManagerUserConfig : False CreationClassName : Win32_PnPEntity Description : Microsoft Usbccid-Smartcard-Leser (WUDF) DeviceID : USB\VID_1050&PID_0116&MI_02\6&***&0&0002 ErrorCleared : ErrorDescription : HardwareID : {USB\VID_1050&PID_0116&REV_***&MI_02, USB\VID_1050&PID_0116&MI_02} InstallDate : LastErrorCode : Manufacturer : Microsoft Name : Microsoft Usbccid-Smartcard-Leser (WUDF) PNPDeviceID : USB\VID_1050&PID_0116&MI_02\6&***&0&0002 PowerManagementCapabilities : PowerManagementSupported : Service : WUDFRd Status : OK StatusInfo : SystemCreationClassName : Win32_ComputerSystem SystemName : TESTRECHNER PSComputerName : TESTRECHNER
Ich werde mich am Service WUDFRd (aka Gerät mit Windows SmartCard-Treber) orientieren. Prinzipiell könne man aber auch auf die USB-ID triggern uns so Scripte bauen, welche bei einstecken eines USB-Sticks ein Backup durchführen oder bei verbinden einer unbekannten USB-Tastatur entsprechend reagieren (böse Ente). Das zugehörige Script:
$query = "Select * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity' AND TargetInstance.Service = 'WUDFRd'" if( Get-EventSubscriber | Where-Object {$_.SourceIdentifier -eq "YubiHammer"}) { Unregister-Event YubiHammer } Register-WmiEvent -Query $query -SourceIdentifier YubiHammer -Action{ $Global:RemoteProcMon=$event start-sleep -seconds 3 taskkill /T /F /IM gpg-agent.exe taskkill /T /F /IM scdaemon.exe taskkill /T /F /IM kleopatra.exe start -FilePath 'C:\Program Files (x86)\GNU\GnuPG\gpg-agent.exe' -ArgumentList '--daemon' -WorkingDirectory 'C:\Program Files (x86)\GNU\GnuPG\' -LoadUserProfile -WindowStyle Minimized }
Weihnachtsmarkt #saffig pic.twitter.com/WjXPCxI6VQ
Weihnachtsmarkt #saffig pic.twitter.com/WjXPCxI6VQ
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 18:09
Weihnachtsmarkt #saffig pic.twitter.com/zry0iAeV3a
Weihnachtsmarkt #saffig pic.twitter.com/zry0iAeV3a
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 17:58
Finally… twitter.com/ESP32net/statu…
Finally... twitter.com/ESP32net/statu…
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 16:54
@_BennyOtt_ Bezog sich eher darauf,dass 2.4G-Kanäle überlappen und nur 1,5,9&13 verwendet werden sollten.Einen daneben stört mehr als gleich
@_BennyOtt_ Bezog sich eher darauf,dass 2.4G-Kanäle überlappen und nur 1,5,9&13 verwendet werden sollten.Einen daneben stört mehr als gleich
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 10:18
@_BennyOtt_ „ja aber ich hab doch nur 2 WLAN booster installiert und extra einen Kanal daneben eingestellt“ 😈
@_BennyOtt_ "ja aber ich hab doch nur 2 WLAN booster installiert und extra einen Kanal daneben eingestellt" ?
— adlerweb|BitBastelei (@adlerweb) 26.11.2016 09:49
„Das Gebäude wurde stark zerstört.“ bisschen Tod?
"Das Gebäude wurde stark zerstört." bisschen Tod?
— adlerweb|BitBastelei (@adlerweb) 25.11.2016 22:04