Импортирането на клиентски сертификат за VPN на Android отнема няколко минути. Проверката, че е попаднал на правилното място, отнема повече време и точно тази част повечето хора пропускат, след като диалогът за инсталиране съобщи успех. Съобщението за успех означава само, че файлът е разчетен. То не казва нищо за това кой доставчик държи частния ключ или дали копие все още седи в папката Downloads.

Стъпка 1: Прочетете P12, преди да напусне машината ви

Започнете със самия файл. Ако не можете да назовете субекта, издателя и срока на валидност вътре в него, импортирате нещо, което няма да можете да проверите по-късно.

Пакетът PKCS#12 обикновено носи клиентски сертификат, неговия частен ключ и веригата на издателя. openssl pkcs12 -in client.p12 -info -noout отпечатва MAC и алгоритмите за криптиране, без да извежда ключов материал, така че виждате дали пакетът е защитен с парола и с какъв шифър. След това изпълнете keytool -list -v -keystore client.p12 -storetype PKCS12, за да получите псевдонима, отпечатъка SHA-256 и прозореца на валидност, който ще сравните с телефона.

Изпращайте паролата по различен канал от файла или предайте файла в управляван поток за разпространение, който не оставя копие. Парола, поставена в същото съобщение в чата като архива, превръща две контроли в една.

Стъпка 2: Инсталирайте го в слота, който приложението VPN действително чете

На стандартен Android 11 до 14 пътят минава през Настройки, Сигурност, Криптиране и идентификационни данни, Инсталиране на сертификат, след това VPN и потребителски сертификат на приложението. Формулировката и влагането се менят между версиите и обвивките на производителите, затова следвайте етикета за типа идентификационни данни, а не запомнена позиция в менюто. В работен профил инсталирайте от вътрешната страна на работата, защото идентификационните данни не пресичат границата на профила.

Не поставяйте клиентска самоличност в слота за сертификат CA. Този слот захранва хранилището за доверие на потребителя и от Android 7 нататък приложенията игнорират добавените от потребителя CA, освен ако тяхната конфигурация за мрежова сигурност не го разреши, така че клиентски сертификат, оставен там, никога не се появява в избора на ключове на VPN.

Някои клиенти на VPN никога не докосват системното хранилище и вместо това импортират P12 в собствената си папка на приложението. Това е законен дизайн, но променя всяка следваща стъпка: ключът вече живее в пясъчника на приложението и е точно толкова силен, колкото това приложение управлява собственото си хранилище. Проверете документацията на клиента, преди да приемете, че KeyChain участва.

Стъпка 3: Докажете кой доставчик държи ключа

Импортът потвърждава разчитането, а не хардуерната защита. На Android 12 и по-нови KeyInfo.getSecurityLevel() съобщава дали ключът се намира в доверената среда за изпълнение, в StrongBox или в софтуер, и замества по-старото извикване isInsideSecureHardware(). Ако клиентът на VPN не показва тази стойност, отпечатъкът от стъпка 1 е вашият резервен вариант. Сертификат, прекодиран при импорта, няма да съвпадне байт по байт, но публичният ключ и субектът все още ще съвпадат.

Неекспортируем не означава неизползваем. Ключ, който не може да напусне устройството, все още може да се използва от всяко приложение, на което потребителят разреши да избере този псевдоним, и затова подканата за псевдоним е истинска контрола, а не формалност. Документацията на Android Keystore си заслужава едно четене, ако вземате това дизайнерско решение.

След това отчетете копията, които сте направили. P12 на лаптопа ви, този в прикачения файл на тикета и този в миналмесечния архив са все още валидни самоличности, докато издателят не ги отмени. Хардуерната защита на екземпляра на телефона не прави нищо за тях.

Стъпка 4: Разберете кой притежава изискването за заключване на екрана

Три тайни се бъркат тук: PIN кодът за отключване на устройството, паролата на частния ключ и паролата на акаунта за VPN. Подкана за една от тях никога не е заявка за нулиране на другите и нулирането на грешната е начинът, по който хората се заключват извън профил, който е работил добре.

Когато администратор на устройство или политика на управляван профил изисква заключване, изискването принадлежи на тази политика, а не на сертификата. adb shell dumpsys device_policy изброява активните администратори и качеството на паролата, което налагат, а това е най-бързият начин да видите дали агент на MDM е причината правилата ви за PIN да са се променили. Премахването на сертификата няма да облекчи политиката, а премахването на политиката е административно решение, а не настройка.

Очаквайте и компромис с удобството. Ако ключът изисква потребителско разрешение, тунелът не може да се вдигне преди първото отключване, така че планираните синхронизации и отдалечените събуждания се провалят по дизайн. Решете това преди внедряването, не след него.

Избягвайте бързия път да редактирате locksettings.db или да преигравате стара заобиколка за забравен модел. Тези процедури са писани за конкретни сборки, могат да оставят хранилището за идентификационни данни в състояние, което рамката вече не очаква, и никога не променят политиката, поискала заключването на първо място.

Стъпка 5: Изведете самоличността и проверете отказа

Извеждането има три части и само първата е локална. Премахнете профила VPN, изтрийте потребителския сертификат под Настройки, Сигурност, Криптиране и идентификационни данни, Потребителски идентификационни данни, след което накарайте издателя да отмени серийния номер на сертификата. Локалното изтриване само по себе си оставя идентификационни данни, които сървърът все още приема, ако някой е запазил P12.

Проверете резултата, вместо да го предполагате. Опитайте връзка с изведения профил и потвърдете, че сървърът я отхвърля. Тунел, който все още се вдига, означава, че сте отменили грешния сериен номер или клиентът тихо е преминал към друга инсталирана самоличност.

Ако връщате назад неуспешен импорт, импортирайте отново от оригиналния криптиран пакет и проверете отпечатъка отново, вместо да използвате повторно декриптиран ключов файл, оставен на диска.

Подобни статии