News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 12
Seite [1]
reVerB


Geekboy




Beiträge: 1237
# Thema - 21.05.2011 um 21:57 Uhr
Ich beschäftige mich schon länger mit diesem Thema und wollte dazu einmal eine kleine Diskussion starten.

Worum geht es genau?
Es geht darum, mit Desktop-Apps geschrieben in z.B. C#, Java, VB.NET, Python etc. PHP-Skripts anzusprechen. man hat zum beispiel im .NET-Framework die Möglichkeit, mit Hilfe einer HTTPWebRequest-Klasse eine URL wie ein Browser zu laden und dessen Rückgabe zu verarbeiten. Dazu ist die Instanz der Klasse in der Lage, nicht nur per Get (Adresszeile), sondern auch per Post daten an den Server zu senden. Außerdem hat man die Möglichkeit, den USER_AGENT aus PHP in der App selbst zu definieren. So kann man sogar für ganz normale billig Server wie Funpic einen Dienst einrichten, bei der eine Desktopanwendung mit einer Datenbank kommuniziert, die sich im Internet befindet.

So setze ich es aktuell ein
Als Kommunikationsbasis verwende ich XML mit dem Modul SimpleXML in PHP und der System.XML-Klasse im .NET. Ich Weise der Applikation einen eigenen USER_AGENT zu, der beim Aufruf des PHP-Skripts geprüft wird. Das XML wird einfach per Post übergeben und die Rückgabe einfach per Echo in PHP als XML ausgeliefert. Da ich allerdings mit diversen Verschlüsselungen wie TribleDES oder AES in PHP und .NET immer wieder unterschiedliche Ergebnisse bekomme, schicke ich die Daten erst einmal nur Base64-Codiert durch die Gegend. Das ist natürlich nicht das sicherste.

Die Diskussion:
Ich möchte mich mal ein wenig austauschen und schauen, ob damit jemand schon Erfahrungen hatte. Was für Verschlüsselungen verwenden diese. Aber auch Kommentare, wie ihr dieses Vorgehen seht wären interessant. Bedenken oder sogar Anregungen. Alles ist hier gern gesehen.

Was soll das?
Vor ab einmal. Jaaaaa ... Ich suche natürlich nach einer idealen und performanten Verschlüsselung. Ich will ja nicht schwindeln ^^. Aber da ich mich schon viel damit beschäftigt habe und immer mehr an dieses Vorgehen glaube, würde ich gerne auch die Meinung von einigen einfangen. Vielleicht gibt es da eine bessere Möglichkeit, außer direkt an die Datenbank zu gehen oder per PHP-Skript die Kommunikation zu steuern. Was ist eure Meinung dazu?
Inaktiv
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 1 - 21.05.2011 um 22:38 Uhr
Was willst du denn verschlüsseln? Wie wäre es einfach mit HTTPS?


------------------
www.laszlokorte.de

Inaktiv
|
Micha.09 ClanSphere Team


Specialist



Herkunft: Dortmund
Beiträge: 2860
# Antwort: 2 - 21.05.2011 um 22:59 Uhr
Hätte ich auch vorgeschlagen, eine https verbindung aufbauen.
Darauf kannst du dich eigentlich verlassen, HTTPS garantiert die ja Verschlüsselung, Authentizität, Authentifizierung
Und das beste du musst dazu nichmal zusätzlich was einbauen, das macht alles TLS /SSL

Wobei ich nic hweis ob Funpic https VErbindungen zulässt, bzw ein vernünftiges Zertifikat hat


Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 3 - 21.05.2011 um 23:18 Uhr
Deine probs mit AES kommen weil PHP erst ab 5.3.x wirklich AES unterstuetzt in die OpenSSL bibliothek. Vor PHP 5.3.x muss man die mcrypt bibliothek in Rijndael auf eine bestimmte art "misbrauchen" um dennoch AES machen zu koennen...

http://bugs.php.net/bug.php?id=48632


Inaktiv
|
reVerB
Thread-Ersteller


Geekboy




Beiträge: 1237
# Antwort: 4 - 22.05.2011 um 01:31 Uhr
@Mindcrime: Das ist mir bewusst. Danke trotzdem für die Info. Es ist so, das AES in 5.3 sowie in mcrypt ist der Output anders als in C# mit dem CryptoServiceProvider trotz gleicher Byteschlüssel.

HTTPS hatte ich auch in betracht gezogen. Allerdings kann das soweit ich weiß nicht jeder Webspace. Deswegen dachte ich da an eine Alternative. Sollte ich mich mit HTTPS irren? Denn abschaltbar ist es beim Apache.


Zuletzt editiert von reVerB am 22.05.2011 um 01:33 Uhr (1x Editiert)
Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 5 - 22.05.2011 um 08:56 Uhr
@reVerb: Nee, das mein ich nicht, ich meine das AES-256-cbc benutz werden kan in PHP 5.2 mit mcrypt wenn man Rijndael 128 ein 32 byte schluessel gibt. Also der output sollte dan gleich sein...

Fuer ein beispiel:
http://www.chilkatsoft.com/p/php_aes.asp


Inaktiv
|
reVerB
Thread-Ersteller


Geekboy




Beiträge: 1237
# Antwort: 6 - 23.05.2011 um 01:52 Uhr
Das ist das Problem. Es ist leider nicht gleich.


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 7 - 23.05.2011 um 08:37 Uhr
Das einzige was du noch machen könntest, wäre ein sha1 Verschlüsselung inkl. einem beenutzerdefinierten Key.
Problem besteht nur darin, wenn jemand diesen Key besitzt, kann er die Verschlüsselung dennoch abhorchen, bzw. das Verschlüsselte entschlüsselln. Kommt halt darauf an, ob du dein Projekt openSource machst oder nicht.
Wenn ja, wäre ein dynamisch generierter Key sinnvol, oder ein benutzerdefinierter.
Zusätzlich kannst du noch base64 zur Komprimierung nutzen.

HTTPS kann man abschalten, richtig, aber wenn du danach gehst, kannst du fast alles abschalten. Bei sowas sollte man die Sicherheit nicht außer Betracht lassen. Wenn du etwas für die Community o.ä. entwickelst, musst du aus Sicherheit zangsläufig SSL als Voraussetzung machen. Wer es nicht kann/will oder unterstützt, kann dein Projekt nicht nutzen.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
reVerB
Thread-Ersteller


Geekboy




Beiträge: 1237
# Antwort: 8 - 23.05.2011 um 11:29 Uhr
Ich bin mit SSL nicht so bewandert. Wie regel ich das dann mit den Zertifikaten?


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 9 - 23.05.2011 um 13:07 Uhr
Wenn es ein authentifiziertes SSL ist, brauchst du dich da garnicht drum kümmern.
Sollte es sich um ein eigenes Zertifikat handeln, musst du das mit deinem Programm abfangen, und ihm sagen, dass es akzeptiert werden soll.

Es kommt jetzt nur darauf an, was für eine Sprache du nutzt. Je nachdem gibt es für den HTTP Header die SSL Methoden/Funktionien, womit du ein nicht authentfiziertes SSL akzeptieren kannst..


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
reVerB
Thread-Ersteller


Geekboy




Beiträge: 1237
# Antwort: 10 - 26.05.2011 um 22:03 Uhr
Wunderbar. Es hat sich alles erledigt. meine App geht wie Feuerwehr. Coole Sache. Danke für die Infos. Was man jetzt nun vom Vorgehen selber hält, die Kommunikation so zu regeln, hat nun keiner geschrieben. Aber was solls. Wenn keiner mehr was dazu sagen möchte, kann das dann geclosed werden


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 11 - 26.05.2011 um 22:30 Uhr
Was man jetzt nun vom Vorgehen selber hält, die Kommunikation so zu regeln, hat nun keiner geschrieben.

Meinst du das im Bezug auf "XML als HTTP-Body an den Server zu senden"?

Das ist eine Technik, die sehr gut funktioniert und sich daher in den letzten Jahren auch stark verbreitet hat und nennt sich XML-RPC.

Die Github oder Twitter funktionieren ja genauso, nur dass dort JSON anstelle von XML verwendet wird.


------------------
www.laszlokorte.de

Inaktiv
|
reVerB
Thread-Ersteller


Geekboy




Beiträge: 1237
# Antwort: 12 - 26.05.2011 um 22:44 Uhr
Interessant. Das wusste ich gar nicht. Ich hatte die Idee eher für weniger elegant gehalten. Aber nun gut. Das es nicht neu ist, wusste ich ja schon. Aber das scheint ja auch absolut gängige Praxis zu sein. Das ist gut ^^


Inaktiv
|
Antworten: 12
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo