
તાજેતરના વર્ષોમાં, TPM 2.0 મોડ્યુલ્સ એક હાર્ડવેર રહસ્યમાંથી UEFI અને સિક્યોર બૂટ સાથે કોઈપણ આધુનિક કમ્પ્યુટરનો એક સામાન્ય ભાગ બની ગયા છે. આ લેખ /dev/tpm0 અને /dev/tpmrm0 શું છે અને tpm2_pcrread અને tpm2_pcrextend નો ઉપયોગ કેવી રીતે કરવો તે સમજાવે છે. (તેમજ tpm2-ટૂલ્સમાં તેનો વાસ્તવિક આદેશ), તેમજ Linux માં માપેલા બુટ, ડિસ્ક એન્ક્રિપ્શન અને સહી કરેલ PCR નીતિઓમાં તે કેવી રીતે ફિટ થાય છે તે સમજાવે છે.
ઉપયોગી દસ્તાવેજો અસ્તિત્વમાં છે, પરંતુ તે systemd મેન પેજીસ, વિકિ એન્ટ્રીઓ અને ખૂબ જ ગાઢ પોસ્ટ્સમાં વેરવિખેર છે; અહીં આપણે બધી મુખ્ય માહિતી (પીસીઆર, વ્યવહારુ ઉદાહરણો, જોખમો અને બચાવ) એકત્રિત કરીએ છીએ. જેથી ટેકનિકલ લોકો, ભલે તેઓ TPM નિષ્ણાતો ન હોય, અસ્પષ્ટ વિગતોમાં ખોવાઈ ગયા વિના આ સાધનો સાથે કામ કરી શકે.
TPM 2.0 શું છે અને તમે શા માટે કાળજી રાખી શકો છો
ટ્રસ્ટેડ પ્લેટફોર્મ મોડ્યુલ એ એક સુરક્ષા ચિપ છે જે તમારા મધરબોર્ડ પર રહે છે (અથવા fTPM/Intel PTT જેવા CPU ની અંદર) અને સિસ્ટમ માટે સુરક્ષિત સ્ટોર, રેન્ડમ નંબર જનરેટર અને ટ્રસ્ટના મૂળ તરીકે કાર્ય કરે છે. તે નિષ્ક્રિય છે: જો તમે તેનો ઉપયોગ નહીં કરો, તો તે કંઈ કરતું નથી., પરંતુ જ્યારે તમે તેને તમારા બૂટ ફ્લો અને ડિસ્ક એન્ક્રિપ્શનમાં એકીકૃત કરો છો, ત્યારે તે ઇન્ટિગ્રિટી વેરિફિકેશન અને હાર્ડવેર-સુરક્ષિત કી પ્રદાન કરે છે.
વ્યવહારમાં, TPM 2.0 તમને ડિસ્ક એન્ક્રિપ્શનમાં ઉપયોગના બે મુખ્ય મોડ્સની મંજૂરી આપે છે: a) એક મજબૂત કી જનરેટ/સેવ કરો અને એન્ટી-બ્રુટ ફોર્સ લોક સાથે PIN વડે તેના ઉપયોગને સુરક્ષિત કરો; b) કહેવાતા માપેલા બુટને સક્રિય કરો, જ્યાં દરેક બુટ ઘટકને PCR રેકોર્ડમાં માપવામાં આવે છે., તેથી કી ફક્ત ત્યારે જ "અનવ્રેપ" થાય છે જો સિસ્ટમ સાથે ચેડાં કરવામાં આવ્યા ન હોય (અને વૈકલ્પિક રીતે પ્રી-બૂટ પિન સાથે).
/dev/tpm0 અને /dev/tpmrm0: તફાવતો અને દરેકનો ઉપયોગ ક્યારે કરવો
જ્યારે TPM 2.0 ઉપલબ્ધ હશે ત્યારે Linux પર તમને બે અક્ષર ઉપકરણો દેખાશે. /dev/tpm0 એ TPM નું "કાચું" ઇન્ટરફેસ છેજ્યારે /dev/tpmrm0 રિસોર્સ મેનેજર દ્વારા ઍક્સેસને ખુલ્લા પાડે છે. (એક મેનેજર જે ક્લાયન્ટ્સનો ગુણાકાર કરે છે, સત્રો અને સંસાધનોનું સંચાલન કરે છે), જે મોટાભાગના કિસ્સાઓમાં tpm2-ટૂલ્સ દ્વારા ભલામણ કરાયેલ છે.
જો તમને ખાતરી ન હોય કે TPM અસ્તિત્વમાં છે કે નહીં, તો તમે તેનું હોટ-ટેસ્ટ કરી શકો છો. જો /sys/class/tpm/ ખાલી હોય અથવા વિકિ આદેશ કંઈ પરત ન કરે, કોઈ TPM દેખાતું નથી: તે ભૌતિક રીતે અસ્તિત્વમાં ન હોઈ શકે અથવા ફર્મવેરમાં અક્ષમ હોઈ શકે છે.
# ¿Hay TPM 2.0?
ls /sys/class/tpm/
cat /sys/class/tpm/tpm*/tpm_version_major
# Dispositivos
ls -l /dev/tpm*
જ્યારે બંને ડિવાઇસ નોડ્સ હાજર હોય છે, ત્યારે tpm2-ટૂલ્સ સામાન્ય રીતે /dev/tpmrm0 શોધી કાઢશે અને તેનો આપમેળે ઉપયોગ કરશે. જો તમારે કોઈ ઉપકરણને દબાણ કરવાની જરૂર હોય, તો મોટાભાગના સાધનો -tcti સ્વીકારે છે અથવા TCTI પર્યાવરણ ચલોનો ઉપયોગ કરો, પરંતુ સામાન્ય કાર્યો માટે તે સામાન્ય રીતે જરૂરી નથી.
TPM PCRs: તેઓ કેવી રીતે કાર્ય કરે છે અને તેઓ શું માપે છે
પ્લેટફોર્મ કન્ફિગરેશન રજિસ્ટર એ રેકોર્ડ છે જે દરેક બુટ તબક્કામાં મહત્વપૂર્ણ ઘટકોની સ્થિતિના હેશ (સામાન્ય રીતે SHA-256) સંગ્રહિત કરે છે. પાવર-અપ ચક્ર પર તેમને શૂન્ય પર પ્રારંભ કરવામાં આવે છે અને ફક્ત "વિસ્તૃત" કરી શકાય છે.: ક્યારેય ફરીથી લખશો નહીં કે ભૂંસી નાખશો નહીં (PCR 16 જેવા ડિબગ કેસ સિવાય).
મૂળભૂત કામગીરી એ એક્સ્ટેંશન છે: નવું_મૂલ્ય = SHA256(વર્તમાન_મૂલ્ય || SHA256(ડેટા))આ રીતે માપને તકવાદી રીસેટ્સને મંજૂરી આપ્યા વિના એકસાથે સાંકળવામાં આવે છે. આ પેટર્નનો ઉપયોગ ફર્મવેર, રૂપરેખાંકન, સિક્યોર બૂટ, કર્નલ, initrd અને કર્નલ પરિમાણો, વગેરેને માપવા માટે થાય છે.
આધુનિક સાધનો પર તમને 24 PCR (0–23) દેખાશે. systemd સાથે UEFI બુટમાં સૌથી સુસંગત છે:
– PCR 0: ફર્મવેર કોડ.
– PCR 1: ફર્મવેર ગોઠવણી (UEFI સેટિંગ્સ).
– PCR 7: સુરક્ષિત બુટ સ્થિતિ અને તે જેના પર વિશ્વાસ કરે છે તે પ્રમાણપત્રો.
– PCR 9: કર્નલ દ્વારા માપવામાં આવેલ initrd(s).
– PCR 11: UKI (યુનિફાઇડ કર્નલ ઇમેજ) અને systemd-stub/systemd-pcrphase દ્વારા તબક્કાના ગુણ.
– PCR 12: કર્નલ કમાન્ડ લાઇન.
tpm2-ટૂલ્સ સાથે PCR વાંચો અને વિસ્તૃત કરો: tpm2_pcrread અને tpm2_pcr_extend
tpm2-ટૂલ્સમાં વાંચન આની સાથે થાય છે tpm2_pcrread દ્વારા વધુ અને સાથેનું એક્સટેન્શન tpm2_pcrextend દ્વારા વધુ. તમે ક્યારેક "tpm2_pcr_extend" જોશો જેને વિસ્તરણની કલ્પનાત્મક કામગીરી તરીકે ઓળખવામાં આવે છે, પરંતુ વાસ્તવિક સ્યુટ કમાન્ડ tpm2_pcrextend છે..
પીસીઆરની વર્તમાન સ્થિતિનું નિરીક્ષણ કરવા માટે SHA-256, તે જેટલું સરળ છે:
# Leer PCRs en SHA-256 (ejemplos de índices habituales)
sudo tpm2_pcrread sha256:0,1,7,9,11,12
# O todos los PCRs SHA-256 disponibles
tpm2_pcrread sha256:all
મનસ્વી ડેટાના હેશ (શિક્ષણશાસ્ત્રના ઉદાહરણ તરીકે, /etc/passwd ના હેશ) સાથે PCR ને વિસ્તૃત કરવા માટે, SHA-256 ની ગણતરી કરો અને તેને વિસ્તૃત કરો. યાદ રાખો: TPM વિશાળ ડેટા મેળવતો નથી, પરંતુ તેનો હેશ મેળવે છે, મર્યાદા અને ડિઝાઇન દ્વારા.
# 1) Guardar el hash de /etc/passwd
echo -n $(sha256sum /etc/passwd | cut -d' ' -f1) > passwd.sha
# 2) Extender PCR 7 (ejemplo) con el hash previo
sudo tpm2_pcrextend 7:sha256=$(cat passwd.sha)
# 3) Ver el nuevo valor del PCR 7
tpm2_pcrread sha256:7
જો તમે TPM ની બહાર એક્સટેન્શન ગણિતનું પુનઃઉત્પાદન કરવા માંગતા હો, તમે વર્તમાન PCR મૂલ્ય (બાઈનરી) ને નવા હેશ સાથે જોડો છો અને તમે પરિણામ તપાસવા માટે ફરીથી SHA-256 લાગુ કરો છો.
શું PCR રીસેટ કરી શકાય છે?
સામાન્ય પરિસ્થિતિઓમાં, ના. ફિલસૂફી એ છે કે પીસીઆર ફક્ત એક્સટેન્શન સાથે જ વધે છેએક અપવાદ છે: PCR 16 સામાન્ય રીતે "ડીબગ" માટે આરક્ષિત છે અને ચોક્કસ પ્રવાહોમાં તેને ફરીથી સેટ કરી શકાય છે, પરંતુ તે તમારી પોલિસીના સુરક્ષા રૂટ તરીકે ઉપયોગી નથી.
માપેલ બુટ, LUKS, અને systemd-cryptenroll: ટુકડાઓ એકસાથે મૂકવા
જ્યારે તમે TPM ને તમારા ડિસ્ક એન્ક્રિપ્શનમાં એકીકૃત કરો છો, ત્યારે તમે કી અનલોકને PCR ના સેટ સાથે "બાઇન્ડ" કરી શકો છો. જો વર્તમાન બુટમાં તે પીસીઆરના મૂલ્યો એ જ હોય જે તમે કી રજીસ્ટર કરી હતી, TPM અનસીલ થાય છે અને LUKS વોલ્યુમ આપમેળે ખુલે છે (તમારા રૂપરેખાંકન પર આધાર રાખીને, પ્રી-બૂટ પિન સાથે અથવા વગર).
આ systemd-cryptenroll અને systemd-cryptsetup સાથે ખૂબ જ સરસ રીતે કરવામાં આવે છે. વિચાર એ છે કે તમારું વોલ્યુમ બનાવો, TPM કી દાખલ કરો અને રિકવરી કી ઉમેરો. જેથી માપ બદલાય તો પણ તમે બાકાત ન રહે (ઉદાહરણ તરીકે, ફર્મવેર અથવા કર્નલ અપડેટ કર્યા પછી).
# Ejemplo: crear LUKS, matricular TPM y añadir recuperación (pseudoflujo)
# 1) Crear el volumen con contraseña temporal
sudo cryptsetup luksFormat /dev/nvme0n1p2
# 2) Matricular TPM en LUKS usando PCRs concretos y PIN
sudo systemd-cryptenroll \
--tpm2-device=auto \
--tpm2-with-pin=yes \
--tpm2-pcrs=1+2+3+4 \
--wipe-slot=empty \
/dev/nvme0n1p2
# 3) Añadir clave de recuperación aleatoria
sudo systemd-cryptenroll --recovery-key /dev/nvme0n1p2
# 4) Abrir con TPM o con recovery cuando proceda
systemd-cryptsetup attach root /dev/nvme0n1p2 - tpm2-device=auto
જો તમે કોઈ વિસંગતતા પર દબાણ કરો છો (ઉદાહરણ તરીકે, તમે જાણી જોઈને PCR 4 લંબાવો છો), TPM હવે કી રિલીઝ કરશે નહીં અને તમારે રિકવરી કીનો ઉપયોગ કરવાની જરૂર પડશે. તમે પછીથી નવા વર્તમાન મૂલ્યો સાથે TPM ને ફરીથી નોંધણી કરાવી શકો છો -વાઈપ-સ્લોટ=tpm2 અને systemd-cryptenroll નું બીજું એક્ઝેક્યુશન.
કયા પીસીઆર પસંદ કરવા અને શા માટે
તમે જેટલા વધુ સુસંગત PCR ને લિંક કરશો, તેટલું વધુ સપાટીનું ક્ષેત્રફળ ઘટશે, પરંતુ કાયદેસર ફેરફારો પછી તમારે વધુ વખત ફરીથી નોંધણી કરાવવી પડશે. કેટલાક વ્યવહારુ માપદંડો:
– PCR 7 (સિક્યોર બૂટ): જો તમારો કીસેટ બદલાતો નથી, તો તે ખૂબ જ સ્થિર હોવો જોઈએ.
– PCR 0/1 (ફર્મવેર અને ગોઠવણી): આ ભાગ્યે જ બદલાય છે; ફર્મવેર અપડેટ કર્યા પછી અથવા BIOS/UEFI બદલ્યા પછી તેમને ફરીથી નોંધણીની જરૂર પડે છે.
– PCR 9/11/12 (કર્નલ, initrd, UKI અને cmdline): જો તમે UKI અથવા સ્થિર સહી/નીતિનો ઉપયોગ ન કરો તો આ વારંવાર બદલાય છે.
કેટલાક વાતાવરણમાં એવું જોવા મળ્યું છે કે ફક્ત PCR 7 ને જ લિંક કરવામાં આવે છે, જો તેઓ UKI તરીકે શરૂ થાય તો સિક્યોર બુટ વેરિફિકેશન કર્નલ અને initrd પર આધાર રાખે છે અને systemd-boot નો ઉપયોગ કરે છે જે જ્યારે SB સક્રિય હોય ત્યારે કર્નલ પરિમાણોને સંપાદિત કરવાની મંજૂરી આપતું નથી.. તે કામ કરે છે, પરંતુ જો તમારું સિક્યોર બૂટ થર્ડ-પાર્ટી કી (જેમ કે માઇક્રોસોફ્ટ થર્ડ પાર્ટી) પર આધાર રાખે છે, તો PCR 7 ને સાચવતું વૈકલ્પિક બૂટ ગોઠવવાનું સરળ છે અને તેથી તે સૌથી પ્રતિબંધિત વિકલ્પ નથી..
UKI અને PCR નીતિઓ પર હસ્તાક્ષર: સુરક્ષા ગુમાવ્યા વિના સ્થિરતા
કર્નલ અપડેટ કરતી વખતે દર વખતે ફરીથી નોંધણી ટાળવા માટેનો એક વ્યવહારુ ઉકેલ એ છે કે ઉપયોગ કરવો UKI (યુનિફાઇડ કર્નલ ઇમેજ) અને સહી થયેલ PCR નીતિતમે એક કી જોડી જનરેટ કરો છો, નોંધણી સમયે પબ્લિક કીને TPM સાથે જોડો છો, અને દરેક અપડેટ પછી તમારા UKI પર સહી કરો છો. TPM તે સહી પર વિશ્વાસ કરે છે અને ચોક્કસ કર્નલ હેશ બદલાય તો પણ અનલોકિંગને મંજૂરી આપે છે.
systemd-measure ટૂલ અને systemd-ukify હેલ્પર આને સરળ બનાવે છે: પેકેજો કર્નલ, initrd અને cmdline ને UKI માં ukify કરો (સામાન્ય રીતે PCR 11 માં માપવામાં આવે છે) અને systemd-measure નીતિ પર સહી કરે છે. mkinitcpio સાથે, ukify ને એકીકૃત કરી શકાય છે જેથી ઇન્સ્ટોલેશન પછી સહી પોતે જ અમલમાં આવે છે.
# Esquema típico (pseudocomandos)
# 1) Crear claves para política PCR firmada
openssl genpkey -algorithm RSA -out /etc/kernel/pcr-initrd.key.pem -pkeyopt rsa_keygen_bits:3072
openssl req -new -x509 -key /etc/kernel/pcr-initrd.key.pem -out /etc/kernel/pcr-initrd.pub.pem -subj "/CN=UKI PCR Policy"
# 2) Configurar ukify/mkinitcpio para generar UKI y firmar política
# (consultar man ukify y systemd-measure para parámetros)
# 3) Matricular en LUKS atando PCRs y clave pública de la política
sudo systemd-cryptenroll \
--tpm2-device=auto \
--wipe-slot=tpm2 \
--tpm2-with-pin=yes \
--tpm2-pcrs=0+1+2+7 \
--tpm2-public-key=/etc/kernel/pcr-initrd.pub.pem \
--tpm2-public-key-pcrs=11 \
/dev/nvme0n1p2
આ રીતે, જ્યાં સુધી તમે તમારી કી વડે UKI પર સહી કરવાનું ચાલુ રાખો છો, ત્યાં સુધી તમારી પોલિસી કર્નલ/initrd ફેરફારો સામે સ્થિર રહે છે.જો તમે તમારા પાસવર્ડ રિન્યુ કરો છો અથવા તમારા PCR સેટમાં ફેરફાર કરો છો, તો તમારે ફરીથી નોંધણી કરાવવાની જરૂર પડશે.
systemd સાથે માપન સાંકળોના ઉદાહરણો
બુટ દરમિયાન, systemd-stub અને systemd-pcrphase ચોક્કસ સમયે PCR ને વિસ્તૃત કરે છે. ઉદાહરણ તરીકે, "enter-initrd" PCR 11 માં રેકોર્ડ થયેલ છે, અનલોકને ફક્ત initrd ની અંદર જ માન્ય રહેવાની મંજૂરી આપે છે (જે વેક્ટર પછીથી કીનો ફરીથી ઉપયોગ કરવાનો પ્રયાસ કરે છે તેને ઘટાડે છે).
UKI ધરાવતી સિસ્ટમોમાં, UKI સામગ્રી PCR 11 માં માપવામાં આવે છે; UKI વગરની સિસ્ટમોમાં, કર્નલ PCR 9 માં initrds માપે છે. અને બુટલોડર PCR 12 માં cmdline માપી શકે છે. ખાતરી કરો કે તમે તમારી પોલિસીમાં initrd અને cmdline ને આવરી લો છો, નહીં તો કોઈ બેકડોર ઇયર initrd અથવા બુટ દૂષિત cmdline જેવી init=/bin/bash.
વાસ્તવિક જોખમો: કોલ્ડ બૂટ, TPM સ્નિફિંગ, અને વધુ
શું ખોટું થઈ શકે છે? ધમકીઓનું મોડેલિંગ કરતી વખતે જાણવા જેવી કેટલીક બાબતો. કોલ્ડ બુટ હુમલાઓ હજુ પણ સક્ષમ છે: જો અનલોક સંપૂર્ણપણે સ્વચાલિત હોય, તો હુમલાખોર અમર્યાદિત પ્રયાસોનું પુનરાવર્તન કરી શકે છે. સ્પષ્ટ શમન એ છે કે પ્રી-બૂટ પિન (PBA) ની જરૂર પડે, જે દરેક પાવર ચક્રમાં એક પ્રયાસ ઘટાડે છે.
બીજી શ્રેણી છે TPM બસ પર સુંઘવાના હુમલાCPU કીની વિનંતી કરે છે, TPM તેને મોકલે છે; જો લિંક ટેપ કરવામાં આવે છે, તો કી લીક થઈ શકે છે. આ માટે, systemd "પેરામીટર એન્ક્રિપ્શન" લાગુ કરે છે જેથી એક્સચેન્જ એન્ક્રિપ્ટેડ થાય; વૈકલ્પિક રીતે, fTPM/Intel PTT અથવા એન્ક્રિપ્ટેડ મેમરીનો ઉપયોગ એક્સપોઝર ઘટાડે છે. મોટા બ્રાન્ડ લેપટોપ પર શક્યતા દર્શાવતા પ્રમાણમાં સસ્તા જાહેર પ્રદર્શનો (માઈક્રોકન્ટ્રોલર્સ સાથે પણ) છે.
શૈક્ષણિક અને વ્યવહારિક નબળાઈઓ પણ રહી છે: TPM-નિષ્ફળતા, ફોલ્ટTPM (AMD પર નોંધપાત્ર અસર સાથે) અને કેસ બિટપિક્સી (CVE-2023-21563)આનો અર્થ એ નથી કે TPM નકામું છે, પરંતુ તમારે તમારા ફર્મવેરને અદ્યતન રાખવું જોઈએ, તમારા થ્રેટ મોડેલને સમજવું જોઈએ અને તેના પર આંધળો વિશ્વાસ ન કરવો જોઈએ.
આ ધમકીઓ સામે બિટલોકર સ્થિતિ
વિન્ડોઝની દુનિયામાં, સૌથી વધુ ઉપયોગમાં લેવાતું ડિસ્ક એન્ક્રિપ્શન બિટલોકર છે. હવે નોંધ્યું છે કે તેનું ડિફોલ્ટ રૂપરેખાંકન (ફક્ત TPM સાથે ઓટો અનલોક) તે કોલ્ડ બૂટ અને TPM ચેનલ સ્નિફિંગ બંને માટે દરવાજો ખુલ્લો રાખે છે, કારણ કે તે systemd-શૈલી પેરામીટર એન્ક્રિપ્શન લાગુ કરતું નથી. આનાથી ચોક્કસ કોર્પોરેટ કમ્પ્યુટર્સ મિનિટોમાં હુમલા માટે સંવેદનશીલ બને છે.
ત્યાં ભલામણ એ છે કે સક્ષમ કરો પ્રી-બુટ પ્રમાણીકરણ પોલિસી/રજિસ્ટ્રી અથવા CLI દ્વારા, જે સરેરાશ વપરાશકર્તા માટે પૂરતા પ્રમાણમાં ખુલ્લી નથી. ઉપરાંત, રિકવરી કી ક્યાં સંગ્રહિત છે તે તપાસવાનું યાદ રાખો: તે ઘણીવાર વપરાશકર્તાના Microsoft એકાઉન્ટમાં રહે છે, જે તે જોખમનો બીજો એક પાસું છે જો નિયંત્રિત ન હોય તો.
વાંધાજનક/રક્ષણાત્મક યુક્તિ: તમારા પાસવર્ડને ફરજિયાત બનાવવા માટે LUKS રુટ બદલો.
જ્યારે કોઈ પ્રી-બૂટ પ્રમાણીકરણ ન હોય ત્યારે એક રસપ્રદ વેક્ટર હોય છે. હુમલાખોર વાસ્તવિક LUKS પાર્ટીશનનું ક્લોન કરી શકે છે, તેને બીજા LUKS થી બદલો જેમાં તે જ UUID અને પાસવર્ડ હોય જે તે જાણે છે., અને કમ્પ્યુટર બુટ કરો. PCR માપન મેળ ખાતું હોવાથી, TPM કી રિલીઝ કરે છે, પરંતુ તે નકલી LUKS સાથે મેળ ખાતું નથી, તેથી initrd "રિકવરી" કી માટે પૂછશે. હુમલાખોરને જાણીતો પાસવર્ડ દાખલ કરીને, તમારી સિસ્ટમ initrd માં રૂટ તરીકે ચાલે છે, અને પછી તમે મૂળ કીની ચોરીનું આયોજન કરી શકો છો (ઉદાહરણ તરીકે, નેટવર્ક પર વાસ્તવિક નકલ માઉન્ટ કરીને અને systemd-cryptsetup નો ઉપયોગ કરીને).
સ્પષ્ટ શમન: પ્રી-બૂટ પ્રમાણીકરણ સક્રિય કરો, અનલોકિંગને initrd તબક્કા સાથે સખત રીતે જોડવા માટે systemd-pcrphase નો ઉપયોગ કરો, અને લક્ષ્ય LUKS વોલ્યુમને માપવા/બાઇન્ડ કરવાનું પણ ધ્યાનમાં લો (દુષ્ટ વર્તુળોને ટાળવા માટે કાળજીપૂર્વક ડિઝાઇનની જરૂર છે).
પાર્ટીશન અને બીજી કી પસંદ કરવી: શ્રેષ્ઠ પ્રથા
રાખો રિકવરી કી તે ફરજિયાત છે: જો TPM અથવા મધરબોર્ડ મરી જાય, તો TPM સાથે જોડાયેલ તમારી કી નકામી છે. LUKS બહુવિધ સ્લોટને મંજૂરી આપે છે (TPM એકનો ઉપયોગ કરે છે, પુનઃપ્રાપ્તિ બીજાનો ઉપયોગ કરે છે). વધુમાં, / અને /home પાર્ટીશનોને અલગ કરવાના ફાયદા છે: તમે અરજી કરી શકો છો TPM a/ સાથે કડક માપન અને /home માટે મજબૂત કી અથવા FIDO2/YubiKey ઉપકરણનો ઉપયોગ કરો, જે એક જ પદ્ધતિમાં એકંદર વિશ્વાસ ઘટાડે છે.
જ્યારે તમે ફર્મવેર અથવા કર્નલ અપડેટ કરો છો ત્યારે શું થાય છે?
જો તમે ફર્મવેર બદલો છો અથવા UEFI વિકલ્પોને સ્પર્શ કરો છો, તો 0/1 જેવા PCR બદલાશે અને જ્યાં સુધી તમે ફરીથી નોંધણી નહીં કરો ત્યાં સુધી TPM કી રિલીઝ કરશે નહીં. આ માટે કર્નલ અને initrd, ફેરફારો વારંવાર થાય છેજો તમે સહી કરેલ નીતિ સાથે UKI નો ઉપયોગ કરતા નથી, તો દરેક અપડેટ તમને પુનઃપ્રાપ્તિ વિકલ્પનો ઉપયોગ કરવા અને પછીથી ફરીથી નોંધણી કરાવવાની ફરજ પાડી શકે છે. સહી કરેલ UKI સાથે, તમે ફક્ત તેના પર સહી કરો છો અને બસ.
સમુદાય નોંધો અને અવલોકનો
ચોક્કસ વિતરણોના કેટલાક લોકપ્રિય માર્ગદર્શિકાઓમાં તેની ભલામણ કરવામાં આવી છે UKI અને systemd-boot નો ઉપયોગ કરતી વખતે ફક્ત PCR 7 ને જ બાંધો, સિક્યોર બૂટના સેફગાર્ડ્સ અને cmdline ને સંપાદિત કરવામાં અસમર્થતા પર આધાર રાખવો. તે કામ કરે છે, પરંતુ જો તમે તૃતીય પક્ષો પર આધાર રાખશો તો જોખમો છે. ભૂતકાળમાં એક બગ પણ દસ્તાવેજીકૃત કરવામાં આવ્યો છે જ્યાં Enter દબાવવાથી અનલોકિંગ પછી પુનઃપ્રાપ્તિ શેલ આવશે; આશ્ચર્ય ટાળવા માટે તમારા સંસ્કરણોને અપ ટુ ડેટ રાખવાનો વિચાર સારો છે.
2025/06 માં રસપ્રદ ટિપ્પણીઓ શેર કરવામાં આવી હતી: TPM ખામી AMD ને અસર કરવાનું ચાલુ રાખે છે અમુક હદ સુધી; વિકિઝે સહી કરેલ PCR નીતિઓ પર ચોક્કસ વિભાગો ઉમેર્યા છે; અને પ્રાયોગિક સુવિધા તરીકે TPM સાથે FDE ઓફર કરતા વિતરણ માટેના ઇન્સ્ટોલરનું પરીક્ષણ કરવામાં આવ્યું હતું, જેમાં કેટલીક વ્યવહારુ અડચણો (પ્રથમ બુટ પર પુનઃપ્રાપ્તિની જરૂર, સ્નેપ્સ પર નિર્ભરતા, ડબલ ડિસ્ક એન્ક્રિપ્શન) હતી, જે એક સમસ્યા હતી જે વધુ ઊંડાણપૂર્વક તપાસ થવી જોઈએ.
વિન્ડોઝમાં ડિસ્ક એન્ક્રિપ્શન પર કેન્દ્રિત એક ફોલો-અપ 2025/07 માં પ્રકાશિત થયું હતું. આ એકંદર નિષ્કર્ષ PBA અને TPM ચેનલને એન્ક્રિપ્ટ કરવાની જરૂરિયાતને મજબૂત બનાવે છે., તેમજ સિક્યોર બૂટમાં થર્ડ-પાર્ટી કી પર નિર્ભરતા મર્યાદિત કરવી.
tpm2-ટૂલ્સ અને systemd સાથે ઓપરેશનલ ટિપ્સ
રોજિંદા ઉપયોગ માટે: tpm2-ટૂલ્સ અને tpm2-tss ઇન્સ્ટોલ કરો. ડિફૉલ્ટ રૂપે /dev/tpmrm0 નો ઉપયોગ કરે છે, અને PCRs સાથે પરીક્ષણ અને પ્રયોગ માટે tpm2_pcrread/tpm2_pcrextend. મનસ્વી ડેટા સાથે ઉત્પાદન PCR ને વિસ્તૃત કરવાનું ટાળો: આ પ્રયોગશાળાઓમાં કરો અથવા પરીક્ષણ માટે PCR 16 નો ઉપયોગ કરો.
systemd-cryptenroll સાથે નોંધણી કરતી વખતે: –tpm2-ડિવાઇસ=ઓટો TPM શોધે છે; –tpm2-પિન સાથે PBA ઉમેરે છે; –tpm2-pcrs=… તમારા પીસીઆર પસંદ કરો; –tpm2-public-key=… અને –tpm2-public-key-pcrs=… સહી કરેલ PCR નીતિ સક્રિય કરો (દા.ત., UKI માટે PCR 11 સાથે જોડાયેલ). ભૂલશો નહીં - વાઇપ-સ્લોટ જ્યારે તમે પહેલાનો સ્લોટ સાફ કરવા માંગતા હો.
જો તમારી પાસે TPM ન હોય અને systemd તમને બુટ પર રાહ જોવા માટે મજબૂર કરે છે
ક્યારેક ક્યારેક, અપડેટ પછી, કોઈ સેવા TPM નો ઉપયોગ કરવાનો પ્રયાસ કરે છે, ભલે તમારા મશીનમાં તે દેખાતું ન હોય, જેના કારણે બુટ થવા પર સમય સમાપ્ત થાય છે. પહેલા તપાસો કે /dev/tpm* દેખાતું નથી. કે /sys/class/tpm માં એન્ટ્રીઓ નહીં.
# Verificación rápida
ls /dev/tpm*
ls /sys/class/tpm/
જો કોઈ TPM ન હોય, તો તમારા /etc/crypttab ને તપાસો tpm2-device=auto જેવા વિકલ્પો નથી.જો તે અસ્તિત્વમાં હોય, તો તેમને કાઢી નાખો અને તમારા initrd ને ફરીથી બનાવો. તમે TPM વગરના કમ્પ્યુટર્સ પર માપન તબક્કાને પણ અક્ષમ કરી શકો છો:
# 1) Eliminar referencias TPM en /etc/crypttab y regenerar initrd
sudo mkinitcpio -P # (o dracut/rebuildinitrd según distro)
# 2) Evitar carga de módulos TPM si el firmware publica algo extraño
echo -e "blacklist tpm\nblacklist tpm_tis\nblacklist tpm_crb" | sudo tee /etc/modprobe.d/no-tpm.conf
# 3) Opcional: evitar pcrphase si te da problemas
sudo systemctl mask systemd-pcrphase.service
જો તમારા સાધનોમાં TPMનો અભાવ હોય તો આ બિનજરૂરી રાહ જોવાની સમસ્યાને દૂર કરે છે. જો તમે પછીથી BIOS/UEFI માં TPM સક્ષમ કરો છો, બ્લેકલિસ્ટ દૂર કરો અને માપ પુનઃપ્રાપ્ત કરવા માટે યુનિટને અનમાસ્ક કરો.
સારી પ્રથાઓ અને વિશ્વાસના નિર્ણયો
કેટલાક લોકો TPM થી સાવચેત રહે છે કારણ કે તે સ્વ-એન્ક્રિપ્ટિંગ ડિસ્કની જેમ "બ્લેક બોક્સ" છે. આ એક વાજબી શંકા છે. તમારા ધમકી મોડેલનું મૂલ્યાંકન કરો અને ઉપયોગિતા, ગોપનીયતા અને જાળવણીને સંતુલિત કરે છે. ઘણા લોકો માટે, TPM+PBA+સહી કરેલ UKI એ અતિશય ઘર્ષણ વિના એક વિશાળ સુરક્ષા છલાંગ છે.
જે હાર્ડવેર તેને મંજૂરી આપે છે તેના પર, ઉમેરો એન્ક્રિપ્ટેડ મેમરી અને સિક્યોર બૂટમાં થર્ડ-પાર્ટી કી પર આધાર રાખવાનું ટાળો; શક્ય હોય ત્યારે ચેઇનને તમારી પોતાની કી સુધી મર્યાદિત રાખો. પ્રકાશિત નબળાઈઓ માટે શમનનો સમાવેશ કરવા માટે ફર્મવેર અને કર્નલને અપડેટ રાખો.
/dev/tpm0, /dev/tpmrm0, અને tpm2_pcrread/tpm2_pcr_extend કામગીરીમાં નિપુણતા મેળવવાથી Linux માં માપેલા બુટ અને મજબૂત ડિસ્ક એન્ક્રિપ્શનનો દરવાજો ખુલે છે; UKI અને સહી કરેલ PCR નીતિ સાથે, તમે ઓપરેશનલ સ્થિરતા પ્રાપ્ત કરો છો, અને પ્રી-બૂટ પિન ઉમેરવાથી તમને વધુ વ્યવહારુ હુમલાઓથી પણ રક્ષણ મળે છે. મુખ્ય વાત એ છે કે પીસીઆર સારી રીતે પસંદ કરો, વારંવાર બદલાતા ફેરફારો પર સહી કરો અને હંમેશા સારી રિકવરી કી રાખો..