Seit Februar 2019 bin ich nicht mehr Kunde von NetCologne. Ich lasse den Artikel als Referenz hier stehen, weise aber darauf hin, dass er nicht mehr aktualisiert wird.
Vorab: Wenn möglich, sollte bei einer FritzBox bei den Internet-Zugangsdaten als Internetanbieter “weiterer Internetanbieter” – “NetCologne / NetAachen” ausgewählt werden. Die FritzBox holt sich dann alle Konfigurationsdaten vollautomatisch, inklusive der Konfiguration für die Telefonie. Falls euer Router diese Option nicht anbietet, findet ihr im folgenden Text vielleicht Hilfe.
Seit heute habe ich endlich VDSL, der ADSL-Anschluss mit Splitter und paralleler ISDN-Telefonie gehört damit endgültig der Vergangenheit an.
Leider war die Einrichtung von NetCologne-SIP auf meiner eigenen FritzBox alles andere als einfach, da ich nirgendwo im Internet brauchbare Informationen fand. Nach einigem Experimentieren hat es aber doch geklappt.
Auf der NetCologne-Einstellungsseite kann man sich ein SIP-Passwort generieren lassen und auch gleich die Login-Daten abholen. Das Generieren des Passworts dauert einen Augenblick, also Geduld. Wenn man mehrmals klickt, kann es sein, dass das angezeigte Passwort nicht das Richtige ist. Wenn man mehrere Rufnummern hat, braucht man für jede ein eigenes Passwort.
Für die fiktive Telefonnummer 0221-123456 erzeugt man dann auf der FritzBox eine neue Rufnummer mit folgenden Parametern:
| Telefonie-Anbieter: | Anderer Anbieter | |
|---|---|---|
| Rufnummer für die Anmeldung: | 123456 | ← Die Rufnummer ohne Vorwahl |
| Interne Rufnummer: | 123456 | ← Ebenfalls nur die Rufnummer ohne Vorwahl |
| Benutzername: | 221123456 | ← SIP-Username wie auf der Einstellungsseite |
| Kennwort: | ●●●●●●●● | ← Das SIP-Passwort von der Einstellungsseite |
| Registrar: | sip.netcologne.de | ← SIP-Server von der Einstellungsseite |
| Proxy-Server: | sip.netcologne.de | ← SIP-Server von der Einstellungsseite |
| STUN-Server: | ← Leer lassen |
Die anderen Parameter lässt man am besten einfach, wie sie sind. Bei mir waren sie nach der automatischen Konfiguration wie folgt:
| DTMF-Übertragung | RTP oder Inband | |
|---|---|---|
| Rufnummerunterdrückung: | CLIR über *31 | |
| Rufnummerübermittlung: | Deaktiviert | ← Rufnummer wird trotzdem übermittelt |
| Rufnummer für die Anmeldung verwenden: | ☐ | ← kein Häkchen |
| Anbieter unterstützt Rückruf bei Besetzt: | ☐ | ← kein Häkchen |
| Paketgröße in Millisekunden: | 20 | |
| Anmeldung immer über eine Internetverbindung: | ☐ | ← kein Häkchen |
| Der Anbieter unterstützt MWI: | ☐ | ← kein Häkchen |
| Der Anbieter unterstützt kein REGISTER-fetch: | ☑ | ← Häkchen gesetzt |
| Anbieter kontaktieren über: | nur via IPv4 |
Bei dem VDSL-Bitstream-Anschluss muss außerdem die VLAN-ID für Internettelefonie auf 7 eingestellt werden. Bei einem VDSL-Anschluss (ohne Bitstream) ist die VLAN-ID für Telefonie offenbar 10 (das kann ich bei mir aber nicht ausprobieren). Welche Anschlussart man hat, steht im Schreiben, das man von NetCologne bekommen hat.
Bei mir hat das so funktioniert. Aber die Werte wurden experimentell ermittelt. Im Zweifelsfall sollte man die NetCologne-Hotline anrufen (wie auch immer man das mit einem nicht funktionierenden Telefonanschluss schaffen möchte).
Nachtrag, 22.08.2017: Für den SIP-Server sollte sip.netcologne.de (oder was bei dir auf der Netcologne-Einstellungsseite steht) verwendet werden. Vorher stand hier im Artikel eine feste IP-Adresse, die aber anscheinend nicht mehr aktuell ist. Danke an Ralph für den Stuppser in die richtige Richtung.
Nachtrag, 12.11.2018: Durch eine Neukonfiguration meiner FritzBox wurden die Telefoniedaten automatisch von NetCologne bezogen. Ich habe die Angaben entsprechend zu dem geändert, was ich danach in meiner FritzBox vorfand.
Das PHP-Entwicklerteam veröffentlichte vor wenigen Tagen die Version 5.3.7, nur um
schon wenige Tage später vor deren Verwendung zu warnen
. Der Grund dafür war ein Fehler in der Funktion crypt(), welche bei bestimmten Hash-Verfahren lediglich das Salt zurückliefert. Das kann dazu führen, dass nach einem Update auf PHP 5.3.7 keine Benutzer sich mehr auf einem Webauftritt einloggen können oder sich bei einer Passwortänderung nach einem Update auf eine spätere PHP-Version nicht mehr einloggen können. In PHP 5.3.8 wurde der Fehler wieder behoben.
Dieser Artikel ist der Versuch einer Analyse, wie es zu dem Fehler kam und warum er erst nach der Release bemerkt wurde.
Die PHP-Funktion crypt() ist in der Datei php_crypt_r.c implementiert. Folgender Codeausschnitt baut dort den Passwort-Hash zusammen:
memcpy(passwd, MD5_MAGIC, MD5_MAGIC_LEN);
strlcpy(passwd + MD5_MAGIC_LEN, sp, sl + 1);
strcat(passwd, "$");
strcat() fügt eine Zeichenkette an das Ende eines Puffers. Die Funktion gilt als unsicher, da sie nicht prüft, ob der Zielpuffer genügend Speicherplatz zur Verfügung stellt. Wird die Zeichenkette zu lang, wird der nachfolgende Speicherbereich beschädigt - ein typisches Problem bei C-Sprachen.
Aus dem Grund wurde der Aufruf durch eine sicherere Funktion ersetzt. Leider ist aber gut gemeint das Gegenteil von gut gemacht.
memcpy(passwd, MD5_MAGIC, MD5_MAGIC_LEN);
strlcpy(passwd + MD5_MAGIC_LEN, sp, sl + 1);
strlcat(passwd, "$", 1);
strlcat() stellt sicher, dass der Puffer nicht über sein Ende hinaus beschrieben wird. Dazu wird dessen Größe übergeben. Und genau hier lag das Problem, denn statt der Größe von passwd wurde anscheinend die Größe des zu kopierenden Textes übergeben, nämlich 1. Da passwd zu dem Zeitpunkt bereits deutlich mehr als ein Zeichen enthält, tut strlcat() genau das, was es tun soll, nämlich gar nichts. Das “$"-Zeichen wird nicht angehängt, das tatsächliche Ergebnis weicht damit von dem gewünschten Ergebnis ab.
Solch ein Fehler ist eigentlich ein Lehrbuchbeispiel für Unit-Tests, und der Kommentar zum Bugfix (Revision 315218) deutet auch an, dass ein solcher existiert:
Unbreak crypt() (fix bug #55439)
# If you want to remove static analyser messages, be my guest,
# but please run unit tests after
Tatsächlich gibt es einen Test, der die crypt()-Funktion mit bestimmten Werten aufruft und das Ergebnis mit einem erwarteten Ergebnis vergleicht. Dieser Test schlägt Alarm, wenn er ausgeführt wird.
Dass PHP 5.3.7 dennoch veröffentlicht wurde, lässt eigentlich nur einen Schluss zu: Der Unit-Test wurde nicht ausgeführt oder der Alarm wurde schlichtweg ignoriert. Spätestens beim Bau der finalen Version unmitelbar vor der Veröffentlichung hätte dies aber stattfinden müssen. Alles andere wäre grob fahrlässig.
Zusammengefasst hatte der Fehler also folgende Ursachen:
- die für C-Sprachen üblichen Probleme bei der sicheren Verarbeitung von Zeichenketten
- eine missverständliche oder nicht verstandene Dokumentation der Funktion
strlcat() - keine verbindlich vorgeschriebene fehlerfreie Ausführung der Unit-Tests vor der Freigabe einer Release
Insbesondere der letzte Punkt wiegt schwer und wirft ein schlechtes Licht auf die verantwortlichen PHP-Entwickler.
Der Artikel ist von 2010 und bezieht sich auf die Bundestagswahl von 2009. Die grundsätzliche Problematik gilt natürlich generell, auch wenn die konkreten Zahlen von der jeweiligen Wahlbeteiligung abhängen. Interessant ist übrigens, dass der Artikel eine Partei rechts von der Union bereits damals vorhergesagt hat.
Wie funktioniert das eigentlich mit der CDU und CSU? Wie kann es sein, dass eine der beiden Parteien nicht auf dem Stimmzettel zu finden ist, sie dann aber doch gemeinsam im Koalitionsboot sitzen? Auch wenn man nicht immer diesen Eindruck hat: Es handelt sich tatsächlich um zwei eigenständige Parteien. Die CDU kann man allerdings nicht in Bayern wählen, die CSU nicht außerhalb. Beide Parteien müssen (wie jede andere Partei in Deutschland auch) bei einer Bundestagswahl jeweils die fünf-Prozent-Hürde knacken, um in den Bundestag einziehen zu dürfen. Für die CSU haben dafür bisher alleine die Stimmen aus Bayern ausgereicht, um die Partei deutschlandweit komfortabel über die 5% zu heben.
Aber wie komfortabel ist diese Stimmenzahl wirklich, oder anders gefragt: Wie schlecht müsste die CSU in Bayern abschneiden, um gerade noch in den Bundestag einziehen zu können? Wagen wir also ein Gedankenexperiment und fragen uns, wie viele gültige Wählerstimmen bei der Bundestagswahl 2009 in Bayern mindestens notwendig gewesen wären.
Erst einmal die Fakten. In dem offiziellen Wahlergebnis heißt es, bundesweit entfielen auf die CSU 2.830.238 Zweitstimmen. Bei 6.720.532 gültigen Wählerstimmen in Bayern kam die CSU damit auf komfortable 42,5%. Bei einer Bundestagswahl müssen die Zahlen allerdings deutschlandweit betrachtet werden. Bei 43.371.190 gültigen Wählerstimmen in ganz Deutschland entfielen damit tatsächlich nur 6,5% der Stimmen auf die CSU.
Um bei 43.371.190 gültigen Wählerstimmen die fünf-Prozent-Hürde zu nehmen, benötigt eine Partei mindestens 2.168.560 Stimmen. Die CSU muss diese alleine in Bayern aufbringen. Bei den dortigen 6.720.532 gültigen Wählerstimmen sind das mindestens 32,3%, die die CSU im eigenen Land mindestens erreichen musste, um in den Bundestag ziehen zu können. Natürlich ist das keine statische Grenze. Sie hängt von der Zahl der gültigen Wählerstimmen bundesweit und in Bayern ab, und damit auch direkt von der Wahlbeteiligung.
Je mehr Wähler bundesweit überhaupt eine gültige Stimme abgeben, desto mehr Wähler muss die CSU im eigenen Land aufbringen, um es über diese Hürde zu schaffen.
Mit diesen Zahlen im Hinterkopf ist es gut zu verstehen, warum bei der CSU im August 2010 die Nerven blank lagen, nachdem eine unveröffentlichte Umfrage ergab, dass sie derzeit nur noch auf rund 38% der Stimmen käme. Wenn sich dieser Abwärtstrend fortsetzt, wird die nächste Bundestagswahl erstmalig eine Zitterpartie für die Christsozialen. Und damit auch für die CDU, denn scheitert die CSU an der fünf-Prozent-Hürde, fehlen der gesamten Union schlagartig ebendiese Prozentpunkte.
Die Schuld sieht die CSU in der mieserablen Koalitionsarbeit und darin, dass die große Schwester den rechten Flügel zu stark vernachlässige. Sollte die Stimmenerosion so weitergehen, könnte es die CSU zu einem drastischen Schritt zwingen, um sich zu retten: das Aufkündigen der Union und die Umorganisation in eine eigenständige, stärker rechtsorientierte und bundesweit wählbare Partei. Sie würde das Vakuum rechts der Union füllen und dürfte der CDU einige Stimmen kosten. Stehen wir also vor einer weiteren Zersplitterung einer ehemaligen Volkspartei, so wie es die SPD mit den Linken erfuhr?
Das Wochenende verbrachte ich mit dem Sortieren der Fotonegative, die sich als Relikt aus meiner Analogfilmära seit 1996 angesammelt hatten. Dabei fiel mir auf, dass im Labor Negativstreifen aneinander geklebt werden, vermutlich damit sie als ein langer Film durch die Maschine gezogen werden können. Nach dem Entwickeln werden die Negative dann in kurze Abschnitte aufgeteilt und eingetütet. Das Filmende wird jedoch nicht am Klebestreifen durchtrennt, sondern kurz davor. Man findet in seiner Negativtasche also stets noch ein paar Millimeter vom benachbarten Filmstreifen.
An sich ist das kein Thema, wenn da nicht manche Kameras wären, die auf einen 36-er Film noch ein 37. Bild quetschen. Meistens geht das gut, und man findet dann tatsächlich 37 Abzüge in der Fototasche. Manchmal wird der Film aber auch am Bild 37 jäh mit dem nächsten Film verklebt, und schon wandern ein paar Millimeter jenes Bildes in die Negativtasche eines Fremden.
Das hier sind die Bilder, die ich auf diese Weise gefunden habe:

Ein großer Teil des Bildes wird vom Klebestreifen verborgen. Wenn man den Kleber rückstandslos entfernen könnte, könnte man sogar noch deutlich mehr sehen.
Vor 10 Jahren war es soweit: Die shredzone.de ging online! Heute bin ich stolz darauf, dass ich es rechtzeitig zum Jubiläum geschafft habe, mein neues Blog online zu stellen.
Die Blog-Software nennt sich Cilla und ist eine Eigenentwicklung, in die jetzt schon einige lange Abende an Arbeit geflossen sind. Einige Dinge, die ich geplant habe, habe ich nicht mehr rechtzeitig fertig bekommen. Deshalb trägt die Shredzone momentan das (mittlerweile für’s Web 2.0 schon fast obligatorische) Beta-Batch. 😉 Den Quelltext von Cilla werde ich auf meiner Entwicklungs-Site freigegeben, sobald ich nicht mehr allzu viel darin umstelle.
Der Inhalt meiner alten Homepage - insbesondere die Fotogalerie - wird nach und nach auf meinen neuen Auftritt umziehen.
Viel Spaß auf der neuen Shredzone!
PS: Bis das Captcha-System fertiggestellt ist, werde ich alle neuen Kommentare erst einmal moderieren. Bitte habt ein wenig Geduld, bis euer Kommentar freigegeben wird.