Ес­ли ты исполь­зуешь раз­ные, да еще и слож­ные пароли (а ты ведь исполь­зуешь, прав­да?), запом­нить их все — задача прак­тичес­ки непосиль­ная. Для ее решения на помощь при­дут спе­циаль­ные прог­раммы — менед­жеры паролей. Какой из них выб­рать? Вот об этом мы сегод­ня и погово­рим.

info

Все выводы в статье — это лич­ное мне­ние авто­ра со мно­жес­твом нюан­сов и допуще­ний, о которых я пос­тарал­ся упо­мянуть. Менед­жеры паролей — обширная катего­рия про­дук­тов, и у каж­дого поль­зовате­ля най­дут­ся как свои субъ­ективные пред­почте­ния, так и объ­ективные доводы в све­те их кон­крет­ной ситу­ации и опы­та. Я пос­тарал­ся объ­ять необъ­ятное, сох­раняя, нас­коль­ко это воз­можно, объ­ективность, при этом у меня нет кон­флик­та инте­ресов, поэто­му рек­ламиро­вать того или ино­го вен­дора я не ста­ну. Буду рад, если статья ока­жет­ся кому‑то полез­ной, вызовет дис­куссии в ком­мента­риях или кто‑то из читате­лей ука­жет на воз­можные ошиб­ки.

Да­вай нач­нем с исто­рии. Жил‑был Петя, в шко­ле он соз­давал мно­жес­тво акка­унтов на сай­тах, записы­вая пароли (или один‑единс­твен­ный пароль, что уж гре­ха таить) на бумаж­ке, которую береж­но хра­нил в одной из книг. В стар­ших клас­сах ему приш­ла в голову идея, что пароли мож­но хра­нить в таб­лице на компь­юте­ре. Новые акка­унты он заносил в таб­лицу, а ста­рые не стал, ведь бра­узер и при­ложе­ния не про­сили его логинить­ся заново. В уни­вере Петя поменял компь­ютер, таб­лица с пароля­ми переко­чева­ла на флеш­ку, а на новом компь­юте­ре появил­ся еще один файл. Пос­коль­ку иног­да при­ходи­лось соз­давать акка­унты вне дома, то на телефо­не у Пети тоже хра­нилась пароч­ка паролей, так же как и в запис­ной книж­ке. При­том он уже не пом­нил, от чего имен­но некото­рые из записан­ных паролей. А еще в нед­рах его устрой­ств хра­нились вол­шебные SSH-клю­чи и магичес­кие сер­тифика­ты VPN, которые ему помог­ли уста­новить адми­ны на пер­вой работе. В общем, он хра­нил пароли на раз­ных устрой­ствах — ста­рых и новых, лич­ных и рабочих, в раз­ных фай­лах и в книж­ке, не пом­нил, от чего некото­рые из этих паролей, или, еще хуже, пом­нил, от чего пароль, но не пом­нил, где его записал!

Ми­нусы блок­нотов, бумажек и сти­керов, которые так любят кле­ить на монитор сот­рудни­цы бух­галте­рии, оче­вид­ны: они могут выпасть и потерять­ся, на них мож­но про­лить кофе и без­воз­врат­но рас­стать­ся с паролем, соот­ветс­тву­ющим всем полити­кам безопас­ности (ведь мы все соз­даем толь­ко слож­ные пароли, не так ли?). Кро­ме того, их может прос­то уви­деть и запом­нить дру­гой человек. Основная проб­лема хра­нения подоб­ной информа­ции в телефо­не зак­люча­ется в том, что на нем ты не будешь дер­жать сер­тифика­ты, API-токены и SSH-клю­чи, так как это прос­то физичес­ки неудоб­но. Ну и если телефон укра­дут, то пароли и куча дру­гой кон­фиден­циаль­ной информа­ции попадут в руки зло­умыш­ленни­ков. У заметок и таб­лиц еще и шиф­рование отсутс­тву­ет, а тас­кать каж­дый день на работу ноут­бук с фай­лом, толь­ко что­бы иметь при себе все нуж­ные записи, ты не будешь.

Так что же делать? Иде­аль­ное решение — никог­да не сох­ранять пароли и не забывать пить таб­летки для улуч­шения памяти. Но к сожале­нию, мы не в сос­тоянии запом­нить сот­ню учет­ных записей, поэто­му такой вари­ант Петя сра­зу отмел. За решени­ем воп­роса Петя полез в интернет, залоги­нил­ся в одну из соци­аль­ных сетей, и в этот момент перед ним появил­ся поп‑ап, пред­лага­ющий сох­ранить пароль. Неуже­ли бра­узер может хра­нить все его пароли?

 

Браузерные хранилища

