এসএসএইচ: ডিএইচ_জিএক্স গ্রুপ সীমার বাইরে


18

আমরা সম্প্রতি ওপেনএসএইচ-এর জন্য বিক্রেতা-সরবরাহিত প্যাচটি প্রয়োগ করেছি। এই প্যাচটি সাম্প্রতিক লগজাম আক্রমণের প্রতিক্রিয়া হিসাবে কয়েকটি কী এক্সচেঞ্জ প্রোটোকল অক্ষম করেছে। এই প্যাচটি প্রয়োগ করার পরে, আমাদের কয়েক জন বিক্রেতা রয়েছে যার সাথে আমরা এসএফটিপি এর মাধ্যমে ফাইলগুলি বিনিময় করতে পারিনি কারণ সংযোগ আলোচনাটি ব্যর্থ হচ্ছে (সম্ভাব্য অবমূল্যায়িত কী এক্সচেঞ্জ অ্যালগরিদমের কারণে)।

আমি কেবল আমাদের বিক্রেতাদের সাথে কথা বলার আগে বেশ কয়েকটি জিনিস যা আমরা দেখতে পাচ্ছি তা যাচাই করতে চাই। এখানে সমস্যা বিক্রেতাদের মধ্যে একটির সাথে একটি নমুনা এসএসএইচ অধিবেশন (লাইন নম্বর যুক্ত):

# ssh -vv user@host.domain.com
01 OpenSSH_6.2p2, OpenSSL 0.9.8j-fips 07 Jan 2009
02 debug1: Reading configuration data /etc/ssh/ssh_config
03 debug1: /etc/ssh/ssh_config line 20: Applying options for *
04 debug2: ssh_connect: needpriv 0
05 debug1: Connecting to host.domain.com [1.2.3.4] port 22.
06 debug1: Connection established.
07 debug1: permanently_set_uid: 0/0
08 debug1: identity file /root/.ssh/id_rsa type -1
09 debug1: identity file /root/.ssh/id_rsa-cert type -1
10 debug1: identity file /root/.ssh/id_dsa type -1
11 debug1: identity file /root/.ssh/id_dsa-cert type -1
12 debug1: identity file /root/.ssh/id_ecdsa type -1
13 debug1: identity file /root/.ssh/id_ecdsa-cert type -1
14 debug1: Enabling compatibility mode for protocol 2.0
15 debug1: Local version string SSH-2.0-OpenSSH_6.2
16 debug1: Remote protocol version 2.0, remote software version GXSSSHD_Comments
17 debug1: no match: GXSSSHD_Comments
18 debug2: fd 3 setting O_NONBLOCK
19 debug1: SSH2_MSG_KEXINIT sent
20 debug1: SSH2_MSG_KEXINIT received
21 debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
22 debug2: kex_parse_kexinit: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss
23 debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
24 debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
25 debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
26 debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
27 debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
28 debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
29 debug2: kex_parse_kexinit:
30 debug2: kex_parse_kexinit:
31 debug2: kex_parse_kexinit: first_kex_follows 0
32 debug2: kex_parse_kexinit: reserved 0
33 debug2: kex_parse_kexinit: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
34 debug2: kex_parse_kexinit: ssh-dss,ssh-rsa
35 debug2: kex_parse_kexinit: aes128-cbc,3des-ctr,aes128-ctr,3des-cbc,blowfish-cbc,arcfour,arcfour128
36 debug2: kex_parse_kexinit: aes128-cbc,3des-ctr,aes128-ctr,3des-cbc,blowfish-cbc,arcfour,arcfour128
37 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-md5-96,hmac-sha1-96,hmac-sha256,hmac-sha256@ssh.com
38 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-md5-96,hmac-sha1-96,hmac-sha256,hmac-sha256@ssh.com
39 debug2: kex_parse_kexinit: none,zlib
40 debug2: kex_parse_kexinit: none,zlib
41 debug2: kex_parse_kexinit:
42 debug2: kex_parse_kexinit:
43 debug2: kex_parse_kexinit: first_kex_follows 0
44 debug2: kex_parse_kexinit: reserved 0
45 debug2: mac_setup: found hmac-md5
46 debug1: kex: server->client aes128-ctr hmac-md5 none
47 debug2: mac_setup: found hmac-md5
48 debug1: kex: client->server aes128-ctr hmac-md5 none
49 debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1536<3072<8192) sent
50 debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
51 DH_GEX group out of range: 1536 !< 1024 !< 8192`

সুতরাং কী বিনিময় আলোচনার সময় ক্লায়েন্ট এবং সার্ভার তাদের সমর্থিত অ্যালগোরিদমগুলির তালিকা (লাইন 21 এবং 33) বিনিময় করে। তারা এই ক্ষেত্রে দুটি তালিকায় পাওয়া প্রথম ম্যাচটি ব্যবহার করতে সম্মত diffie-hellman-group-exchange-sha1। যেহেতু আমি এটি বুঝতে পারি, এই অ্যালগরিদম ক্লায়েন্ট এবং সার্ভারের পরে আলোচনার জন্য বিট দৈর্ঘ্যের একটি পরিসীমা সমর্থন করে। সাধারণ পরিস্থিতিতে ক্লায়েন্ট এবং সার্ভারটি কিছুটা দৈর্ঘ্যের সাথে একমত হয় এবং moduliফাইল থেকে ডিএইচ প্রাইম ব্যবহার করে কী বিনিময় করে , উদাহরণস্বরূপ /etc/ssh/moduli(আমি জানি এই শেষ বিবৃতিটি খুব "সাধারণ লোকের বক্তব্য ") তবে এটি প্রায় দীর্ঘ এবং সংক্ষিপ্ত এটা)।

এই ক্ষেত্রে, আমি যা দেখছি তা হ'ল বিট-দৈর্ঘ্যের আলোচনাটি ব্যর্থ হচ্ছে। 49 নং লাইনে, ক্লায়েন্ট (আমাকে) বলছে "আমি 1536 থেকে 8192 এর মধ্যে বিট দৈর্ঘ্য সমর্থন করি এবং 3072 বিট ব্যবহার করতে চাই।" যাইহোক, সার্ভারটি জবাব দেয় এবং বলে "আমি কেবল 1024 বিট সমর্থন করি।" এই মুহুর্তে ক্লায়েন্ট হাল ছেড়ে দিয়ে বলেন "আমি আপনার সাথে কথা বলতে পারছি না"। এখানে কি ঘটছে এর এটি কি যুক্তিসঙ্গত বিবরণ?

যেহেতু আমি এটি বুঝতে পারি, সমস্যাটি সম্পূর্ণরূপে এই মুহুর্তে সার্ভারের শেষে রয়েছে (ধরে নেওয়া আমরা কোনও দুর্বল অ্যালগরিদমের মতো আলোচনা করি না diffie-hellman-group1-sha1)। কী এক্সচেঞ্জ প্রক্রিয়া চলাকালীন বড় বিট দৈর্ঘ্য সমর্থন করার জন্য সার্ভারটি সংশোধন করতে হবে।

আমি নিশ্চিত করতে চাই যে আমি এগিয়ে যাওয়ার আগে এটি সঠিকভাবে বুঝতে পারছি। ইনপুট প্রশংসা করা হয়।


1
আপনি এটা ঠিক পড়ছেন। পৃথিবীর অপর প্রান্তে কী আছে? এটি কোনও সাধারণ ssh সার্ভারের মতো দেখাচ্ছে না।
মাইকেল হ্যাম্পটন

সার্ভারটি কী তা ধারণা নেই। আমরা দুটি ভিন্ন বিক্রেতার সাথে একই সমস্যাটি अनुभव করছি, উভয়ই ব্যাংক। কোনও সার্ভারই ​​অধিবেশনগুলিতে নিজেকে সনাক্ত করে না (যা অবাক হওয়ার মতো নয়)
21-22 এ sbrown

আপনি ভাবতেন যে সুরক্ষার দিক থেকে ব্যাংকগুলি আরও কিছুটা হবে, তবে হায় হায় ...
মাইকেল হ্যাম্পটন

2
"জিএক্সএসএসএসএইচডি_কমেন্টস" অনুসন্ধান করে বিভিন্ন এসএফটিপি ক্লায়েন্ট ফোরামে মন্তব্য আসে, যার ফলে মনে হয় যে আপনার সার্ভারটি জিএক্সএস এমএফটি অ্যাপ্লিকেশন - খুব উদ্যোগ।
কাস্তাগলিয়া

উত্তর:


21

অবহেলিত সার্ভারগুলিতে সংযোগ রাখতে আপনি যদি নতুন ওপেনএসএসএইচ ব্যবহার করতে চান:

ssh -o KexAlgorithms=diffie-hellman-group14-sha1 -o HostKeyAlgorithms=+ssh-dss my.host.com

আপনি কী ঘটছে তা দেখতে চাইলে অ্যাড-ভি যোগ করুন এবং -ও হোস্টকিএলগোরিদমস = এসএসএস-ডিএসএস যদি এটি এখনও কাজ করে না:

ssh -v -o HostKeyAlgorithms=ssh-dss -o KexAlgorithms=diffie-hellman-group14-sha1 my.host.com

আপনি অবশ্যই সম্পাদনা করতে পারেন / ইত্যাদি / এসএসএস / এসএস_কনফিগ বা ~ / .ssh / ssh_config, এবং যোগ করতে পারেন:

Host my.host.com *.myinsecure.net 192.168.1.* 192.168.2.*
    HostKeyAlgorithms ssh-dss
    KexAlgorithms diffie-hellman-group1-sha1    

https://forum.ctwug.za.net/t/fyi-openssh-to-access-rbs-openssh-7/6069 মিক্রোটিক রাউটারবোর্ডগুলিতে নিম্নলিখিত ফিক্সের উল্লেখ করেছে:

/ip ssh set strong-crypto=yes

(এটি এখানে লক্ষণীয় কারণ অনুরূপ ত্রুটি বার্তা খুঁজতে গিয়ে এই উত্তরটি ওয়েব অনুসন্ধানেও আসে on)

আপনি যদি নিজের ssh_config সম্পাদনা না করে বা এসএসএইচ সার্ভার আপডেট না করে গিটের ওপরে এটি ব্যবহার করতে চান:

GIT_SSH="ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=diffie-hellman-group14-sha1" git clone ssh://user@host/path-to-repository

2
এটি sftp এর জন্যও কাজ করে
bao7uo

11

দেখে মনে হচ্ছে আপনি এই বাগটিকে আঘাত করেছেন ।

কারণ

ডিফি-হেলম্যান গ্রুপ এক্সচেঞ্জের সাথে ডিল করে ওপেনশ প্যাকেজে একটি পরিবর্তন আনা হয়েছিল। পূর্বে, 1024 - 8192 আকারের কীগুলি বিনিময় করা যেতে পারে। অতিরিক্ত সুরক্ষা এবং "লগজাম" দুর্বলতা এড়ানোর জন্য সর্বনিম্ন 1515 করা হয়েছিল। তবে, কিছু তৃতীয় পক্ষের ssh বাস্তবায়ন যা শুধুমাত্র 1024 সমর্থন করে তা ব্যবহার করা গেলে ব্যর্থতা দেখা দেবে। আদর্শভাবে, তৃতীয় পক্ষের এসএসএস কনফিগারেশন বা কোড বৃহত্তর কী আকার ব্যবহার করতে আপডেট করা উচিত।

...

আপনি লিঙ্কে 3 টি পৃথক রেজোলিউশন পেতে পারেন। পরিস্থিতিতে আপনার প্রশাসনিক ক্ষমতা নেই বা গভীর পরিবর্তন আনার জন্য খুব বেশি আমলাতন্ত্র রয়েছে, সার্ভারে SHA-2 উপলব্ধতার জন্য অপেক্ষা করার সময় সমস্যাযুক্ত অ্যালগরিদম থেকে মুক্তি পেয়ে আমার কাছে সেরা বিকল্প বলে মনে হয়েছিল। এমনকি আপনি এটি আপনার $ HOME / .ssh / config ফাইলটিতে একটি ব্যবহারকারী ভিত্তিক ফ্যাশনে সম্পাদন করতে পারেন।

KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.