Кіріспе

macOS жүйесінде парольдерді басқару жүйесі

Keychain – Apple компаниясымен әзірленген macOS жүйесіндегі парольдерді басқару жүйесі. Ол Mac OS 8.6 нұсқасымен бірге енгізілді және қазір macOS деп аталатын операциялық жүйенің барлық келесі нұсқаларында қолданылады. Keychain әртүрлі деректерді сақтауға мүмкіндік береді: парольдер (веб-сайттар, FTP серверлер, SSH аккаунттары, желілік ортақ қолданыс, сымсыз желілер, топтық қолданбалар, шифрланған дискілік бейнелер), жеке кілттер, сертификаттар және құпия жазбалар.

Тарих

Кілттер бастапқыда Apple компаниясының PowerTalk электрондық пошта жүйесі үшін 1990 жылдардың басында жасалды. PowerTalk көптеген мүмкіндіктерінің ішінде, поштаны әртүрлі пошта серверлерінен және онлайн қызметтерден алуға мүмкіндік беретін плагиндерді пайдаланды. Кілттер тұжырымы осы кодтан табиғи түрде пайда болды және PowerTalk-та PowerTalk қосыла алатын әртүрлі электрондық пошта жүйелері үшін пайдаланушының әртүрлі кіру деректерін басқару үшін қолданылды. Парольдер шифрлау арқасында оңай қолжетімді емес еді, бірақ интерфейстің қарапайымдылығы пайдаланушыға әр жүйе үшін әртүрлі парольді таңдауға мүмкіндік берді, оларды ұмытудан қорқып, себебі бір пароль файлды ашып, барлығын қайтаратын еді. Сол кезде осы тұжырымның басқа платформаларда іске асырылуы мүмкін болған жоқ. Кілттер PowerTalk-тың өзінің жеке пайдалы бөліктерінің бірі болды, бұл оны негізгі Mac OS-тің бір бөлігіне айналдыру қажеттігін көрсетті. Бірақ ішкі саясатқа байланысты ол PowerTalk жүйесінде сақталды, сондықтан ол өте аз Mac пайдаланушыларына қолжетімді болды. 1997 жылы Стив Джобс қайтып келгенге дейін, қазір тоқтатылған PowerTalk-тан кілттер тұжырымы қайта жаңғыртылды. Осы уақытқа қарай бұл тұжырым енді ерекше емес еді, бірақ әдетте веб-браузер сияқты нақты қолданбалық бағдарламамен байланысты емес кілт жүйесін кездестіру әлі де сирек болды. Кейіннен кілттер Mac OS 9-дың стандартты бөлігіне айналды және Mac OS X-тің алғашқы коммерциялық нұсқаларына енгізілді.

Сақтау және қол жеткізу

macOS жүйесінде кілт тізбегі файлдары ~/Library/Keychains/ (және ішкі каталогтар), /Library/Keychains/ және /Network/Library/Keychains/ папкаларында сақталады, ал Кілт тізбегі Access GUI бағдарламасы Applications папкасының ішіндегі Utilities папкасында орналасқан. Бұл APSL 2.0 лицензиясының талаптарымен шығарылған тегін, ашық кодты бағдарламалық қамтамасыз ету. Кілт тізбегіне қол жеткізудің командалық жолы /usr/bin/security. Кілт тізбегі дерекқоры AES 256 GCM арқылы кесте және қатар деңгейінде шифрланады. Әрбір деректің шифрдан алыну уақыты, оның қанша уақытқа дейін шифрланбаған күйде қалатыны және шифрланған деректің iCloud-қа синхрондалатыны сақталған деректер түріне байланысты өзгереді және Apple қолдау сайтында сипатталған.

Қалқалау және ашу

Әдеттегі кілт файлы – кіру кілті, ол әдетте пайдаланушының кіру паролімен кірген кезде ашылады. Дегенмен, осы кілттің паролі пайдаланушының кіру паролінен өзгеше болуы мүмкін, бұл қауіпсіздікті арттырады, бірақ біршама ыңғайлылықтан айырылуға әкеледі. Кілттерге қол жеткізу бағдарламасы кілтке бос пароль орнатуға рұқсат бермейді. Компьютер белгілі бір уақыт бойы қолданылмаса, кілт тізбегі автоматты түрде "құлыпталуы" мүмкін, сондай-ақ Кілттерге қол жеткізу бағдарламасынан қолмен құлыптауға болады. Кілт құлыпталған кезде, келесі қол жеткізу үшін парольді қайтадан енгізу қажет. ~/Library/Keychains/ файлының үстіне жаңа файлды жазу (мысалы, қалпына келтіру операциясының бөлігі ретінде) кілт тізбегін де құлыптайды және келесі қол жеткізуде пароль талап етіледі.

Парольді қадамдастыру

Егер кіру кілті кіру паролімен қорғалса, кілтінің паролі macOS-та тіркелген сессия ішінде кіру паролі өзгерген сайын өзгереді. Ортақ Mac/Mac емес желіде пайдаланушының кіру паролі Mac емес жүйеден өзгертілсе, кіру кілтінің паролі синхронизациясын жоғалтуы мүмкін. Сондай-ақ, егер пароль Active Directory немесе Open Directory сияқты каталог қызметінен немесе басқа әкімшілік тіркелгіштен, мысалы, Жүйелік қалаулар арқылы өзгертілсе. Кейбір желі әкімшілері бұған жауап ретінде кіру кезінде кілт файлын жойып жібереді, сонда пайдаланушы келесі кіргенде жаңа файл жасалады. Бұл кілтпен кіретін парольдер кіру паролі өзгермесе де, бір сессиядан келесісіне сақталмайды дегенді білдіреді. Егер мұндай жағдай болса, пайдаланушы кілт тізбегі файлын ~/Library/Keychains/ қалтасынан сақтық көшірмеден қалпына келтіре алады, бірақ бұл кілт тізбегін құлыптап, келесі пайдалану кезінде оны ашу қажет болады.

Кілттер тізбегін синхрондау үшін үшінші тараптың бағдарламалық жасақтамасы

Mac OS X жүйесінде кілтке қол жеткізу арқылы жасалған жеке кілт сақтау орындарын синхрондауға мүмкіндік беретін үшінші тараптық бағдарламалық қамтамасы жасалды. Осы стандартты кілтке қол жеткізу арқылы жасалған пайдаланушы кілт сақтау орындарын құрылғылар арасында (iPhone, тұрғылықты Apple компьютерлері) Jinx Software компаниясының Патрик Стайн жасаған кілт сақтау орындарын синхрондауға арналған екі бағдарлама арқылы синхрондауға болады – біреуі Mac OS X үшін, екіншісі iOS үшін, Keychain2Go деп аталады. Әзірлеуші Keychain2Go бағдарламасын Mac OS X Sierra 10.12 нұсқасында Apple енгізген кілт сақтау орындарына және кілтке қол жеткізуге қатысты шектеулерді ескеретіндей етіп жаңарта алмады.

Қауіпсіздік

Кілт тізбегі iOS және macOS жүйелерімен бірге таратылады. iOS нұсқасы қарапайымдау, себебі мобильді құрылғыларда іске қосылатын қолданбаларға көбінесе кілт тізбегінің негізгі мүмкіндіктері ғана қажет. Мысалы, ACL (Қол жеткізуді бақылау тізімдері) және әртүрлі қолданбалар арасында кілт тізбегі элементтерін бөлісу мүмкіндіктері жоқ. Осылайша, iOS кілт тізбегі элементтеріне тек оларды жасаған қолданба ғана қол жеткізе алады. Mac пайдаланушыларының құпия ақпаратты сақтауға арналған негізгі орны ретінде кілт тізбегі қауіпсіздікке қарсы шабуылдардың басты нысанасы болып табылады. 2019 жылы 18 жасар неміс қауіпсіздік зерттеушісі Линус Хензе кілт тізбегінен құпия сөздерді ұрлайтын KeySteal деп аталған хакерлік әрекетін көрсетті. Бастапқыда ол хакерлік әрекеттің толық мәліметтерін жасырып, Apple-ден macOS үшін қателерге сыйлық беру бағдарламасын құруды талап етті. Бірақ Apple бұған бұрын да, Хензе хакерлік әрекетті жариялағаннан кейін де келіспеді. Ол Safari-дің қауіпсіздік қызметтеріне қол жеткізуін пайдаланды және macOS-та IT әкімшілеріне кілт тізбектерін басқаруға мүмкіндік беретін пайдалы құрал ретінде жасырынып өтті.