ගොනු පද්ධති steganography

හේ හබ්ර්.

මම ඔබට කුඩා ව්‍යාපෘතියක් ඉදිරිපත් කිරීමට කැමතියි steganography, පාඩම් කිරීමෙන් මගේ නිදහස් කාලය තුළ හැදුවා.

මම ගොනු පද්ධතියේ සැඟවුණු තොරතුරු ගබඩා කිරීම පිළිබඳ ව්‍යාපෘතියක් කළෙමි (තවදුරටත් එෆ්එස්).
අධ්‍යාපනික අරමුණු සඳහා රහස්‍ය තොරතුරු සොරකම් කිරීමට මෙය භාවිතා කළ හැක.

ගොනු පද්ධති steganography

ඉතා පැරණි Linux FS එකක් මූලාකෘතියක් ලෙස තෝරාගෙන ඇත අතිශය.

Реализация

ක්රියාත්මක කිරීමේ සලකා බැලීම්

ext2 ප්‍රමිතිය “ලෙස” ගැනීම හොඳ නම්, ඔබට FS හි ඊනියා එකක් ඇති බව ප්‍රතිස්ථාපනය කළ හැකිය. Superblocks, පද්ධතිය පිළිබඳ මූලික තොරතුරු සපයයි. මාව හොයාගත්තට පස්සේ Bitmap අවහිර කරන්න и ඉනෝඩ වගුව. වහාම පාහේ, දැනට හිස් FS කුට්ටි වෙත තොරතුරු වාර්තා කිරීමේ අදහස උපත ලැබීය. දැන් සන්නද්ධ ක්‍රමලේඛකයෙකුගෙන් ආරක්ෂාව ගැන සිතීම වටී hex සංස්කාරකය.

ඔබ සැඟවුණු තොරතුරු සංකේතනයකින් තොරව ගබඩා කරන්නේ නම්, FS හි නොපැහැදිලි බවක් තිබියදීත්, එය තවමත් කැපී පෙනෙන ලෙස පෙනෙනු ඇත, විශේෂයෙන් ක්‍රමලේඛකයා සෙවිය යුතු දේ දන්නේ නම්. එබැවින්, මූලාශ්ර ගොනුවේ සියලුම කොටස් සංකේතනය කිරීමට තීරණය විය. මම බ්ලොක් කේතාංකය තෝරා ගත්තා AES, නමුත් ඔබ තේරුම් ගත් පරිදි, මෙය වැදගත් නොවේ.

කියවීමේදී අනෙකුත් සියලුම කොටස් වලින් අවශ්ය කොටස් වෙන් කිරීම සඳහා, බ්ලොක් ආරම්භයේ දී එක් එක් බ්ලොක් සඳහා විශේෂ සලකුණක් එක් කිරීමට තීරණය විය. මූලාශ්‍ර ගොනුවේ ඇති වාරණ අංකය අනුව මෙම ටෝකනය සංකේතනය කර ඇත. මෙම උපක්‍රමය වහාම අවශ්‍ය කුට්ටි සොයා ගැනීමට පමණක් නොව ඒවායේ නිවැරදි අනුපිළිවෙල හඳුනා ගැනීමටද හැකි විය.

පද්ධතියේ පොදු මෙහෙයුම් මූලධර්මය.

ගොනු පද්ධති steganography

පටිගත කිරීමේ ඇල්ගොරිතම

ලකුණු මත:

  • මුලින්ම මූලාශ්ර ගොනු පද්ධතියට යම් තොරතුරු ලියන්න;
  • මෙම තොරතුරු මකන්න (සියල්ලම අවශ්ය නොවේ);
  • සැඟවිය යුතු ගොනුව සමාන දිගකින් යුත් බ්ලොක් වලට බෙදී ඇත, සලකුණක් එකතු කිරීම;
  • මෙම බ්ලොක් සංකේතනය කරන්න;
  • සංකේතාත්මක කුට්ටි හිස් FS කුට්ටි තුළ තබන්න.

බ්ලොක් රූපසටහන් ආදරය කරන්නන් සඳහා

