يحتوي هذا المستودع على أمثلة لـ DTLs عبر SCTP و UDP. يمكن استخدام كل تطبيق في src كعميل أو خادم.
تم تطوير أمثلةنا مقابل OpenSSL 1.1.x API.
استخدام OpenSSL الإصدار 1.1.1a أو أعلى.
DTLS صدى خادم وعميل
تتضمن هذه العينة خادم صدى متعدد الخيوط وعميل إرسال رسائل عبر اتصال SCTP/UDP مشفر باستخدام DTLs.
Usage: dtls_(udp|sctp)_echo [options] [address]
Options:
-l message length (default: 100 Bytes)
-L local address
-p port (default: 23232)
-n number of messages to send (default: 5)
-v verbose
-V very verbose
خادم مولد أحرف DTLS والعميل
تتضمن هذه العينة خادم مولد أحرف متعدد الخيوط وعميل يرسل أكبر عدد ممكن من الرسائل إلى بعضهما البعض عبر اتصال SCTP/UDP مشفر باستخدام DTLs لفترة معينة. الإحصائيات التي تم إرسال عدد الرسائل التي تم إرسالها واستلامها وعدد عدد المفقودين يتم طباعتها في النهاية.
Usage: dtls_(udp|sctp)_chargen [options] [address]
Options
-l message length (default: 100 Bytes)
-L local address
-s streams (default: 5, sctp only)
-p port (default: 23232)
-t time to send (default: 10 sec)
-u unordered (sctp only)
-v verbose
-V very verbose
DTLS تجاهل الخادم والعميل
تتضمن هذه العينة خادم تجاهل متعدد الخيوط وعميل إرسال رسائل عبر اتصال SCTP/UDP مشفر باستخدام DTLs.
Usage: dtls_(udp|sctp)_discard [options] [address]
Options:
-l message length (Default: 100 Bytes)
-L local address
-s streams (default: 5, sctp only)
-p port (default: 23232)
-t time to send (Default: 10 sec)
-u unordered (sctp only)
-v verbose
-V very verbose
منذ FreeBSD 12.0 ، فإن إصدار OpenSSL المدمج يكفي لتشغيل أمثلة UDP.
تتطلب أمثلة SCTP والإصدارات الأقدم من FreeBSD تثبيت OpenSSL عبر pkg أو من نقطة الصفر.
لـ FreeBSD 12.0 و 11.2 ، فإن حزمة OpenSSL 1.1.1 من pkg هي openssl111 .
$ pkg install openssl111
يجب أن تعمل أمثلة UDP مع توزيعات Linux الأخيرة خارج الصندوق. من أجل تشغيل أمثلة SCTP ، يجب بناء OpenSSL من نقطة الصفر مع دعم SCTP.
sudo apt-get install libsctp-dev
$ ./config sctp --prefix=$HOME/my-openssl/
$ make
$ make install
بالإضافة إلى وحدة SCTP المحملة ، يتطلب Linux دعم SCTP Auth.
$ modprobe sctp
$ sysctl -w net.sctp.auth_enable=1
إذا كنت ترغب فقط في تشغيل أمثلة UDP ، فيمكن تثبيت ثنائيات Opensl Prebenilt Openssl عبر Brew.
$ brew install [email protected]
يجب تجميع إصدار SCTP OpenSSL من المصدر ، اتبع البرنامج التعليمي في قسم Linux. نظرًا لأن MacOS لا يدعم SCTP خارج الصندوق ، فمن الضروري استخدام SCTP NKE.
قبل استدعاء make في دليل src ، قد يكون من الضروري تحديد مكتبة مخصصة وتضمين المسارات. يتم ذلك إما عن طريق تعديل Makefile أو عن طريق توفير المسار كوسيطة سطر الأوامر. من الممكن أيضًا إنشاء أمثلة SCTP أو UDP فقط.
$ make
$ make sctp # only SCTP examples
$ make udp # only UDP examples
من أجل تشغيل مثال برامج ، يجب أن تكون شهادات الخادم والعميل المطلوبة في مجلد certs .
تقوم الأوامر التالية بإنشاء شهادات موقعة للعميل وخادم العينات أعلاه.
touch ca-db-index
echo 01 > ca-db-serial
# Certificate Authority
openssl req -nodes -x509 -newkey rsa:2048 -days 365 -keyout ca-key.pem -out ca-cert.pem
# Server Certificate
openssl req -nodes -new -newkey rsa:2048 -keyout server-key.pem -out server.csr
# Sign Server Certificate
openssl ca -config ca.conf -days 365 -in server.csr -out server-cert.pem
# Client Certificate
openssl req -nodes -new -newkey rsa:2048 -keyout client-key.pem -out client.csr
# Sign Client Certificate
openssl ca -config ca.conf -days 365 -in client.csr -out client-cert.pem
يمكنك إنشاء ملف CA.Conf الخاص بك أو استخدام عينة الحد الأدنى.
لا تقتصر الأمثلة على استخدامها مع بعضها البعض ، ويمكن استخدامها أيضًا مع تطبيق OpenSSL المدمج.
مثال أدناه يبدأ خادم صدى SCTP. يتصل العميل عبر تطبيق s_client الخاص بـ OpenSSL ويرسل الإدخال من stdin إلى الخادم. تلقى الخادم صدى الرسائل.
$ dtls_sctp_echo -V -L 127.0.0.1
$ openssl s_client -sctp -dtls -connect 127.0.0.1:23232