உபுண்டு டச் 24.04க்கான கோப்பு முறைமை குறியாக்கம்

இந்த ஆவணத்தில் உள்ள கோப்பு முறைமை குறியாக்கம் என்பது "முழு வட்டு குறியாக்கத்துடன்" ஒப்பிடுகையில், "கோப்பு அடிப்படையிலான குறியாக்கத்தை" பயன்படுத்தி ஒரு கோப்பின் அடிப்படையில் கோப்புகளை என்க்ரிப்ட் செய்வதைக் குறிக்கிறது.

உபுண்டு டச் 24.04 இல் உள்ள குறியாக்கம் fscrypt ஐப் பயன்படுத்தி தீர்க்கப்படுகிறது.

தொழில்நுட்ப விவரங்கள்

LUKS போன்ற முழு வட்டு குறியாக்கத்திற்கு பதிலாக, fscrypt தனிப்பட்ட அடைவு படிநிலைகளுக்கு, ext4 மற்றும் f2fs கோப்பு முறைமைகளில் சுடப்பட்ட குறியாக்கத்தை செயல்படுத்துகிறது. இந்த வழியில், கணினியானது ஒரு மறைகுறியாக்கப்படாத ரூட் கோப்பு முறைமையை துவக்க முடியும், அதே நேரத்தில் பின் உள்ளீட்டை தேவைப்படும் வரை ஒத்திவைக்கிறது. உபுண்டு டச் பகிர்வு திட்டத்தில் இது மிகவும் முக்கியமானது.

பயனரின் கீரிங் (கொள்கை v1) அல்லது கோப்பு முறைமை கீரிங் (பாலிசி v2) ஆகியவற்றில் பயனரின் விசையை ஏற்றுவதன் மூலம் இது நிறைவேற்றப்படுகிறது, அதன் மூலம் கோப்பு முறைமை தரவை குறியாக்கம் செய்யலாம். பயனரின் கீரிங்கில் விசையை ஏற்றுவது, பிற பயனர்களுக்கு, ரூட் கூட கோப்பு மறைகுறியாக்கத்தை அனுமதிக்காது. கோப்பு முறைமை கீரிங் பயன்பாட்டில் இருப்பதால், ஓம் டைரக்டரிக்கான அணுகலுடன் கூடிய கப்பல்துறை போன்றவை சரியாக வேலை செய்கின்றன.

உள்நுழைவு பாதுகாப்பாளரைப் (PIN அல்லது கடவுச்சொல்) பயன்படுத்தி பயனரால் அமைக்கப்பட்ட அனைத்து கோப்பகங்களும் பயனர் தங்கள் சாதனத்தைத் திறக்கும்போது துவக்கத்தில் திறக்கப்படும். இதன் பொருள் பயனர் குறியாக்க பல கூடுதல் கோப்பகங்களைச் சேர்த்திருக்கலாம்.

fscrypt.conf கோப்பை உருவாக்குகிறது

புதிய சாதன போர்ட்டிற்கு /etc/fscrypt.conf இல் உள்ள முன்-கட்டமைக்கப்பட்ட கோப்பு இருக்க வேண்டும். சாதனத்தில் என்க்ரிப்சனை ஆதரிக்க, இது மிக தேவை.

புதிய கோப்பை உருவாக்க sudo fscrypt setup ஐ இயக்கவும்.

The resulting configuration file might look like:

{
    "source": "custom_passphrase",
    "hash_costs": {
        "time": "12",
        "memory": "131072",
        "parallelism": "8"
    },
    "options": {
        "padding": "32",
        "contents": "AES_256_XTS",
        "filenames": "AES_256_CTS",
        "policy_version": "1"
    },
    "use_fs_keyring_for_v1_policies": false,
    "allow_cross_user_metadata": false
}

use_fs_keyring_for_v1_policies உள்ளமைவு சுவிட்ச்

பாலிசி பதிப்பு "2" உடன் அனுப்பப்படும் ஆனால் ஏற்கனவே என்க்ரிப்ட் செய்யப்பட்ட பதிப்பான "1" சேமிப்பகத்தை தொடர்ந்து ஆதரிக்க விரும்பும் சாதனத் தழுவல்கள் ஓம் டைரக்டரியைத் திறக்க உள்நுழைவதற்கும் கோப்பு முறைமையின் கீரிங்கில் விசையைச் சேமிப்பதற்கும் இந்த சுவிட்சை சரி என அமைக்க வேண்டும்.

