HMAC aus OpenSSL nutzbar?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

HMAC aus OpenSSL nutzbar?

Beitrag von TroaX »

Ich habe da mal eine Frage. HMAC ist ja meines Wissens nach in OpenSSL integriert. Und OpenSSL ist in PureBasic integriert. Kommt man da irgendwie ran?

Ich will mal wieder an meinem PBExpress arbeiten und möchte gern das Sessionmodul gegen JWT tauschen. Ich habe zwar im englischen Forum 2 Codes gefunden. Aber ich würde gerne die in OpenSSL integrierte Funktion nutzen.

Habe zwar schon wie doof gesucht. Aber leider nichts gefunden. Kann auch sein, das ich falsch gesucht habe. Für einen Schupser in die richtige Richtung wäre ich dankbar :wink: :mrgreen:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: HMAC aus OpenSSL nutzbar?

Beitrag von TroaX »

Ok ich denke hier hat sich noch keiner daran versucht, die HMAC-Funktionen der OpenSSL Library zu nutze zu machen. Dann werde ich denke ich mal ein HMAC auf SHA-Basis selber zusammen basteln und die Kompatibilität mit dem HMAC aus PHP testen, welches auf der OpenSSL Lib basiert.

Schade. Ich hatte die Hoffnung, das mir das erspart bleibt :lol:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: HMAC aus OpenSSL nutzbar?

Beitrag von Benubi »

Ich habe OpenSSL als DLL eingebunden, den Verdacht dass es in PB implementiert sei hatte ich auch, aber vermutlich werden die Funktionen nicht exportiert und sind irgendwo in curl oder sowas eingebettet & verkapselt. Leider habe ich davon zu wenig Ahnung, ich wollte einen Webserver schreiben der die Lib nutzt, aber es ist nicht so trivial wie ich dachte, auch die Zertifikatserstellung und Vertraulichkeits-Architektur (da habe ich keine) muß man verstehen, ich habe keine NoIP zertifikate oder sowas, daher konnte ich nicht alles so abschließen oder testen wie es nötig gewesen wäre. Ich schreibe das hier weil ich doch auch hoffe, man könne SSL einbinden ohne zusätzlichen DDL's. Normalerweise müssten die Betriebssysteme inzwischen auch alle ihre eigenen Module bzw API für SSL haben.
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: HMAC aus OpenSSL nutzbar?

Beitrag von TroaX »

Ich sehe bei Zertifikaten für mich keinen Mehrwert. Denn es gibt genug freie Webserver, wo ich PureBasic als FastCGI/CGI dranhängen kann. Zudem beherrschen nahezu alle von denen auch den Reverse-Proxy sowie einen Loadbalancer, mit denen ich einen etablierten Webserver vorschalten und die Zertifikate sowie die Verschlüsselung managen lassen kann. Einen wirklich zuverlässigen Webserver komplett von 0 an zu schreiben, den mit allen Features zu versehen und diesen auch komplett zu warten und aktuell zu halten (vor allem bezogen auf die Sicherheit), ist eine Mammutaufgabe. Genauso wie die meisten anderen Programmierer/Entwickler würde ich zum Beispiel den Node-Webserver/Express.JS/Python-Webserver niemals direkt ins Netz hängen sondern hinter den Reverse-Proxy von NGINX, Lighttpd, Apache, IIS und Co. setzen. Die haben in der Regel alles implementiert, werden zuverlässig auf den aktuellen Stand gehalten und supporten auch alle wichtigen Schutzfunktionen. Mir ist das persönlich zu heiß, das selber zu machen. Deswegen hat mein Webserver auch nie den Anspruch gehabt, als Konkurrenz zu den anderen herzuhalten. In den Hasenbau will und werde ich nicht reinspringen. Der Job ist ausreichend erledigt.

Mir ging es nur um die Verschlüsselungs-Algorithmen selbst. Und da man wohl tatsächlich diese API's nicht direkt aus PB heraus ansprechen kann, muss ich mal sehen, ob ich da jetzt C-kompatible Bibliotheken finde. PBKDF2 war ja nur ein Derivation-Addon für klassische Hash-Algo's, war recht leicht zu implementieren und kann noch etwas für Passwörter herhalten. Aber HMAC ist eben zum Signieren/Hashen von JWT-Payloads wichtig, um Manipulationen selbiger zu erkennen oder MITM-Angriffe auf JWT's zu erschweren/unterbinden. Und JWT's sind leider der Quasistandard dafür geworden, Session-Informationen auszutauschen, ohne sie auf dem Server zu speichern, um REST-Konform zu bleiben.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: HMAC aus OpenSSL nutzbar?

Beitrag von Benubi »

Ja Du hast recht, aber ich dachte mehr an einen "Webserver" im Sinne einer Web App. Muß ja nicht gleich der hochentwickelte WebApp Standard von Microsoft sein. Einen "Webserver" der nur schlau genug ist um ein Protocol Switch zu machen, der torrents oder ähnliche Dienste anbietet. Eine Schnittstelle die HTTP/s nutzt, ohne alles vollstends zu implementieren (letzteres ist als Einzelner quasi unmöglich zu realisieren, insbesondere ohne Ingenieurs-Erfahrungen und Experten-Wissen).

Also eine Art Web-taugliches Interface, damit man seine Spiderbasic Frontends z.B. gleich per IncludeBinary anzeigen kann, und das ganz Autonom. Mit HTTP alleine ginge das halbwegs "einfach". Ich weiß ja nicht was die Router wie z.B. die FritzBox nutzen, oder die Netzdrucker, aber sowas in der Art möchte ich auch mit PB machen können; es kann aber auch sein daß die einen Apache laufen lassen, das weiß ich nicht. Ich vermute sie benutzen irgendwelche quelloffenen C Libs. Ich glaube wenn man einen WebDAV Server schreiben möchte, welcher auch nur reine Dateien anbietet, dann braucht man auch 90% der Möglichkeiten nicht zu implementieren welche ein kompletter Webserver vorraussetzen würde, allerdings müßte da schon immer SSL an sein. Möglicherweise lassen Firewall Admins keine Anfragen über Port 80 mehr durch, selbst wenn die App keine sensiblen Daten anbietet. Mein SLL Modul wird irgendwann einen Fehler in der Übertragung melden den ich nicht korrigieren oder abfangen kann, weil mir eben das wissen fehlt wie es genau funzt.

Ohje, ich denke das hätte ich auch kürzer zummenfassen können. :lol:
Antworten