আমি কীভাবে সিফার এবং সিফার মোডগুলি dm-crypt / LUKS এ ব্যবহার করতে পারি তা নির্ধারণ করব?


14

আমি একটি উবুন্টু ভিত্তিক সিস্টেম ব্যবহার করছি এবং আমার কাছে সাইফার এবং সিফার মোডগুলি কী উপলব্ধ তা নির্ধারণ করতে আমার অসুবিধা হচ্ছে।

ক্রিপ্টসেটআপ ম্যান পৃষ্ঠাটি বলেছেন:

"উপলভ্য বিকল্পগুলির তালিকার জন্য দেখুন / proc / crypto দেখুন to

আমার / প্রকোপ / ক্রিপ্টোটির এতে খুব কম রয়েছে। লোড করার জন্য কোন অতিরিক্ত কার্নেল ক্রিপ্টো মডিউলগুলি উপলব্ধ তা আমি কীভাবে জানতে পারি?


/lib/modules/*/kernel/crypto/দেখার সম্ভাব্য জায়গা, তবে মডিউলগুলি ফাইল সিস্টেমে যে কোনও জায়গায় থাকতে পারে।
চিহ্নিত করুন

2
আমি মনে করি এটি একটি ভাল প্রশ্ন। আমি নিজে এই তথ্য খুঁজছি। /proc/cryptoদুর্দান্ত, তবে এটি বৈধ সাইফার স্ট্রিংগুলির তালিকা করে না; মত জিনিস aes-xts-plain64বা aes-cbc-essiv:sha256। একটি ভাল উত্তর সেই তথ্য সরবরাহ করে এবং /lib/modules...তা ব্যবহার করতে কোন মডিউলগুলি লোড করা দরকার তা দেখায় ।
স্টারফ্রি

@ স্টারফ্রি আমিও এতে আগ্রহী। সেখানে কি সাইফার স্ট্রিং হওয়া উচিত এবং কি আমার ভিতরে মধ্যে কোন নামকরণ চিঠিপত্রের এর মত /proc/crypto। এটা বোঝা যায় না।
সিএমসিডিগ্রাগনকাই

উত্তর:


10

অনেকগুলি নথি এবং ম্যান পৃষ্ঠাগুলি পড়তে হবে তবে একটি নথি যা আপনাকে বিশেষভাবে আগ্রহী তা হ'ল LUKS অন ডিস্ক ফর্ম্যাট স্পেসিফিকেশন (পিডিএফ)।

পরিশিষ্ট বি (যা প্রাকৃতিকভাবে শেষের নিকটে) বলে,

সাইফার এবং হ্যাশ স্পেসিফিকেশন রেজিস্ট্রি

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

বৈধ সাইফারের নামগুলি সারণি 1 এ তালিকাভুক্ত করা হয়েছে।

বৈধ সাইফার মোডগুলি টেবিল 2-এ তালিকাভুক্ত করা হয়েছে, চুক্তি অনুসারে, আইভি এবং টুইটগুলি ব্যবহার করে সাইফার মোডগুলি সর্ব্ব-শূন্য IV / টুইট থেকে শুরু হওয়া আবশ্যক। এটি এনক্রিপ্ট / ডিক্রিপ্ট আদিমগুলিতে সমস্ত কলগুলির জন্য প্রযোজ্য বিশেষত কী উপাদানগুলি পরিচালনা করার সময়। তদুপরি, এই আইভিগুলি / টুইটগুলি সাইফার মোডগুলি সাধারণত সেক্টরের সীমানায় টুইটগুলি / আইভিগুলি পুনর্বিবেচনা করে সাইফার প্রবাহকে স্বাধীন ব্লকের মধ্যে কেটে দেয় cut প্রথম এনক্রিপ্ট করা / ডিক্রিপ্টেড ব্লকের জন্য অল-জিরো IV / টুইঙ্ক প্রয়োজনীয়তাটি প্রয়োজনীয়তাটির সমতুল্য যা প্রথম ব্লকটি সেক্টর 0-এ বিশ্রামে সংজ্ঞায়িত করা হয়েছে।

টেবিল 3 হ্যাশ-স্প্যাক ফিল্ডের জন্য বৈধ হ্যাশ স্পেস তালিকাভুক্ত করে । একটি সুসংগত বাস্তবায়ন সমস্ত সাইফার, সাইফার মোড বা হ্যাশ স্পেসিফিকেশন সমর্থন করতে হবে না।

সারণী 1: বৈধ সাইফারের নাম

  • এএস - অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড - ফেড পাব 197
  • টুইফিশ - টোওফিশ: একটি 128-বিট ব্লক সাইফার - http://www.schneier.com/paper-twofish-paper.html     (নীচে দেখুন)
  • সর্প - http://www.cl.cam.ac.uk/~rja14/serpent.html
  • কাস্ট 5 - আরএফসি 2144
  • কাস্ট 6 - আরএফসি 2612

সারণী 2: বৈধ সাইফার মোডগুলি

  • ecb - সাইফার আউটপুট সরাসরি ব্যবহার করা হয়
  • সিবিসি-প্লেইন - সাইফারটি সিবিসি মোডে পরিচালিত হয়। সিবিসি চেইন প্রতিটি সেক্টর কেটে নেওয়া হয় এবং প্রাথমিক ভেক্টর হিসাবে সেক্টরের নম্বর দিয়ে পুনরায় পুনরায় তৈরি করা হয় (32-বিট এবং লিটল-এডিয়ান রূপান্তরিত)। এই মোডটি [Fru05b], অধ্যায় 4 এ নির্দিষ্ট করা হয়েছে।
  • cbc-essiv: hash - সিফারটি মূল চাবিটির জন্য IV কী তৈরির জন্য হ্যাশ ব্যবহার করে ESSIV মোডে পরিচালিত হয় । উদাহরণস্বরূপ, sha256 হ্যাশ হিসাবে ব্যবহার করার সময়, সাইফার মোড স্পেসটি হল "সিবিসিসিভ: শ 256"। ESSIV [Fru05b], অধ্যায় 4 এ নির্দিষ্ট করা হয়েছে।
  • এক্সটিস-প্লেয়ার 64৪ - http://grouper.ieee.org/groups/1619/email/pdf00086.pdf, প্লেইন 64 হ'ল সরল প্রাথমিক ভেক্টরের 64-বিট সংস্করণ

সারণী 3: বৈধ হ্যাশ বিশেষ উল্লেখ

  • sha1 - আরএফসি 3174 - মার্কিন সুরক্ষিত হ্যাশ অ্যালগরিদম 1 (SHA1)
  • sha256 - এসএএএএর বৈকল্পিক FIPS 180-2 অনুসারে
  • sha512 - এসএএএএফেরিয়ানএফসি 180-2 অনুসারে
  • ripemd160 - http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html    (নীচে দেখুন)

সম্পাদকের দ্রষ্টব্য: উপরেরটি নির্দিষ্টকরণ থেকে অনুলিপি করা হয়েছে। এর লেখার পরে, এই দস্তাবেজের URL গুলি পরিবর্তিত হয়েছে:


1

আপনি নিম্নলিখিত কমান্ড দিয়ে আপনার কার্নেল দ্বারা সমর্থিত সিফারগুলি তালিকাভুক্ত করতে পারেন,

[root@arif]# ls /lib/modules/[your kernel version]/kernel/crypto/
algif_rng.ko.xz   blowfish_common.ko.xz   cmac.ko.xz               cts.ko.xz          gf128mul.ko.xz           michael_mic.ko.xz  rsa_generic.ko.xz      tgr192.ko.xz           xts.ko.xz
ansi_cprng.ko.xz  blowfish_generic.ko.xz  crc32_generic.ko.xz      deflate.ko.xz      ghash-generic.ko.xz      pcbc.ko.xz         salsa20_generic.ko.xz  twofish_common.ko.xz   zlib.ko.xz
anubis.ko.xz      camellia_generic.ko.xz  crct10dif_common.ko.xz   des_generic.ko.xz  jitterentropy_rng.ko.xz  pcrypt.ko.xz       seed.ko.xz             twofish_generic.ko.xz
arc4.ko.xz        cast5_generic.ko.xz     crct10dif_generic.ko.xz  dh_generic.ko.xz   khazad.ko.xz             rmd128.ko.xz       serpent_generic.ko.xz  vmac.ko.xz
async_tx          cast6_generic.ko.xz     cryptd.ko.xz             drbg.ko.xz         lrw.ko.xz                rmd160.ko.xz       sha512_generic.ko.xz   wp512.ko.xz
authencesn.ko.xz  cast_common.ko.xz       crypto_null.ko.xz        fcrypt.ko.xz       mcryptd.ko.xz            rmd256.ko.xz       tcrypt.ko.xz           xcbc.ko.xz
authenc.ko.xz     ccm.ko.xz               crypto_user.ko.xz        gcm.ko.xz          md4.ko.xz                rmd320.ko.xz       tea.ko.xz              xor.ko.xz

আপনি যে সাইফার এবং হ্যাশগুলি ব্যবহার করতে পারেন এবং তাদের I / O তুলনা করে luksনিম্নলিখিত কমান্ড দ্বারা তালিকাবদ্ধ করতে পারেন ,

[root@arif arif]# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       289342 iterations per second for 256-bit key
PBKDF2-sha256     353293 iterations per second for 256-bit key
PBKDF2-sha512     227555 iterations per second for 256-bit key
PBKDF2-ripemd160  233224 iterations per second for 256-bit key
PBKDF2-whirlpool  236165 iterations per second for 256-bit key
argon2i       4 iterations, 917485 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 951672 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b       642.2 MiB/s      2495.8 MiB/s
    serpent-cbc        128b        89.3 MiB/s       542.6 MiB/s
    twofish-cbc        128b       100.4 MiB/s       343.1 MiB/s
        aes-cbc        256b       477.2 MiB/s      1979.2 MiB/s
    serpent-cbc        256b        89.3 MiB/s       538.9 MiB/s
    twofish-cbc        256b       173.3 MiB/s       343.1 MiB/s
        aes-xts        256b      1668.0 MiB/s      1664.1 MiB/s
    serpent-xts        256b       535.7 MiB/s       523.4 MiB/s
    twofish-xts        256b       332.6 MiB/s       339.8 MiB/s
        aes-xts        512b      1384.5 MiB/s      1380.7 MiB/s
    serpent-xts        512b       539.3 MiB/s       524.4 MiB/s
    twofish-xts        512b       335.0 MiB/s       340.1 MiB/s

আপনি নিম্নলিখিত কমান্ড দ্বারা নির্দিষ্ট সাইফার তুলনা করতে পারেন,

[root@arif]# ciphers="aes-xts serpent-xts anubis-xts"

[root@arif]# echo "#     Algorithm |       Key |      Encryption |      Decryption";for i in $ciphers ; do cryptsetup benchmark --cipher $i|tail -n 1; done

#     Algorithm |       Key |      Encryption |      Decryption
        aes-xts        256b      1613.9 MiB/s      1642.8 MiB/s
    serpent-xts        256b       538.9 MiB/s       521.9 MiB/s
     anubis-xts        256b       182.0 MiB/s       182.1 MiB/s


উপরের ৫৮ টি ফাইলের মধ্যে কোনটি ক্রিপ্টসেটআপ সামঞ্জস্যপূর্ণ সাইফার মোডে রূপান্তর করবে তা আপনি কীভাবে জানবেন? এটি
মাপদণ্ডের

1

5.1 কার্নেল, আমি এটি লেখার সময় কার্নেলের সিফার স্ট্রিং, "পুরানো" ফর্ম্যাট এবং "নতুন" ফর্ম্যাটটির জন্য দুটি পৃথক ফর্ম্যাট রয়েছে। এই প্রশ্নটির এতদূর পর্যন্ত সমস্ত কিছু এবং স্পষ্টতই সমস্ত ডক্সও "পুরানো" ফর্ম্যাটটি নিয়ে কাজ করে, তাই আমি এখানে এটি বর্ণনা করব। এটি কেবল এনক্রিপশনের জন্য। যদি ডিএম-ক্রিপ্টের সাথে সততা ব্যবহার করা হয় তবে অবশ্যই একজনকে অবশ্যই এএইডি সিফার বিবেচনা করতে হবে এবং এটি আরও জটিল হয়ে উঠবে।

কার্নেলের দ্বারা বিশ্লেষণ করা ফর্ম্যাটটি হ'ল " সাইফার [ :কীকাউন্ট ] -মোড -আইভমড [ :আইভপটস ]"। উদাহরণ: aes-xts-plain64, blowfish-cbc-essiv:sha256, aes:64-cbc-lmk

  • সাইফার ব্যবহার সাইফার, উদাহরণaes,anubis,twofish,arc4, ইত্যাদি কার্নেল dm-crypt চালক সাইফারগুলির একটি তালিকা নেই। এটি লিনাক্স ক্রিপ্টো এপিআইতে পৌঁছেছে, তাই কার্নেল দ্বারা সমর্থিত উপযুক্ত উপযুক্ত সাইফার ব্যবহার করা যেতে পারে।

  • কিফাউন্ট সিফার সহ দুটি সংখ্যক কীগুলির alচ্ছিক শক্তি। lmkআইভমডব্যতীতযেকোনকিছুর জন্যএটি ডিফল্ট, যেখানে এটি 64৪ এ ডিফল্ট This এটি কেবলমাত্র এলএমকে ক্ষেত্রে প্রযোজ্য এবং 1 টির চেয়ে অন্যান্য মানগুলি অন্যান্য মোডের সাথে সঠিকভাবে কাজ করবে না।

  • মোড সাইফারের সাথে ব্যবহারের জন্য ব্লক চেইনিং মোড। উদাহরণ হলecb,cbc,xtsecbIV ব্যবহার করে নাতা জানার বাইরে, এমডি-ক্রিপ্ট ড্রাইভার এটিকে লিনাক্স ক্রিপ্টো এপিআইতে দেয় এবং কার্নেলের দ্বারা সমর্থিত যে কোনও চেইন মোড ব্যবহার করতে পারে।

  • আইভমোড অ্যালগরিদম প্রতিটি সেক্টরের জন্য ইনিশিয়েশন ভেক্টর (আইভি) উত্পন্ন করতে ব্যবহৃত হয়। সাধারণ প্রতিসম কী কী এনক্রিপশনে, ডিএম-ক্রিপ্টের বিপরীতে, আইভিটি এনক্রিপ্ট করা বা ডিক্রিপ্ট করার সময় কী সহ বরাবর সাইবারে আরও একটি ডেটা পাস করা হয়। পুরো অপারেশনের জন্য মাত্র একটি চতুর্থ পাস করেছে in যেহেতু dm-crypt প্রতিটি সেক্টরকে স্বতন্ত্রভাবে পড়তে এবং লিখতে সক্ষম হওয়া দরকার তাই এটি সম্পূর্ণ ডিস্ককে একক ক্রিয়াকলাপ হিসাবে এনক্রিপ্ট করে না। পরিবর্তে, প্রতিটি সেক্টরের জন্য একটি আইভি রয়েছে। আইভি হিসাবে ডেটা হিসাবে পাস করার পরিবর্তে, আইভিগুলি তৈরির জন্য একটি অ্যালগরিদম এখানে নির্দিষ্ট করা হয়েছে। এটি লিনাক্স ক্রিপ্টো এপিআই-র অংশ নয়, যেহেতু আইভি প্রজন্মটি সাইফার দ্বারা সম্পন্ন হয় না, এবং অনুমোদিত আইভমড মানগুলি ডিএম-ক্রিপ্ট ড্রাইভারকে সংজ্ঞায়িত করা হয়। তারা হ'ল:

    • plain, plain64, plain64be, benbi এই কেবল খাতে নম্বর, ব্যবহার বিভিন্ন ফর্ম্যাটের চতুর্থ হিসাবে। এক্সটিএসের মতো ব্লক মোডের অর্থ যা একটি সহজ এবং অনুমানযোগ্য IV ব্যবহার করার সময় ওয়াটারমার্কিংয়ের মতো আক্রমণগুলি প্রতিরোধ করার জন্য ডিজাইন করা হয়েছে। plain64সর্বাধিক প্রস্তাবিত বলে মনে হয়।
    • nullচতুর্থটি সর্বদা শূন্য থাকে। পরীক্ষার জন্য এবং পিছনে সামঞ্জস্যের জন্য, আপনার এটি ব্যবহার করা উচিত নয়।
    • lmk লুপ-এএস এনক্রিপশন স্কিমের সাথে সামঞ্জস্যপূর্ণ।
    • tcw ট্রুক্রিপ্টের সাথে সামঞ্জস্যপূর্ণ।
    • essivকী এর একটি হ্যাশ সহ এনক্রিপ্ট করা সেক্টর নম্বর ব্যবহার করে। সিবিসি-র মতো মোডের জন্য, যা সাধারণ চতুর্থ লাইক ব্যবহার করার সময় বিভিন্ন আক্রমণ প্রতিরোধী হয় না plain64
  • আইভপটস হ্যাশessiv আইভমডের সাথেব্যবহার করা হবে, অন্য সমস্ত মোডের জন্য উপেক্ষা করা হবে।

একটি বিশেষ কেস হিসাবে, " সাইফার-plain " বা কেবল " সিফার " কে " সাইফার-cbc-plain " হিসাবে ব্যাখ্যা করা হয় । আর একটি বিশেষ কেস হল মোডটির নির্দিষ্ট করার জন্য ecbকোনও আইভমড নেই ।

এটি কীভাবে সম্পর্কিত /proc/crypto

সম্মানের সাথে /proc/crypto, কেবল সাইফার এবং মোড প্রাসঙ্গিক। " মোড (সিফার) " ফর্মটির একটি ক্রিপ্টো এপিআই স্পেসিফিকেশন সহ ডিএম-ক্রিপ্ট এবং কার্নেল থেকে এটি অনুরোধ করুন। এটির জন্য একটি /proc/cryptoহিসাবে সন্ধান করা উচিত । উদাহরণ:nameskcipher

name         : xts(aes)
driver       : xts-aes-aesni
module       : kernel
priority     : 401
refcnt       : 1
selftest     : passed
internal     : no
type         : skcipher
async        : yes
blocksize    : 16
min keysize  : 32
max keysize  : 64
ivsize       : 16
chunksize    : 16
walksize     : 16

typeএর skcipherএই একটি প্রতিসম কী সাইফার, কি dm-crypt ব্যবহার করে এবং নাম নির্দেশ করে xts(aes)লিখিত হবে aes-xtsdm-সমাধিগৃহ সঙ্গে নির্দিষ্ট করা হয়েছে। keysizeকি কী মাপ এই গোল্লা সাথে ব্যবহার করা যাবে ক্ষেত্র এছাড়াও আমাদের বলুন।

এটি যদি কোনও মডিউল থেকে হয় তবে মডিউলটির নামটি moduleলাইনে প্রদর্শিত হতে পারে । তবে, অনেক সাইফার (সাধারণত সফ্টওয়্যারগুলিতে যাদের কোনও হার্ডওয়্যার নির্দিষ্ট কোড নেই) জেনেরিক সাইফার হিসাবে প্রয়োগ করা হয় যা জেনেরিক ব্লক চেইনিং কোডের সাথে মিলিত হয়ে চূড়ান্ত স্কাইফার তৈরি করে। উদাহরণ স্বরূপ:

name         : xts(anubis)
driver       : xts(ecb(anubis-generic))
module       : kernel
type         : skcipher

name         : anubis
driver       : anubis-generic
module       : anubis
type         : cipher

এক্ষেত্রে আনুবিস সাইফারটি কার্নেল এক্সটিএস ব্লক চেইনিং মোড কোডের সাথে একত্রে চূড়ান্ত সাইফার তৈরি করে xts(anbuis), যার একটি মডিউল নির্ধারিত হয়েছে kernel। তবে এটি উপলভ্য পেতে আমাদের জেনেরিক অ্যানুবিস সাইফারটি দরকার যা anubisমডিউল থেকে । বেশিরভাগ সিফারগুলিতে " crypto-সাইফার " মডিউল উপন্যাস থাকে যা এগুলি লোড করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ modprobe crypto-anubisমডিউল লোড হবে যা অ্যানুবিস সিফার সরবরাহ করে।

cryptsetup benchmarkকমান্ডটি ব্যবহার করার সময় , কেবল সাইফার এবং মোড বিষয়টি বিবেচনা করে, যেহেতু এটিই বেঞ্চমার্কযুক্ত। তাহলে মোড সিবিসি তা অক্ষমতা সুনির্দিষ্ট করা নেই। Ivmode সম্পূর্ণভাবে উপেক্ষা করা হয়। সুতরাং, মাপকাঠিতে জন্য, aes, aes-cbc, এবং aes-cbc-foobarসব সমতুল্য।

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