Forum: PC-Programmierung OpenSSL Literatur?


von Danish B. (danishbelal)


Lesenswert?

Hallo,

ich möchte eine kleine Software schreiben, welche einen 
ECDH-Schlüsselaustausch durchführen kann

Erste Wahl scheint da OpenSSL zu sein, aber die Dokumentation ist eher 
so lala.

Beispiel:
Es gibt für viele Funktionen Man-Pages. Diese erklären welche Aufgabe 
die entsprechende Funktion übernimmt. Ein Gesamtüberblick, allerdings 
fehlt und wird nur durch die Beispielcodes halbwegs vermittelt.

Kennt jemand ein Buch, das OpenSSL etwas tiefer beleuchtet? (Gerne auch 
Englisch).
Ansonsten nehme ich auch gerne Vorschläge für andere Libs entgegen.
C / C++ gingen beides.

von TestX (Gast)


Lesenswert?

NaCl ?

von P.S. (Gast)


Lesenswert?

Network Security with OpenSSL

http://shop.oreilly.com/product/9780596002701.do

von Sheeva P. (sheevaplug)


Lesenswert?

Danish B. schrieb:
> Erste Wahl scheint da OpenSSL zu sein, aber die Dokumentation ist eher
> so lala.

Das ist leider nicht das Einzige an OpenSSL, das so lala" ist. ;-)

> Kennt jemand ein Buch, das OpenSSL etwas tiefer beleuchtet?

Das genannte O'Reilly-Buch ist nicht schlecht, ansonsten empfehle ich 
auch "Bullet-Proof TLS and SSL" von Ivan Ristic.

> Ansonsten nehme ich auch gerne Vorschläge für andere Libs entgegen.
> C / C++ gingen beides.

GnuTLS, LibreSSL und WolfSSL sind sicher einen Blick wert.

von Danish B. (danishbelal)


Lesenswert?

Danke für die Vorschläge. Das O'Reilly Buch habe ich bestellt.

Die Lib's muss ich mir noch genauer angucken. Aus kompatibilitätsgründen 
muss ich mit der 'NIST P256 Prime Curve' arbeiten. Leider finde ich 
unter dieser Bezeichnung relativ wenig Infos.

von Arc N. (arc)


Lesenswert?

Danish B. schrieb:
> Danke für die Vorschläge. Das O'Reilly Buch habe ich bestellt.
>
> Die Lib's muss ich mir noch genauer angucken. Aus kompatibilitätsgründen
> muss ich mit der 'NIST P256 Prime Curve' arbeiten. Leider finde ich
> unter dieser Bezeichnung relativ wenig Infos.

Weil die unsicher ist https://safecurves.cr.yp.to/
Daniel J. Bernstein and Tanja Lange. SafeCurves: choosing safe curves 
for elliptic-curve cryptography. https://safecurves.cr.yp.to
Darf man erfahren wo das eingesetzt werden soll? Dann könnte man das 
Ergebnis meiden...

von Danish B. (danishbelal)


Lesenswert?

Arc N. schrieb:
> Danish B. schrieb:
>> Die Lib's muss ich mir noch genauer angucken. Aus kompatibilitätsgründen
>> muss ich mit der 'NIST P256 Prime Curve' arbeiten. Leider finde ich
>> unter dieser Bezeichnung relativ wenig Infos.
>
> Weil die unsicher ist https://safecurves.cr.yp.to/
> Daniel J. Bernstein and Tanja Lange. SafeCurves: choosing safe curves
> for elliptic-curve cryptography. https://safecurves.cr.yp.to
> Darf man erfahren wo das eingesetzt werden soll? Dann könnte man das
> Ergebnis meiden...

Damit soll mit einem ATECC508A ein Schlüssel ausgetauscht werden. 
Interessant, dass diese Kurve als unsicher deklariert wurde. Im 
Worst-Case Fall, wäre der Chip (bzw. dessen EC-Funktionen) ja 
'unbrauchbar'.

http://ww1.microchip.com/downloads/en/DeviceDoc/20005928A.pdf

von John Doe (Gast)


Lesenswert?

Arc N. schrieb:
> Danish B. schrieb:
>> Danke für die Vorschläge. Das O'Reilly Buch habe ich bestellt.
>>
>> Die Lib's muss ich mir noch genauer angucken. Aus kompatibilitätsgründen
>> muss ich mit der 'NIST P256 Prime Curve' arbeiten. Leider finde ich
>> unter dieser Bezeichnung relativ wenig Infos.
>
> Weil die unsicher ist https://safecurves.cr.yp.to/
> Daniel J. Bernstein and Tanja Lange. SafeCurves: choosing safe curves
> for elliptic-curve cryptography. https://safecurves.cr.yp.to
> Darf man erfahren wo das eingesetzt werden soll? Dann könnte man das
> Ergebnis meiden...


secp256r1 war doch "damals" die am meisten eingesetzte Kurve. Insofern 
nicht verwunderlich.

von Arc N. (arc)


Lesenswert?

John Doe schrieb:
> Arc N. schrieb:
>> Danish B. schrieb:
>>> Danke für die Vorschläge. Das O'Reilly Buch habe ich bestellt.
>>>
>>> Die Lib's muss ich mir noch genauer angucken. Aus kompatibilitätsgründen
>>> muss ich mit der 'NIST P256 Prime Curve' arbeiten. Leider finde ich
>>> unter dieser Bezeichnung relativ wenig Infos.
>>
>> Weil die unsicher ist https://safecurves.cr.yp.to/
>> Daniel J. Bernstein and Tanja Lange. SafeCurves: choosing safe curves
>> for elliptic-curve cryptography. https://safecurves.cr.yp.to
>> Darf man erfahren wo das eingesetzt werden soll? Dann könnte man das
>> Ergebnis meiden...
>
>
> secp256r1 war doch "damals" die am meisten eingesetzte Kurve. Insofern
> nicht verwunderlich.

Ich hätte vielleicht nicht ganz so schnell auf absenden klicken sollen, 
da ich zwar noch was im Hinterkopf hatte, aber nicht mehr alles...
Zum einen heißt unsicher nicht unbedingt, dass die Kurve gebrochen ist, 
sondern das sie nicht alle als notwendig erachteten Eigenschaften 
aufweist. Zum anderen war da noch was anderes interessantes:
https://blog.cryptographyengineering.com/2015/10/22/a-riddle-wrapped-in-curve/
bzw. das Paper über das es im Blog-Beitrag geht "A RIDDLE WRAPPED IN AN 
ENIGMA", Koblitz, Menezes, 2015, https://eprint.iacr.org/2015/1018.pdf
"3.2. Does the NSA have an n^1/3-algorithm for finding elliptic curve
discrete logs?
The reason for wondering about this is that in the latest revision of 
Suite B the NSA has dropped P-256, leaving only P-384. If solving the 
ECDLP in a group of order n requires roughly n^1/2 operations, then 
P-256 suffices for 128 bits of security. But if an n^1/3-algorithm were 
known, then one would need P-384 for the same level of security.11 It 
should also be noted that at Asiacrypt 2013 Bernstein and Lange [9] 
presented an n^1/3-algorithm. However, it needed a tremendous amount of 
precomputation, taking time n^2/3. So from a practical standpoint, as 
Bernstein and Lange pointed out, it is worthless. However, it is 
conceivable that the NSA has found (or believes that there might exist) 
a similar algorithm that requires far less precomputation.12"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.