Elastix - Neues Zertifikat erstellen und einbinden

Ein neues Zertifikat für eine Elastix Maschine ist hin und wieder fällig. Bekanntlich handelt es sich dabei um ein CentOS System mit Apache, welches somit recht einfach mit einem neuen Zertifikat versehen werden kann. Praktisch geht das sogar mit einem Oneliner.

openssl req -x509 -nodes -sha256 -days 1825 -newkey rsa:4096 -keyout /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.crt
-subj "
/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/ CN=localhost.localdomain/emailAddress=root@localhost.localdomain"

Damit erzeugt ihr ein neues Zertifikat, welches auch gleich richtig eingebunden wird, aber Vorsicht, die vorhandenen Zertifikate werden mit diesem Befehl überschrieben.

Elastix

Solltet ihr andere Dateinamen verwenden, dann muss der Pfad in der Konfiguration zusätzlich angepasst werden

sudo nano /etc/httpd/conf.d/ssl.conf

 SSLCertificateFile /ich/bin/der/pfad/neues_cert.crt

sudo service httpd restart 

Tomcat 7/8 absichern - SSLv2 und SSLv3 deaktivieren - PFS aktivieren

In den damaligen Artikel über Poodle und SSLv3 Abschaltung bzw. Servehärtung ist der Tomcat total untergegangen. Das will ich mal schnell nachholen.

tomcat

Tomcat 7/8 härten - unsicheres SSL abschalten

Im Prinzip muss nicht viel gemacht werden, es sollten lediglich die richtigen Parameter in der server.xml hinterlegt werden. Zusätzlich darf natürlich gerne eine aktuelle und sichere Java Version verwendet werden.

Wichtig 

  • Aktuelle Java Version einsetzen
  • Aktuelle Tomcat Version einsetzen
  • Aktuelle DB Connectoren einsetzen

HTTPS Servereinstellungen

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" maxHttpHeaderSize="8192" minSpareThreads="25" scheme="https" secure="true" keystoreFile="\PfadzumKeystore\keystore" keystorePass="Password" clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"

ciphers="

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"
 
/>

Die Erklärung für die einzelnen Attribute dieser Konfiguration könnt ihr hier finden.

Wer sich nun fragt, wo hier Perfect Forward Secrecy konfiguriert ist, der findet diese in allen Cipher Suites mit "ECDHE_ECDSA und ECDHE_RSA" wieder. Da diese präferiert werden ist ein Diffie-Hellman Schlüsselaustauschverfahren gewährleistet. ECDH_ECDSA und ECDH_RSA unterstützen übrigens kein PFS.

Weiterführende Links

Random Agent Spoofer - Firefox Fingerabdruck verschleiern, Privatsphäre erhalten

Das Thema Browser Fingerprinting wurde hier ja schon ausführlich behandelt. Nachdem ich die Tage das Addon Canvas Blocker vorgestellt habe, möchte ich nun den Random Agent Spoofer nachreichen.

Random Agent Spoofer

Jeder Browser sendet Informationen an Webseiten die besucht werden, die FF Erweiterung ermöglicht es diese Informationen zu verschleiern. Der Agent versucht nicht das senden von Browser Informationen zu verhindern, sondern sendet per Zufallsprinzip gefälschte Informationen.

random-spoofer

Der Anwender kann aus einem Pool von Windows, Mac, Linux oder Androidbrowsern wählen, welche der besuchten Webseite dann vorgegaukelt werden. Praktischerweise lässt sich dies per Zufallsgenerator automatisieren. So wird nach einer bestimmten Zeitspanne die Browseridentität von selbst gewechselt.

Zusätzlich gibt es verschiedene Möglichkeiten den gesendeten Header zu manipulieren, die lokale Zeit zu ändern oder die Bildschirmauflösung zu spoofen.

Auch klassische Privatsphären Einstellungen wie Geolokalisierung, DNS oder Link Prefetching lassen sich abschalten.

agent-spoofer

Canvas Element blockieren

Eine sehr interessante Funktion ist die Unterbindung der Canvas Unterstützung. Das heißt dieses Addon bietet ähnliche Funktionalität wie der vorgestellte CanvasBlocker. Nur erscheint hier keine Warnung auf Seiten die das Canvas Element abfragen.

Interessierte sollten sich das Add-on direkt von Github installieren, da die Version auf der Projektseite aktueller ist, als im FIrefox Marketplace.

Download Random Agent Spoofer

