హలో, హబ్ర్.
నేను మీకు ఒక చిన్న ప్రాజెక్ట్ అందించాలనుకుంటున్నాను
నేను ఫైల్ సిస్టమ్లో సమాచారాన్ని దాచిన నిల్వపై ప్రాజెక్ట్ చేసాను (ఇంకా FS).
విద్యా ప్రయోజనాల కోసం రహస్య సమాచారాన్ని దొంగిలించడానికి దీనిని ఉపయోగించవచ్చు.
చాలా పాత Linux FS ప్రోటోటైప్గా ఎంపిక చేయబడింది
అమలు
అమలు పరిగణనలు
ext2 ప్రమాణాన్ని "విప్పు" చేయడం మంచిదైతే, మీరు FSలో పిలవబడే దాన్ని భర్తీ చేయవచ్చు
మీరు ఎన్క్రిప్షన్ లేకుండా దాచిన సమాచారాన్ని నిల్వ చేస్తే, FSలో దాని అస్పష్టత ఉన్నప్పటికీ, ఇది ఇప్పటికీ చాలా స్పష్టంగా కనిపిస్తుంది, ప్రత్యేకించి ప్రోగ్రామర్ ఏమి చూడాలో తెలుసుకుంటే. అందువల్ల, సోర్స్ ఫైల్ యొక్క అన్ని బ్లాక్లను గుప్తీకరించాలని నిర్ణయించబడింది. నేను బ్లాక్ సాంకేతికలిపిని ఎంచుకున్నాను
చదివేటప్పుడు అవసరమైన అన్ని బ్లాకులను వేరు చేయడానికి, బ్లాక్ ప్రారంభంలో ప్రతి బ్లాక్కు ప్రత్యేక మార్కర్ను జోడించాలని నిర్ణయించారు. ఈ టోకెన్ సోర్స్ ఫైల్లోని బ్లాక్ నంబర్ను బట్టి ఎన్క్రిప్ట్ చేయబడింది. ఈ ట్రిక్ వెంటనే అవసరమైన బ్లాక్లను కనుగొనడమే కాకుండా, వాటి సరైన క్రమాన్ని గుర్తించడం కూడా సాధ్యం చేసింది.
సిస్టమ్ యొక్క సాధారణ ఆపరేటింగ్ సూత్రం.
రికార్డింగ్ అల్గోరిథం
పాయింట్లు:
- మొదట సోర్స్ ఫైల్ సిస్టమ్కు కొంత సమాచారాన్ని వ్రాయండి;
- ఈ సమాచారాన్ని తొలగించండి (అన్నీ అవసరం లేదు);
- దాచవలసిన ఫైల్ సమాన పొడవు గల బ్లాక్లుగా విభజించబడింది, మార్కర్ను జోడించడం;
- ఈ బ్లాక్లను ఎన్క్రిప్ట్ చేయండి;
- ఖాళీ FS బ్లాక్లలో గుప్తీకరించిన బ్లాక్లను ఉంచండి.
బ్లాక్ రేఖాచిత్రం ప్రేమికులకు
క్రింద రికార్డింగ్ అల్గోరిథం యొక్క బ్లాక్ రేఖాచిత్రం ఉంది. అల్గోరిథం నాలుగు ఫైల్లను ఇన్పుట్గా స్వీకరిస్తుంది:
-మార్పు చేయగల ఫైల్ సిస్టమ్ యొక్క చిత్రం;
-ఫైల్ స్టెగానోగ్రఫీకి లోబడి ఉంటుంది;
-AES కోసం ఎన్క్రిప్షన్ కీతో ఫైల్;
మార్కర్తో ఫైల్.
ఈ అల్గోరిథంకు ఒక లోపం ఉందని వెంటనే గమనించాలి: ఫైల్ను FS కి వ్రాసిన తర్వాత, కాదు FSలో ఏదైనా కొత్త సమాచారాన్ని వ్రాయండి, ఎందుకంటే ఏదైనా కొత్త సమాచారం మనం జిప్ చేసిన ఫైల్కి కేటాయించిన బ్లాక్లలో ముగుస్తుంది, అయినప్పటికీ ఇది "మా ట్రాక్లను త్వరగా కవర్ చేసే" అవకాశాన్ని కూడా తెరుస్తుంది.
కానీ ఇది ఎలా పరిష్కరించబడుతుందో చాలా స్పష్టంగా ఉంది: FS లో బ్లాక్లను వ్రాయడానికి అల్గోరిథంను తిరిగి వ్రాయడం అవసరం. ఇది అర్థం చేసుకోదగినది, కానీ చాలా సమయం తీసుకునే పని.
ప్రూఫ్ ఆఫ్ కాన్సెప్ట్ కోసం నేను దీన్ని అమలు చేయలేదు.
ఫలితంగా, FSకి క్రింది మార్పులు చేయబడతాయి; స్టెగానోగ్రఫీకి ముందు FS ఇలా కనిపిస్తుంది (ఒక ఆడియో ఫైల్ గతంలో రికార్డ్ చేయబడింది).
మరియు ఇప్పటికే జిప్ అప్ చేసిన సమాచారంతో FS ఇలా కనిపిస్తుంది.
పఠనం అల్గోరిథం
పాయింట్లు:
- కీ మరియు మార్కర్లను నిర్మించే పద్ధతి యొక్క పరిజ్ఞానంతో, మొదటి N గుర్తులను కంపోజ్ చేయండి, ఫైల్ సిస్టమ్ బ్లాక్ యొక్క పొడవుతో N గుణిస్తే జిప్ చేయబడిన ఫైల్ పొడవు కంటే ఎక్కువ ఉంటుంది;
- మార్కర్లతో ప్రారంభించి FSలో బ్లాక్ల కోసం శోధించండి;
- అందుకున్న బ్లాక్లను అర్థంచేసుకోండి మరియు గుర్తులను వేరు చేయండి;
- ఫలిత బ్లాక్లను సరైన క్రమంలో సేకరించి సోర్స్ ఫైల్ను పొందండి.
బ్లాక్ రేఖాచిత్రం ప్రేమికులకు
క్రింద రికార్డింగ్ అల్గోరిథం యొక్క బ్లాక్ రేఖాచిత్రం ఉంది. అల్గోరిథం మూడు ఫైల్లను ఇన్పుట్గా స్వీకరిస్తుంది:
-ఫైల్ సిస్టమ్ ఇమేజ్;
-AES కోసం ఎన్క్రిప్షన్ కీతో ఫైల్;
మార్కర్తో ఫైల్.
ప్రోగ్రామ్ రన్ అయిన తర్వాత, రీడ్ ఫైల్ కనిపిస్తుంది, ఇది స్టెగానోగ్రాఫ్ ఫైల్ సిస్టమ్ నుండి సంగ్రహించబడిన ఫైల్ అవుతుంది; కీ లేదా మార్కర్ తప్పుగా పేర్కొనబడితే, అప్పుడు రీడ్ ఫైల్ ఖాళీగా ఉంటుంది.
(సౌందర్యాన్ని ఇష్టపడేవారి కోసం, మీరు ఫైల్ను మాత్రమే కాకుండా, మెటా-సమాచారాన్ని కలిగి ఉన్న “హెడర్”ను ఇన్సర్ట్ చేయవచ్చు: ఫైల్ పేరు, హక్కులు, చివరిగా సవరించిన సమయం మొదలైనవి)
స్టార్టప్ ఆటోమేషన్
సౌలభ్యం కోసం, Linuxలో లాంచ్ను ఆటోమేట్ చేయడానికి బాష్ స్క్రిప్ట్లు వ్రాయబడ్డాయి (ఉబుంటు 16.04.3 LTSలో పరీక్షించబడింది).
ప్రయోగ దశల వారీగా చూద్దాం.
రికార్డు:
- sudo Copy_Flash.sh “DEVICE” - DEVICE (ఫ్లాష్) నుండి FS చిత్రాన్ని పొందండి;
- ./Write.sh “FILE” “KEY” “MARKER” – వర్చువల్ వాతావరణాన్ని సృష్టించండి, అవసరమైన లైబ్రరీలను డౌన్లోడ్ చేయండి మరియు వ్రాత స్క్రిప్ట్ను అమలు చేయండి;
- sudo ./Write_Flash.sh “DEVICE” – మార్చబడిన FSని మళ్లీ DEVICEకి వ్రాయండి.
పఠనం:
- sudo Copy_Flash.sh “DEVICE” - DEVICE (ఫ్లాష్) నుండి FS చిత్రాన్ని పొందండి;
- ./Read.sh “KEY” ‘MARKER’ - వర్చువల్ వాతావరణాన్ని సృష్టించండి, అవసరమైన లైబ్రరీలను డౌన్లోడ్ చేయండి మరియు చదవడానికి స్కిప్ట్ను అమలు చేయండి;
- ప్రస్తుత డైరెక్టరీలో, రీడ్ ఫైల్ను తెరవండి - ఇది జిప్ చేసిన సమాచారం.
తీర్మానం
ఈ స్టెగానోగ్రఫీ పద్ధతికి బహుశా మెరుగుదల, అదనపు పరీక్ష మరియు మరింత జనాదరణ పొందిన ఫైల్ సిస్టమ్లకు పొడిగింపు అవసరం
కానీ ఈ పని యొక్క ఉద్దేశ్యం ఫైల్ సిస్టమ్లో సమాచారాన్ని దాచిన నిల్వను నిర్వహించడం సాధ్యమయ్యే సూత్రాన్ని చూపించడం.
అటువంటి అల్గారిథమ్ల సహాయంతో, మీరు నిర్భయంగా సమాచారాన్ని నిల్వ చేయవచ్చు మరియు మీకు కీ తెలిస్తే, అటువంటి వ్యవస్థను బ్రూట్ ఫోర్స్ ద్వారా కాకుండా (చాలా పొడవైన అల్గోరిథం ద్వారా) హ్యాక్ చేయడం సాధ్యమవుతుంది, అప్పుడు కీ తెలియకుండా, ఇది సిస్టమ్ ఖచ్చితంగా స్థిరంగా ఉన్నట్లు నాకు అనిపిస్తుంది, అయినప్పటికీ, ఇది ప్రత్యేక కథనానికి కారణం కావచ్చు.
మొత్తం కోడ్ పైథాన్ వెర్షన్ 3.5.2లో అమలు చేయబడుతుంది.
(అవును, అవును, ప్రొడక్షన్ వెర్షన్ కోసం మీరు ఏదైనా "ఫాస్ట్"లో వ్రాయాలని నాకు తెలుసు, ఉదాహరణకు సి 😉)
ఈ అమలులో, స్టెగానోగ్రఫీ కోసం ఇన్పుట్ ఫైల్ పరిమాణం 1000 kB మించకూడదు.
నేను వినియోగదారుకు నా కృతజ్ఞతలు తెలియజేయాలనుకుంటున్నాను
మూలం: www.habr.com