Langkau ke kandungan

Keselamatan

Keselamatan yang terasa seperti layanan mesra.

Penyedia identiti hanya sebaik dinding antara penyewanya dan sejauh mana ia berhati-hati dengan rahsia. Beginilah Usher Identity dibina. Kami menerangkan apa yang dilakukan oleh perisian ini; kami tidak membuat sebarang dakwaan pensijilan.

Seni bina

Domain berasingan, rangkaian berasingan.

Halaman Usher Identity sendiri dan pengeluar setiap pelanggan berada di domain boleh daftar yang berbeza. Pangkalan data berada pada rangkaian yang tidak dapat mencapai internet, dan satu-satunya jalan keluar ialah proksi yang menyemak destinasinya.

  • Caddy menamatkan TLS untuk setiap hos dan membuang pengepala yang hanya boleh ditetapkan oleh perkhidmatan Usher Identity sendiri.
  • Peringkat pengesahan menjawab untuk setiap persekitaran, dibezakan mengikut hos; tiada apa-apa yang dicache untuk satu hos lalu disajikan kepada hos lain.
  • Setiap perkhidmatan bercakap dengan Valkey sebagai penggunanya sendiri, terhad kepada kuncinya sendiri. Tiada pengguna lalai.
  • Pernyataan yang membawa token dan kod tidak pernah ditulis ke log pangkalan data bersama nilainya.

Internet

Orang, aplikasi anda, pelayan anda

Tepi

Caddy: TLS, HSTS, membuang pengepala dalaman

usheridentity.com

Laman web dan Console

usheridentity.com, console.usheridentity.com

API

api.usheridentity.com

*.usherid.com

Peringkat pengesahan

Pengeluar dan Lobby setiap persekitaran

Rangkaian data · tiada laluan keluar

Postgres

Satu skema bagi setiap persekitaran

Valkey

Setiap perkhidmatan terhad kepada kuncinya sendiri

Satu-satunya jalan keluar

Proksi keluar

Untuk setiap URL yang dibekalkan pelanggan

Penemuan, JWKS, log keluar

Alamat awam sahaja

Peringkat-peringkat Usher Identity. Domain penyewa ialah domain boleh daftar yang berbeza daripada domain platform, jadi halaman penyewa tidak pernah berada dalam laman yang sama dengan Console.

Pengasingan

Tiada apa-apa yang penting dikongsi.

Setiap persekitaran projek mendapat skema Postgres tersendiri, kunci tandatangan tersendiri dan rahsia tersendiri yang dimeterai dengan kunci datanya sendiri. Pengeluarnya ialah hos di domain penyewa, dan kukinya adalah hos sahaja, jadi pelayar tidak pernah menghantar kuki satu persekitaran kepada persekitaran lain.

usheridentity.com

Laman web, Usher Identity Console, akaun Usher Identity

*.usherid.com

Satu pengeluar bagi setiap persekitaran, di domain yang berasingan

Persekitaran

Pengguna, sesi dan token disimpan dalam skema yang dibuat untuk persekitaran ini. Pertanyaan dijalankan terhadap skema itu, tidak pernah terhadap jadual dikongsi yang mempunyai lajur penyewa.

Salin rahsia klien Google termeterai milik Acme produksi ke dalam Northwind produksi.

Penyulitan semasa disimpan

Penyulitan sampul, terikat pada tempatnya.

Rahsia yang anda berikan kepada Usher Identity dimeterai dengan AES-256-GCM di bawah kunci data milik satu persekitaran. Kunci data pula dibalut oleh kunci induk berversi yang disimpan di luar pangkalan data.

Kunci data bagi setiap persekitaran
Kunci data satu persekitaran yang terjejas tidak mendedahkan apa-apa tentang kunci persekitaran lain.
Pengikatan AAD
Persekitaran dan tujuan diikat ke dalam setiap teks sifer, jadi sesuatu nilai tidak boleh dipindahkan antara baris atau penyewa.
Kunci berversi
Setiap nilai termeterai merekodkan versi kunci yang digunakan untuk membuatnya, jadi kunci boleh diputar dan nilai lama dibalut semula.
Disahkan
Tag GCM bermakna nilai yang diusik gagal dibuka, dan bukannya dinyahsulit menjadi sesuatu yang lain.
  1. Kunci induk

    Disimpan di luar pangkalan data, berversi

  2. Kunci data, satu bagi setiap persekitaran

    Dibalut oleh kunci induk

  3. Rahsia itu

    Dimeterai dengan AES-256-GCM di bawah kunci data

