Seite 1 von 4

[Request] Private Nachrichten verschlüsseln!

Verfasst: 09.08.2002 09:08
von Quichotte
Da es sich um "_Private_ Nachrichten" handelt, sollte diese auch niemand mit Zugriff auf die Datenbank mitlesen können.

Damit sich jeder User seiner Privatsphäre sicher sein kann, würde ich gerne die Nachrichten verschlüsselt in der Datenbank hinterlegt haben.

Der Schlüssel muss ja nicht großartig kompliziert sein, es soll jedoch ein einfaches Mitlesen durch einen Blick in die Datenbank verhindert werden.

Verfasst: 09.08.2002 09:16
von Quichotte
..und ich bin nicht der Einzige, der eine PN-Verschlüsselung für sinnvoll empfindet.. bitboy0 hatte sich auch schonmal dahingehend geäußert, und aus den gleichen Gründen wie er halte ich eine Verschlüsselung der PNs für sinnvoll. Es ist einfach doof, wenn man evtl. Sachen liest, die nicht dazu gedacht waren.. :(

bitboy0: http://www.phpbb.de/viewtopic.php?t=7086

Verfasst: 09.08.2002 09:50
von Wolpertinger
Ja, und wie in dem Betrag auch klar wurde, bringt diese Verschlüsselung nix. Denn jeder der sogar Zugriff auf deine db hat, der kann auch die Verschlüsselung "knacken" da ja der Schlüssel dem Board zur Verfügung steht.

Das einzige was es verhindert ist, dass du "ausversehen" im phpmyadmin die nachrichten liest, was aber ohnehin unwahrscheinlich ist, da man an der tabelle ohnehin selten was machen muss und man die nachrichten ohnehin nicht ohneweiteres den usern zuordnen kann.

Was bringt die also eine Verschlüsselung? Und je besser der Schlüssel umso lahmer das Board,aber die Sicherheit steigt kein bisschen.

Wenn du es sicher haben willst, dann sollen deine Peeps daheim verschlüsseln (mit GnuPGP) und die verschlüsselten Sachen posten. Und wer lesen will dekodiert es daheim. Das ist der einzig sinnvolle Weg. Ja, er ist umständlich, aber das ist Sicherehit nunmal.

Axiom: "Automatisch" und "Sicherheit" passen nicht zusammen.

Verfasst: 09.08.2002 10:05
von Quichotte
Naja.. richtig sicher soll es auch nicht sein..

Wenn ich jetzt im Streit mit jemanden liege, der mein Board benutzt, könnte ich theoretisch _sehr einfach_ an seine PNs nachkommen, und sehen, ob und inwiefern er sich bei jemand anders über mich auskotzt.

Wenn die DB jetzt verschlüsselt wäre, müsste ich mir zumindest Zugriff verschaffen, indem ich die Verschlüsselung umgehe. 1. wäre das Arbeit, 2. müsste ich eine Verschlüsselung knacken = mir wird bewusst, dass ich eine Sicherung umgehe 3. Ist die Hemmschwelle höher, die PNs zu lesen 4. ist mehr "kriminelle Energie" erforderlich, um an der Verschlüsselung vorbei die PNs zu lesen.

100% Sicherheit bietet es nicht, aber die Hemmschwelle, die PNs zu lesen wird hoher gesetzt und "per Zufall" ist ein mitlesen jedenfalls nicht mehr möglich.

nachvollziehbar?

Verfasst: 09.08.2002 10:06
von Quichotte
Dwing hat geschrieben:ich werds machen...
Halte es zwar auch für sinnlos, aber was solls :O
Super!

Bei uns haben mehrere Zugriff auf die DB und da macht es schon irgendwie Sinn..

Verfasst: 09.08.2002 10:27
von Gast
Hab gestern damit angefangen....

ich poste es hier wenn ich soweit bin...

und wech

Verfasst: 09.08.2002 17:34
von Gast
Also ich hab jetzt schon mal ein wenig mit XOR als Verschlüsselungsmethode gespielt...

aus
Wenn ich jetzt im Streit mit jemanden liege, der mein Board benutzt, könnte ich theoretisch _sehr einfach_ an seine PNs nachkommen, und sehen, ob und inwiefern er sich bei jemand anders über mich auskotzt.
wird dann mit einem acht Bit langen Schlüssel mt dem Wert '15'
Xjaa/flg/ej{u{/fb/\{}jf{/bf{/ejbnakja/cfjhj#/kj}/bjfa/M`n}k/mjaz{u{#/dùaa{j/flg/{gj`}j{f|lg/P|jg}/jfainlgP/na/|jfaj/_A|/anlgd`bbja#/zak/|jgja#/`m/zak/faxfjij}a/j}/|flg/mjf/ejbnak/nakj}|/ómj}/bflg/nz|d`{u{!
Das ist schon ganz ok finde ich!

Die Geschwindigkeit ist fast die gleiche weil bei PN's ja nur eine Nachricht angezeigt wird. Im Forum würde das natürlich deutlichere Auswirkungen haben...

Die Schlüssellänge im Beispiel oben ist 8Bit.. also wird jeder Buchstabe innerhalb einer PN immer gleich verschlüsselt... Am Schluss wird der Schlüssel eine Länge von 32BIT haben. Das ist für Profis noch sehr leicht zu knacken, aber es ist UNMÖGLICH das einfach so zu lesen. Jede PN wird einen eigenen Schlüssel haben.

Um also eine PN lesen zu können braucht man dann den Schlüssel für DIESE PN und den Text. Dann muss man immer vier Buchstaben der PN mit dem Schlüssel XOR-Verknüpfen...

Wenn ich hier jetzt etwas mehr als nötig mache ist das für mich auch zur Übung. Ich WEIS das man es auch mit weniger Aufwand machen kann ;) Aber das Thema finde ich halt interessant !

und wech

Verfasst: 09.08.2002 22:46
von Quichotte
Klingt jedenfalls schonmal sehr gut soweit :)

Verschlüsselte PM's und Foren

Verfasst: 10.08.2002 04:12
von Schuttwegraeumer
Ich wäre auch an einer Verschlüsselung der PM's wie im gEb interessiert.
Was aber auch ganz gut wäre, wären Verschlüsselte Foren.
Weiss jemand, wie man sowas mit erträglichem Aufwand machen könnte?

Schutti

Verfasst: 10.08.2002 10:39
von Gast
Hier mal ein Demo von dem Code... damit könnt ihr mal rumspielen. Die Integration in PHPBB ist der nächste Schritt...

Die codierung in HEX-Zahlen ist nötig weil es sonst Probleme mit dem Bestehenden Code gibt.

Code: Alles auswählen

<?php
function make_key_array($text)
{
	$key  = crc32($text);
	for($i=31;$i>=0;$i--)
	{
	  $test = bcpow(2,$i);
	  if ($key>=$test) 
	   {
	    $bit = 1;
	    $key = $key - $test;
	   } 
	   else 
	   {
	    $bit = 0;
	   }
	  $key4[bcdiv($i,8)]=chr(ord($key4[bcdiv($i,8)])+bcpow(2,bcmod($i,8))*$bit);
	}
return array($key4[0],$key4[1],$key4[2],$key4[3]);
}

function hex2bin($text)
{
	$result = '';
	$decode[ 48]= 0;
	$decode[ 49]= 1;
	$decode[ 50]= 2;
	$decode[ 51]= 3;
	$decode[ 52]= 4;
	$decode[ 53]= 5;
	$decode[ 54]= 6;
	$decode[ 55]= 7;
	$decode[ 56]= 8;
	$decode[ 57]= 9;
	$decode[ 97]=10; // a
	$decode[ 98]=11; // b
	$decode[ 99]=12; // c
	$decode[100]=13; // d
	$decode[101]=14; // e
	$decode[102]=15; // f

	for($i=0;$i < bcdiv(strlen($text),2);$i++)
	{
	 $result .= chr(($decode[ord(substr($text,$i*2,1))]*16)+$decode[ord(substr($text,($i*2)+1,1))]);
	}
return $result;
}


function xor_text($text,$key,$dir)
{
	if ($dir == 1) $text = hex2bin($text);

	$result = '';
	for($i = 0;$i < strlen($text);$i++)
	{
	 $result .= chr(ord(substr($text,$i))^ord($key[bcmod($i,4)]));
	}

	if ($dir == 2) return bin2hex($result); else return $result;
}


$orginal = 'Das ist nun ein Text der verschlüsselt werden soll';
$key = make_key_array($orginal);

echo 'Schlüssel crc32: '.crc32($orginal).'<br>';
echo 'Schlüsselbyte 0: '.bin2hex($key[0]).'<br>';
echo 'Schlüsselbyte 1: '.bin2hex($key[1]).'<br>';
echo 'Schlüsselbyte 2: '.bin2hex($key[2]).'<br>';
echo 'Schlüsselbyte 3: '.bin2hex($key[3]).'<br><br>';

echo 'Orginaltext: '.$orginal.'<br><br>';
$code = xor_text($orginal,$key,0);
echo 'Codiert: '.$code.'<br><br>';
$hex = bin2hex($code);
echo 'HEX-codiert: '.$hex.'<br><br>';
$bin = hex2bin($hex);
echo 'BIN-codiert: '.$bin.'<br><br>';
$erg = xor_text($bin,$key,0);
echo 'Entschlüselt: '.$erg.'<br><br>';
echo 'Fertig!';

?>
einfach als test.php speichern und ausführen... das erklärt sich von alleine.

oder ihr guckt einfach unter

http://terrasight.terratalk.de/test/test.php

und wech