පහත දැක්වෙන්නේ පටිගත කිරීමේ ඇල්ගොරිතමයේ බ්ලොක් රූප සටහනකි. ඇල්ගොරිතමයට ගොනු හතරක් ආදානය ලෙස ලැබේ:
වෙනස් කළ හැකි ගොනු පද්ධතියක රූපය;
- ගොනුව steganography වලට යටත්ව;
AES සඳහා සංකේතාංකන යතුර සහිත ගොනුව;
- සලකුණු කාරකය සහිත ගොනුව.
ගොනු පද්ධති steganography

මෙම ඇල්ගොරිතමයට එක් අඩුපාඩුවක් ඇති බව වහාම සඳහන් කිරීම වටී: ගොනුව FS වෙත ලිවීමෙන් පසු, කරන්න බැහැ FS වෙත අලුත් දෙයක් ලියන්න, ඕනෑම නව තොරතුරක් අපගේ zip ගොනුවට වෙන් කර ඇති බ්ලොක් වල අවසන් විය හැකි බැවින්, මෙය "අපගේ ධාවන පථ ඉක්මනින් ආවරණය කිරීමේ" හැකියාව ද විවෘත කරයි.

නමුත් මෙය නිවැරදි කළ හැක්කේ කෙසේද යන්න ඉතා පැහැදිලිය: FS හි කුට්ටි ලිවීම සඳහා ඇල්ගොරිතම නැවත ලිවීම අවශ්ය වේ. මෙය තේරුම්ගත හැකි නමුත් ඇදහිය නොහැකි තරම් කාලය ගතවන කාර්යයකි.
සංකල්ප ඔප්පු කිරීම සඳහා මම මෙය ක්‍රියාත්මක නොකළෙමි.

එහි ප්‍රතිඵලයක් වශයෙන්, පහත සඳහන් වෙනස්කම් FS වෙත සිදු කරනු ඇත; Stegography ට පෙර FS පෙනෙන්නේ මෙයයි (ශ්‍රව්‍ය ගොනුවක් කලින් පටිගත කර ඇත).
ගොනු පද්ධති steganography
දැනටමත් zip දක්වා ඇති තොරතුරු සමඟ FS පෙනෙන්නේ මෙයයි.
ගොනු පද්ධති steganography

කියවීමේ ඇල්ගොරිතම

ලකුණු මත:

  • යතුර සහ මාර්කර් තැනීමේ ක්‍රමය පිළිබඳ දැනුමක් ඇතිව, පළමු N සලකුණු සම්පාදනය කරන්න, ගොනු පද්ධති බ්ලොක් එකේ දිගෙන් N ගුණ කළ විට සිප් කළ ගොනුවේ දිගට වඩා වැඩි බව සහතිකය;
  • සලකුණු වලින් ආරම්භ වන FS හි කුට්ටි සොයන්න;
  • ලැබුණු කුට්ටි විකේතනය කර සලකුණු වෙන් කරන්න;
  • ලැබෙන කුට්ටි නිවැරදි අනුපිළිවෙලින් එකතු කර මූලාශ්‍ර ගොනුව ලබා ගන්න.

බ්ලොක් රූපසටහන් ආදරය කරන්නන් සඳහා

පහත දැක්වෙන්නේ පටිගත කිරීමේ ඇල්ගොරිතමයේ බ්ලොක් රූප සටහනකි. ඇල්ගොරිතමයට ආදානය ලෙස ගොනු තුනක් ලැබේ:
- ගොනු පද්ධති රූපය;
AES සඳහා සංකේතාංකන යතුර සහිත ගොනුව;
- සලකුණු කාරකය සහිත ගොනුව.
ගොනු පද්ධති steganography

වැඩසටහන ක්‍රියාත්මක වූ පසු, Read ගොනුව දිස්වේ, එය steganographed ගොනු පද්ධතියෙන් උපුටා ගත් ගොනුව වනු ඇත; යතුර හෝ සලකුණු කාරකය වැරදි ලෙස සඳහන් කර ඇත්නම්, කියවීමේ ගොනුව හිස් වනු ඇත.
(අලංකාරයට ආදරය කරන්නන් සඳහා, ඔබට ගොනුව පමණක් නොව, මෙටා-තොරතුරු අඩංගු "ශීර්ෂකය" ඇතුළත් කළ හැකිය: ගොනු නාමය, හිමිකම්, අවසන් වරට වෙනස් කළ කාලය, ආදිය)

