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
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
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.
Kunci induk
Disimpan di luar pangkalan data, berversi
Kunci data, satu bagi setiap persekitaran
Dibalut oleh kunci induk
Rahsia itu
Dimeterai dengan AES-256-GCM di bawah kunci data
u1.<key version>.<iv>.<ciphertext + tag>
aad = u1 | version | environment | purpose
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.
- 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.