PDA

Bekijk Volledige Versie : openvpn - openssl certificaat



Armando23
18/05/09, 14:41
Beste mensen,

Ik wil een SSL certificaat genereren die 'man in the middle' attacks kan weerstaan. Op de site van openvpn staat hier iets over: http://openvpn.net/index.php/documentation/howto.html#secnotes

Hier staat dat het certificaat aan bepaalde usage moet voldoen. Hoe kan ik deze waardes meegeven en zo'n certificaat genereren? Ik heb versie > 2.1, echter als ik hiermee via de easy-RSA tools een certi aanmaak, dan werkt het commando remote-cert-tls server in settings.ovpn (voor de vpn verbinding) niet. Als ik ns-cert-type server gebruik, doet deze het wel. Ik heb al behoorlijk wat gegoogled maar kom nou niet echt tot de ondekking hoe ik die bepaalde key usages erin krijg.

Kan iemand mij hierbij helpen of een tipje geven?

Groet Robert

Randy
18/05/09, 14:42
Robert,

Begrijp ik goed dat wij je moeten helpen met een hack? :lovewht:

Armando23
18/05/09, 14:44
nee niet bepaald. Ik probeer de sec. notes op te volgen die op http://openvpn.net/index.php/documentation/howto.html#secnotes staan voor versie > 2.1. Standaard word via de easy-RSA scripts niet die key usages meegegeven volgens mij. Maar ik weet dus niet wat en hoe ik deze dan wel kan meegeven.

Armando23
18/05/09, 14:45
Deze dus:
Build your server certificates with specific key usage and extended key usage. The RFC3280 determine that the following attributes should be provided for TLS connections:

de vraag is, hoe genereer je zo'n certificaat.

mikeh
18/05/09, 14:48
PKI bedoel je ?

flop, 1 min zoeken op openvpn.net en je hebt het gevonden

http://openvpn.net/index.php/documentation/howto.html#pki

Armando23
18/05/09, 14:48
Ja, met openssl. Maar waar kan je deze key usage / extended key usage opgeven? moet je deze in de syntax opgeven of moet je dit in de openssl.cnf opgeven? heeft iemand hier ervaring mee?

Armando23
18/05/09, 14:50
Ja ik wil met openssl een PKI opzetten.

Armando23
18/05/09, 14:51
PKI bedoel je ?

flop, 1 min zoeken op openvpn.net en je hebt het gevonden

http://openvpn.net/index.php/documentation/howto.html#pki

Dat is dus niet wat ik bedoel. Met de easy-RSA worden niet de key usages / extended key usage meegeven.

mikeh
18/05/09, 15:01
IMPORTANTTo avoid a possible Man-in-the-Middle attack where an authorizedclient tries to connect to another client by impersonating theserver, make sure to enforce some kind of server certificateverification by clients. There are currently four different waysof accomplishing this, listed in the order of preference:

(1) Build your server certificates with the build-key-server script. This will designate the certificate as a server-only certificate by setting nsCertType=server. Now add the following line to your client configuration: ns-cert-type server This will block clients from connecting to any server which lacks the nsCertType=server designation in its certificate, even if the certificate has been signed by the CA which is cited in the OpenVPN configuration file (--ca directive).

(2) Use the --tls-remote directive on the client to accept/reject the server connection based on the common name of the server certificate.

(3) Use a --tls-verify script or plugin to accept/reject the server connection based on a custom test of the server certificate's embedded X509 subject details.

(4) Sign server certificates with one CA and client certificates with a different CA. The client config "ca" directive should reference the server-signing CA while the server config "ca" directive should reference the client-signing CA.

Armando23
18/05/09, 15:11
'ns-cert-type server' gebruik ik nu bij de client. Maar dit moet 'remote-cert-tls server' worden.

remote-cert-tls server werkt alleen als er een (extended) key usage word ingebakken in het certificaat.

ns-cert-type server werkt als het een server-only certificaat is.


Ik wil dus remote-cert-tls gebruiken omdat dit veiliger is, maar hoe bak ik dit in mijn certificate in??????

Armando23
18/05/09, 17:32
Laat maar ik heb het al gevonden: je kan via toevoeging -extentions {naam} deze key usage opgeven in de openssl.cnf onder {naam}. Deze worden dan gebruikt bij het maken van het certificaat. Ik denk zet het hier nog even bij voor de volledigheid.

mikeh
18/05/09, 18:16
Bedankt voor de aanvulling Armando :)