Кіріспе
Жоқ. Дискіні шифрлау – сақтау ортасы секторлық адрестемелі құрылғы (мысалы, қатты диск) болғанда, сақталып тұрған деректерді қорғаудың ерекше жағдайы. Бұл мақалада осы мәселенің криптографиялық аспектілері қарастырылады. Толық көрініс үшін дискіні шифрлау бетіне қараңыз. Осы мәселеге арналған түрлі бағдарламалық қамтамасы мен аппараттық құрылғылар туралы талқылау үшін дискіні шифрлау бағдарламалық қамтамасы және дискіні шифрлау аппараттық құрылғыларына қараңыз.
Disk encryption is a special case of data at rest protection when the storage medium is a sector addressable device (e. g., a hard disk). This article presents cryptographic aspects of the problem. For an overview, see disk encryption. For discussion of different software packages and hardware devices devoted to this problem, see disk encryption software and disk encryption hardware.
Тар және кең блок
Дискілерді шифрлау әдістері "тар блок" және "кең блок" әдістеріне де бөлінеді. Сектор көлеміндегі қарапайым мәтін үшін, тар блок әдісі оны бірнеше блокқа бөліп шифрлайды, ал кең блок әдісі бір блокпен ғана шифрлейді. LRW, XES және XTS сияқты тар блок әдістері шабуылшыға блоктардың ұсақтығын пайдаланып, трафик талдауын және қайта ойнатуды жүргізуге мүмкіндік береді.
Блок шифрлауға негізделген режимдер
Көптеген шифрлау схемалары сияқты, блок шифріне негізделген дискіні шифрлау жұмыс режимдерін пайдаланады, олар шифрлердің блок өлшемінен (әдетте 128 бит) үлкен көлемдегі деректерді шифрлеуге мүмкіндік береді. Демек, режимдер – шифрлердің жеке блок операцияларын қайталап қолдану қағидалары.
Шифрланған тұз секторын инициализациялау векторы (ESSIV)
ESSIV – дискіні шифрлауда қолдану үшін блок шифрлауға арналған инициализациялау векторларын жасау әдісі. IV-терді жасаудың әдеттегі әдістері, мысалы, уақыт белгісі немесе сектор нөміріне негізделген сандардың болжамды тізбектері болып табылады және су таңбасы шабуылы сияқты белгілі бір шабуылдарға жол береді. ESSIV мұндай шабуылдарды сектор нөмірін (SN) кілттің хэшімен біріктіре отырып IV-терді жасау арқылы болдырмайды. Хэш түріндегі кілтпен жасалған осы комбинация IV-ті болжау мүмкін емес етеді. ESSIV-ті Clemens Fruhwirth әзірлеген, және ол Linux ядросына 2.6.10 нұсқасынан бастап енгізілді, бірақ ұқсас схема 2000 жылдан бері OpenBSD жүйесіндегі алмасу (swap) шифрлау үшін IV-терді жасауға қолданылып келеді. ESSIV dm-crypt және FreeOTFE дискіні шифрлау жүйелерінде опция ретінде қолдау көрсетіледі.
Қисықсыздыққа шабуыл
CBC (ESSIV-пен немесе онсыз) құпиялылықты қамтамасыз етеді, бірақ шифрланған деректердің толықтығын қамтамасыз етпейді. Егер қарсыласқа бастапқы мәтін белгілі болса, шабуылшы әрбір екінші мәтін блогын өзі қалаған мәнге өзгерте алады, ал арадағы блоктар кездейсоқ мәндерге ауыстырылады. Бұл CBC немесе CBC ESSIV режимінде дискіні шифрлауға қатысты нақты шабуылдар жасауға қолданылуы мүмкін.
Лисков, Ривест және Вагнер (LRW)
Твиктелмелі тар блок шифрлау (LRW) – Лисков, Ривест және Вагнер ұсынған операциялар режимінің бір түрі (2-теореманы қараңыз). Бұл режимде екі кілт қолданылады: блок шифрі үшін кілт және блокпен бірдей өлшемдегі қосымша кілт. Мысалы, AES үшін 256 биттік кілт болса, онда 256 биттік сан, ал 128 биттік сан болады. Логикалық индексі (твик) бар блогын шифрлеу келесі формула бойынша жүзеге асырылады:
Мұнда көбейту және қосу шекті өрісте (AES үшін) орындалады. Алдын ала есептеулер жасалған жағдайда, сектор үшін тек бір көбейту операциясы қажет (бинарлық шекті өрістегі қосу – қарапайым биттік қосу, яғни xor): , мұнда барлық мүмкін мәндері үшін алдын ала есептеледі. Бұл операция режиміне әр блок үшін тек бір шифрлау қажет, және ол жоғарыда аталған шабуылдардың барлығынан, бірақ шағын ақаулықтан басқа қорғайды: егер пайдаланушы сектордағы бір жазық мәтіндік блокты өзгертсе, тек бір шифрланған мәтіндік блок өзгереді. (Еске сала кетейік, бұл ECB режиміндегідей ақаулық емес: LRW режимінде әртүрлі орындардағы бірдей жазық мәтіндер әртүрлі шифрлық мәтіндерге шифрланады.) LRW-де кейбір қауіпсіздік мәселелері бар, сондықтан бұл режим XTS-пен алмастырылды. LRW BestCrypt жүйесінде қолданылады және dm-crypt және FreeOTFE дискіні шифрлеу жүйелері үшін опция ретінде қолдау көрсетіледі.
XEX-ге негізделген шифрлық мәтінді ұрлау (XTS) бар код кітапшасы режимі
Шифрмәтінді ұрлау блок өлшеміне бөлінбейтін секторларды қолдайды, мысалы, 520 байттық секторлар мен 16 байттық блоктарды. XTS AES 2007 жылдың 19 желтоқсанында IEEE P1619 ретінде стандартталды. XTS стандарты IV шифрлау үшін блок шифрлаудан өзге кілтті пайдалануды қажет етеді; бұл тек бір кілтті қолданатын XEX-тен ерекшеленеді. Осының салдарынан AES 256 және AES 128 шифрлауын қалаған пайдаланушылар тиісінше 512 биттік және 256 биттік кілтті ұсынуы керек. XTS-тің CCA қауіпсіздігі үшін екі кілт (яғни XTS кілтінің екі жартысы) бөлек болуы тиіс, себебі XTS тізбекті бастап есептейді, ал XEX соңғы түрінде бастайды. SP 800 38E – IEEE Std 1619 2007 стандарты бойынша криптографиялық модульдер үшін XTS AES жұмыс режиміне қатысты ұсыным. Басылым IEEE Std 1619 2007 стандартына сілтеме арқылы AES алгоритмінің XTS AES режимін мақұлдайды, бірақ бір қосымша талапқа сәйкес, әрбір шифрланған дерек бірлігінің (әдетте сектор немесе дискі блогы) максималды көлемі 220 AES блогынан аспауы керек. SP 800 38E бойынша, "Растау немесе кіруді бақылау болмаған жағдайда, XTS AES шифрланған деректерді рұқсатсыз өзгертуге қарсы басқа бекітілген құпиялылық режимдеріне қарағанда жақсырақ қорғауды қамтамасыз етеді". XTS-ті BestCrypt, Botan, NetBSD-нің cgd, dm crypt, FreeOTFE, TrueCrypt, VeraCrypt, DiskCryptor, FreeBSD-нің geli, OpenBSD softraid дискіні шифрлеу бағдарламалық құралы, OpenSSL, Mac OS X Lion-ның FileVault 2, Windows 10-ның BitLocker және wolfCrypt қолдайды.
XTS-тің әлсіз жақтары
XTS режимі деректерді өңдеуге және бұрмалауға осал, ал егер өңдеу мен бұрмалау туралы алаңдаушылық туындаса, қолданбалар деректердің өзгертілгенін анықтау шараларын қолдануы керек: "авторизациялық белгілер болмағандықтан, кез келген шифрланған мәтін (түпнұсқа немесе шабуылшы өзгертілген) қандай да бір ашық мәтін ретінде декодталады және өзгерістерді анықтау үшін енгізілген механизм жоқ. Ең жақсысы – шифрланған мәтіннің кез келген өзгерісі ашық мәтінді толығымен кездейсоқ ету және осы түрлендіруді пайдаланатын қолданбаның ашық мәтінінде мұндай кездейсоқ ашық мәтіндерді анықтау және жою үшін жеткілікті артықтық болғанына сену." Бұл ZFS немесе Btrfs сияқты дискідегі барлық деректер мен метадеректер үшін тексеру сомаларын сақтауды қажет етеді. Дегенмен, ext4 және NTFS сияқты кеңінен қолданылатын файлдық жүйелерде тек метадеректер ғана бұрмалаудан қорғалған, ал деректерді бұрмалауды анықтау мүмкіндігі жоқ. Бұл режим секторлар мен 16 байттық блоктарға қатысты трафик талдауы, қайта ойнату және кездейсоқ шабуылдарға осал. Белгілі бір сектор қайта жазылғанда, шабуылшылар талдау немесе қайта ойнату шабуылдары үшін пайдаланылатын (16 байттық дәлдікпен) ұсақ шифрленген мәтіндерді жинай алады. Секторлық шифрларды анықтау мүмкін болар еді, бірақ бұл өнімділікті төмендетер еді (төменде қараңыз).
Ағынды шифрлау режімдері
HBSH (хэш, блок шифрі, ағын шифрі, хэш) құрылымы, Google қызметкерлері 2018 жылы жариялаған, жылдам ағын шифрін дискіні шифрлеуде пайдалануға мүмкіндік береді. Төменгі деңгейдегі Android құрылғыларында қолданылатын Adiantum схемасы NH, 256 биттік Advanced Encryption Standard (AES 256), ChaCha12 және Poly1305 таңдайды. Бұл құрылым өзгертілгіш және кең блокты. Ол деректерді үш рет қарауды талап етеді, бірақ AES нұсқаулар жиынтығы жоқ ARM Cortex A7 процессорда AES 128 XTS-тен де жылдам. 2023 жылы Альдо Гансинг, Джоан Деймен және Барт Мэннинк "екі қабатты" құрылымын ұсынды, ол да ағын шифрін пайдаланады. Ол қайтадан өзгертілгіш және кең блокты.