Wenn du soetwas machst, bedenke, dass es in jedem Betriebssystem soetwas wie eine
hosts-Datei gibt, in der der Benutzer manuell die IP-Addressen von bestimmten Domains festlegen kann.
Wenn du das ganze wirklich sicher machen willst, würde ich dir zu nem Public/Private Key artigen Verfahren raten:
Der Server und jede Client-Installation haben einen public- und einen private-key. Zur Registrierung sendet deine Anwendung den Registrations-String sowie ein zufallsstring (einfach eine beliebige zufallsgenerierte Zeichenfolge) verschlüsselt mit dem Public-Key des Servers an den Server. Der entschlüsselt ihn (mit seinem private-key) und überprüft, ob die Registrierung zulässig ist (also ob der Registrierungsstring OK ist, ob die Anwendung nicht bereits installiert wurde,...) und sendet "true" bzw. "false" plus den zufallsstring, den er bekommen hat zurück an den Client - verschlüsselt mit dessen public-key.
Der Client entschlüsselt das nun und erfährt so zwei Dinge:
- Ist die Registrierung erfolgreich gewesen? (true/false)
- Ist der Server tatsächlich er selbst? (konnte der richtige zufalls-string zurückgesandt werden)
Die Überlegung, warum letzteres funktioniert ist folgende: Wenn nur der Server seinen Private Key kennt, kann nur er herausbekommen, welcher Zufallsstring an ihn gesandt wurde, und diesen korrekt zurücksenden. Einen Server zu "faken" funktioniert deshalb nicht - der bräuchte schon den Private-Key. Und um den zu bekommen bräuchte man Zugang zu dem tatsächlich echten Server.
Eine Alternative wäre, die Übertragung mittels HTTPS und gültigem Zertifikat zu machen. Auch so ließe sich die Integrität des Servers verifizieren... wäre vielleicht sogar die einfachere Lösung...
Bedenke aber: Nur weil du eine sichere Verifizierung des Keys hast, hast du nichts gewonnen. Wenn du den zustand der Anwendung (Registered/Unregistered) in der Registry oder eine Text-Datei speicherst, dann kann Herr H. Acker deinen Check einfach umgehen, indem er die Registry/Textdatei editiert und schon glaubt deine Anwendung, sie wäre bereits registriert.