On Wed, 26 Mar 2003 08:13:02 +0100, Thomas Guettler wrote:
On Tue, Mar 25, 2003 at 07:36:08PM +0100, Torsten Werner wrote:
Ich traue niemanden.
Das geht gar nicht.
Eben.
Ich dachte bisher jeder meiner Prozesse kann den Private Key per ssh-agent einsehen.
Ja, jeder deiner Prozesse kann bei Bedarf deinen privaten ssh-key einsehen und du kannst es wahrscheinlich nicht verhindern und es hat nichts mit ssh-agent zu tun.
Das stimmt nicht. Der Private Key ist mit einer Passphrase verschlüsselt. Also kann dort keiner meiner Prozesse "reinschauen".
Doch. Torsten hat völlig recht. Jedes Programm, was du unter deiner UID startest, kann alles tun, was du auch selbst tun könntest. Wenn du dich lokal an einem Rechner anmeldest und per ssh sicher zu einem anderen Rechner willst, MUSST du massenhaft Software trauen. Jedes Stück beteiligte Software muß vertrauenswürdig sein, also eine sichere Kette von dir bis zum Zielrechner bilden. Da wären also mindestens: Kernel, login, bash (+alles, was die startskipte starten), ssh-add, ssh (und deren hostkeys), sshd + Kernel + shell auf Gegnerseite usw.
Ist auch nur ein ein einziger Teil in dieser Kette kompromittiert, ist die Sicherheit verloren.
ssh kann nur eins: Eine sichere (nicht abhörbare, nicht heimlich auf einen anderen Rechner umgelenkte) Verbindung zwischen zwei vertrauenswürdigen Systemen herstellen. Der Versuch, durch den Einsatz von ssh unter Beteiligung eines nicht vertrauenswürdigen Rechners irgendetwas sicherer zu machen, wird in jedem Fall scheitern.
Das in den Klammern sind übrigens die einzigen sicherheitsrelevanten Vorteile der ssh gegenüber telnet.
The agent will never send a private key over its request channel. In- stead, operations that require a private key will be performed by the agent, and the result will be returned to the requester. This way, private keys are not exposed to clients using the agent. """
"request channel" ist für mich der Unix-Socket in SSH_AUTH_SOCK.
Ja.
Operationen die einen privaten Schlüssel benötigen, werden vom ausgeführt --> Der Agent gibt den Schlüssel nicht her.
Richtig. Nur fängst du mit deiner Sicherheitsüberlegung immer erst an dem Punkt an, wo der ssh-agent bereits läuft und den per passphrase freigeschalteten Key bereits hat. Bis du aber überhaupt zu diesem Punkt gekommen bist, kann es schon lange zu spät sein.
Reinhard