u1.<key version>.<iv>.<ciphertext + tag>

aad = u1 | version | environment | purpose

Nilai termeterai menamakan persekitaran dan tujuannya dalam data yang disahkan. Jika disalin ke tempat lain, ia gagal dibuka.

Amalan

Butirannya, dilakukan dengan teliti.

  • Kata laluan, jika anda menggunakannya

    Dicincang dengan Argon2id pada kos yang disyorkan oleh OWASP (19 MiB, dua laluan), dengan had bilangan yang berjalan serentak supaya lambakan daftar masuk tidak dapat melumpuhkan perkhidmatan. Kata laluan baharu disemak terhadap pelanggaran yang diketahui melalui API julat Have I Been Pwned, yang hanya melihat awalan pendek cincangan kata laluan itu. Panjang minimum ialah 12 secara lalai.

  • Tiada apa-apa disimpan yang boleh dimainkan semula

    Rahsia klien, token, token pautan ajaib dan kod melalui e-mel disimpan dalam bentuk cincangan. Kod sandaran disulitkan. Kod kebenaran sah selama lima minit; kod melalui e-mel membenarkan tiga cubaan.

  • Had kadar di setiap pintu

    Daftar masuk, pendaftaran, kod melalui e-mel, pautan ajaib, tetapan semula kata laluan dan semakan faktor kedua masing-masing mempunyai had tersendiri: sepuluh daftar masuk kata laluan seminit, contohnya, dan lima kod melalui e-mel setiap sepuluh minit.

  • Content-Security-Policy yang ketat

    Setiap halaman Lobby mendapat nonce baharu dan dasar yang dibina di sekelilingnya: hanya skrip daripada asal ini yang membawa nonce itu dijalankan, borang hanya dihantar ke asal yang sama, dan laman lain tidak boleh membingkai halaman itu.

  • Log audit yang boleh anda percayai

    Perubahan pada ruang kerja, projek dan persekitaran ditulis ke log tambah sahaja, setiap entri dirantai cincang kepada entri sebelumnya, jadi entri yang diedit atau hilang akan kelihatan.

  • Proksi keluar untuk URL pelanggan

    Setiap permintaan yang dibuat oleh Usher Identity ke alamat yang diberikan pelanggan (penemuan OIDC, JWKS, log keluar saluran belakang) keluar melalui satu proksi. Ia menyelesaikan nama itu sekali, menolak alamat peribadi, loopback, pautan setempat dan metadata awan, lalu menyambung ke alamat yang telah disemaknya, jadi pengikatan semula DNS tidak boleh menukar URL pelanggan menjadi URL dalaman.

  • Handle yang tidak akan diberikan dua kali

    Handle persekitaran produksi ialah label pertama pengeluarnya. Console hanya dibuka melalui jemputan, Lobby yang dilaporkan kerana pancingan data digantung, dan handle yang pernah digunakan tidak akan diberikan lagi, kerana aplikasi lama mungkin masih mempercayai tokennya.

  • Sesi yang tamat apabila anda mahu

    Usher Identity menyemak sesinya sendiri pada setiap permintaan dan bukannya mempercayai salinan yang dicache, jadi sesi yang anda tamatkan berakhir serta-merta. Token akses mempunyai jangka hayat singkat (sepuluh minit secara lalai), dan API anda boleh membuat introspeksi ke atasnya.

Pendedahan bertanggungjawab

Menemui sesuatu? Beritahu kami dahulu.

Jika anda fikir anda telah menemui masalah keselamatan dalam Usher Identity, kami ingin mendengarnya, dan kami akan bekerjasama dengan anda untuk membaikinya.

security@usheridentity.com
  • Apa yang anda temui, di mana, dan cara menghasilkannya semula.
  • Apa yang boleh dilakukan seseorang dengannya, mengikut pemahaman anda.
  • Cara kami boleh menghubungi anda, dan sama ada anda mahu diberi penghargaan.

Sila uji hanya terhadap persekitaran milik anda, jangan akses data orang lain, dan beri kami masa yang munasabah untuk membaiki masalah itu sebelum anda berkongsinya. Untuk melaporkan halaman yang berpura-pura menjadi halaman daftar masuk Usher Identity, lihat Laporkan penyalahgunaan.