Vorab hoffe ich, dass Sie nicht getan haben, was Sie gezeigt haben. Mit Ausnahme der Bezeichnungen sind alle Daten, die bei der TLS-Schlüsselableitung verwendet werden, Binärdaten, die einem Shell- echo
Befehl oder einem anderen Befehl nicht genau als Argument angegeben werden können, außer möglicherweise die integrierte Version von, zsh
wenn Sie das Deaktivieren von Escape-Anweisungen deaktivieren, und sicherlich nicht "eingegeben" werden. (auch geschnitten & eingefügt) in einem wörtlichen Argument mit einfachen Anführungszeichen.
Wenn Sie die Daten tatsächlich in Dateien gespeichert haben, können diese verwendet werden. Binärdaten können aus Dateien gelesen und in diese geschrieben werden - zumindest auf den Plattformen, die OpenSSL unterstützt. Wenn Sie keine Dateien haben (aber Pipes), können Sie dies umgehen, indem Sie die Daten im Hex-Format übergeben. Abgesehen davon benötigen Sie -macopt hexkey:
bereits ein Hex-Skript, entweder mit einem Programm wie xxd -r
oder printf
mit dem Hex-Code, der in Escape-Formaten oder echo
mit gebildet wird das Hex in nicht-tragbare Fluchten oder Hacks wie GNU sed s///e
oder ein allgemeineres Programm awk
oder perl
zur Umwandlung des Hex in Binär für Eingabe openssl
. Und wenn nötig, ähnliche Hacks, um den Binärausgang in Hex umzuwandeln, können aber dgst -mac hmac
auch in Hex ausgegeben werden, solange Sie den blahblah=(sp)
von vorne entfernen .
Wenn Sie die erste HMAC-Ausgabe wieder selbst ausführen, erhalten Sie nur die A-Blöcke, die Sie dann durch eine andere Ebene von HMACs führen, um die tatsächliche Ausgabe 'P_hash' zu erhalten. Siehe https://crypto.stackexchange.com/questions/46549/tls-1-2-prf-with-hmac-sha256, wobei es sich um dieselbe Frage handelt, die einen Testvektor verwendet, der unter https://www.ietf.org/ veröffentlicht wird. mail-archive / web / tls / current / msg03416.html außer ich habe in Java geantwortet. Hier ist das OpenSSL-Kommandozeilenäquivalent:
$ echo $key; echo $lbsd # start from hex 9bbe436ba940f017b17652849a71db35 74657374206c6162656c a0ba9f936cda311827a6f796ffd5198c $ echo $lbsd | xxd -r -p >a0 $ openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a0 -binary >a1 $ openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a1 -binary >a2 $ openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a2 -binary >a3 $ openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a3 -binary >a4 $ cat a1 a0 | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k1 $ cat a2 a0 | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k2 $ cat a3 a0 | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k3 $ cat a4 a0 | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k4 $ cat k1 k2 k3 k4 | head -c100 | xxd 0000000: e3f2 29ba 727b e17b 8d12 2620 557c d453 ..).r{.{..& U|.S 0000010: c2aa b21d 07c3 d495 329b 52d4 e61e db5a ........2.R....Z 0000020: 6b30 1791 e90d 35c9 c9a4 6b4e 14ba f9af k0....5...kN.... 0000030: 0fa0 22f7 077d ef17 abfd 3797 c056 4bab .."..}....7..VK. 0000040: 4fbc 9166 6e9d ef9b 97fc e34f 7967 89ba O..fn......Oyg.. 0000050: a480 82d1 22ee 42c5 a72e 5a51 10ff f701 ....".B...ZQ.... 0000060: 8734 7b66 .4' | sed 's/\,/\n/g' \ | xargs -i sss_override user-add {} -g $(getent group AD-group-name \ | awk -F':' '')
Für uns als Workaround für das NFS 16-Gruppenlimit hervorragend geeignet.