هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ
В اسان جي پوئين مضمونن مان هڪ اسان ڪمپنين جي ڪارپوريٽ پورٽلز تي ٻن عنصر جي تصديق جي اهميت بابت ڳالهايو. آخري دفعو اسان ڏيکاريو ته ڪيئن IIS ويب سرور ۾ محفوظ تصديق قائم ڪجي.

تبصرن ۾، اسان کي لينڪس - nginx ۽ Apache لاءِ سڀ کان عام ويب سرورز لاءِ هدايتون لکڻ لاءِ چيو ويو.

توهان پڇيو - اسان لکيو.

توهان کي شروع ڪرڻ جي ڪهڙي ضرورت آهي؟

  • ڪنهن به جديد لينڪس ورڇ. مون MX Linux 18.2_x64 تي هڪ ٽيسٽ سيٽ اپ ڪيو. اهو يقيناً سرور جي ورڇ نه آهي، پر ڊيبين لاءِ ڪو به اختلاف هجڻ ممڪن ناهي. ٻين تقسيم لاءِ، ترتيب واري لائبريري جا رستا ٿورو مختلف ٿي سگھن ٿا.
  • ٽوڪن. اسان ماڊل استعمال ڪرڻ جاري رکون ٿا Rutoken EDS PKI، جيڪو ڪارپوريٽ استعمال لاءِ رفتار جي خاصيتن جي لحاظ کان مثالي آهي.
  • لينڪس ۾ ٽوڪن سان ڪم ڪرڻ لاءِ، توھان کي ھيٺين پيڪيجز کي انسٽال ڪرڻ جي ضرورت آھي.
    libccid libpcsclite1 pcscd pcsc-tools opensc

هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

سرٽيفڪيٽ جاري ڪرڻ

پوئين مضمونن ۾، اسان ان حقيقت تي ڀروسو ڪيو ته سرور ۽ ڪلائنٽ سرٽيفڪيٽ جاري ڪيا ويندا Microsoft CA استعمال ڪندي. پر جيئن ته اسان لينڪس ۾ سڀ ڪجهه ترتيب ڏئي رهيا آهيون، اسان توهان کي انهن سرٽيفڪيٽن کي جاري ڪرڻ لاءِ متبادل طريقي جي باري ۾ پڻ ٻڌائينداسين - لينڪس ڇڏڻ کان سواءِ.
اسان XCA استعمال ڪنداسين CA (https://hohnstaedt.de/xca/)، جيڪو ڪنهن به جديد لينڪس ڊويزن تي موجود آهي. سڀئي ڪارناما جيڪي اسان XCA ۾ انجام ڏينداسين اهي OpenSSL ۽ pkcs11-tool يوٽيلٽيز استعمال ڪندي ڪمانڊ لائن موڊ ۾ ڪري سگهجن ٿا، پر وڌيڪ سادگي ۽ وضاحت لاءِ، اسان انهن کي هن آرٽيڪل ۾ پيش نه ڪنداسين.

شروع ڪرائڻ

  1. انسٽال ڪريو:
    $ apt-get install xca
  2. ۽ اسان هلون ٿا:
    $ xca
  3. اسان CA - /root/CA.xdb لاءِ پنهنجو ڊيٽابيس ٺاهيندا آهيون
    اسان سفارش ڪريون ٿا سرٽيفڪيٽ اٿارٽي ڊيٽابيس کي هڪ فولڊر ۾ محفوظ ڪرڻ جتي صرف منتظم کي رسائي آهي. اهو روٽ سرٽيفڪيٽن جي خانگي ڪنجين کي بچائڻ لاءِ ضروري آهي، جيڪي ٻين سڀني سرٽيفڪيٽن کي سائن ڪرڻ لاءِ استعمال ٿين ٿيون.

ڪيچ ٺاهيو ۽ روٽ CA سرٽيفڪيٽ

هڪ عوامي اهم بنيادي ڍانچي (PKI) هڪ درجي بندي واري نظام تي ٻڌل آهي. هن سسٽم ۾ بنيادي شيء آهي روٽ سرٽيفڪيشن اٿارٽي يا روٽ CA. ان جو سرٽيفڪيٽ پهريون ٺاهيو وڃي.

  1. اسان CA لاءِ RSA-2048 پرائيويٽ ڪيچ ٺاهيندا آهيون. هن کي ڪرڻ لاء، ٽيب تي نجي چاٻي َ نئين چاٻي ۽ مناسب قسم چونڊيو.
  2. نئين ڪنجي جوڙي لاءِ نالو مقرر ڪريو. مون ان کي سڏيو CA Key.
  3. اسان CA سرٽيفڪيٽ پاڻ جاري ڪريون ٿا، ٺاهيل ڪي جوڙو استعمال ڪندي. هن کي ڪرڻ لاء، ٽيب ڏانهن وڃو سرٽيفڪيٽ ۽ ڪلڪ ڪريو نئون سرٽيفڪيٽ.
  4. چونڊڻ جي پڪ ڪريو SHA-256, ڇاڪاڻ ته SHA-1 استعمال ڪندي هاڻي محفوظ نه ٿو سمجهي سگهجي.
  5. هڪ ٽيمپليٽ جي طور تي چونڊڻ جي پڪ ڪريو [ڊفالٽ] CA. تي ڪلڪ ڪرڻ نه وساريو سڀ لاڳو ڪريوٻي صورت ۾ ٽيمپليٽ لاڳو نه ڪيو ويو آهي.
  6. ٽيب ۾ موضوع اسان جو اهم جوڙو چونڊيو. اتي توھان ڀري سگھوٿا سرٽيفڪيشن جا سڀ مکيه شعبا.

هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

چابيون ٺاهڻ ۽ هڪ https سرور سرٽيفڪيٽ

  1. ساڳيءَ طرح، اسان سرور لاءِ هڪ RSA-2048 خانگي ڪيئي ٺاهي، مون ان کي سرور ڪيئي سڏيو.
  2. جڏهن هڪ سرٽيفڪيٽ ٺاهي، اسان چونڊيو ته سرور سرٽيفڪيٽ کي CA سرٽيفڪيٽ سان سائن ان ٿيڻ گهرجي.
  3. چونڊڻ نه وساريو SHA-256.
  4. اسان هڪ ٽيمپليٽ طور چونڊيندا آهيون [default] HTTPS_server. تي ڪلڪ ڪريو سڀ لاڳو ڪريو.
  5. پوء ٽيب تي موضوع اسان جي ڪيچ کي منتخب ڪريو ۽ گھربل فيلڊ ڀريو.

هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

صارف لاءِ ڪنجيون ۽ سرٽيفڪيٽ ٺاھيو

  1. استعمال ڪندڙ جي خانگي چيڪ اسان جي ٽوڪن تي محفوظ ڪئي ويندي. ان سان ڪم ڪرڻ لاءِ، توهان کي اسان جي ويب سائيٽ تان PKCS#11 لائبريري انسٽال ڪرڻ جي ضرورت آهي. مشهور تقسيم لاءِ، اسان تيار ڪيل پيڪيجز ورهايون ٿا، جيڪي هتي موجود آهن. https://www.rutoken.ru/support/download/pkcs/. اسان وٽ arm64، armv7el، armv7hf، e2k، mipso32el لاءِ اسيمبليون پڻ آھن، جيڪي اسان جي SDK تان ڊائون لوڊ ڪري سگھجن ٿيون. https://www.rutoken.ru/developers/sdk/. لينڪس لاءِ اسيمبلين کان علاوه، macOS، freebsd ۽ android لاءِ به اسيمبليون آهن.
  2. XCA ۾ نئون PKCS#11 فراهم ڪندڙ شامل ڪرڻ. هن کي ڪرڻ لاء، مينيو ڏانهن وڃو اختيار ٽيب ڏانهن مهيا ڪندڙ PKCS#11.
  3. ڪلڪ ڪريو شامل ڪريو ۽ PKCS#11 لائبريري ڏانهن رستو چونڊيو. منهنجي صورت ۾ اهو آهي usrliblibrtpkcs11ecp.so.
  4. اسان کي فارميٽ ٿيل Rutoken EDS PKI ٽوڪن جي ضرورت پوندي. ڊائون لوڊ ڪريو rtAdmin يوٽيلٽي - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. اسان ٻاهر ڪڍنداسين
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. اسان Rutoken EDS PKI لاءِ RSA-2048 ڪيئي کي ڪيئي قسم طور چونڊيو ٿا. مون هن کي ڪلائنٽ ڪيئي سڏيو.

    هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

  7. پن ڪوڊ داخل ڪريو. ۽ اسان انتظار ڪريون ٿا مڪمل ٿيڻ جي هارڊويئر نسل جي اهم جوڙي جي

    هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

  8. اسان سرور سرٽيفڪيٽ سان قياس سان صارف لاءِ هڪ سرٽيفڪيٽ ٺاهيندا آهيون. هن ڀيري اسان هڪ ٽيمپليٽ چونڊيو [default] HTTPS_client ۽ ڪلڪ ڪرڻ نه وساريو سڀ لاڳو ڪريو.
  9. ٽيب ۾ موضوع استعمال ڪندڙ جي باري ۾ معلومات داخل ڪريو. اسان ٽوڪن لاءِ سرٽيفڪيٽ محفوظ ڪرڻ جي درخواست تي مثبت جواب ڏيون ٿا.

نتيجي طور، ٽيب تي سرٽيفڪيٽ XCA ۾ توھان کي ڪجھھ حاصل ڪرڻ گھرجي.

هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ
هي گهٽ ۾ گهٽ سيٽ ۽ سرٽيفڪيٽن جو سيٽ ڪافي آهي سرور کي ترتيب ڏيڻ شروع ڪرڻ لاءِ.

ترتيب ڏيڻ لاءِ، اسان کي برآمد ڪرڻو پوندو CA سرٽيفڪيٽ، سرور سرٽيفڪيٽ ۽ سرور پرائيويٽ ڪي.

هن کي ڪرڻ لاء، XCA ۾ لاڳاپيل ٽيب تي گهربل داخلا چونڊيو ۽ ڪلڪ ڪريو ٻاھر موڪليو.

نينڪس

مان اهو نه لکندس ته هڪ نينڪس سرور ڪيئن انسٽال ڪجي ۽ هلائڻ - انٽرنيٽ تي هن موضوع تي ڪافي آرٽيڪل آهن، سرڪاري دستاويزن جو ذڪر نه ڪرڻ. اچو ته هڪ ٽوڪن استعمال ڪندي HTTPS ۽ ٻه عنصر جي تصديق کي ترتيب ڏيڻ لاء سڌو وڃو.

nginx.conf ۾ سرور سيڪشن ۾ ھيٺيون لائينون شامل ڪريو:

server {
	listen 443 ssl;
	ssl_verify_depth 1;
	ssl_certificate /etc/nginx/Server.crt;
	ssl_certificate_key /etc/nginx/ServerKey.pem;
	ssl_client_certificate /etc/nginx/CA.crt;
	ssl_verify_client on;
}

nginx ۾ ايس ايس ايل کي ترتيب ڏيڻ سان لاڳاپيل سڀني پيراگرافن جو تفصيلي تفصيل ملي سگهي ٿو هتي. https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

مان صرف مختصر طور تي بيان ڪندس جيڪي مون پاڻ کان پڇيو:

  • ssl_verify_client - بيان ڪري ٿو ته سرٽيفڪيٽ لاءِ اعتماد جي زنجير جي تصديق ٿيڻ جي ضرورت آهي.
  • ssl_verify_depth - زنجير ۾ قابل اعتماد روٽ سرٽيفڪيٽ جي ڳولا جي کوٽائي کي بيان ڪري ٿو. جيئن ته اسان جي ڪلائنٽ سرٽيفڪيٽ فوري طور تي روٽ سرٽيفڪيٽ تي دستخط ٿيل آهي، کوٽائي 1 تي مقرر ڪئي وئي آهي. جيڪڏهن صارف سرٽيفڪيٽ هڪ وچولي CA تي دستخط ٿيل آهي، ته پوء 2 هن پيٽرولر ۾ بيان ڪيو وڃي، وغيره.
  • ssl_client_certificate - معتبر روٽ سرٽيفڪيٽ جو رستو بيان ڪري ٿو، جيڪو استعمال ڪيو ويندو آهي جڏهن صارف جي سرٽيفڪيٽ ۾ اعتماد جي جانچ ڪندي.
  • ssl_certificate/ssl_certificate_key - سرور سرٽيفڪيٽ/پرائيويٽ ڪيچ ڏانهن رستو ڏيکاريو.

هلائڻ نه وساريو nginx -t چيڪ ڪرڻ لاءِ ته ڪا به ٽائپس نه آهي ترتيب ۾ ، ۽ اهو ته سڀئي فائلون صحيح جڳهه تي آهن ، وغيره.

۽ اهو سڀ ڪجهه آهي! جئين توهان ڏسي سگهو ٿا، سيٽ اپ بلڪل سادو آهي.

چيڪ ڪريو اهو فائر فاکس ۾ ڪم ڪري رهيو آهي

جيئن ته اسان سڀ ڪجهه مڪمل طور تي لينڪس ۾ ڪندا آهيون، اسان اهو فرض ڪنداسين ته اسان جا صارف پڻ لينڪس ۾ ڪم ڪن ٿا (جيڪڏهن انهن وٽ ونڊوز آهي، پوء اڳئين مضمون ۾ برائوزرن کي ترتيب ڏيڻ لاءِ هدايتون ڏسو.

  1. اچو ته فائر فاڪس شروع ڪريون.
  2. اچو ته پهرين ٽوڪن کان سواءِ لاگ ان ٿيڻ جي ڪوشش ڪريون. اسان هي تصوير حاصل ڪريون ٿا:

    هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

  3. اسين وڃون ٿا بابت ترجيحات # رازداري، ۽ اسان وڃون ٿا سيڪيورٽي ڊوائيسز…
  4. ڪلڪ ڪريو بارنئون PKCS#11 ڊيوائس ڊرائيور شامل ڪرڻ لاءِ ۽ اسان جي librtpkcs11ecp.so ڏانهن رستو بيان ڪريو.
  5. چيڪ ڪرڻ لاء ته سرٽيفڪيٽ نظر اچي رهيو آهي، توهان ڏانهن وڃو سرٽيفڪيٽ مئنيجر. توھان کي چيو ويندو توھان جو PIN داخل ڪرڻ لاءِ. صحيح ان پٽ کان پوء، توهان چيڪ ڪري سگهو ٿا ته ڇا آهي ٽيب تي توهان جو سرٽيفڪيٽ ٽوڪن مان اسان جو سرٽيفڪيٽ ظاهر ٿيو.
  6. هاڻي اچو ته ٽوڪن سان هلون. فائر فاکس توهان کي هڪ سرٽيفڪيٽ چونڊڻ لاءِ اشارو ڪري ٿو جيڪو سرور لاءِ چونڊيو ويندو. اسان جي سرٽيفڪيٽ چونڊيو.

    هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

  7. PROFIT!

    هڪ USB ٽوڪن استعمال ڪندي سائيٽ تي ٻه عنصر جي تصديق. هاڻي پڻ لينڪس لاءِ

سيٽ اپ هڪ ڀيرو ٿي چڪو آهي، ۽ جيئن توهان ڏسي سگهو ٿا سرٽيفڪيٽ درخواست ونڊو ۾، اسان اسان جي چونڊ کي بچائي سگهون ٿا. ان کان پوء، هر دفعي اسان پورٽل ۾ لاگ ان ڪندا آهيون، اسان کي صرف هڪ ٽوڪن داخل ڪرڻ ۽ صارف جو پن ڪوڊ داخل ڪرڻ جي ضرورت پوندي جيڪا فارميٽنگ دوران بيان ڪئي وئي هئي. اهڙي تصديق کان پوء، سرور اڳ ۾ ئي ڄاڻي ٿو ته ڪهڙي صارف لاگ ان ڪيو آهي ۽ توهان تصديق لاء اضافي ونڊوز ٺاهي نٿا سگهو، پر فوري طور تي صارف کي پنهنجي ذاتي اڪائونٽ ۾ داخل ڪرڻ ڏيو.

Apache

بس nginx وانگر، ڪنهن کي به اپاچي نصب ڪرڻ ۾ ڪا به پريشاني نه هجڻ گهرجي. جيڪڏهن توهان کي خبر ناهي ته هي ويب سرور ڪيئن انسٽال ڪجي، صرف سرڪاري دستاويز استعمال ڪريو.

۽ اسان اسان جي HTTPS ۽ ٻه عنصر جي تصديق کي ترتيب ڏيڻ شروع ڪيو:

  1. پهرين توهان کي چالو ڪرڻ جي ضرورت آهي mod_ssl:
    $ a2enmod ssl
  2. ۽ پوء سائيٽ جي ڊفالٽ HTTPS سيٽنگون کي فعال ڪريو:
    $ a2ensite default-ssl
  3. ھاڻي اسان ايڊٽ ڪريون ٿا ڪنفيگريشن فائل: /etc/apache2/sites-enabled/default-ssl.conf:
        SSLEngine on
        SSLProtocol all -SSLv2
    
        SSLCertificateFile	/etc/apache2/sites-enabled/Server.crt
        SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
    
        SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
    
        SSLVerifyClient require
        SSLVerifyDepth  10

    جئين توهان ڏسي سگهو ٿا، پيرا ميٽرن جا نالا عملي طور تي نالن جي نالن سان nginx ۾ ملن ٿا، تنهنڪري مان انهن کي وضاحت نه ڪندس. ٻيهر، ڪنهن کي تفصيل ۾ دلچسپي آهي دستاويزن ۾ ڀليڪار.
    هاڻي اسان پنهنجي سرور کي ٻيهر شروع ڪريون ٿا:

    $ service apache2 reload
    $ service apache2 restart

  4. جئين توهان ڏسي سگهو ٿا، ڪنهن به ويب سرور تي ٻه عنصر جي تصديق قائم ڪرڻ، ڇا ونڊوز يا لينڪس تي، هڪ ڪلاڪ وڌ ۾ وڌ وٺندو آهي. ۽ برائوزرن کي ترتيب ڏيڻ ۾ لڳ ڀڳ 5 منٽ لڳن ٿا. ڪيترن ئي ماڻهن جو خيال آهي ته ترتيب ڏيڻ ۽ ٻه عنصر جي تصديق سان ڪم ڪرڻ ڏکيو ۽ واضح ناهي. مون کي اميد آهي ته اسان جو آرٽيڪل هن افسانه کي ختم ڪري ٿو، گهٽ ۾ گهٽ ٿورڙو.

صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا. سائن ان ڪريو، توهان جي مهرباني.

ڇا توهان کي GOST 34.10-2012 مطابق سرٽيفڪيٽن سان TLS قائم ڪرڻ لاءِ هدايتون گهرجن:

  • ها، TLS-GOST تمام ضروري آهي

  • نه، GOST الگورتھم سان گڏ ڪرڻ دلچسپ ناهي

44 صارفين ووٽ ڏنو. 9 استعمال ڪندڙن کي روڪيو ويو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو