ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ื”ื™ื™ ื”ื‘ืจ.

ื‘ืจืฆื•ื ื™ ืœื”ืฆื™ื’ ื‘ืคื ื™ื›ื ืคืจื•ื™ืงื˜ ืงื˜ืŸ ื‘ื ื•ืฉื ืกื˜ื’ื ื•ื’ืจืคื™ื”, ืฉื ืขืฉื” ื‘ื–ืžื ื™ ื”ืคื ื•ื™ ืžื”ืœื™ืžื•ื“ื™ื.

ืขืฉื™ืชื™ ืคืจื•ื™ืงื˜ ืขืœ ืื—ืกื•ืŸ ื ืกืชืจ ืฉืœ ืžื™ื“ืข ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื (ื‘ื”ืžืฉืš FS).
ื–ื” ื™ื›ื•ืœ ืœืฉืžืฉ ื›ื“ื™ ืœื’ื ื•ื‘ ืžื™ื“ืข ืกื•ื“ื™ ืœืžื˜ืจื•ืช ื—ื™ื ื•ื›ื™ื•ืช.

ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

Linux FS ื™ืฉืŸ ืžืื•ื“ ื ื‘ื—ืจ ื›ืื‘ ื˜ื™ืคื•ืก ext2.

ะ ะตะฐะปะธะทะฐั†ะธั

ืฉื™ืงื•ืœื™ ื™ื™ืฉื•ื

ืื ื–ื” ื˜ื•ื‘ "ืœืคืจื•ื" ืืช ืชืงืŸ ext2, ืื– ืืชื” ื™ื›ื•ืœ ืœื”ื—ืœื™ืฃ ืฉื‘-FS ื™ืฉ ืžื” ืฉื ืงืจื ืกื•ืคืจ ื‘ืœื•ืงื™ื, ื”ืžืกืคืง ืžื™ื“ืข ื‘ืกื™ืกื™ ืขืœ ื”ืžืขืจื›ืช. ืื—ืจื™ ืฉื ืžืฆืืชื™ ื—ืกื•ื ืžืคืช ืกื™ื‘ื™ื•ืช ะธ ื˜ื‘ืœืช ืื™ื ื•ื“ื”. ื›ืžืขื˜ ืžื™ื“ ื ื•ืœื“ ื”ืจืขื™ื•ืŸ ืฉืœ ื”ืงืœื˜ืช ืžื™ื“ืข ืœืชื•ืš ื‘ืœื•ืงื™ FS ืจื™ืงื™ื ื›ืจื’ืข. ืขื›ืฉื™ื• ื”ื™ื” ืฉื•ื•ื” ืœื—ืฉื•ื‘ ืขืœ ื”ื’ื ื” ืžืคื ื™ ืžืชื›ื ืช ื—ืžื•ืฉ ืขื•ืจืš hex.

ืื ืืชื” ืžืื—ืกืŸ ืžื™ื“ืข ื ืกืชืจ ืœืœื ื”ืฆืคื ื”, ืื– ืœืžืจื•ืช ื”ื˜ืฉื˜ื•ืฉ ืฉืœื• ื‘-FS, ื”ื•ื ืขื“ื™ื™ืŸ ื™ื”ื™ื” ื‘ื•ืœื˜ ืžื“ื™, ื‘ืžื™ื•ื—ื“ ืื ื”ืžืชื›ื ืช ื™ื•ื“ืข ืžื” ืœื—ืคืฉ. ืœื›ืŸ, ื”ื•ื—ืœื˜ ืœื”ืฆืคื™ืŸ ืืช ื›ืœ ื”ื‘ืœื•ืงื™ื ืฉืœ ืงื•ื‘ืฅ ื”ืžืงื•ืจ. ื‘ื—ืจืชื™ ื‘ืฆื•ืคืŸ ื‘ืœื•ืง AES, ืื‘ืœ ื›ืคื™ ืฉืืชื” ืžื‘ื™ืŸ, ื–ื” ืœื ื—ืฉื•ื‘.

ื›ื“ื™ ืœื”ืคืจื™ื“ ืืช ื”ื‘ืœื•ืงื™ื ื”ื“ืจื•ืฉื™ื ืžื›ืœ ื”ืฉืืจ ื‘ืขืช ื”ืงืจื™ืื”, ื”ื•ื—ืœื˜ ืœื”ื•ืกื™ืฃ ืกืžืŸ ืžื™ื•ื—ื“ ืœื›ืœ ื‘ืœื•ืง ื‘ืชื—ื™ืœืช ื”ื‘ืœื•ืง. ืืกื™ืžื•ืŸ ื–ื” ื”ื•ืฆืคืŸ ื‘ื”ืชืื ืœืžืกืคืจ ื”ื‘ืœื•ืง ื‘ืงื•ื‘ืฅ ื”ืžืงื•ืจ. ื”ื˜ืจื™ืง ื”ื–ื” ืื™ืคืฉืจ ืžื™ื“ ืœื ืจืง ืœืžืฆื•ื ืืช ื”ื‘ืœื•ืงื™ื ื”ื“ืจื•ืฉื™ื, ืืœื ื’ื ืœื–ื”ื•ืช ืืช ื”ืกื“ืจ ื”ื ื›ื•ืŸ ืฉืœื”ื.

ืขืงืจื•ืŸ ื”ืคืขืœื” ื›ืœืœื™ ืฉืœ ื”ืžืขืจื›ืช.

ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ืืœื’ื•ืจื™ืชื ื”ืงืœื˜ื”

ืขืœ ืคืจื™ื˜ื™ื:

  • ืชื—ื™ืœื” ื›ืชื•ื‘ ืงืฆืช ืžื™ื“ืข ืœืžืขืจื›ืช ืงื‘ืฆื™ ื”ืžืงื•ืจ;
  • ืžื—ืง ืžื™ื“ืข ื–ื” (ืœื ื‘ื”ื›ืจื— ืืช ื›ื•ืœื);
  • ื”ืงื•ื‘ืฅ ืฉื™ืฉ ืœื”ืกืชื™ืจ ืžื—ื•ืœืง ืœื‘ืœื•ืงื™ื ื‘ืื•ืจืš ืฉื•ื•ื”, ื”ื•ืกืคืช ืกืžืŸ;
  • ื”ืฆืคื™ืŸ ื‘ืœื•ืงื™ื ืืœื”;
  • ื”ืฆื‘ ื‘ืœื•ืงื™ื ืžื•ืฆืคื ื™ื ื‘ืœื•ืงื™ื ืจื™ืงื™ื ืฉืœ FS.

ืœืื•ื”ื‘ื™ ื“ื™ืื’ืจืžื•ืช ื‘ืœื•ืงื™ื

ืœื”ืœืŸ ืชืจืฉื™ื ื‘ืœื•ืงื™ื ืฉืœ ืืœื’ื•ืจื™ืชื ื”ื”ืงืœื˜ื”. ื”ืืœื’ื•ืจื™ืชื ืžืงื‘ืœ ืืจื‘ืขื” ืงื‘ืฆื™ื ื›ืงืœื˜:
-ืชืžื•ื ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื ื”ื ื™ืชื ืช ืœืฉื™ื ื•ื™;
-ื”ืงื•ื‘ืฅ ื›ืคื•ืฃ ืœืกื˜ื’ื ื•ื’ืจืคื™ื”;
-ืงื•ื‘ืฅ ืขื ืžืคืชื— ื”ืฆืคื ื” ืขื‘ื•ืจ AES;
-ืชื™ืง ืขื ื˜ื•ืฉ.
ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ืจืื•ื™ ืœืฆื™ื™ืŸ ืžื™ื“ ืฉืœืืœื’ื•ืจื™ืชื ื”ื–ื” ื™ืฉ ื—ืกืจื•ืŸ ืื—ื“: ืœืื—ืจ ื›ืชื™ื‘ืช ื”ืงื•ื‘ืฅ ืœ-FS, ืœื ื™ื›ื•ืœ ื›ืชื•ื‘ ื›ืœ ื“ื‘ืจ ื—ื“ืฉ ืœืชื•ืš ื”-FS, ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ืžื™ื“ืข ื—ื“ืฉ ื™ื›ื•ืœ ืœื”ื’ื™ืข ืœื‘ืœื•ืงื™ื ืฉื”ืงืฆื ื• ืœืงื•ื‘ืฅ ื”ื“ื—ื•ืก ืฉืœื ื•, ืื ื›ื™ ื–ื” ื’ื ืคื•ืชื— ืืช ื”ืืคืฉืจื•ืช "ืœื›ืกื•ืช ืืช ืขืงื‘ื•ืชื™ื ื• ื‘ืžื”ื™ืจื•ืช."

ืื‘ืœ ื–ื” ื“ื™ ื‘ืจื•ืจ ืื™ืš ืืคืฉืจ ืœืชืงืŸ ืืช ื–ื”: ื™ืฉ ืฆื•ืจืš ืœืฉื›ืชื‘ ืืช ื”ืืœื’ื•ืจื™ืชื ืœื›ืชื™ื‘ืช ื‘ืœื•ืงื™ื ื‘-FS. ื–ื•ื”ื™ ืžืฉื™ืžื” ืžื•ื‘ื ืช, ืืš ื’ื•ื–ืœืช ื–ืžืŸ ืจื‘ ืœื”ืคืœื™ื.
ืœืฆื•ืจืš ื”ื•ื›ื—ืช ืžื•ืฉื’ ืœื ื™ื™ืฉืžืชื™ ืืช ื–ื”.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ืฉื™ื ื•ื™ื™ื ื”ื‘ืื™ื ื™ื‘ื•ืฆืขื• ื‘-FS; ื›ืš ื ืจืื” ื”-FS ืœืคื ื™ ื”ืกื˜ื’ื ื•ื’ืจืคื™ื” (ืงื•ื‘ืฅ ืฉืžืข ื”ื•ืงืœื˜ ื‘ืขื‘ืจ).
ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื
ื•ื›ืš ื ืจืื” ื”-FS ื›ืฉื”ืžื™ื“ืข ื›ื‘ืจ ืžื›ื•ื ืก.
ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ืืœื’ื•ืจื™ืชื ืงืจื™ืื”

ืขืœ ืคืจื™ื˜ื™ื:

  • ืขื ื”ื›ืจืช ื”ืžืคืชื— ื•ืฉื™ื˜ืช ื‘ื ื™ื™ืช ื”ืกืžื ื™ื, ื”ืจื›ื™ื‘ื• ืืช ื”-N ื”ืกืžื ื™ื ื”ืจืืฉื•ื ื™ื, ืชื•ืš ืขืจื‘ื•ืช ืฉ-N ื›ืคื•ืœ ื‘ืื•ืจืš ืฉืœ ื‘ืœื•ืง ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื’ื“ื•ืœ ืžืื•ืจืš ื”ืงื•ื‘ืฅ ื”ื“ื—ื•ืก;
  • ื—ืคืฉ ื‘ืœื•ืงื™ื ื‘-FS ื”ื—ืœ ืžืกืžื ื™ื;
  • ืคืขื ื— ืืช ื”ื‘ืœื•ืงื™ื ืฉื”ืชืงื‘ืœื• ื•ื”ืคืจื“ ืืช ื”ืกืžื ื™ื;
  • ืืกืคื• ืืช ื”ื‘ืœื•ืงื™ื ืฉื”ืชืงื‘ืœื• ื‘ืกื“ืจ ื”ื ื›ื•ืŸ ื•ืงื‘ืœื• ืืช ืงื•ื‘ืฅ ื”ืžืงื•ืจ.

ืœืื•ื”ื‘ื™ ื“ื™ืื’ืจืžื•ืช ื‘ืœื•ืงื™ื