Са­мое прос­тое на пер­вый взгляд решение — это вос­поль­зовать­ся встро­енным менед­жером паролей бра­узе­ра. На самом деле это не менед­жер паролей (почему — раз­берем­ся поз­же), а пока давай называть его хра­нили­щем паролей бра­узе­ра (ХПБ). Плю­сы оче­вид­ны: во‑пер­вых, решение работа­ет из короб­ки; во‑вто­рых, дан­ные сами под­став­ляют­ся в фор­мы; в‑треть­их, как заметят опыт­ные поль­зовате­ли, ХПБ поз­волит избе­жать под­ста­нов­ки учет­ных дан­ных на фаль­шивых сай­тах. На этом, собс­твен­но, плю­сы закан­чива­ются. Даль­ше идут толь­ко минусы, и глав­ный из них — это отсутс­твие шиф­рования.

Де­ло в том, что бра­узер соз­давал­ся не для хра­нения паролей, а поэто­му безопас­ность поль­зовате­лей сто­ит для него ниже удобс­тва. Раз­бирать­ся с пароля­ми, которые необ­ратимо зашиф­ровались, ник­то не хочет, поэто­му и хра­нит­ся база во впол­не кон­крет­ном мес­те, шиф­рует­ся по извес­тно­му алго­рит­му, а иног­да и ключ для дешиф­ровки лежит рядом. Имен­но по этой при­чине, стро­го говоря, бра­узер­ные менед­жеры паролей соз­дают ско­рее пси­холо­гичес­кий ком­форт для поль­зовате­ля, чем реаль­ный барь­ер для зло­умыш­ленни­ка.

Кто‑то ска­жет, что все это, конеч­но, здо­рово, но нас­коль­ко дей­стви­тель­но лег­ко получить дос­туп к паролям, хра­нящим­ся в бра­узе­ре? Резон­ный воп­рос! Как от­меча­ет Р. Д. Рас­сел из ком­пании Fractional CISO, дос­тать пароли из бра­узе­ров Firefox, Chrome и Edge на Windows уже в 2022 году было впол­не три­виаль­ной задачей, которая реша­ется с помощью прос­того питонов­ско­го скрип­та. А Nik Zerof писал на «Хакере», как сде­лать подоб­ный сти­лер на плю­сах, еще в 2018 году.

А что же в 2024-м? Давай рас­смот­рим этот воп­рос на при­мере Chrome в раз­личных ОС.

На Windows Server 2019 Standard все сов­сем печаль­но, база дан­ных SQLite 3 и мас­тер‑ключ от нее хра­нят­ся в сле­дующих фай­лах:

C:\Users\$username\AppData\Local\Google\Chrome\User Data\Default\Login Data
C:\Users\$username\AppData\Local\Google\Chrome\User Data\Local State

Chrome бло­киру­ет базу дан­ных, пока он работа­ет. Мас­тер‑ключ закоди­рован в Base64 и скры­вает­ся в перемен­ной encrypted_key, при­чем при откры­тии фай­ла с мас­тер‑клю­чом ник­то не зап­рашива­ет допол­нитель­ных под­твержде­ний. Соот­ветс­твен­но, открыв, нап­ример, файл из пись­ма, зло­умыш­ленник получа­ет дос­туп и к базе дан­ных, и к клю­чу дешиф­ровки.

DPAPI и шифрование App-Bound

Вни­матель­ный читатель навер­няка обра­тил вни­мание на то, что мы получи­ли дос­туп к базе дан­ных и к мас­тер‑клю­чу в кон­тек­сте поль­зовате­ля. Дело в том, что в Windows с 2000 года при­меня­ется механизм DPAPI (Windows Data Protection API), который поз­воля­ет шиф­ровать дан­ные, и которым поль­зует­ся Chrome. Оба фай­ла (база дан­ных и файл с мас­тер‑клю­чом от нее) пред­став­ляют собой DPAPI blob. Нем­ного упро­щая, мож­но ска­зать, что в кон­тек­сте поль­зовате­ля этот блоб авто­мати­чес­ки рас­шифро­выва­ется хра­нящим­ся в LSASS хешем пароля поль­зовате­ля и мас­тер‑клю­чом DPAPI. Сде­лать это от име­ни дру­гого поль­зовате­ля на том же компь­юте­ре было бы невоз­можно.

Од­нако вре­донос­ное ПО, которое ста­рает­ся получить твои пароли, будет в боль­шинс­тве слу­чаев работать имен­но в кон­тек­сте поль­зовате­ля, его уста­новив­шего. Это в дан­ном слу­чае дела­ет защиту DPAPI не слиш­ком высоким барь­ером. Вне кон­тек­ста поль­зовате­ля мож­но попытать­ся получить хеш пароля юзе­ра и уже рас­шифро­ван­ный мас­тер‑ключ DPAPI ата­ками на LSASS, или, если твой компь­ютер все еще исполь­зует клас­сичес­кий BIOS, то ата­кой холод­ной перезаг­рузки.

