# Release Notes EJPD SSO-Portal LocalProxy

## Version 4.1.2, 2025-10-13

1. Korrigierte Fehler

   1. Das Timeout-Handling beim Empfangen der Antworten vom Portal wurde verbessert.

2. Neu oder geändert

   1. Update auf OpenSSL 3.5.4 (LTS)
   2. Als Truststore für das Portal wird neu der Windows-Truststore verwendet.
   3. Beim Update auf diese Version werden alle `DEST_ADDR_nn`-Einträge im INI-File gelöscht. Neu kommt auf Portal-Seite ein Global Service Load Balancer zum Einsatz, der die Angabe dieser Einträge überflüssig macht.

## Version 4.1.1, 2024-09-03

1. Korrigierte Fehler

   1. Fix bei der Behandlung des ersten Requests, wenn es ein POST ist.

2. Neu oder geändert

   1. Update von OpenSSL auf Version 3.2.2.
   2. Update von zlib auf Version 1.3.1.
   3. Die EXEs werden standardmässig für 64-bit CPUs gebaut.
   4. Die maximale Länge einer URL wurde auf 6 kBytes erhöht.
   5. Der Truststore wurde um das neue SSO-Portal Root CA ergänzt.

## Version 4.1.0, 2023-09-27

1. Korrigierte Fehler

   1. Behebung eines Crashs beim Loggen von HTTP-Headern im Diagnostikmode.

2. Neu oder geändert

   1. Unterstützung für Login mit der EJPD Access App mit Push-Notification/QR-Code und FaceID.
   2. ZEMIS IPP-Printing wurde entfernt.
   3. Die "Über…"- und "Konfiguration"-Dialoge können nicht mehr mehrfach geöffnet werden.
   4. Bestehende TLS-Sessions werden sofern möglich wieder verwendet.
   5. Update von OpenSSL auf Version 3.0.11.
   6. Update von zlib auf Version 1.3

## Version 4.0.5, 2022-12-15

1. Korrigierte Fehler

   1. Wenn der erste Request vor dem Login ein POST-Request ist, wird dessen Body zerstört. Dies ist jetzt korrigiert (#276).
   2. Behebung eines Crashs beim Aufruf der "PKI Info" wenn ein PKCS#11-Treiber aktiviert ist.
   3. Syntax-Fehler im ProxyPac, das von EJPDPortalTSPM geliefert wird, wurden korrigiert.

2. Neu oder geändert

   1. Update von OpenSSL auf Version 1.1.1s
   2. Update von zlib auf Version 1.2.13

## Version 4.0.4, 2022-09-08

1. Korrigierte Fehler

   1. Fix für Session-Keepalive wenn der PC nicht verwendet wird.
   2. Erhöhung des Check-Intervalls bei eingelegter Smardcard auf 60 Sekunden zur Minimierung von Login-Fehlern bei anderen Anwendungen, die mit der Smartcard authentisieren.

## Version 4.0.3, 2022-09-05

1. Korrigierte Fehler

   1. Fix für unerwartetes Logout beim Wechseln des Portal-Profils.

## Version 4.0.2, 2022-08-29

1. Korrigierte Fehler

   1. Fix für unsichtbares mTAN-Feld beim Login mit SMS mTAN.

## Version 4.0.1, 2022-08-25

1. Korrigierte Fehler

   1. Fix für Login mit der «EJPD Access» App und anschliessender Profilauswahl.

## Version 4.0.0, 2022-07-22

Wichtig: Anwender, in deren Netzwerken ein ProxyPac ausgerollt ist, müssen dieses anpassen, um das WebSocket-Protokoll zu unterstützen. Die neue Regel lautet:

    function FindProxyForURL(url, host) {

      if (shExpMatch(url, "https://portal*.ejpd.admin.ch/*") ||
          shExpMatch(url,   "wss://portal*.ejpd.admin.ch/*"))
        return "PROXY localhost:8088";

      ...
    }

Bitte informieren Sie Ihre Netzwerk-Administration entsprechend.

1. Korrigierte Fehler

   1. Fix für Endlosschleife beim Lesen von POST-Requests, wenn dieser Request das Portal-Login auslöst, d.h. der erste Request ist.
   2. Fix für falsch dargestellte Umlaute in der Login-Maske (#261).
   3. Der "Zertifikatsauszug" kann nicht mehr geklickt werden, wenn die Smartcard ausgeschaltet ist (#259).

2. Neu oder geändert

   1. Unterstützung der Smartphone-App «EJPD Access» zur Authentisierung mit QR-Code (#262).
   2. Das Session-Binding gegenüber dem SSO-Portal verwendet jetzt ein Cookie anstelle der TLS-Session, da das TLS-Session-Binding in aktuellen Portal-Releases deprecated ist (#263).
   3. Update von OpenSSL auf Version 1.1.1q. Dies dient als Vorbereitung zur Verwendung von TLSv1.3 (#242).
   4. Update von zlib auf Version 1.2.12.

## Version 3.3.1, 2021-05-06

Verteilung nur nach Kanton LU wegen WPAD-Fix.

1. Korrigierte Fehler

   1. Die DNS-Abfrage des Portal-Hosts und Zuweisung des ReverseProxy wird erst unmittelbar vor dem Login gemacht. Dies ist hilfreich, weil ohne VPN unter Umständen eine andere IP-Adresse aufgelöst wird als mit VPN.
   2. Das automatische Proxy-Setup wird unterdrückt, wenn WPAD aktiv ist.
   3. Die automatisch gesetzte ProxyPac-URL wird beim Beenden nicht mehr gelöscht, wenn sie in der Zwischenzeit verändert worden ist.

2. Neu oder geändert

   1. Das README und die Release Notes werden als HTML-Dokumente geliefert.
   2. Veraltete TLS-Ciphers, die für die Java-Runtime 7 und älter noch notwendig waren, können nicht mehr verwendet werden.
   3. Das WebSocket-Protokoll (RFC 6455) wird unterstützt (#257).

## Version 3.3.0, 2020-10-30

1. Korrigierte Fehler

   1. Unter einigen Terminal-Server-Setups ist es vorgekommen, dass der Sicherheitscheck betreffend Portnummer und Username aus unklaren Gründen mit "Access denied" fehlgeschlagen ist. Dieser Check wurde umgebaut; er prüft jetzt nicht mehr den Usernamen, sondern die Session ID.
   2. Verbesserungen der Kompatibilität mit Microsoft Edge/Chromium.

2. Neu oder geändert

   1. Der ProxyPac-Server gibt jetzt die selben HTTP-Header zurück wie das dynamische ProxyPac von EJPDPortalTSPM.ini. Diese Header verhindern das Caching des ProxyPac.
   2. Falls EJPDPortal.exe gestartet wurde, und keine IP-Adressen für das SSO-Portal aufgelöst werden konnten, wurde EJPDPortal.exe sofort mit einer Fehlermeldung beendet. Dies ist in Zeiten von Covid-19 und Homeoffice nicht so praktisch, wenn das VPN noch nicht gestartet ist. In einem solchen Fall wird jetzt die DNS-Auflösung nochmals versucht, wenn das Portal gestartet wird.
   3. Update von OpenSSL auf Version 1.0.2u.
   4. Wenn in Windows kein ProxyPac konfiguriert ist, werden die nötigen Proxy-Einstellungen beim Start von EJPDPortal.exe automatisch vorgenommen und beim Beenden wieder rückgängig gemacht. Das Programm liefert dann automatisch ein passendes ProxyPac an den Browser.
   5. Die Konfiguration unter Terminal Server wurde wesentlich vereinfacht: Wenn in EJPDPortalTSPM.ini keine ProxyPac-URL konfiguriert ist, liefert das Programm selbst ein Default-ProxyPac, das es für jeden Benutzer dynamisch anpasst. Das heisst, dass der LocalProxy-Service, der nur das ProxyPac liefert, nicht mehr notwendig ist und entfernt werden kann.

## Version 3.2.7, 2019-03-20

1. Korrigierte Fehler

   1. EJPDPortal-IPP.ini wird vom Setup nicht mehr überschrieben.

2. Neu oder geändert

   1. Update von OpenSSL auf Version 1.0.2r.
   2. Anpassung am SSO-Portal-Zertifikat, da Firefox ab Version 54 self-signed Zertifikate nicht mehr unterstützt. Das SSO-Zertifikat muss neu importiert werden, falls die Software nicht mit dem gelieferten MSI ausgerollt wird (#255).

## Version 3.2.6, 2018-11-15

1. Korrigierte Fehler

   1. EJPDPortalTSPM.exe: alle ProxyPac-URLs zeigen wieder auf "localhost" anstelle von "127.0.0.1". Die URL endet wieder mit ".pac". Das ProxyPac wird vom Browser nicht mehr gecacht. Dies behebt Probleme unter Windows 10 und Windows Server 2016 Terminal Server (#253).
   2. EJPDPortal.exe verlangt nur noch wirklich verwendete Ports von EJPDPortalTSPM.exe.

2. Neu oder geändert

   1. Das MSI erstellt eine Firewall-Regel für eingehende Verbindungen zu EJPDPortal.exe.
   2. Der Portal-Starter wird mit "TSPM=1" nicht mehr intalliert, weil er im Terminal-Server-Modus nicht funktioniert.

## Version 3.2.5, 2018-09-13

1. Korrigierte Fehler

   1. EJPDPortalTSPM.exe: eine ProxyPac-URL ohne abschliessenden "/" holt jetzt korrekt das Dokument "/" vom Server.
   2. EJPDPortalTSPM.exe: die dynamische Proxy-Regel wird unmittelbar nach der öffnenden Klammer der Funktion FindProxyForURL() eingefügt. Dies behebt Probleme, wenn die erste statische Regel auf der selben Zeile wie die öffnende Klammer geschrieben ist.
   3. NevisIPP stürzte ab, wenn `LOG_THREAD=0` gesetzt war (#252).

2. Neu oder geändert

   1. Update von OpenSSL auf Version 1.0.2p.

## Version 3.2.4, 2018-04-30

1. Korrigierte Fehler

   1. Falls Richclients installiert sind, wird die Datei portaltrust.jks beim Setup zusätzlich nach C:\EJPD\SSOPortal\ kopiert, weil die Richclients diesen Pfad fest codiert haben (#248).
   2. Wenn EJPDPortal.exe oder EJPDPortal-IPP.exe als Service betrieben werden und der Service gestoppt worden ist, wurde dasselbe EXE wieder gestartet, da fälschlicherweise die `LOGOUT_ACTION` berücksichtigt wurde (#250).

2. Neu oder geändert

   1. Beim Installieren unter Windows 10 werden automatisch localhost- Verbindungen von IE11 und Edge erlaubt (#249). Siehe auch readme.txt.
   2. Update von OpenSSL auf Version 1.0.2o.
   3. Die IdleTracker.dll wird nicht mehr benötigt; ihre Funktion konnte durch ein Win32-API ersetzt werden.

## Version 3.2.3, 2018-01-16

1. Korrigierte Fehler

   1. Workaround für Fehler bei der PIN-Eingabe bei Verwendung gewisser Add-On-Software bei der Sicherheitsdirektion des Kantons Zürich (#247).

## Version 3.2.2 (nur Zemis/IPP), 2017-12-20

1. Korrigierte Fehler

   1. Das Menu zum Installieren und Deinstallieren des Services funktioniert wieder (#245).
   2. Auf der Kommandozeile zum Starten des Services wird der Name der INI-Datei ebenfalls eingetragen (#245).
   3. Der HTTP-Header "content-length" von NevisIPP wird wieder korrekt erkannt (#246).

## Version 3.2.1, 2017-11-21

1. Korrigierte Fehler

   1. Die Tooltips im Login-Dialog zeigen nicht mehr nur das erste Zeichen an (#240).
   2. PDF-Dokumente beim NevisIPP-Druck werden wieder richtig erkannt.

2. Neu oder geändert

   1. LocalProxy überprüft periodisch, ob eine Smartcard eingelegt ist. Neu können dafür verschiedene Intervalle defininiert werden, je nach dem ob eine Karte gefunden wurde oder nicht. Die Parameter heissen `SC_READY_CHECK_INTERVAL` resp. `SC_MISSING_CHECK_INTERVAL`. Dies kann das Risiko von gleichzeitigem Zugriff auf die Smartcard reduzieren. Der Default-Wert ist 3s (#241).
   2. Update von OpenSSL auf Version 1.0.2m.
   3. Update von zlib auf Version 1.2.11.

## Version 3.2.0, 2017-08-21

1. Korrigierte Fehler

   1. Beim Einsatz von mehreren Smartcards im PKCS#11-Modus gibt es keine Endlosschleife mehr, wenn das Portal-Zertifikat im zweiten Kartenleser gefunden wird (#239).

2. Neu oder geändert

   1. In der Portal-Konfiguration werden auch Hostnamen anstelle von IP-Adressen unterstützt. Diese werden via DNS-Server aufgelöst (#232).
   2. Support von Microsoft DirectAccess: Verbindungen zum SSO-Portal sind jetzt auch über IPv6-Adressen möglich (#232).
   3. Auslieferung der Setups getrennt für LocalProxy und ZEMIS/IPP als MSI-Dateien (#203).

## Version 3.1.1 (nicht veröffentlicht), 2017-06-26

1. Korrigierte Fehler

   1. Falsche Dekodierung der App-Start-Parameter behoben (#236).

2. Neu oder geändert

   1. Wenn unter C:\EJPD\SSOPortal, %LOCALAPPDATA%, %APPDATA% und im EXE-Verzeichnis kein INI-File gefunden wird, und eines unter %PROGRAMDATA% existiert, wird dieses beim ersten Start nach %APPDATA%\EJPD\SSOPortal kopiert und von da an verwendet (#156).

## Version 3.1.0, 2017-05-03

1. Korrigierte Fehler

   1. Nach Verlust der TLS-Session gegenüber dem SSO-Portal startet sich der LocalProxy automatisch neu. Dies ist aus Sicht des Benutzers die einzig sinnvolle Aktion (#229).

2. Neu oder geändert

   1. Der Parser der Portal-Seite interpretiert die HTML-Attribute maxlength und title auf den Eingabefeldern und zeigt diese im Login-Dialog an. Darüber hinaus unterstützt er UTF-8 und decodiert mehr HTML character references als bisher (#221, #222, #216).
   2. Der Benutzer wird fünf Minuten vor Ablauf der Portal-Session im Minutentakt an den Ablauf der Sitzung erinnert (#171).
   3. Gegenüber dem Browser und dem Portal ist in Übereinstimmung mit der EJPD TLS-Roadmap nur noch TLSv1.2 erlaubt (#223, #230).
   4. Beim ersten Start des LocalProxy werden obsolete Einträge aus dem INI-File entfernt (#157).
   5. Bei allen TLS-Verbindungen zum Portal wird der Herausgeber des Portal-Zertifikats sowie der Hostname im Zertifikat überprüft (#231).
   6. Die früher eigenständige Applikation "LocalProxy Smartcard Switch" wurde in den LocalProxy integriert. Bei entsprechender Konfiguration gibt es einen neuen Menupunkt "Smartcard-Treiber", unter dem der zu verwendende Treiber ausgewählt werden kann (#233).
   7. Mit dem neuen Parameter [BROWSER].EXENAME kann festgelegt werden, welcher Browser mit dem Menupunkt "SSO Session" gestartet wird (#235).
   8. Die Einstellung `LOGOUT_ACTION` hat neu den Default-Wert RESTART.
   9. Das INI-File wird vor dem EXE-Verzeichnis unter C:\EJPD\SSOPortal, %LOCALAPPDATA% und %APPDATA% gesucht. Log-Dateien werden per Default nach %LOCALAPPDATA%\EJPD\SSOPortal\Log\ geschrieben (#156).
   10. In allen Parametern, die Dateinamen oder -pfade definieren, werden Umgebungsvariablen in der Form %NAME% durch ihren Wert ersetzt (#156).
   11. Der Default-Smartcard-Treiber ist jetzt CryptoAPI. Das INI-File wird angepasst, so dass Benutzer, die mit dem alten Default (SafeNet) gearbeitet haben, den selben Treiber weiterhin benützen.

3. Entfernt

   1. Die Protokolle CITRIX und SOCKS werden nicht mehr unterstützt.
   2. Das Smartcard-Autologon gibt es nicht mehr.

## Version 3.0.7, 2016-11-15

1. Korrigierte Fehler

   1. Beim Eingeben der Zertifikats-Passphrase für ZEMIS/IPP wurde diese inkorrekt verschlüsselt, was beim nächsten Neustart zu einer Access Violation geführt hat. Dies wurde so lange nicht herausgefunden, weil die meisten IPP-Kunden ihr ursprüngliches INI-File des Release 2 mit der korrekt verschlüsselten Passphrase weiter verwendet haben.

## Version 3.0.6, 2016-06-03

1. Korrigierte Fehler

   1. Die Funktion "SmartCard ausschalten" wurde dahingehend angepasst, dass die SmartCard nicht wieder aktiviert wird, sobald eine solche erkannt wird. Dies macht keinen Sinn mehr, seit die SmartCard auf den Bundes-PCs für das Windows-Login verwendet werden muss. Dementsprechend wurde auch der undokumentierte Parameter `DISABLE_SC` entfernt, dessen Funktion jetzt vom Parameter `USE_SC` übernommen wird.

## Version 3.0.5, 2016-05-31

1. Korrigierte Fehler

   1. Setup: Das SSO-Zertifikat wird auch dann korrekt installiert, wenn der Installationspfad Leerzeichen enthält.

## Version 3.0.4, 2016-05-17

1. Korrigierte Fehler

   1. Setup: Probleme beim Deinstallieren behoben, wenn der Installationspfad Leerzeichen enthält.
   2. Setup: Der beim Installieren angegebene Portal-Hostname wird korrekt in die INI-Datei übernommen.

## Version 3.0.3, 2016-04-28

1. Korrigierte Fehler

   1. EJPDPortalTSPM: Der Suchalgorithmus zum Einfügen der Portal-Regel in das dynamisch generierte proxypac wurde verbessert.

## Version 3.0.2, 2016-03-10

1. Korrigierte Fehler

   1. (3.0.0) Die maximal erlaubte Länge einer URL wurde von 1024 auf 2084 Bytes erhöht.
   2. (3.0.1) Ein sporadisch auftretender Fehler 5 beim Starten des Browsers aus dem Portal-Starter wurde behoben.

2. Neu oder geändert

   1. Das Setup entfernt die Einstellungen `BROWSER_CIPHERS` und `CIPHERS`. Der LocalProxy (gegenüber dem Browser) resp. das SSO-Portal (gegenüber dem LocalProxy) geben die Liste der bevorzugten Ciphers vor.
   2. Update von OpenSSL auf Version 1.0.2g.
   3. Um Sicherheitsbedenken betreffend Caching der Smartcard-PIN auszuräumen, löscht EJPDPortal.exe nach einem Portal-Logout den PIN automatisch. Mit der Einstellung `LOGOUT_ACTION=RESTART` kann alternativ erreicht werden, dass sich das Programm nach dem Logout neu startet, weil das Löschen der PIN nicht mit allen SmartCard-Treibern funktionert.

## Version 3.0.1, 2016-02-17

1. Korrigierte Fehler

   1. (3.0.0) Ein unregelmässig auftretender Fehler beim Upload von Dokumenten wurde behoben.
   2. (2.0.x) Die Einstellung `DISABLE_SC=1` war nur in Verbindung mit `USE_SC=0` wirksam. Dies wurde geändert; `DISABLE_SC=1` alleine reicht jetzt aus, um die SmartCard vollständig auszuschalten.
   3. (1.x) Wenn der Pfad zur INI-Datei auf der Kommandozeile angegeben wurde, und dieser Pfadname in Anführungszeichen eingeschlossen und kürzer war als der Pfad zur EXE-Datei, fanden sich noch Reste des EXE-Namens im Namen der INI-Datei. Deshalb wurde die INI-Datei nicht gefunden.

2. Neu oder geändert

   1. Update von OpenSSL auf Version 1.0.2f.
   2. Im Terminal-Server-Betrieb werden weniger Rechte verlangt, um den Benutzer einer neuen TCP-Verbindung zu bestimmen.

## Version 3.0.0 (nicht veröffentlicht), 2015-11-30

1. Korrigierte Fehler

   1. SSLv2 und SSLv3 werden aus Sicherheitsgründen nicht mehr unterstützt.
   2. Bei Login-Fehlern im SSO-Portal wird eine Fehlerseite an den Browser gesendet, anstelle endlos auf das Portal zu warten.

2. Neu oder geändert

   1. Die native Smartcard-Schnittstelle von Windows (CryptoAPI) wird unterstützt. Sie kann mit `PKCS11_LIB=CryptoAPI` eingeschaltet werden.
   2. Die Gültigkeitsdauer des Zertifikats wird im LocalProxy-Tooltip angezeigt.
   3. Update von OpenSSL auf Version 1.0.2d, d.h. TLSv1.2 und moderne Krypto-Verfahren wie Elliptic Curves und SHA2 werden unterstützt.
   4. Das Server-Zertifikat server.pem wurde in EJPDPortal.exe integriert. Das Setup importiert dieses Zertifikat automatisch in den Windows-Root-Store. Um dieses manuell zu importieren, gibt es den neuen Punkt "SSO-Zertifikat installieren" im Kontextmenu des LocalProxy.
   5. Viele INI-Parameter haben für die Bundesverwaltung sinnvolle Default-Werte und brauchen deshalb nicht mehr angegeben zu werden, z.B. `LOG_MAX_AGE`, `LOG_DELETE_INTERVAL`, `COMM_TO`, `DLG_TO`, `XLT_FILE_NAME`. Diese Werte werden vom Setup entfernt.
   6. Das Verzeichnis der Log-Dateien wird nicht mehr vom Setup erstellt, sondern beim Start des LocalProxy. D.h. dass es auch automatisch neu angelegt wird, falls es einmal gelöscht werden sollte.

3. Entfernt

   1. Die Build-Variante "SysP" (Versionen 2.0.2.x) gibt es nicht mehr. Dies schliesst die undokumentierten INI-Parameter wie `EXT_SERVICES_nn`, `DISABLE_CLIENT_SSL`, `URI_APPENDIX` etc. ein.
   2. HP-NonStop Applikationen (TAXI, ISCCOM) werden nicht mehr unterstützt.
   3. Der Parameter `USE_OLD_OSSL_PARAM_SETTER` zur Übergabe des Zertifikats an OpenSSL via Issuer (CA-Name) wird nicht mehr unterstützt.
   4. Der Parameter `DET_CLIENT_SSL_VERSION=0` wird nicht mehr unterstützt.

4. Interna

   1. Die Entwicklungsumbegung ist neu Microsoft Visual Studio 2013.