ืœื”ืœืŸ ืชืจืฉื™ื ื‘ืœื•ืงื™ื ืฉืœ ืืœื’ื•ืจื™ืชื ื”ื”ืงืœื˜ื”. ื”ืืœื’ื•ืจื™ืชื ืžืงื‘ืœ ืฉืœื•ืฉื” ืงื‘ืฆื™ื ื›ืงืœื˜:
-ืชืžื•ื ืช ืžืขืจื›ืช ื”ืงื‘ืฆื™ื;
-ืงื•ื‘ืฅ ืขื ืžืคืชื— ื”ืฆืคื ื” ืขื‘ื•ืจ AES;
-ืชื™ืง ืขื ื˜ื•ืฉ.
ืกื˜ื’ื ื•ื’ืจืคื™ื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ืœืื—ืจ ื”ืคืขืœืช ื”ืชื•ื›ื ื™ืช, ืžื•ืคื™ืข ืงื•ื‘ืฅ ื”ืงืจื™ืื”, ืฉื”ื•ื ื”ืงื•ื‘ืฅ ืฉื—ื•ืœืฅ ืžืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื”ืกื˜ื’ื ื•ื’ืจืคื™ืช; ืื ื”ืžืคืชื— ืื• ื”ืกืžืŸ ืฆื•ื™ื ื• ื‘ืฆื•ืจื” ืฉื’ื•ื™ื”, ืงื•ื‘ืฅ ื”ืงืจื™ืื” ื™ื”ื™ื” ืจื™ืง.
(ืœืื•ื”ื‘ื™ ื™ื•ืคื™, ืืชื” ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืœื ืจืง ืืช ื”ืงื•ื‘ืฅ, ืืœื "ื›ื•ืชืจืช" ื”ืžื›ื™ืœื” ืžื˜ื-ืžื™ื“ืข: ืฉื ื”ืงื•ื‘ืฅ, ื–ื›ื•ื™ื•ืช, ื–ืžืŸ ื”ืฉื™ื ื•ื™ ื”ืื—ืจื•ืŸ ื•ื›ื•')

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื”ืคืขืœื”

ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ืกืงืจื™ืคื˜ื™ื ืฉืœ bash ื ื›ืชื‘ื• ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ื”ืฉืงื” ืœืื•ื˜ื•ืžื˜ื™ืช ื‘ืœื™ื ื•ืงืก (ื ื‘ื“ืง ืขืœ ืื•ื‘ื•ื ื˜ื• 16.04.3 LTS).
ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื”ืฉืงื” ืฆืขื“ ืื—ืจ ืฆืขื“.
ืจืฉื•ืžื”:

  1. sudo Copy_Flash.sh "DEVICE" - ืงื‘ืœ ืืช ืชืžื•ื ืช ื”-FS ืž-DEVICE (flash);
  2. ./Write.sh "FILE" "KEY" "MARKER" - ืฆื•ืจ ืกื‘ื™ื‘ื” ื•ื™ืจื˜ื•ืืœื™ืช, ื”ื•ืจื“ ืืช ื”ืกืคืจื™ื•ืช ื”ื“ืจื•ืฉื•ืช ื•ื”ืคืขืœ ืืช ืกืงืจื™ืคื˜ ื”ื›ืชื™ื‘ื”;
  3. sudo ./Write_Flash.sh "DEVICE" - ื›ืชื•ื‘ ืืช ื”-FS ืฉื”ืฉืชื ื” ืฉื•ื‘ ืœ-DEVICE.

ืงืจื™ืื”:

  1. sudo Copy_Flash.sh "DEVICE" - ืงื‘ืœ ืืช ืชืžื•ื ืช ื”-FS ืž-DEVICE (flash);
  2. ./Read.sh "KEY" 'MARKER" - ืฆื•ืจ ืกื‘ื™ื‘ื” ื•ื™ืจื˜ื•ืืœื™ืช, ื”ื•ืจื“ ืืช ื”ืกืคืจื™ื•ืช ื”ื“ืจื•ืฉื•ืช ื•ื”ืคืขืœ ืืช ื”ื—ืœื•ืฅ ืœืงืจื™ืื”;
  3. ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช, ืคืชื— ืืช ื”ืงื•ื‘ืฅ Read - ื–ื”ื• ื”ืžื™ื“ืข ื”ืžื›ื•ื•ืฅ.

ืžืกืงื ื”

ืฉื™ื˜ื” ืกื˜ื’ื ื•ื’ืจืคื™ื” ื–ื• ื›ื ืจืื” ื–ืงื•ืงื” ืœืฉื™ืคื•ืจ, ื‘ื“ื™ืงื•ืช ื ื•ืกืคื•ืช ื•ื”ืจื—ื‘ื” ืœืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืคื•ืคื•ืœืจื™ื•ืช ื™ื•ืชืจ, ื›ื’ื•ืŸ Fatxnumx, NTFS ะธ ext4.
ืืš ืžื˜ืจืช ื”ืขื‘ื•ื“ื” ื”ื–ื• ื”ื™ื™ืชื” ืœื”ืจืื•ืช ืืช ื”ืขื™ืงืจื•ืŸ ืœืคื™ื• ื ื™ืชืŸ ืœื‘ืฆืข ืื—ืกื•ืŸ ื ืกืชืจ ืฉืœ ืžื™ื“ืข ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื.
ื‘ืขื–ืจืช ืืœื’ื•ืจื™ืชืžื™ื ื›ืืœื”, ืืชื” ื™ื›ื•ืœ ืœืื—ืกืŸ ืžื™ื“ืข ืœืœื ืคื—ื“, ื•ืื, ืื ืืชื” ื™ื•ื“ืข ืืช ื”ืžืคืชื—, ืืคืฉืจ ืœืคืจื•ืฅ ืœืžืขืจื›ืช ื›ื–ื• ืœื ื‘ื›ื•ื— ื’ืก (ืืœื ืขืœ ื™ื“ื™ ืืœื’ื•ืจื™ืชื ืืจื•ืš ืžืื•ื“), ืื– ื‘ืœื™ ืœื“ืขืช ืืช ื”ืžืคืชื—, ื–ื” ื”ืžืขืจื›ืช ื ืจืื™ืช ืœื™ ื™ืฆื™ื‘ื” ืœื—ืœื•ื˜ื™ืŸ, ืขื ื–ืืช, ื–ื” ืขืฉื•ื™ ืœืฉืžืฉ ืกื™ื‘ื” ืœืžืืžืจ ื ืคืจื“.

ื›ืœ ื”ืงื•ื“ ืžื™ื•ืฉื ื‘ื’ื™ืจืกืช Python 3.5.2. ื“ื•ื’ืžื ืœืขื‘ื•ื“ื” ืžื•ืฆื’ ื‘ืขืจื•ืฅ ื”ื™ื•ื˜ื™ื•ื‘ ืฉืœื™. ื”ืงื•ื“ ื”ืžืœื ืฉืœ ื”ืคืจื•ื™ืงื˜ ืคื•ืจืกื ื‘- GitHub.
(ื›ืŸ, ื›ืŸ, ืื ื™ ื™ื•ื“ืข ืฉื‘ื’ืจืกืช ื”ื”ืคืงื” ืฆืจื™ืš ืœื›ืชื•ื‘ ื‘ืžืฉื”ื• "ืžื”ื™ืจ", ืœืžืฉืœ C ๐Ÿ˜‰)
ื‘ื™ื™ืฉื•ื ื–ื”, ื’ื•ื“ืœ ืงื•ื‘ืฅ ื”ืงืœื˜ ืขื‘ื•ืจ ืกื˜ื’ื ื•ื’ืจืคื™ื” ืœื ื™ืขืœื” ืขืœ 1000 kB.

ืื ื™ ืจื•ืฆื” ืœื”ื‘ื™ืข ืืช ืชื•ื“ืชื™ ืœืžืฉืชืžืฉ PavelMSTU ืœืขืฆื•ืช ื—ืฉื•ื‘ื•ืช ื‘ืชื›ื ื•ืŸ ื”ืžื—ืงืจ ื•ื”ืžืœืฆื•ืช ืขืœ ืขื™ืฆื•ื‘ ื”ืžืืžืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”