OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Бета-програма OpenAI Mutual TLS

Оновлено: 6 days ago

OpenAI Mutual TLS дає організаціям змогу налаштувати додатковий рівень безпеки для їхнього трафіку OpenAI API. Після налаштування API-запити слід надсилати на https://mtls.api.openai.com (або https://mtls-eu.api.openai.com для клієнтів із вимогами до локалізації даних у ЄС), і трафік прийматиметься лише за умови надання правильного API-ключа та клієнтського сертифіката. mTLS не застосовується до панелі керування https://platform.openai.com. Ця функція наразі перебуває в бета-версії.

Як налаштувати інтеграцію mTLS?

На панелі навігації налаштувань ви побачите вкладку «Mutual TLS».

Mutual TLS settings page prompting the user to upload a client certificate to enable mTLS

Завантажити сертифікат

Upload a certificate dialog for mutual TLS with name field and PEM certificate text area

Активувати сертифікат

Після завантаження сертифіката наступний крок — активувати його. Після активації сертифіката для проєкту всі API-запити до цього проєкту також почнуть вимагати відповідний клієнтський сертифікат. Якщо для проєкту активовано кілька сертифікатів, ви можете передати будь-який відповідний клієнтський сертифікат. Якщо сертифікат активовано для організації, він застосовуватиметься до всіх API-запитів і «успадковуватиметься» всіма проєктами.

Image

Вимоги до сертифікатів CA

Ви можете завантажити будь-який сертифікат X.509 CA у форматі PEM, який відповідає таким вимогам:

  1. безпосередньо підписує клієнтські сертифікати, які ви плануєте використовувати, або є якорем дійсного ланцюжка сертифікатів, наданого вашим клієнтом.

  2. містить розширення Certificate Authority, Subject Key Identifier і Authority Key Identifier (у форматі KeyIdentifier)

  3. має дозволи Key Usage: «Certificate Sign, CRL Sign»

  4. не спливає протягом найближчого 1 дня

  5. загальний розмір сертифіката має бути меншим за 16 КБ.

Вимоги до клієнтських сертифікатів

Якщо для вашої організації ввімкнено підтримку ланцюжків сертифікатів, ваш клієнт може надати кінцевий клієнтський сертифікат і проміжні сертифікати, потрібні для побудови дійсного ланцюжка до активного завантаженого сертифіката. В іншому разі клієнтські сертифікати мають бути безпосередньо підписані сертифікатами, які ви заздалегідь завантажили. Крім цього, ваші клієнтські сертифікати мають відповідати таким вимогам:

  1. містить розширення Subject Key Identifier і Authority Key Identifier (у форматі KeyIdentifier)

  2. має дозволи Key Usage: «Digital Signature, Key Encipherment»

  3. має дозвіл Extended Key Usage: «TLS Web Client Authentication»

  4. містить розширення Subject Alternate Name

Підтримка ланцюжків сертифікатів для API mTLS

Підтримка ланцюжків сертифікатів дає змогу вашому клієнту надати кінцевий клієнтський сертифікат разом із проміжними сертифікатами, потрібними для побудови дійсного ланцюжка до активного завантаженого сертифіката.

Це може дати змогу ротувати проміжні сертифікати без завантаження кожного нового проміжного сертифіката, доки активний завантажений сертифікат, що використовується як якір довіри, залишається дійсним.

Підтримка ланцюжків сертифікатів наразі доступна за запитом. Щоб запросити доступ, зверніться до свого керівника по роботі з клієнтами або створіть запит до служби підтримки.

Ваш клієнт має надати всі потрібні проміжні сертифікати. OpenAI не отримує відсутні проміжні сертифікати через AIA. Перевірки CRL і OCSP і надалі не підтримуються.

Поширені запитання

Чи можна налаштувати mTLS через API?

Так — докладнішу інформацію див. у довіднику API за адресою https://platform.openai.com/docs/api-reference/.

Які кінцеві точки підтримують mTLS?

Протягом цього бета-періоду mTLS офіційно підтримується в

  • /v1/chat/completions (with all supported extensions e.g. image, audio, streaming, etc.)

  • /v1/completions

  • /v1/embeddings

  • /v1/audio/transcriptions

  • /v1/audio/speech

  • /v1/files

  • /v1/batches

  • /v1/responses

  • /v1/images

  • /v1/moderations

  • /v1/realtime (via server-side web sockets)

  • /v1/fine_tuning

  • /v1/tunnels

Як надіслати клієнтські сертифікати разом із запитом?

Для запиту cURL можна використовувати параметри --cert і --key (див. сторінку man тут). У більшості інших HTTP-клієнтів також є способи передавати клієнтські сертифікати. Приклади: requests у Python, fetch у JS. У наших офіційних SDK ми також підтримуємо перевизначення HTTP-клієнта — приклад для Python див. тут.

Коли підтримку ланцюжків сертифікатів увімкнено, налаштуйте свій HTTP-клієнт так, щоб він надавав кінцевий клієнтський сертифікат і всі потрібні проміжні сертифікати. Точна конфігурація залежить від вашого HTTP-клієнта.

Перш ніж застосовувати mTLS для виробничого трафіку, переконайтеся, що HTTP-клієнт, який ви використовуєте, коректно працює із запитами клієнтських сертифікатів (деякі, наприклад WebSockets у певних браузерах, не працюють). Зверніть увагу, що наш сервер не надає список certificate_authorities у запиті клієнтського сертифіката.

Хто може отримувати доступ до сертифікатів і змінювати їх?

Через інтерфейс панелі керування https://platform.openai.com/settings/organization/mtls власники організації можуть отримувати доступ до сертифікатів і змінювати їх. Будь-хто з Admin API Key (https://platform.openai.com/settings/organization/admin-keys) також може отримувати доступ до сертифікатів і змінювати їх, однак майте на увазі: якщо ви активуєте Mutual TLS на рівні організації, сертифікати також примусово застосовуватимуться до цих API-запитів. Усі зміни mTLS відображаються в журналах аудиту.

Скільки сертифікатів я можу мати?

Кожна організація може завантажити до 50 сертифікатів, які можна спільно використовувати в різних проєктах, але не з іншими організаціями. Ви можете атомарно активувати або деактивувати сертифікат для 10 проєктів одночасно. Також ви можете активувати або деактивувати 10 сертифікатів одночасно для своєї організації або для 1 конкретного проєкту.

Чи можу я оновлювати або видаляти сертифікати?

Ви можете оновлювати назви своїх сертифікатів, але не їхній вміст. Ви також можете видаляти сертифікати, якщо вони наразі не активні в жодній області дії.

Як працює відкликання сертифікатів?

Наразі ми не підтримуємо перевірки CRL або OCSP. Натомість рекомендуємо видалити або ротувати ваш API-ключ. Ви також можете замінити свої сертифікати CA або використовувати клієнтські сертифікати з коротшим строком дії.

Чи можна використовувати довші ланцюжки сертифікатів?

Так, якщо для вашої організації ввімкнено підтримку ланцюжків сертифікатів. Ваш клієнт має надати кінцевий клієнтський сертифікат і всі потрібні проміжні сертифікати, щоб OpenAI могла перевірити ланцюжок до активного завантаженого сертифіката. Щоб запросити доступ, зверніться до свого керівника по роботі з клієнтами або створіть запит до служби підтримки.

Яке налаштування рекомендовано?

Під час початкового налаштування цієї функції рекомендуємо почати зі staging-проєкту, який не обслуговує офіційний виробничий трафік. Скористайтеся цією можливістю, щоб переконатися, що ваші сертифікати належним чином налаштовані на ваших машинах і що ви можете успішно надсилати API-трафік. Крім того, рекомендуємо проконсультуватися з командою безпеки вашої організації, щоб якнайкраще зрозуміти ваші потреби.

Додаткова підтримка

Ви можете повністю самостійно керувати функцією mTLS через панель керування та API. Однак якщо ви хочете спочатку ввімкнути mTLS у тіньовому режимі, зверніться до свого менеджера з роботи з клієнтами або відкрийте заявку до служби підтримки, почавши новий чат у правому нижньому куті цієї сторінки.

Додаток: термінологія

  • Сертифікат CA: один із ваших довірених сертифікатів, який використовується для перевірки клієнтських сертифікатів. Він може безпосередньо підписувати клієнтські сертифікати, які ви надсилаєте із запитами, або бути якорем ланцюжка сертифікатів, наданого вашим клієнтом. Ви можете використовувати самопідписані сертифікати CA.

  • Завантажити сертифікат: додати сертифікат CA до свого облікового запису. Він ще ніде не застосовується для mTLS, але ви вже можете почати його налаштовувати.

  • Область дії: певний проєкт або вся ваша організація.

  • Активувати сертифікат CA в області дії: вмикає mTLS саме для цієї області, і всі запити на основі API-ключа мають містити клієнтський сертифікат, який можна перевірити за активним сертифікатом CA.

  • Деактивувати сертифікат CA в області дії: вимикає використання цього сертифіката для перевірки запитів у цій області. Якщо для області дії не залишилося сертифікатів, mTLS фактично вимикається.

  • Успадкування сертифіката: якщо ви активуєте сертифікат для своєї організації, його також буде активовано для всіх проєктів.

Чи була ця стаття корисною?