Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
macOS жүйесінде парольдерді басқару жүйесі
Password management system in macOS
Keychain – Apple компаниясымен әзірленген macOS жүйесіндегі парольдерді басқару жүйесі. Ол Mac OS 8.6 нұсқасымен бірге енгізілді және қазір macOS деп аталатын операциялық жүйенің барлық келесі нұсқаларында қолданылады. Keychain әртүрлі деректерді сақтауға мүмкіндік береді: парольдер (веб-сайттар, FTP серверлер, SSH аккаунттары, желілік ортақ қолданыс, сымсыз желілер, топтық қолданбалар, шифрланған дискілік бейнелер), жеке кілттер, сертификаттар және құпия жазбалар.
Keychain is the password management system in macOS, developed by Apple. It was introduced with Mac OS 8.6, and has been included in all subsequent versions of the operating system, now known as macOS. A Keychain can contain various types of data: passwords (for websites, FTP servers, SSH accounts, network shares, wireless networks, groupware applications, encrypted disk images), private keys, certificates, and secure notes.
Тарих
Кілттер бастапқыда Apple компаниясының PowerTalk электрондық пошта жүйесі үшін 1990 жылдардың басында жасалды. PowerTalk көптеген мүмкіндіктерінің ішінде, поштаны әртүрлі пошта серверлерінен және онлайн қызметтерден алуға мүмкіндік беретін плагиндерді пайдаланды. Кілттер тұжырымы осы кодтан табиғи түрде пайда болды және PowerTalk-та PowerTalk қосыла алатын әртүрлі электрондық пошта жүйелері үшін пайдаланушының әртүрлі кіру деректерін басқару үшін қолданылды. Парольдер шифрлау арқасында оңай қолжетімді емес еді, бірақ интерфейстің қарапайымдылығы пайдаланушыға әр жүйе үшін әртүрлі парольді таңдауға мүмкіндік берді, оларды ұмытудан қорқып, себебі бір пароль файлды ашып, барлығын қайтаратын еді. Сол кезде осы тұжырымның басқа платформаларда іске асырылуы мүмкін болған жоқ. Кілттер PowerTalk-тың өзінің жеке пайдалы бөліктерінің бірі болды, бұл оны негізгі Mac OS-тің бір бөлігіне айналдыру қажеттігін көрсетті. Бірақ ішкі саясатқа байланысты ол PowerTalk жүйесінде сақталды, сондықтан ол өте аз Mac пайдаланушыларына қолжетімді болды. 1997 жылы Стив Джобс қайтып келгенге дейін, қазір тоқтатылған PowerTalk-тан кілттер тұжырымы қайта жаңғыртылды. Осы уақытқа қарай бұл тұжырым енді ерекше емес еді, бірақ әдетте веб-браузер сияқты нақты қолданбалық бағдарламамен байланысты емес кілт жүйесін кездестіру әлі де сирек болды. Кейіннен кілттер Mac OS 9-дың стандартты бөлігіне айналды және Mac OS X-тің алғашқы коммерциялық нұсқаларына енгізілді.
Keychains were initially developed for Apple's e mail system, PowerTalk, in the early 1990s. Among its many features, PowerTalk used plug ins that allowed mail to be retrieved from a wide variety of mail servers and online services. The keychain concept naturally "fell out" of this code, and was used in PowerTalk to manage all of a user's various login credentials for the various e mail systems PowerTalk could connect to. The passwords were not easily retrievable due to the encryption, yet the simplicity of the interface allowed the user to select a different password for every system without fear of forgetting them, as a single password would open the file and return them all. At the time, implementations of this concept were not available on other platforms. Keychain was one of the few parts of PowerTalk that was obviously useful "on its own", which suggested it should be promoted to become a part of the basic Mac OS. But due to internal politics, it was kept inside the PowerTalk system and, therefore, available to very few Mac users. It was not until the return of Steve Jobs in 1997 that Keychain concept was revived from the now discontinued PowerTalk. By this point in time the concept was no longer so unusual, but it was still rare to see a keychain system that was not associated with a particular piece of application software, typically a web browser. Keychain was later made a standard part of Mac OS 9, and was included in Mac OS X in the first commercial versions.
Сақтау және қол жеткізу
macOS жүйесінде кілт тізбегі файлдары ~/Library/Keychains/ (және ішкі каталогтар), /Library/Keychains/ және /Network/Library/Keychains/ папкаларында сақталады, ал Кілт тізбегі Access GUI бағдарламасы Applications папкасының ішіндегі Utilities папкасында орналасқан. Бұл APSL 2.0 лицензиясының талаптарымен шығарылған тегін, ашық кодты бағдарламалық қамтамасыз ету. Кілт тізбегіне қол жеткізудің командалық жолы /usr/bin/security. Кілт тізбегі дерекқоры AES 256 GCM арқылы кесте және қатар деңгейінде шифрланады. Әрбір деректің шифрдан алыну уақыты, оның қанша уақытқа дейін шифрланбаған күйде қалатыны және шифрланған деректің iCloud-қа синхрондалатыны сақталған деректер түріне байланысты өзгереді және Apple қолдау сайтында сипатталған.
In macOS, keychain files are stored in ~/Library/Keychains/ (and subdirectories), /Library/Keychains/, and /Network/Library/Keychains/, and the Keychain Access GUI application is located in the Utilities folder in the Applications folder. It is free, open source software released under the terms of the APSL 2.0. The command line equivalent of Keychain Access is /usr/bin/security. The keychain database is encrypted per table and per row with AES 256 GCM. The time at which each credential is decrypted, how long it will remain decrypted, and whether the encrypted credential will be synced to iCloud varies depending on the type of data stored, and is documented on the Apple support website.
Қалқалау және ашу
Әдеттегі кілт файлы – кіру кілті, ол әдетте пайдаланушының кіру паролімен кірген кезде ашылады. Дегенмен, осы кілттің паролі пайдаланушының кіру паролінен өзгеше болуы мүмкін, бұл қауіпсіздікті арттырады, бірақ біршама ыңғайлылықтан айырылуға әкеледі. Кілттерге қол жеткізу бағдарламасы кілтке бос пароль орнатуға рұқсат бермейді. Компьютер белгілі бір уақыт бойы қолданылмаса, кілт тізбегі автоматты түрде "құлыпталуы" мүмкін, сондай-ақ Кілттерге қол жеткізу бағдарламасынан қолмен құлыптауға болады. Кілт құлыпталған кезде, келесі қол жеткізу үшін парольді қайтадан енгізу қажет. ~/Library/Keychains/ файлының үстіне жаңа файлды жазу (мысалы, қалпына келтіру операциясының бөлігі ретінде) кілт тізбегін де құлыптайды және келесі қол жеткізуде пароль талап етіледі.
The default keychain file is the login keychain, typically unlocked on login by the user's login password, although the password for this keychain can instead be different from a user's login password, adding security at the expense of some convenience. The Keychain Access application does not permit setting an empty password on a keychain. The keychain may be set to be automatically "locked" if the computer has been idle for a time, and can be locked manually from the Keychain Access application. When locked, the password has to be re entered next time the keychain is accessed, to unlock it. Overwriting the file in ~/Library/Keychains/ with a new one (e. g. as part of a restore operation) also causes the keychain to lock and a password is required at next access.
Парольді қадамдастыру
Егер кіру кілті кіру паролімен қорғалса, кілтінің паролі macOS-та тіркелген сессия ішінде кіру паролі өзгерген сайын өзгереді. Ортақ Mac/Mac емес желіде пайдаланушының кіру паролі Mac емес жүйеден өзгертілсе, кіру кілтінің паролі синхронизациясын жоғалтуы мүмкін. Сондай-ақ, егер пароль Active Directory немесе Open Directory сияқты каталог қызметінен немесе басқа әкімшілік тіркелгіштен, мысалы, Жүйелік қалаулар арқылы өзгертілсе. Кейбір желі әкімшілері бұған жауап ретінде кіру кезінде кілт файлын жойып жібереді, сонда пайдаланушы келесі кіргенде жаңа файл жасалады. Бұл кілтпен кіретін парольдер кіру паролі өзгермесе де, бір сессиядан келесісіне сақталмайды дегенді білдіреді. Егер мұндай жағдай болса, пайдаланушы кілт тізбегі файлын ~/Library/Keychains/ қалтасынан сақтық көшірмеден қалпына келтіре алады, бірақ бұл кілт тізбегін құлыптап, келесі пайдалану кезінде оны ашу қажет болады.
If the login keychain is protected by the login password, then the keychain's password will be changed whenever the login password is changed from within a logged in session on macOS. On a shared Mac/non Mac network, it is possible for the login keychain's password to lose synchronization if the user's login password is changed from a non Mac system. Also, if the password is changed from a directory service like Active Directory or Open Directory, or if the password is changed from another admin account e. g. using the System Preferences. Some network administrators react to this by deleting the keychain file on logout, so that a new one will be created next time the user logs in. This means keychain passwords will not be remembered from one session to the next, even if the login password has not been changed. If this happens, the user can restore the keychain file in ~/Library/Keychains/ from a backup, but doing so will lock the keychain, which will then need to be unlocked at next use.
Кілттер тізбегін синхрондау үшін үшінші тараптың бағдарламалық жасақтамасы
Mac OS X жүйесінде кілтке қол жеткізу арқылы жасалған жеке кілт сақтау орындарын синхрондауға мүмкіндік беретін үшінші тараптық бағдарламалық қамтамасы жасалды. Осы стандартты кілтке қол жеткізу арқылы жасалған пайдаланушы кілт сақтау орындарын құрылғылар арасында (iPhone, тұрғылықты Apple компьютерлері) Jinx Software компаниясының Патрик Стайн жасаған кілт сақтау орындарын синхрондауға арналған екі бағдарлама арқылы синхрондауға болады – біреуі Mac OS X үшін, екіншісі iOS үшін, Keychain2Go деп аталады. Әзірлеуші Keychain2Go бағдарламасын Mac OS X Sierra 10.12 нұсқасында Apple енгізген кілт сақтау орындарына және кілтке қол жеткізуге қатысты шектеулерді ескеретіндей етіп жаңарта алмады.
There was a 3rd party software application developed, that enabled synchronization of personal keychains generated using keychain access in Mac OS X, these standard keychain access generated users keychains could then be synchronised between devices (iPhones desktop Apple computers), using a pair of keychain synchronization apps developed by Patrick Stein of Jinx Software, one for Mac OS X and another for iOS called Keychain2Go. Keychain2Go could not be successfully updated by the developer to account for restrictions that Apple made to Keychain and access to Keychain in Mac OS X Sierra 10.12.
Қауіпсіздік
Кілт тізбегі iOS және macOS жүйелерімен бірге таратылады. iOS нұсқасы қарапайымдау, себебі мобильді құрылғыларда іске қосылатын қолданбаларға көбінесе кілт тізбегінің негізгі мүмкіндіктері ғана қажет. Мысалы, ACL (Қол жеткізуді бақылау тізімдері) және әртүрлі қолданбалар арасында кілт тізбегі элементтерін бөлісу мүмкіндіктері жоқ. Осылайша, iOS кілт тізбегі элементтеріне тек оларды жасаған қолданба ғана қол жеткізе алады. Mac пайдаланушыларының құпия ақпаратты сақтауға арналған негізгі орны ретінде кілт тізбегі қауіпсіздікке қарсы шабуылдардың басты нысанасы болып табылады. 2019 жылы 18 жасар неміс қауіпсіздік зерттеушісі Линус Хензе кілт тізбегінен құпия сөздерді ұрлайтын KeySteal деп аталған хакерлік әрекетін көрсетті. Бастапқыда ол хакерлік әрекеттің толық мәліметтерін жасырып, Apple-ден macOS үшін қателерге сыйлық беру бағдарламасын құруды талап етті. Бірақ Apple бұған бұрын да, Хензе хакерлік әрекетті жариялағаннан кейін де келіспеді. Ол Safari-дің қауіпсіздік қызметтеріне қол жеткізуін пайдаланды және macOS-та IT әкімшілеріне кілт тізбектерін басқаруға мүмкіндік беретін пайдалы құрал ретінде жасырынып өтті.
Keychain is distributed with both iOS and macOS. The iOS version is simpler because applications that run on mobile devices typically need only very basic Keychain features. For example, features such as ACLs (Access Control Lists) and sharing Keychain items between different apps are not present. Thus, iOS Keychain items are only accessible to the app that created them. As Mac users’ default storage for sensitive information, Keychain is a prime target for security attacks. In 2019, 18 year old German security researcher Linus Henze demonstrated his hack, dubbed KeySteal, that grabs passwords from the Keychain. Initially, he withheld details of the hack, demanding Apple set up a bug bounty for macOS. Apple had however not done so when Henze subsequently revealed the hack. It utilized Safari's access to security services, disguised as a utility in macOS that enables IT administrators to manipulate keychains.