On Tue, 25 Mar 2003 08:34:22 +0100, Thomas Guettler wrote:
man ssh-agent:
The agent will never send a private key over its request channel. Instead, operations that require a private key will be performed by the agent, and the result will be returned to the requester. This way, pri vate keys are not exposed to clients using the agent.
man ssh-agent:
A unix-domain socket is created and the name of this socket is stored in the SSH_AUTH_SOCK environment variable. The socket is made accessible only to the current user. *This method is easily abused by root or another instance of the same user.*
Alle Programme, die unter meiner UID laufen können auf den Private Key zugreifen.
Es ist ein Unterschied, ob über den Socket der key direkt herausgegeben wird (wird er nicht), oder ob man lediglich über den Socket Authentisierungsanfragen an den ssh-agent weiterleiten kann. Beim ersten Fall wäre im Angriffsfall der key sofort weg und eine neuer müßte erzeugt werden. Beim 2. Fall kann nach Beheben des Lochs der alte Key weiterverwendet werden. Wer aber auf deinen ssh-sicket zugreifen kann, kann auch beim ssh-add schon dein Passwort abfangen. Insofern ist es ziemlich sinnfrei, den ssh-agent genauer zu untersuchen. Er macht nichts sicherer oder unsicherer sondern lediglich deine Arbeit bequemer.
Generell: Wenn du deinen eigenen Prozessen nicht vertraust, kannst du von diesem Rechner aus NIEMALS sicher auf einen anderen Rechner zugreifen. Das ist schon theoretisch unmöglich und somit in der Praxis erst recht. Dem Stück Hard- und Software, dem du dein Passswort anVERTRAUST mußt du also zwangsweise vertrauen oder du läßt es ganz.
Reinhard