"Als die schwarze Decke für einen Moment weggeblasen wurde, drehte sich Margarita um und sah, dass es nicht nur mehrfarbige Türme mit einem Flugzeug über ihnen gab, sondern auch keine Stadt selbst, die in den Boden gegangen war und nur Nebel hinterlassen hatte."
M.A. Bulgakow
"Der Meister und Margarita"Hallo Habr! Wahrscheinlich hat fast jede russische Organisation diese Produkte in einer fröhlichen mehrfarbigen Farbe. Wir sprechen über JaCarta-Produkte und -Software für sie. Dieses Glück fiel auch mir zu und ich beschloss, die schwarze Abdeckung, die ihre Essenz oder API verbirgt, leicht zu erweitern. Einige Banken, insbesondere die Ausgabe von JaCarta GOST-2-Token an ihre Kunden, benötigen die Installation der JC-WebClient-Anwendung von Aladdin R.D.
Obwohl es auf der offiziellen Website des Entwicklers keine neue Distribution gibt (im Demo-Bereich können Sie eine ältere Version herunterladen, aber die veraltete API verwendet), kann die Distribution über Google in der Zeile "JC-WebClient-4.0.0.1186" auf den Websites des RB gefunden werden.
Nach der Installation der Anwendung auf dem Computer des Benutzers wird Port 24738 geöffnet, auf dem dieser Client arbeitet.
https://localhost:24738/JCWebClient.js
Die Entwickler-Website beschreibt offen und detailliert die API dieser Anwendung (sowie die Funktionen der Arbeit mit dem Dateisystem der gesamten Token-Zeile dieses Herstellers über jcFS.dll, das Teil des Installationspakets „JaCarta Single Client“ ist). Unter dem Strich können Sie eine Reihe von Funktionen verwenden Signieren Sie die digitale Signatur des Tokens mit irgendetwas, holen Sie sich einen PIN-Code oder blockieren Sie das Token mit erfolglosen Versuchen, es einzugeben. Und das alles aus der Ferne über das Internet.
Es ist kein Geheimnis, dass Benutzer häufig den Standard-PIN-Code für das Token oder den, mit dem sie ihn erhalten haben, belassen (sie befürchten normalerweise, dass beim Ändern des PIN-Codes alles nicht mehr funktioniert).
Am häufigsten werden PIN-Codes vom Typ 123456 verwendet, und das Token wird während des Arbeitstages oder sogar rund um die Uhr in den Computeranschluss oder den USB-Hub eingefügt.
Dank JC-WebClient können Sie, wenn Sie einem solchen Benutzer eine Webseite oder eine E-Mail mit einfachem JavaScript übermitteln, die Token-Schlüssel zwar nicht erhalten (in einigen Fällen ist dies nur durch direkten Zugriff auf das Token-Dateisystem möglich,
ein Beispiel wurde bereits angegeben ), aber versuchen Sie es Nehmen Sie einen PIN-Code und signieren Sie alle Daten und senden Sie sie irgendwohin.
Bei 10 erfolglosen Iterationsversuchen wird das Token blockiert. Wenn der Administratorcode zum Entsperren nicht festgelegt ist, hilft nur die Initialisierung. Und dies wird nicht auf Zeitsteuern gezahlt (und aufgrund von Zinsen und sogar der Sperrung des Steuerkontos der Organisation der Steuer), Verluste von Lieferanten, im Allgemeinen ist gut nicht genug.

Das Problem mit der Aufzählung des PIN-Codes könnte entweder dadurch gelöst werden, dass er nur über das JC-WebClient-Schnittstellenfenster eingegeben werden kann, oder als halbe Maßnahme, beispielsweise bei drei erfolglosen Versuchen, ihn einzugeben, die weitere Autorisierung blockieren, indem dem Benutzer eine Nachricht angezeigt wird, und warten, bis er es tut wird Ihre Aktionen bestätigen.
Ich habe ein kleines Testskript geschrieben, das diese Sicherheitsanfälligkeit zeigt. Das Skript funktioniert in allen modernen und relativ modernen Browsern, auch im Internet Explorer :)
Natürlich sendet es nirgendwo etwas, sondern zeigt einfach die Ergebnisse einer Folge von Funktionen an.
Das Skript implementiert eine vollständige Aufzählung von 10 Versuchen, den PIN-Code "zum Töten" des Tokens einzugeben, sodass Sie das Skript nur mit einem Test-Token ausführen können!
Es sollte auch beachtet werden, dass die Verwendung dieses Skripts außer auf seinem eigenen Test-Token einen Verstoß gegen das Gesetz darstellt.
Testergebnis:

Das Skript generiert mit JC-WebClient zum Testen ein Schlüsselpaar und ein Zertifikat.
Sie können EToken PRO Java 72 K, JaCarta GOST und JaCarta GOST-2 verwenden. Das Token muss mit der Benutzer-PIN 111111 vorinitialisiert werden.
Bevor Sie mit dem Testen beginnen, müssen Sie JC-WebClient Version 4 oder höher installieren.
Und eigentlich das Sicherheitsüberprüfungsskript selbst:
→
Informationsquelle der JC-WebClient-API