ආරම්භක ස්වයංක්‍රීයකරණය

පහසුව සඳහා, ලිනක්ස් මත දියත් කිරීම ස්වයංක්‍රීය කිරීමට bash ස්ක්‍රිප්ට් ලියා ඇත (උබුන්ටු 16.04.3 LTS මත පරීක්ෂා කරන ලදී).
දියත් කිරීම පියවරෙන් පියවර බලමු.
වාර්තාව:

  1. sudo Copy_Flash.sh “DEVICE” - DEVICE (flash) වෙතින් FS රූපය ලබා ගන්න;
  2. ./Write.sh "FILE" "KEY" "MARKER" - අතථ්‍ය පරිසරයක් සාදන්න, අවශ්‍ය පුස්තකාල බාගත කර ලිවීමේ පිටපත ක්‍රියාත්මක කරන්න;
  3. sudo ./Write_Flash.sh "DEVICE" - වෙනස් කළ FS නැවත DEVICE වෙත ලියන්න.

කියවීම:

  1. sudo Copy_Flash.sh “DEVICE” - DEVICE (flash) වෙතින් FS රූපය ලබා ගන්න;
  2. ./Read.sh "KEY" 'MARKER" - අතථ්‍ය පරිසරයක් නිර්මාණය කරන්න, අවශ්‍ය පුස්තකාල බාගත කර කියවීම සඳහා skipt ධාවනය කරන්න;
  3. වත්මන් බහලුම තුළ, කියවීමේ ගොනුව විවෘත කරන්න - මෙය සිප් කළ තොරතුරු වේ.

නිගමනය

මෙම ස්ටෙගනොග්‍රැෆි ක්‍රමයට වැඩි දියුණු කිරීම්, අතිරේක පරීක්ෂණ සහ වඩාත් ජනප්‍රිය ගොනු පද්ධති වෙත දිගු කිරීම අවශ්‍ය වේ Fat32, NTFS и අතිශය.
නමුත් මෙම කාර්යයේ අරමුණ වූයේ ගොනු පද්ධතියේ තොරතුරු සැඟවුණු ගබඩා කිරීම සිදු කළ හැකි මූලධර්මය පෙන්වීමයි.
එවැනි ඇල්ගොරිතම ආධාරයෙන්, ඔබට නිර්භයව තොරතුරු ගබඩා කළ හැකි අතර, ඔබ යතුර දන්නේ නම්, එවැනි පද්ධතියක් තිරිසන් බලයෙන් නොව (නමුත් ඉතා දිගු ඇල්ගොරිතමයකින්) හැක් කළ හැකි නම්, යතුර නොදැන, මෙය පද්ධතිය නියත වශයෙන්ම ස්ථාවර බව මට පෙනේ, කෙසේ වෙතත්, මෙය වෙනම ලිපියක් සඳහා හේතුවක් විය හැකිය.

සියලුම කේතය Python අනුවාදය 3.5.2 හි ක්රියාත්මක වේ. වැඩ පිළිබඳ උදාහරණයක් මගේ youtube නාලිකාවේ ඉදිරිපත් කළා. ව්‍යාපෘතියේ සම්පූර්ණ කේතය පළ කර ඇත github.
(ඔව්, ඔව්, නිෂ්පාදන අනුවාදය සඳහා ඔබ "වේගවත්" යමක් ලිවිය යුතු බව මම දනිමි, උදාහරණයක් ලෙස C 😉)
මෙම ක්‍රියාත්මක කිරීමේදී, steganography සඳහා ආදාන ගොනුවේ ප්‍රමාණය 1000 kB නොඉක්මවිය යුතුය.

පරිශීලකයාට මගේ කෘතඥතාව පළ කිරීමට මට අවශ්‍යයි PavelMSTU ලිපියේ සැලසුම පිළිබඳ අධ්යයනය සහ නිර්දේශ සැලසුම් කිරීමේදී වටිනා උපදෙස් සඳහා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න