Καταρχήν, καλό θα ήταν να περιγράψεις τί εννοείς port knocking και τί θέλεις να κάνεις. Αυτό που διαβάζω στο Wikipedia δεν μοιάζει και τόσο με αυτό που ρωτάς.
Όπως και να έχει, αν θέλεις να εκτελέσεις μία ακολουθία κλήσεων προς ένα server που προστατεύεται με port knocking, θα πρέπει να κάνεις ότι θα έκανες και οπουδήποτε αλλού. Δεν έχει σημασία αν το κάνεις σε desktop client, web server ή από το κινητό σου καθώς πρόκειται καθαρά για κλήσεις στο δίκτυο. Αν ξέρεις ποιές κλήσεις θέλεις να κάνεις, απλά κάνε τες.
Ή μήπως ρωτάς πως να υλοποιήσεις port knocking προστασία σε μία desktop εφαρμογή λες και αυτή είναι server? Γιατί να κάνεις κάτι τέτοιο αντί να βασιστείς στο firewall που *ήδη* υπάρχει στο μηχάνημα σου? Γιατί να ανοίξεις καν παραπάνω πόρτες στο firewall από αυτές που χρειάζεσαι? Όπως αναφέρει και στο Wikipedia, το port knocking είναι αδύναμο εκτός και αν χρησιμοποιήσεις προηγμένα συστήματα - τα οποία συνήθως πωλούνται υπό την ονομασία Firewall.
Αν κάποιος φτάσει στην εφαρμογή σου είναι πολύ αργά για να σκεφτείς port knocking, καθώς σημαίνει ότι έχει ήδη περάσει το firewall. Αν δεν χτυπήσει τη δική σου εφαρμογή, κάποια άλλη θα βρει να πειράξει. Στο .NET μπορείς να υλοποιήσεις authentication και encryption μέσω passwords, certificates, HTTPS, ανάλογα με το είδος του stack που χρησιμοποιείς.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos