আমার দুটি ssh পাবলিক কীগুলির একই সূচনা কেন?


25

আমি যে নতুন ল্যাপটপ পেয়েছি তার জন্য পাবলিক কী দিয়ে আমার সার্ভারে অনুমোদিত_কিগুলি ফাইলটি আপডেট করছি এবং আমি অবাক হয়ে অবাক হয়েছি যে দুটি পাবলিক কী একইভাবে শুরু হয়েছিল:

# key 1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ....
#
# key 2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ....

গল্প AAAAB3...ইত্যাদি কি? কিছু অনলাইন অনুসন্ধানের সাথে আমি দেখতে পাচ্ছি যে অন্যের কীগুলিও একইভাবে শুরু হয়। এটি কি অ্যালগরিদম বা সংস্করণ বা কিছু ব্যাখ্যা করে?


1
এটির মূল্যের জন্য, আমার কাছে কয়েকটি কম্পিউটারে কয়েক বছরের ব্যবধানে আমার কাছে 7 টি কী তৈরি হয়েছিল এবং সেগুলি AAAAB3NzaC1yc2EAAAA
দিয়েই

উত্তর:


24

এটি আসলে একটি শিরোনাম যা এটি কী কী তা নির্ধারণ করে। আপনি যদি আরএফসি 4253 এর সর্বজনীন কী অ্যালগরিদম বিভাগটি পরীক্ষা করেন তবে আমরা এটি দেখতে পারি আরএসএ কীগুলির জন্য

"Ssh-rsa" কী বিন্যাসে নিম্নলিখিত নির্দিষ্ট এনকোডিং রয়েছে:

 string    "ssh-rsa"
 mpint     e
 mpint     n

এখানে 'ই' এবং 'এন' পরামিতিগুলি স্বাক্ষর কী ব্লব গঠন করে।

প্রকৃতপক্ষে, যদি আপনি বেস64 "B3NzaC1yc2E" স্ট্রিংটি ডিকোড করেন তবে দেখবেন এটি ASCII তে "ssh-rsa" হিসাবে অনুবাদ হয়। সম্ভবত "এএএএ" কিছু ধরণের শিরোলেখকে উপস্থাপন করে যাতে অ্যাপ্লিকেশনটি জানতে পারে যে কী প্রক্রিয়াকরণ শুরু করতে ডেটা স্ট্রিমে ঠিক কোথায়।


এটি আরএফসির লিঙ্ক সহ আমি যা বলেছিলাম তার সাথে মিল খুঁজে পাওয়া যায়।
লার্স্ক

@ অ্যালার্কস: আমি এখনও লেখার সময় স্পষ্টতই আপনি জমা দিতে পেরেছিলেন।
স্কট প্যাক

15

এসএসএইচ পাবলিক কী ফর্ম্যাটটি আরএফসি 4253 এ নথিভুক্ত করা হয়েছে এবং কিছুটা এখানে সংক্ষিপ্তসারিত হয়েছে । পিইএম এনকোডেড ডেটাতে বেশ কয়েকটি (দৈর্ঘ্য, ডেটা) জোড়া থাকে এবং প্রথম জোড়াটি অ্যালগরিদমের নাম এনকোড করে, যা এর মতো ssh-rsaবা কিছু হতে চলেছে ssh-dsa

এর অর্থ সমস্ত ssh কীগুলির জন্য সর্বজনীন কী ডেটার প্রাথমিক অংশটি একই রকম হতে চলেছে।


2

ফানসিগুলির জন্য স্কটের লিঙ্কগুলি অনুসরণ করার পরে আমি ফর্ম্যাটটিতে একটি ওভারকিল ডিপ ডুব দিয়েছিলাম। TLDR:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
       |  "ssh-rsa"   |exponent|   modulus

আরএফসি 4231 ব্যবহৃত দুটি ডেটা প্রকারগুলি নির্দিষ্ট করে:

  • string: নির্বিচারে দৈর্ঘ্য বাইনারি স্ট্রিং। স্ট্রিংগুলিতে নাল অক্ষর এবং 8-বিট অক্ষর সহ নির্বিচারে বাইনারি ডেটা থাকার অনুমতি দেওয়া হয়। তারা এর uint32দৈর্ঘ্যযুক্ত হিসাবে সংরক্ষণ করা হয়

  • mpint: দুটির পরিপূরক বিন্যাসে একাধিক নির্ভুলতা পূর্ণসংখ্যার প্রতিনিধিত্ব করে, স্ট্রিং হিসাবে সঞ্চিত, বাইট প্রতি 8 বিট, এমএসবি প্রথমে। [...]

আরএফসি 4253 সেকেন্ড 6.6 বলছে কীটি এনকোড হয়েছে:

"Ssh-rsa" কী বিন্যাসে নিম্নলিখিত নির্দিষ্ট এনকোডিং রয়েছে:

string    "ssh-rsa"
mpint     e
mpint     n

এখানে 'ই' এবং 'এন' পরামিতি স্বাক্ষর কী ব্লব গঠন করে। [এড: তবে ব্লবটিতে স্ট্রিংও রয়েছে বলে মনে হচ্ছে "ssh-rsa"...]

ফলাফল হিসাবে স্বাক্ষর নীচে এনকোড করা হয়েছে:

string    "ssh-rsa"
string    rsa_signature_blob

'Rsa_signature_blob' এর জন্য মান একটি স্ট্রিং ধারণকারী s হিসেবে এনকোডেড হয়েছে : [কি না জানি না গুলি হল এড।] (নেটওয়ার্ক বাইট অনুক্রমে যা একটি পূর্ণসংখ্যা, লেন্থ বা প্যাডিং, স্বাক্ষরবিহীন ছাড়া আর)।

"ssh-rsa"

স্ট্রিংটি ssh-rsaরূপান্তরিত হয় \x00\x00\x00\x07ssh-rsa, যা এর পরে এনকোড হয় AAAAB3NzaC1yc2E=, সুতরাং সমস্ত ssh-rsa কী এর সাথে শুরু করা উচিত।

e, পাবলিক এক্সপোনেন্ট

সাধারণত 3, 17, 257, 65537 এর মতো কিছু Those এই সংখ্যাগুলি নীচের মত এনকোড হয়ে যায় (উপরের দিক থেকে পিছন পিছন আসন সহ)

  • 3 → '\x00\x00\x00\x01\x03'AAAABAw
  • 17 → '\x00\x00\x00\x01\x11'AAAABEQ
  • 257 → '\x00\x00\x00\x02\x01\x01'AAAACAQE
  • 65537 / 0x10001 → '\x00\x00\x00\x03\x01\x00\x01'AAAADAQAB

সুতরাং, আপনি যদি "বিএডাব্লু" দেখেন তবে আপনার ঘাঁটিঘটিত 3 বা "DAQAB" = 65537 ছিল 37

n, মডুলাস (আপনার দুটি গোপন প্রাথমিকের পণ্য, এটি ফ্যাক্টর!)

AAABAQউপরেরটির অর্থ হল আপনার মূল দৈর্ঘ্য 2048 বিট (এবং আপনার ঘাঁটিটি 6464 প্যাডিংয়ের কারণে DAQAB এর মতো ছিল)। বেস 64 এর পুরো বাকী অংশটি হ'ল, এর পরে আর কিছুই নেই।

অন্যান্য মডুলাসের উপসর্গগুলি সাধারণ হতে পারে:

  • AAAAg 1024 বিট, ই = 0x10001
  • AAAQI: 2048 বিট, ই = 3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.