Підтримка цифрових сертифікатів в інтернет браузерах - pki extensions
Вирішив я тут провести невелике дослідження на предмет роботи інтернет-браузерів з цифровими сертифікатами - як серверними, так і клієнтськими і ще по дрібницях. Відверто кажучи, домашнім користувачам подібні речі не потрібні зовсім, а ось корпоративному користувачеві вони можуть знадобитися. Результати дослідження стали для мене невеликий несподіванкою. Але будемо рухатися поспіль. Для початку список випробовуваних (найбільш актуальні версії на момент постинга):
Всі браузери перевірялися на Windows 7 Enterprise x64. Що перевірялося? А перевірялося наступне:
Під цим пунктом я розумію просто підтримку SSL 3.0 і стандартних SSL сертифікатів. Нічого специфічного. Вобщем-то це стандарт де-факто і всі браузери з цим пунктом повністю солідарні :-)
Вельми актуальне пункт для корпоративного сектора. Оскільки внутрішні портали (особливо на SharePoint) використовують облікові записи Active Directory для розмежування прав доступу на елементи і сторінки корпоративного веб-сайту з використанням Windows (або Integrated) Authentication. Без нього користувачеві довелося б щоразу вводити свої логін і пароль для входу на сайт, що дуже сумно і дуже дратує. А якщо є ось така наскрізна аутентифікація, система сама пересилає облікові дані (як правило, квиток Керберос, а не логін і пароль в чистому вигляді, як деякі могли б подумати) на сервер. Безумовно, роздавати свої облікові дані (хоч і шифровані) всім підряд - не найкраща витівка в цьому житті. Тому існує певний додатковий механізм, який визначає, кому можна їх пересилати чи ні. IE використовує зони інтернету для поділу сайтів. За замовчуванням Internet Explorer'у дозволено пересилати облікові дані тільки тим сайтам, які знаходяться в зоні Local Intranet. Як правило корпоративні портали додаються в цю зону адміністраторами через GPO. На одиночних станціях це налаштовується в апплете Internet Options панелі управління.
Існує думка, що тільки IE може використовувати наскрізну аутентифікацію на інтернеті. Але це все неправда, тому що Google Chrome теж використовує зони інтернету для визначення, кому можна пересилати облікові дані.
- Custom Windows / Integrated Authentication implementation
Бувають в цьому житті такі ситуації, коли використання логіна і пароля для доступу до веб-сайту дуже небезпечно (особливо якщо на сайті зберігається дуже конфіденційна інформація). Для посилення аутентифікації можна використовувати призначені для користувача сертифікати. Користувач просто пред'являє його і тим самим аутентифицирующей на веб-сервері. Знову ж, за замовчуванням для пошуку сертифікатів користувача використовується системне призначене для користувача сховище сертифікатів (certmgr.msc). Але це теж не обов'язково (хоча і рекомендується) і можна зробити свою реалізацію.
В принципі, цю функцію підтримують (тим чи іншим чином) всі браузери. Однак, в Opera вона не працює. Ніяк. Кнопки потрібні є, але вони видають помилки і все. Тому для Opera тут ставимо червоний хрестик.
Більшість додатків, що використовують сертифікати, використовують вбудоване в Windows сховище сертифікатів для визначення довіри і використання сертифікатів користувача. Але в інтернет-браузерах це не суворе умова, хоча дуже корисне, тому що нічого додатково налаштовувати не треба.
Internet Explorer (дивно, так?), Google Chrome і Apple Safai використовують стандартне сховище сертифікатів. Mozilla FireFox і Opera не підтримують його жодним чином.
Примітка: однак, це зовсім не означає, що Chrome і Safari будуть показувати зелені смужки на вашому Extended Validation SSL сертифікаті. Тобто якщо система довіряє вашому кореневого сертифікату (він встановлений в контейнері Trusted Root CAs), Chrome і Safari будуть йому довіряти теж. Але зеленку (якщо вона налаштована для Internet Explorer) показувати не будуть.
Оскільки використання стандартного сховища сертифікатів не обов'язково для браузерів, Mozilla FireFox і Opera використовують свої власні сховища для перевірки довіри SSL сертифікатами, а так само і для використання клієнтських сертифікатів для аутентифікації на інтернеті. Тому якщо у вас використовуються внутрішні сертифікати (видані вашим власним CA), швидше за все вони не будуть працювати в цих браузерах і вам доведеться їх окремо налаштовувати, щоб ці браузери довіряли вашим сертифікатами. Що стосується сертифікатів користувача, то тут доведеться експортувати сертифікат зі сховища в PFX і імпортувати в браузер. Це незручно і взагалі погано.
А тепер зберемо це все в акуратненьку табличку: