FTPCHat schützen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    FTPCHat schützen

    Sry wenn ich falsch Poste,

    Also meine Große Frage ist wie ich mein FTPChat schützen kan.
    Also ich hatte mein mal Testen lassen und dan hat einer mein FTP dadurch gehackt, weil sie alle meien cods sehn konnten.

    Jetzt will ich wissen wie man sich ambesten schützen kan.

    z.b. cods schützen

    Edit by der_Kurt:
    * Topic verschoben *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Lösungsmöglichkeiten:
    1. Direkte TCP-Verbindung
    2. Eigener Server
    - Webservice oder
    - Direktverbindung zum Server über TCP, alle Clienten verbinden sich und laden Nachrichten hoch und runter
    3. dotfuscator
    4. Alle Clienten sind gleichzeitig Server und verbinden sich miteinander

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „godmode“ ()

    marce schrieb:

    Also ich hatte mein mal Testen lassen und dan hat einer mein FTP dadurch gehackt, weil sie alle meien cods sehn

    Da bei Standard-FTP alles im Klartext übertragen werden (inkl. User+Passwd bei der Anmeldung), muss man eigentlich gar nicht deinen Code anschauen. Mit geeigneten Tools kann ein erfahrender User schnell den Benutzername und das Kennwort deines FTP-Zugangs rausfiltern.
    Brauchst dich garnicht mit Obfuskatoren zu befassen - die Verbindung zum FTP-Server ist im Klartext-Modus:

    xtts02 schrieb:

    Da bei Standard-FTP alles im Klartext übertragen werden (inkl. User+Passwd bei der Anmeldung), muss man eigentlich gar nicht deinen Code anschauen. Mit geeigneten Tools kann ein erfahrender User schnell den Benutzername und das Kennwort deines FTP-Zugangs rausfiltern.
    | Keine Fragen per PN oder Skype.
    Verschlüssel den Text doch :

    VB.NET-Quellcode

    1. Const CryptoPassword = "Passwort123"
    2. 'Verschlüsseln
    3. Function EnCrypt(ByVal x As String) As String
    4. Dim rd As New Security.Cryptography.RijndaelManaged
    5. Dim md5 As New Security.Cryptography.MD5CryptoServiceProvider
    6. Dim key() As Byte = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(CryptoPassword))
    7. md5.Clear()
    8. rd.Key = key
    9. rd.GenerateIV()
    10. Dim iv() As Byte = rd.IV
    11. Dim ms As New IO.MemoryStream
    12. ms.Write(iv, 0, iv.Length)
    13. Dim cs As New Security.Cryptography.CryptoStream(ms, rd.CreateEncryptor, Security.Cryptography.CryptoStreamMode.Write)
    14. Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(x)
    15. cs.Write(data, 0, data.Length)
    16. cs.FlushFinalBlock()
    17. Dim encdata() As Byte = ms.ToArray()
    18. Return Convert.ToBase64String(encdata)
    19. cs.Close()
    20. rd.Clear()
    21. End Function
    22. ' Entschlüssen
    23. Function DeCrypt(ByVal x As String) As String
    24. Dim rd As New System.Security.Cryptography.RijndaelManaged
    25. Dim rijndaelIvLength As Integer = 16
    26. Dim md5 As New Security.Cryptography.MD5CryptoServiceProvider
    27. Dim key() As Byte = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(CryptoPassword))
    28. md5.Clear()
    29. Dim encdata() As Byte = Convert.FromBase64String(x)
    30. Dim ms As New IO.MemoryStream(encdata)
    31. Dim iv(15) As Byte
    32. ms.Read(iv, 0, rijndaelIvLength)
    33. rd.IV = iv
    34. rd.Key = key
    35. Dim cs As New System.Security.Cryptography.CryptoStream(ms, rd.CreateDecryptor, Security.Cryptography.CryptoStreamMode.Read)
    36. Dim data(ms.Length - rijndaelIvLength) As Byte
    37. Dim i As Integer = cs.Read(data, 0, data.Length)
    38. Return System.Text.Encoding.UTF8.GetString(data, 0, i)
    39. cs.Close()
    40. rd.Clear()
    41. End Function
    BTW: FTP und Chat vertragen sich überhaupt nicht.

    Nutze TCP bzw. SSL.

    Login sollte nach dem Challenge-prinzip funktionieren:

    Client: Hallo, bin USER
    Server: Verschlüssele HUAFUNAF (zufällig) mit deinem Passwort und sende das Ergebnis
    Client: ULIZGFNAWEF (verschlüsselt den sog. Challenge mit seinem Passwort)
    Server: Okay (Prüft das empfangene mit der errechneten Soll-Antwort)

    Verschlüsselung sollte AES sein, Key der SHA512-Hash des eingegebenen Passworts. Der Server kennt NUR den Hash (Nicht das Plaintext-PW) und verschlüsselt damit.

    Alternativ verschlüsselt der Server und der Client soll entschlüsseln.