The invention provides central storage for core data secrets, referred to
as data items. The architecture includes a storage server, a plurality of
installable storage providers, and one or more authentication providers.
Programming interfaces are exposed so that application programs can
utilize the services provided by the invention without having to actually
implement the features. When storing a data item using the protected
storage services, an application program can specify rules that determine
when to allow access to the data item. Access can, if desired, be limited
to the current computer user. Access can similarly be limited to specified
application programs or to certain classes of application programs. The
storage server authenticates requesting application programs before
returning data to them. A default authentication provider authenticates
users based on their computer or network logon. A default storage provider
allows storage of data items on magnetic media such as a hard disk or a
floppy disk. Data items are encrypted before they are stored. The
encryption optionally uses a key that is derived from the previous
authentication of the user. Specifically, the key is derived from the
user's password, supplied during logon. In addition, an application
program or the user can specify that certain items require another
password that is entered whenever access to the data is requested. The
default storage provider implements a multi-level encryption scheme to
minimize the amount of encryption that has to be re-done when the user
changes a password. Each data item is encrypted using an item key that is
generated randomly by the system. The item key is in turn encrypted with a
master key that is itself encrypted with a key derived from the
user-supplied password (such as the user's logon password).
Die Erfindung liefert die zentrale Ablage für Kerndatengeheimnisse, gekennzeichnet als Datenelemente. Die Architektur schließt einen Speicherbediener, eine Mehrzahl der installierbaren Speicherversorger und einen oder mehr Authentisierung Versorger mit ein. Programmierenschnittstellen werden herausgestellt, damit Anwendungsprogramme die Dienstleistungen verwenden können, die von der Erfindung bereitgestellt werden, ohne die Eigenschaften einführen wirklich zu müssen. Wenn es ein Datenelement mit den geschützten Speicherdienstleistungen speichert, kann ein Anwendungsprogramm Richtlinien spezifizieren, die feststellen, wann man Zugang zum Datenelement erlaubt. Zugang kann, wenn er, auf den gegenwärtigen Computerbenutzer begrenzt zu werden gewünscht wird. Zugang kann ähnlich begrenzt werden zu spezifizierten Anwendungsprogrammen oder zu bestimmten Kategorien der Anwendungsprogramme. Der Speicherbediener beglaubigt das Bitten um Anwendungsprogramme, bevor er Daten zu ihnen zurückbringt. Ein Rückstellung Authentisierung Versorger beglaubigt die Benutzer, die auf ihrem Computer- oder Netz-LOGON basieren. Ein Rückstellung Speicherversorger erlaubt Ablage der Datenelemente auf Magnetträgern wie einer Festplatte oder einer Diskette. Datenelemente werden verschlüsselt, bevor sie gespeichert werden. Die Verschlüsselung verwendet beliebig einen Schlüssel, der von der vorhergehenden Authentisierung des Benutzers abgeleitet wird. Spezifisch wird der Schlüssel vom Kennwort des Benutzers abgeleitet, geliefert während des LOGON. Zusätzlich können ein Anwendungsprogramm oder der Benutzer spezifizieren, daß bestimmte Einzelteile ein anderes Kennwort erfordern, das eingetragen ist, wann immer Zugang zu den Daten verlangt wird. Der Rückstellung Speicherversorger führt einen Mehrebenenverschlüsselungentwurf ein, um die Menge der Verschlüsselung herabzusetzen, die nochmals gemacht werden muß, wenn der Benutzer ein Kennwort ändert. Jedes Datenelement wird mit einem Einzelteilschlüssel verschlüsselt, der nach dem zufall durch das System erzeugt wird. Der Einzelteilschlüssel wird der Reihe nach mit einem Hauptschlüssel verschlüsselt, der selbst mit einem Schlüssel verschlüsselt wird, der vom user-supplied Kennwort abgeleitet wird (wie dem LOGON-Kennwort des Benutzers).