Doku Doppelpack - Die Jagd auf Snowden und Schlachtfeld Internet

Es war schon im Vorfeld auf vielen Seiten ein Hinweis auf die gestrige Doku in der ARD zu finden. Nachdem ich diese gestern Abend angeschaut habe, möchte ich sie hier weiter empfehlen.

Eine sehr aufschlussreiche Doku rund um Snowdens Flucht nach Hong Kong und Russland. Bisher war mir zum Beispiel nicht klar gewesen, wie tief Wikileaks in die Flucht verstrickt war. Denn diese Fakten wurden nicht klar in Glenn Greenwalds Buch erwähnt.

Jagd-auf-Snowden

Auch die Versuche Edwards Vater zum Lockvogel zu machen und der Zugriff auf die ecuadorianische Präsidentenmaschine machen die Doku sehenswert.

Nehmt euch also ruhig 45 Minuten Zeit.

Mediathek - Die Jagd auf Edward Snowden

Solltet ihr Geschmack an der Thematik gefunden haben, schaut euch gleich im Anschluss noch Schlachtfeld Internet an. Nicht so spannend wie die Snowden Geschichte, aber dennoch wichtig, denn es geht um Wirtschaftsspionage, Industriehacking und anderes was die NSA so zu bieten hat.

Lösung Java 8 Fehler - Certificate has been revoked - Zertifikat wurde entzogen

Im April läuft die Unterstützung für Java 7 aus, somit wird es langsam aber sicher Zeit auf Java 8 umzusteigen. Die neue Version 8 bringt bessere Sicherheitsmechanismen mit, welche bei Anwendungen, die auf HTTPS und somit auf Zertifikate setzen zu Fehlern führen können. Einer davon ist die Zurückweisung des Zertifikats:

 java.security.cert.CertificateRevokedException: Certificate has been revoked, reason: SUPERSEDED, revocation date: XXXXX CET 2014, authority: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE, extension OIDs: [2.5.XX.21]

at com.sun.deploy.security.RevocationChecker.checkApprovedCRLs(Unknown Source)

at com.sun.deploy.security.RevocationChecker.checkCRLs(Unknown Source)

at com.sun.deploy.security.RevocationChecker.check(Unknown Source)

at com.sun.deploy.security.TrustDecider.checkRevocationStatus(Unknown Source)

at com.sun.deploy.security.TrustDecider.getValidationState(Unknown Source)

at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source)

at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)

at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)

........

Java8-AnwendungzurSicherheitblockiert

Erklärung 

CRL 

Dabei handelt es sich um eine Zertifikatsperrliste (Certificate Revoke List -->CRL), diese wird von einer Zertifizierungsstelle geführt und enthält die Seriennummer ungültiger Zertifikate. Diese sind mit einem Zeitstempel versehen und einer Signatur geschützt. Voraussetzung für eine Prüfung durch diesen Sicherheitsmechanismus ist eine aktive Internetverbindung.

In diesem Beispiel trat dieser Fehler auf.

OCSP

Ein weiterer Schutz der unter Java 8 aktiv ist nennt sich Online Certificate Status Protocol. Dabei handelt es sich um ein Netzwerkprotokoll, das ebenfalls bei einem CA Dienst (OCSP-Responder) nach der Gültigkeit eines Zertifikats fragt. 

Sicherheitsprüfungen für Zertifikate in Java 8 ausschalten

Bei selbst signierten oder anderweitig verwendeten Zertifikaten können diese Prüfungen ausgeschaltet, bzw. eingeschränkt werden. Denn bei einer Test- oder Intranetanwendung ist es nicht immer sinnvoll die Gültigkeit bei einer CA zu überprüfen.

Darum lassen sich in den Java Einstellungen ("Systemsteuerung/Java/Erweitert") CPL und OCSP deaktivieren.

java8-sicherheit

Bei dieser Einstellung wird die Prüfung nicht komplett deaktiviert, sondern auf Zertifikate des Anbieters, also des Softwareherstellers beschränkt. Das heißt, bei selbst signierten Zertifikaten dürfte nun kein Fehler seitens Java angezeigt werden, wenn die gewünschte URL auf der Whitelist ist oder dem eigenen Zertifikat vertraut wird.

Natürlich lassen sich CRL und OCSP auch komplett deaktivieren. Die Einstellungen sind dann wie folgt.

java8-sicherheit-zertifikate

P.S. Im selben Menü könnt im gleichen Zug weiter unten die Protokolle SSL 3.0 und TLS 1.0 deaktivieren.