Kapan Unix berhenti menyimpan kata sandi dalam teks yang jelas?

37

Kapan Unix pindah dari menyimpan kata sandi teks yang jelas di passwd? Juga, kapan file bayangan diperkenalkan?

ZDOSA
sumber
Apakah Anda mencari sesuatu?
Ken Sharp

Jawaban:

62

Untuk sejarah awal penyimpanan kata sandi Unix, baca Keamanan Kata Sandi Robert Morris dan Ken Thompson : A Case History . Mereka menjelaskan mengapa dan bagaimana sistem Unix awal memperoleh sebagian besar fitur yang masih dilihat hari ini sebagai fitur penting penyimpanan kata sandi (tetapi dilakukan dengan lebih baik).

  • Sistem Unix pertama menyimpan kata sandi dalam plaintext. Unix Third Edition memperkenalkan cryptfungsi yang hash kata sandi. Itu digambarkan sebagai "enkripsi" daripada "hashing" karena terminologi kriptografi modern belum ditetapkan dan menggunakan algoritma enkripsi, meskipun dengan cara yang tidak konvensional. Daripada mengenkripsi kata sandi dengan kunci, yang akan sepele untuk dibatalkan ketika Anda memiliki kunci (yang harus disimpan pada sistem), mereka menggunakan kata sandi sebagai kunci.
  • Ketika Unix beralih dari sandi sebelumnya ke DES yang modern , itu juga dibuat lebih lambat dengan mengulangi DES beberapa kali. Saya tidak tahu persis kapan itu terjadi: V6? V7?
  • Hanya hashing kata sandi rentan terhadap serangan multi-target: hash semua kata sandi paling umum sekali dan untuk semua, dan lihat di tabel kata sandi untuk pertandingan. Termasuk garam dalam mekanisme hashing, di mana setiap akun memiliki garam yang unik, mengalahkan perhitungan ini. Unix memperoleh garam dalam Edisi Ketujuh pada tahun 1979 .
  • Unix juga memperoleh aturan kompleksitas kata sandi seperti panjang minimum pada tahun 1970-an.

Awalnya hash kata sandi ada di file yang dapat dibaca untuk umum /etc/passwd. Menempatkan hash dalam file terpisah /etc/shadowyang hanya dapat diakses oleh sistem (dan administrator sistem) adalah salah satu dari banyak inovasi yang berasal dari Sun, yang berasal dari sekitar SunOS 4 pada pertengahan 1980-an. Ini menyebar secara bertahap ke varian Unix lainnya (sebagian melalui shadow suite pihak ketiga yang turunannya masih digunakan di Linux saat ini) dan tidak tersedia di mana-mana hingga pertengahan 1990-an.

Selama bertahun-tahun, ada peningkatan pada algoritma hashing. Lompatan terbesar adalah algoritma berbasis MD5 Poul-Henning Kamp pada tahun 1994, yang menggantikan algoritma berbasis DES dengan satu dengan desain yang lebih baik. Itu menghapus batasan untuk 8 karakter kata sandi dan 2 karakter garam dan telah meningkatkan kelambatan. Lihat Pengembangan IEEE dengan perangkat lunak sumber terbuka , Jan – Feb. 2004, hlm. 7–8 . Algoritma berbasis SHA-2 yang merupakan standar de facto saat ini didasarkan pada prinsip yang sama, tetapi dengan desain internal yang sedikit lebih baik dan, yang paling penting, faktor kelambatan yang dapat dikonfigurasi.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Kebetulan, garam adalah yang dienkripsi.
Joshua
Bagi mereka yang tidak memiliki tampilan Postscript, saya menemukan salinan pdf dari kertas Morris & Thompson di sini
grahamj42
8

Saya belum memiliki sumber utama, tetapi menurut pos TrustedSec ini (penekanan milik saya):

Sistem awal menyimpan kata sandi dalam plaintext tetapi akhirnya ini digantikan oleh bentuk penyimpanan kata sandi yang lebih aman. Robert Morris mengembangkan crypt berdasarkan mesin cipher m-209 dan muncul di Versi 3 Unix , meskipun Crypt tidak digunakan untuk menyimpan kata sandi sampai Unix Edisi ke-6 (1974).

Menurut berbagai sumber, Versi 3 UNIX dirilis pada Februari 1973 .

Dari kertas asli oleh Thompson dan Morris , kami dapat mengonfirmasi bahwa penyimpanan plaintext pada awalnya digunakan:

Sistem UNIX pertama kali diimplementasikan dengan file kata sandi yang berisi kata sandi sebenarnya dari semua pengguna, dan untuk alasan itu file kata sandi harus sangat dilindungi agar tidak dibaca atau ditulis.

/ etc / shadow muncul di banyak cabang UNIX seperti disebutkan dalam jawaban lain.

Royce Williams
sumber
6

Menurut bagian History di halaman passwd wikipedia ,

Pembayangan kata sandi pertama kali muncul di sistem Unix dengan pengembangan SunOS pada pertengahan 1980-an, [10] System V Release 3.2 pada 1988 dan BSD4.3 Reno pada 1990. Namun, vendor yang telah melakukan port dari rilis UNIX sebelumnya tidak selalu menyertakan fitur shadow passwording baru dalam rilisnya, membuat pengguna sistem tersebut terkena serangan file password.

Administrator sistem juga dapat mengatur penyimpanan kata sandi dalam database terdistribusi seperti NIS dan LDAP, daripada dalam file pada setiap sistem yang terhubung. Dalam kasus NIS, mekanisme shadow password sering masih digunakan pada server NIS; dalam mekanisme terdistribusi lain, masalah akses ke berbagai komponen otentikasi pengguna ditangani oleh mekanisme keamanan repositori data yang mendasarinya.

Pada tahun 1987 penulis Shadow Password Suite asli, Julie Haugh, mengalami gangguan komputer dan menulis rilis awal Shadow Suite yang berisi perintah login, passwd dan su. Rilis asli, ditulis untuk sistem operasi SCO Xenix, dengan cepat dipindahkan ke platform lain. Shadow Suite diangkut ke Linux pada tahun 1992 satu tahun setelah pengumuman asli proyek Linux, dan dimasukkan dalam banyak distribusi awal, dan terus dimasukkan dalam banyak distribusi Linux saat ini.

VGe0rge
sumber
5
Penyimpanan kata sandi non-bayangan! = Penyimpanan plaintext yang tidak rusak.
rackandboneman