புதிய கர்னல்களுடன் (5.4 மற்றும் அதற்கு மேல்) சிப்பிங் செய்யும் சாதனங்களுக்கு இதை மாற்ற வேண்டிய அவசியமில்லை, மேலும் குறியாக்கக் கொள்கைகளின் பதிப்பு 2ஐ மட்டுமே நம்பியிருக்கும்.

சாதனத் செய்தி உள்ளமைவு

முடிக்கப்பட்ட உள்ளமைவைக் குறிக்கவும், லோமிரி-சிச்டம்-அமைப்புகளில் இருந்து என்க்ரிப்சன் இடைமுகம் ஐத் திறக்கவும், DeviceInfo கட்டமைப்பு ச்விட்ச் FilesystemEncryption true என அமைக்கப்பட வேண்டும்.

Example:

sargo:
  Vendor: Google
  PrettyName: Pixel 3a
  DeviceType: phone
  GridUnit: 25
  SupportedOrientations:
    - Portrait
    - Landscape
    - InvertedLandscape
  FilesystemEncryption: true

இதற்குப் பிறகுதான் உங்கள் சாதனத்தில் குறியாக்கத்தை அமைக்க முடியும்.

கர்னல் பேக்போர்ட்ச்

If your device uses kernel version 4.14 or 4.19, then you can backport policy version 2 support from the Android Common Kernel repository. To fetch sources from there, add the remote to your Git tree:

git remote add google https://android.googlesource.com/kernel/common

கொள்கை v2 ஆதரவை "மாற்று" செய்வதற்கான எளிதான வழி, உங்கள் சாதனத்தின் கர்னல் பதிப்போடு பொருந்தக்கூடிய பாலிசி v2 ஆதரவைக் கொண்ட அருகிலுள்ள பொதுவான கர்னல் பதிப்பைக் கண்டறிதல் மற்றும் உங்கள் கர்னல் ட்ரீயில் fscrypt மற்றும் ஆதரிக்கப்படும் கோப்பு முறைமைகள் தொடர்பான தனிப்பட்ட கோப்புகளைப் பார்ப்பது. தொடங்குவதற்கு, "fscrypt: v2 குறியாக்கக் கொள்கை ஆதரவு" மற்றும் தொடர்புடைய கமிட்களை பொதுவான கர்னலில் இணைக்கும் உறுதிமொழியைக் கண்டறியவும்.

For example, if the device kernel is using 4.19.81, according to the Common Kernel's Git history an appropriate source base would be commit c2ad33f0296a2528fd0bf4e96af0802dad0b1b27, which is based on version 4.19.78 and a close match to the rest of the source tree. Fetch those sources using:

git fetch google c2ad33f0296a2528fd0bf4e96af0802dad0b1b27

After determining the right commit, check out fs/crypto and encryption-supporting filesystems at that commit (replace the commit hash in the example with your determined match):

git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/crypto/
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/f2fs/
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/ext4
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/ubifs
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/f2fs_fs.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/fs.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/fscrypt.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/uapi/linux/fs.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/uapi/linux/fscrypt.h

Should the compilation of your kernel fail at first with missing identifier errors, undefined references or missing files, compare with the Common Kernel and check out missing changes and dependencies individually:

git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/verity
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/unicode
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/direct-io.c
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- fs/inode.c
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- mm/mmap.c
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- block/blk-merge.c
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/mm.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/dcache.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/linux/fsverity.h
git checkout c2ad33f0296a2528fd0bf4e96af0802dad0b1b27 -- include/uapi/linux/fsverity.h

உங்கள் சாதன கர்னலில் மறையீட்டு குறியீடு, கோப்பு முறைமை குறியீடு மற்றும் பிற இயக்கிகள் இடையே சார்புநிலைகள் இருந்தால், புதிய fscrypt க்கு ஏற்ப குறியீட்டை கைமுறையாக மாற்றுவதன் மூலம் அந்த சார்புகளை நீங்கள் உடைக்க வேண்டும். எடுத்துக்காட்டாக, Qualcomm சாதனங்களில் "qseecom"' இயக்கி கைமுறை செக் அவுட் மூலம் மேலெழுதப்பட்ட செயல்பாடுகளை அழைக்கலாம், மேலும் உங்கள் தழுவலில் அந்த விடுபட்ட செயல்பாடுகளை நீங்கள் கூடுதலாகச் சேர்க்க வேண்டும். `"sdcardfs" இயக்கப்பட்ட கர்னல்கள் புதிய fscrypt உடன் வேலை செய்ய sdcardfs இயக்கியை மாற்றியமைக்க வேண்டும், விடுபட்ட செயல்பாடுகளை முன்னோக்கி-போர்ட் செய்வதன் மூலம் அல்லது அவற்றை அகற்றுவதன் மூலம்.