В Google недав­но оза­боти­лись этой проб­лемой и с вер­сии Chrome 127 (23 июля 2024 года) внед­рили новый механизм — шиф­рование с при­вяз­кой к при­ложе­нию. С ним дан­ные может получить не любой про­цесс, запущен­ный в кон­тек­сте поль­зовате­ля, а толь­ко Chrome, что дела­ет ситу­ацию похожей на про­исхо­дящее в macOS и Linux. Одна­ко новый механизм пока дей­ству­ет толь­ко для фай­лов cookie, и на пароли поль­зовате­лей пока не рас­простра­няет­ся.

Chrome в Windows
Chrome в Windows

На macOS все слож­нее. База паролей хра­нит­ся в фай­ле

/Users/$username/Library/Application Support/Google/Chrome/User Data/Default/Login Data

А вот мас­тер‑ключ Chrome Safe Storage содер­жится уже не в прос­том фай­ле, а в связ­ке клю­чей (Keychain), и по сос­тоянию на 2024 год в macOS Ventura 13.2 для его извле­чения у поль­зовате­ля зап­рашива­ется пароль.

Chrome в macOS
Chrome в macOS

В Linux ситу­ация ана­логич­ная тому, что про­исхо­дит на macOS, то есть база хра­нит­ся по пути ниже, а для ее рас­шифров­ки пот­ребу­ется мас­тер‑ключ Chrome Safe Storage Control из связ­ки клю­чей (нап­ример, gnome-keyring), для дос­тупа к которо­му так­же необ­ходимо ввес­ти пароль поль­зовате­ля, если, конеч­но, ты спе­циаль­но не задал дру­гой пароль для связ­ки клю­чей изна­чаль­но.

~/.config/google-chrome/Default/Login Data

Как видим, при исполь­зовании ХПБ вре­донос­ное ПО дей­стви­тель­но име­ет все шан­сы доб­рать­ся до наших паролей. На Windows это сов­сем прос­то, а на macOS и в Linux при­дет­ся при­ложить чуть боль­ше уси­лий. Этот недос­таток ХПБ был исполь­зован, нап­ример, вымога­телем Qilin в июле 2024-го, ког­да перед шиф­ровани­ем он вытас­кивал все учет­ные дан­ные бра­узе­ров Chrome в домене.

От­сутс­твие шиф­рования поз­воля­ет тво­им кол­легам или родс­твен­никам получить и физичес­кий дос­туп к паролям, если ты оста­вишь компь­ютер незаб­локиро­ван­ным или вооб­ще не исполь­зуешь пароль на этом устрой­стве. А бра­узер­ные рас­ширения, которым мы не гля­дя даем все зап­рашива­емые пра­ва, могут прос­то ска­чать всю базу в тек­сто­вом виде.

У ХПБ есть еще нес­коль­ко минусов. Кто‑то ска­жет, что база паролей хра­нит­ся локаль­но, но на самом деле мы это­го не зна­ем, мы прос­то вос­при­нима­ем это как факт. Еще один минус зак­люча­ется в том, что ХПБ не могут хра­нить ничего, кро­ме учет­ных дан­ных и номеров бан­ков­ских карт. API-клю­чи, сер­тифика­ты или докумен­ты и про­чее ты там не сох­ранишь. И пос­леднее: мы зависи­мы от одно­го бра­узе­ра на одном девай­се, то есть, хра­ня пароли в Safari, ты не можешь вос­поль­зовать­ся ими в Chrome. А если захочешь залоги­нить­ся в один из виде­осер­висов на компь­юте­ре сво­ей девуш­ки, то здесь вооб­ще беда: твой девайс вмес­те с сох­ранен­ным паролем остался дома.

 

Менеджеры паролей

Изу­чив ХПБ, Петя остался недово­лен, ведь его пароли там не будут в безопас­ности. Но как тог­да хра­нить все нажитое непосиль­ным тру­дом?

Ве­роят­но, все слы­шали про Apple Keychain или менед­жер паролей Google, которые нас­тро­ены поч­ти на каж­дом яблочном или Android-устрой­стве. Это облачные менед­жеры паролей (ОМП), которые работа­ют на уров­не эко­сис­темы вен­дора. А, нап­ример, Opera Sync дела­ет неч­то похожее, син­хро­низи­руя всю активность бра­узе­ра Opera на раз­ных устрой­ствах, одна­ко это не исклю­чает уже упо­мяну­тых минусов ХПБ. Получа­ется забав­ная ситу­ация: пом­нишь, что Chrome на плат­форме macOS полагал­ся на Apple Keychain? Получа­ется, что ХПБ исполь­зуют дру­гой, сто­рон­ний ОМП для обес­печения безопас­ности тво­их паролей. Так к чему эти пос­редни­ки?

Ду­маю, самое вре­мя сде­лать неболь­шое отступ­ление и обсу­дить, какие вооб­ще сущес­тву­ют менед­жеры паролей. Я бы раз­делил их на четыре типа:

  • об­лачные менед­жеры паролей (ОМП);
  • ло­каль­ные менед­жеры паролей (ЛМП);
  • кор­поратив­ные менед­жеры паролей (КМП);
  • де­тер­минис­тичес­кие менед­жеры паролей (ДМП).

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии