回答:
Unixパスワードストレージの初期の歴史については、Robert MorrisとKen ThompsonのPassword Security:A Case Historyを読んでください。初期のUnixシステムが、今日でもパスワードストレージの重要な機能と見なされている(しかし、より良い機能を備えている)ほとんどの機能を獲得した理由と方法を説明します。
crypt
は、パスワードをハッシュする機能を導入しました。現代の暗号用語はまだ確立されておらず、従来とは異なる方法で暗号化アルゴリズムを使用していたため、「ハッシュ」ではなく「暗号化」と呼ばれます。キーを使用してパスワードを暗号化するのではなく(システムに保存する必要がある)、キーを持っているときに元に戻すのは簡単ですが、パスワードとしてキーを使用します。元々、パスワードハッシュは一般に読めるファイルにありました/etc/passwd
。/etc/shadow
システム(およびシステム管理者)だけがアクセスできる別のファイルにハッシュを置くことは、1980年代半ばのSunOS 4に由来するSunの多くの革新の1つです。他のUnixの亜種に徐々に広がり(一部は今日でもLinuxでその子孫が使用されているサードパーティのシャドウスイートを介して)、1990年代半ばまではどこでも利用できませんでした。
長年にわたり、ハッシュアルゴリズムが改善されてきました。最大のジャンプは、1994年のPoul-Henning KampのMD5ベースのアルゴリズムで、DESベースのアルゴリズムをより優れた設計のアルゴリズムに置き換えました。8個のパスワード文字と2個のソルト文字の制限がなくなり、速度が低下しました。IEEEの1月から2月までのオープンソースソフトウェアを使用した開発を参照してください。2004、p。7–8。今日の事実上の標準であるSHA-2ベースのアルゴリズムは、同じ原則に基づいていますが、内部設計がわずかに優れており、最も重要なのは、構成可能な遅延係数です。
私はまだ主要な情報源を持っていませんが、このTrustedSecの投稿(エンファシス鉱山)によると:
初期のシステムはパスワードをプレーンテキストで保存していましたが、最終的にはより安全な形式のパスワード保存に置き換えられました。Robert Morrisはm-209暗号マシンに基づいた暗号を開発し、バージョン3 Unixに登場しましたが、Cryptは6th Edition Unix(1974)までパスワードの保存に使用されませんでした。
複数の情報源によると、バージョン3 UNIXは1973年2月にリリースされました。
ThompsonとMorrisによる元の論文から、プレーンテキストストレージが最初に使用されたことを確認できます。
UNIXシステムは、最初にすべてのユーザーの実際のパスワードを含むパスワードファイルを使用して実装されました。そのため、パスワードファイルは読み取りまたは書き込みに対して厳重に保護する必要がありました。
/ etc / shadowは、他の回答に記載されているように、UNIXの複数のブランチに登場しました。
ウィキペディアのpasswdページのHistoryセクションによると、
パスワードシャドーイングは、1980年代半ばにSunOSが開発されたUnixシステムで最初に登場しました。[10] 1988年にSystem Vリリース3.2、1990年にBSD4.3 Reno。リリースの新しいパスワードシャドウ機能により、これらのシステムのユーザーはパスワードファイル攻撃にさらされることになります。
システム管理者は、各接続システム上のファイルではなく、NISやLDAPなどの分散データベースにパスワードを保存することもできます。NISの場合、NISサーバーでは依然としてシャドウパスワードメカニズムが使用されます。他の分散メカニズムでは、さまざまなユーザー認証コンポーネントへのアクセスの問題は、基礎となるデータリポジトリのセキュリティメカニズムによって処理されます。
1987年、元のShadow Password Suiteの作成者であるJulie Haughは、コンピューターの侵入を経験し、login、passwd、およびsuコマンドを含むShadow Suiteの最初のリリースを書きました。SCO Xenixオペレーティングシステム用に作成された元のリリースは、すぐに他のプラットフォームに移植されました。Shadow Suiteは、Linuxプロジェクトの最初の発表から1年後の1992年にLinuxに移植され、多くの初期のディストリビューションに含まれ、現在の多くのLinuxディストリビューションに含まれ続けています。