Browsed by
Tag: Mac

Find and kill a process on a specific port (lsof)

Find and kill a process on a specific port (lsof)

terminal-app
You might all have experienced the situation when you want to start a server either from within your IDE or via the terminal to only get the error that the “port is already in use” and the startup is aborted. This is mostly caused by aborting the server or a crash of the IDE which started it and not terminating it properly. When using macOS (or any other BSD or a Linux) there is a simple solution for this.

For such purposes macOS comes with the “lsof” command which stands for “list open files”. Its purpose is to show who is using a specific file or in our case who is using a specific port. After identifying the process it is easy to terminate it using the “kill” command.

Read More Read More

Apple MacBook Pro late 2016

Apple MacBook Pro late 2016

apple.com

This blog should not transform to yet another Apple blog but as a Java Developer the Mac is my preferred platform which I use daily. This is the reason why I tend to take a closer look when Apple shows the next generation of macOS or Mac hardware even if I’m not buying a new one immediately. I want to get a feeling were the platform is going to. Last week Apple showed its last iteration of the MacBook Pro to the public and I want to share my thoughts as a developer about it.

At first I like the new look, the lower weight is really great for me as I often travel around with the MacBook being in my backpack and every grams you could save there is a win. The first thing that got me thinking was if it really is a good idea to start the 13″ model with just 8GB of RAM. From a developer standpoint I think that this is the absolute minimum and you should get an upgrade here if possible. When you are a Java developer and start your app server (sometimes multiple servers at once), a database in a VM, your IDE, Browser, Mail etc this will lead very fast to eating up all the RAM and swapping out to the SSD. SSDs are very fast these days but they are no match to the RAM and it will slow down your system. 16GB will be a better solution here and that Apple doesn’t offer 32GB for the 13″ model is a shame. That they commented afterwards that this decision was made because 32GB would have used to much of the battery is a reason but not one that I like. I would much more like to work a shorter time with a faster system then work longer with a slow system that has used up all its memory because this often makes effective working impossible and I guess in the future we will need more RAM than today instead of less.

Read More Read More

Solution for the IntelliJ issue on macOS Sierra

Solution for the IntelliJ issue on macOS Sierra

intellij-idea
Jetbrains has come up with a solution for the scrolling problem with IntelliJ IDEA based IDEs under macOS Sierra. They released a modified JDK8 which hast to be set as boot JDK for IntelliJ. You can download the JDK here.
For setting it as the boot JDK you need to got to action menu. This is reached under macOS by pressing ⌘ + ⇧ + a (in other words cmd + shift + a) buttons and entering in the search box the term “switch IDE boot JDK”.
intellij-switch-jdk
The new JDK will be part of the next stable release of IntelliJ and is actually available as part of the 2016.3 EAP.
As this seems to fix the scrolling issue there are still reports of problems with the context click behavior.

Passwörter, Sicherheit und Verwaltung

Passwörter, Sicherheit und Verwaltung

Passwörter braucht man heute im Internet für beinahe alles. In Foren, bei Social Networks, auf Verkaufsplattformen, bei Banken, beim eMailanbieter oder beim Jabber Konto, überall werden heute Passwörter verlangt und diese Flut der benötigten Authentifizierungen verleitet viele Benutzer dazu überall das gleiche (im Zweifel noch sehr unsichere) Passwort zu benutzen. DIe Probleme die dieses Vorgehen mit sich bringt sollten eigentlich auf der Hand liegen. Kann ich einmal ein Passwort des Benutzers knacken oder in Besitz bringen ist es sehr leicht einfach auf allen möglichen Webseiten mit der selben Benutzername/Passwort Kombination auszoprobieren ob ich mich einloggen kann. Die Folgen können Informationsdiebstahl sein, Beschädigung des Rufes, Versenden von Spam und natürlich das Erzeugen von Schulden durch z.B. Einkäufe bei eBay Amazon und Co.

Um sich zu schützen sollte man ein paar Dinge beachten. An fremden PCs (wie z:b. in Hotels oder Internet Cafes) sollte man nur wenn unbedingt nötig sensible Passwörter wie z.B. Banking Accounts nutzen, denn hier fehlt einem meistens gänzlich die Kontrolle nachzuvollziehen ob irgendwelche Programme installiert sind die die eingegebenen Daten mit loggen und abspeichern könnten. Auch das Speichern von hoch sensiblen Passwörtern im Browsercache sollte vermieden werden, denn das ist zwar unheimlich praktisch und hilft gegen Vergesslichkeit doch hat es auch einige Nachteile. Meist werden die Passwörter heute verschlüsselt abgelegt aber oft ist die Frage wo. Eine Sicherung der Passwortdaten und anschließendes Wiedereinspielen ist oft nicht vorgesehen, daher steht der Benutzer beim Betriebssystemwechsel schonmal dumm da. Doch auch die Sicherheit ist nicht immer nachvollziehbar. Ich würde niemals einer unfreien Software mit geschlossenem Quellcode meine Passwörter anvertrauen wollen. Wieso? Der Grund ist eigentlich ganz einfach, im Normalfall weiß man nicht wie die Sicherheitskonzepte aussehen. Welche Verschlüsselung wird verwendet? Haben überhaupt Fachleute auf diesem Gebiet sich die Sache mal näher angesehen und auf Schwachstellen abgeklopft oder hat sich bloß der aktuelle Praktikant mal 14 Tage eingelesen und dann schnell was hingepfuscht? Generell haben bei Proprietärer Software sehr viel weniger Entwickler Einblick in den Code als bei Open Source Projekten wodurch eine geringere Kontrolle statt findet und auch der Code oft schlechter sein dürfte. Die Beispiele der letzten Jahre wie die DECT Verschlüsselung oder diverse RFID Hacks haben gezeigt das geschlossene Software, auch in Sicherheitskritischen Bereichen, ihre Sicherheit gerne darauf begründet das niemand weiß wie sie funktioniert und nicht darauf das die Konzepte tatsächlich besonders sicher sind.

Der vielleicht wichtigste Punkt bleibt aber wohl die Länge des Passworts und die Art der Verschlüsselung selbst. Als bislang ungeknackter Quasi Standard hat sich in den letzten Jahren der AES256 etabliert. Hier ist zum heutigen Zeitpunkt von einer ausreichend großen Sicherheit auszugehen. Doch auch der Beste Algorithmus nutzt nur wenig wenn das Passwort binnen kürzester Zeit erraten werden kann. Hierzu gibt es im Internet einige Quellen mit Rechenbeispielen. Diese möchte ich an dieser Stelle nicht wiederholen sondern lediglich darauf hinweisen das bei der heutigen Rechnergeschwindigkeit davon ausgegangen werden muss das ein Passwort mit weniger als zehn Stellen und minimum Groß- und Kleinbuchstaben (besser wären noch zusätzlich Zahlen) in einer hinreichenden Zeitspanne brechbar ist. Wer auch die nächste Zeit auf der sicheren Seite sein möchte sollte auf eine Kombination von Groß- und Kleinbuchstaben, sowie Sonderzeichen mit einer Länge von ca. 14 Zeichen in einer sinnlosen Reihenfolge vertrauen und kein Passwort mehr als einmal einsetzen.

Um solche Passwörter zu realisieren gibt es nun verschiedene Ansätze. Man kann sich z.B. seine Lieblingsfilmzitate, Textstellen in Büchern oder Lieblingslieder nehmen und z.B. die ersten 14 Wörter herausgreifen. Von diesen nimmt man nun die Anfangsbuchstaben, versieht diese mit Groß- und Kleinschriebung und ersetzt sie an sinnvollen Stellen durch Zahlen. Ein Beispiel:

Eine Textzeile in einem Lieblingsbuch lautet:

Als sie ankamen war es bereits Nacht

Nun würde man sich die Anfangsbuchstaben herausnehmen und dabei auf die Großschriebung achten:

AsawebN

und um es zu komplizieren könnte man nun an das N eine 8 anhängen (8 = Nacht) in englischen Texten bietet es sich z.B. oft an ein "to" durch eine 2 zu ersetzen und ähnliches:

AsawebN8

