Zunächst ist dies das "DRM" -Szenario: schließlich jemand bestimmt genug kann alle Schutzmaßnahmen, die Sie an Ort und Stelle durch die Bereitstellung einer funky modifizierten Laufzeit oder andere solche Dinge zu besiegen. Das umgekehrte Szenario - wo die Laufzeit vertrauenswürdig ist, aber einige der Pakete nicht - wird von Java durch die Verwendung geeigneter ClassLoader
-Einschränkungen ordnungsgemäß behoben, aber das kann nur funktionieren, wenn es etwas gibt, das die Beschränkungen vertrauenswürdig durchsetzen kann; Deshalb ist dein Szenario grundsätzlich zum Scheitern verurteilt.
jedoch wenn wir davon ausgehen, dass die Laufzeit selbst vertrauenswürdig ist dann könnte man versuchen, in Ihrer super-geheimen Methode, den Stack-Trace des aktuell ausgeführten Stapels bekommen (siehe stackoverflow.com/questions/1069066/… für wie) und Tests, um zu sehen, ob die Der Aufrufer der aktuellen Methode ist einer, dem Sie vertrauen, um Zugriff zu erhalten. Ein Sicherheitsmanager wäre sogar noch besser geeignet, aber Sie können der Umgebung nicht vertrauen, dass eine solche installiert wird, die Sie mögen (sie ist viel klarer unter der Kontrolle des Angreifers). Beachten Sie, dass ich die Optionen in diesem Absatz nicht ausprobiert habe!
Die andere Alternative besteht darin, Ihre Geheimnisse auf einen von Ihnen kontrollierten Dienst zu legen und nur den Remote-Zugriff auf sie zu ermöglichen. Oder hören Sie auf, sich über technische Mechanismen zu kümmern, um ein Problem zu lösen, das sich hauptsächlich auf geschäftliche und rechtliche Probleme bezieht (z. B. warum haben Sie es mit Leuten zu tun, denen Sie nicht vertrauen können?)
Es kann sich lohnen, Ihren Titel so zu bearbeiten, dass es nicht funktioniert verwende das Wort "geschützt" nicht, da das eine sehr spezifische Bedeutung hat. –