Auf diese Weise lassen sich recht komplexe und nicht trivial zu erratende Passwörter genrieren die noch relativ einfach zu merken sind. Wer das nicht kann oder möchte kann über den Einsatz einer Passwortverwaltung wie z.B. KeePass nachdenken. Hierbei handelt es sich um ein Open Source Programm das Passwörter und Zugangsdaten in einer AES256 verschlüsselten Datenbank abspeichert und somit zunächst einmal als relativ sicher gelten kann. Die Datenbank selbst wir mit einem Masterpasswort geschützt das man sich natürlich noch merken muss. Der große Vorteil des Programms ist sein Passwortgenerator. Dieser generiert beliebig lange Zufallspasswörter denen man mitgeben kann ob sie nur Buchstaben, oder auch Zahlen und Sonderzeichen etc. enthalten sollen. Diese Passwörter können als besonders sicher angesehen werden da sie keinem bestimmten Muster folgen. Jetzt kann man einwenden das bei Verlust des Masterpasswortes alle Passwörter gefährdet sind. Das ist sicher richtig, aber es bleibt die Abwägung was die größere Gefahr bedeutet. Entweder ein gemerktes extrem Sicheres Masterpasswort oder die Alternative mit viellecht 15-20 Internetaccounts von denen die Hälfte das gleiche fünfstellige leicht erratbare Passwort benutzt. In jedem Fall sollte bei einer Entscheidung für ein Programm für KeePass (was den Vorteil hat das es als Windows-, Mac- und Linuxversion sowie für viele Handys wie Android und als Portable Version für den USB Stick verfügbar ist) beachtet werden immer ein backup der Datenbank zu machen. Falls das Programm mal durch eine Fehlfunktion die Datenbank beschädigt oder der PC durch einen Hardwaredefekt nicht mehr nutzbar ist sollte man die Möglichkeit haben zumindest seine Passwörter vom Backup wieder zu bekommen.

Verschlüsselung von portablen Medien

Verschlüsselung von portablen Medien

Als Informatiker und/oder Nerd hat man eigentlich immer ein portables Speichermedium wie z.B. einen USB Stick dabei auf dem gewisse Dinge wie Portable Mailclients, der Lieblingsbrowser oder auch schonmal ein paar Dokumente liegen und trotzdem noch genug Platz übrig ist um mal schnell ein paar Files herunter zu laden und mitnehmen zu können. Einige dieser Dinge wären durchaus schützenswert, da man bei Verlust nicht unbedingt möchte das der Finder sie aufrufen und nutzen kann (z.B. der Lebenslauf oder eben das eMail Archiv). Ich habe mir lange Gedanken gemacht ob man nun anfängt mit cryptsetup das ganze Device zu verschlüsseln da das den Vorteil hat das man sehr bequem direkt beim anstecken nach dem Passwort gefragt wird, aber der Nachteil ist das es praktisch nur unter Linux verfügbar ist. Es gibt zwar eine kompatible Windows Lösung doch die dürfte praktisch so gut wie nirgends anzutreffen sein und zum Nutzen dieser werden obendrein noch Adminrechte benötigt die man leider oft in der Firma oder Hochschule nicht hat. Aus eben dem Grund entfiel auch die Idee Truecrypt einzusetzen. Dies ist zwar ebenfalls sehr sicher, aber trotz der verfügbaren Portable Version werden hier Adminrechte gebraucht und da man einen USB Stick ja hat um ihn überall nutzen zu können macht so eine Einschränkung wenig Sinn. Es gibt dann noch ein paar sehr suspekte Alternativen die weder verraten wie Ihre Verschlüsselung funktioniert noch für mehrere Betriebssysteme verfügbar wären.

Ich bin letztlich zu dem Schluß gekommen das es für mich wohl das praktikabelste ist Rar mit Verschlüsselung zu nutzen. Man muss dazu wissen das bei Rar seit einigen Jahren der als sicher geltende AES-128 Cypher eingesetzt wird. Bei ausreichender Passwortlänge ist das eine akzeptable Lösung. Rar Entpacker gibt es für jedes OS in normaler und Portabler Version und man braucht nur Benutzerrechte um es zu nutzen. Man sollte bloß darauf achten die Komprimierung zu deaktivieren da es sonst immer etwas länger dauert bis man an seine Daten kommt.