throbber
United States Paten
`
`[19]
`
`Fisherman et al.
`
`'
`
`[54] PERSONAL COMPUTER HARD DISK
`PROTECTION SYSTEM
`
`[75] Inventors: Igor Fisherman, Philadelphia, Pa.;
`Oleg V. Kouznetsov Budapest
`Hungary; Sergey P. Pavlishin,
`Budapest, Hungary; Alexander N.
`sha?lov, Budapest, Hungary
`
`[73] Assignee: YBM Technologies, Inc., Newton, Pa.
`
`[21] Appl. No.: 336,450
`[22] Filed:
`N0“ 9’ 1994
`
`[51]
`
`Int. Cl.t3 .................................................... .. G06F 13/00
`
`[52] US. Cl. . . . . . . .
`
`. . . . . .. 395/479; 395/186; 395/490;
`
`380/4; 364/DIG. 1
`[58] Field of Search .......................... .. 380/3, 4; 395/427,
`395/186, 479, 490
`
`[56]
`
`_
`References Clted
`Us PATENT DOCUME S
`NT
`
`7/1988 Allen et a1. .
`4,757,533
`4,975,950 12/1990 Lentz ........................................ .. 380/4
`gones - - - ' - -
`- - ' --
`Z
`
`l|ll|l|||l|l||IlllllllIllllllllllllllllllllllllllllllllllllllllllllllllllll
`5,586,301
`Dec. 17, 1996
`
`USOO55863 0 1 A
`Patent Number:
`[11]
`[45] Date of Patent:
`
`4034444A1 5/1992 Germany .
`2222899 3/1990 United Kingdom .......... .. G06F 12/14
`2242295A 9/1991 United Kingdom .
`2248324A 4/1992 United Kmgd°m~
`WO90/l2464 10/1990 WIPO ............................ .. HO4L 9/00
`OTHER PUBLICATIONS
`
`MicroSoft Press MS-DOS Programmer’s Reference-Ver
`sion 6 Chapter 3 pp. 19-21, 31-34.
`Terry Dettmann Revised by Allen L. Wyatt DOS Program
`mer’s Reference-4th Ed. pp. 44-51, 228, 229.
`Primary Examiner—T0d R. Swann
`Assistant Examiner—-Frank J. Asta
`Attorney, Agent, or Firm-Caesar, Rivise, Bernstein, Cohen
`& Pokotiiow, Ltd,
`
`ABSTRACT
`[57]
`The personal computer hard disk protection system is
`designed to protect data stored on computer hard disks while
`permitting multiple user operation. The personal computer
`hard disk protection system prevents unauthorized access to
`the hard-disk controller by software applications, and per
`mits safe servicing of requests which use the BIOS. The
`basis for the personal computer hard disk protection system
`functions is the dynamic transformation of tho ?le system to
`the con?guration of the current user. The system is based on
`
`’
`
`’
`
`ones ' ' ' ' ' ‘ ‘ ' ‘ ' ‘ ‘ ' '
`
`' ‘ ‘ "
`
`a hardware device called the protection-program support
`
`5/1995 Jablon et a1. ...................... .. 395/575
`5,421,006
`FOREIGN PATENT DOCUMENTS
`
`'
`1132:‘
`0458718A2 11/1991 European Pat. on. .
`4208777 3/1992 Germany ...................... .. G06F 12/16
`
`module and a set of protection programs’ most of which is
`stored in the protection-program support module. The pro
`tection program support module is an external board and is
`connected to the computer system bus.
`
`29 Claims, 27 Drawing Sheets
`
`;‘ 65
`
`75
`
`V 72
`
`Q‘ 7 0
`
`FIRST
`
`MEMORY
`
`[\74
`ADDRESS
`DE CODER
`
`P68 PROGRAM
`SECOND
`DISCRlM/NA TOR
`MEMORY
`
`mos/mum
`CONTROLLER
`
`-
`
`7’
`
`—
`
`A
`
`>
`
`‘A5
`
`I 5
`
`pl
`
`1”}
`
`U
`
`(58
`ADDRESS BUS
`r60 U
`DA TA BUS
`V62
`CONTROL BUS
`
`U
`
`327
`>
`m
`> 9'51‘
`com/mum
`>
`
`34\ HARD
`DISK
`
`1
`
`EX 1022
`IPR of Pat. No. 6,892,304
`
`

`
`U.S. Patent
`
`Dec. 17,1996
`
`Sheet 1 of 27
`
`5,586,301
`
`
`
`.SEm.SS.uE-xmSLS2.:mo_Eez_
`
`zxmoommEx
`
`>5NkbmxQQQ
`
`
`
`W3.VQUQQD.
`
`mm.32$4.
`
`Emmsemmém\Q
`
`mm:52<1
`
`20CQmkQQQ
`
`>5:<N~fix:E5
`
`Exmmomm
`
`1?‘:E5
`
`Ex
`
`EVEQQQQ
`
`Emmaemm$3
`
`mo_mmmfizfl
`
`kmQMINQZVI
`
`OM,
`
`~SE§NMSm///ESSE28$3-
`
`QkVI
`
`QM<Q\<S...
`
`ES2<mSm\E2mSmmx
`
`SEQS\_
`
`____
`
`
`
`q2$§SoSE28SE28
`
`Q2$§Su
`
`
`
`ZQCQMESE2m=x\m.Su@mmmm.mSEmm_ENVmwQN_
`
`
`
`SmSE28>S:SEQQQ
`
`E<06QEQ
`
`S<k.oQ&Q20\K<2.~Q.Q<
`
`____
`
`_mun
`
`__
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 2 0f 27
`
`5,586,301
`
`AAA /
`
`
`
`_lQ~/v mm D
`
`$1828 m2 ESE?B Qé?m 356% Egg
`
`
`
`
`
`
`?m§=§§m sigma mmL KL GEM
`
`mm wm A
`
`
`
`
`
`l \EQE: @388
`
`/\ /\ /\ /\ /\ /\ /\ /\
`
`
`
`\/ \/ 11M \/
`
`Nm/M
`
`mm M
`
`
`
`‘an, vmd
`
`
`
`om U mam @563 V
`
`mam E E V Q
`
`mam 8&28 V b
`
`3
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 3 of 27
`
`5,586,301
`
`XXXXXXXXX
`
`XXX
`
`
`
`m..U~r.~
`
`
`
`HEEEEEIEIHHHHHH.53.§
`
`EHHEEEIEEEEEEEE
`
`m§Immm8<
`
`V‘
`
`E’
`in.
`
`4
`
`
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 4 of 27
`
`5,586,301
`
`IS
`HDPS
`[NI TIAL [ZED
`?
`
`ENTER uSER NAME /
`/ CURNAME
`
`l
`SEARCH USER_LIST FOR
`NUMBER OF ELEMENT IN
`WHICH USER__FIELD.NAME=
`CURNAME
`
`WAS
`SEARCH
`SUCCESSFUL
`?
`YES
`CURUSERNMB=NUMBER
`0F ELEMENT FOUND
`|
`
`/ ENTER USER PASSWORD]
`
`ENTRYPAS SWORD
`
`HAS PASgg/gRD BEEN
`USER_FIELD.PASSWORD! =0
`
`l S PASSWORD
`CORRECT
`ENTRYPASSWORD=
`USER_FIELD. PASSWORD
`
`(ACCESS DENIED )
`
`5
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 5 of 27
`
`5,586,301
`
`USERNMB —
`?
`@__' YES
`CONVERT deSTARTCLUSER FIELDS OF
`DESCRIPTORS WI TH FILEDEF__FIELD.
`USERNMB KEY__FIELD.USERNMB FROM
`VIRTUAL TO REAL VALUES
`
`KEY__FIELD. USERNMB= CURUSERNMB
`
`44
`/
`
`DELETE FAT AND ROOT
`DIRECTORY OF PREVIOUS USER
`I
`“N531? fégggsm?lpm?
`l
`GENERA TE DISK_SPACE_TABLE,
`CLUSTER TABLE, AND FAT
`
`‘T
`
`LOAD
`
`DISK_SPACE_TABLE
`AND ACCESS__MAP
`INTO RAM 0F PPSM
`FIRST MEMORY
`HIDDENZONE
`
`CONVERT DES TAR TCL UST FIELDS IN OPENED
`DIRECTORY ENTRIES ON DISK AND IN
`FILEDEF_LIST
`
`CORRECT FIELDS bsSECTORS OR
`bsHUCESECTORS IN BOOTSECTOR
`I
`F
`INITIALIZE INTERNAL VARIABLES
`OF PROTECTION PROGRAMS
`I
`REPLACE ADDRESS OF INT13 BIOS HANDLER
`WITH ADDRESS OF KEY PROGRAM
`OF REOUES T HANDLER
`
`@ FIG. 5A
`
`6
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 6 0f 27
`
`5,586,301
`
`CHECK CORRE C TNE SS 0F
`DIRECTORY STRUCTURE OF
`DOS LOGICAL DRIVES
`
`44
`
`I S
`D I RE C TORY
`S TRUC TURE
`C DRRE C T
`9
`
`YES
`
`ENTER SUPERVISOR NAME
`SUPNAME AND
`PASSWORD SUPPASSWORD
`
`SEND OUT
`WARNING
`MESSAGE
`
`SET FIRST ELEMENT
`0F USER__LIST .'
`USER_ FIELD. NAME
`=SUPNAME USER_FIELD
`PASSWORD=SUPPASSWORD
`
`END
`
`USER__FIELD.
`PASSWORD:
`ENTRYPASSWORD
`
`GENERA TE USER_LIST,
`KEY_“LIST,
`AND MAIN__FAT
`
`CREA TE
`SYSTEM_LOG
`
`FIG. 5B
`
`7
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 7 0f 27
`
`5,586,301
`
`(
`
`BEGIN )
`
`REALCLUSTER
`REAL CLUSTER NUMBER
`
`IS
`REALCLUSTER
`CORRECT
`
`YES
`FROM ACCESS__MAP,
`SELECT ACCESS_FIELD ELEMENT
`WITH CONTROLMAP NUMBER
`
`ACCESS_FIELD!=(0,0
`
`RETURN_CODE=
`BAD_PA_RAM
`
`VIRTCLUSTER=CURCNT
`
`CURCNT=CURCNT+1
`
`RETURN_CODE=OK
`
`CNTMAP=CNTMAP+1
`
`END '
`
`FIG. 6
`
`8
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 8 of 27
`
`5,586,301
`
`6)
`
`@
`DISK RE DUES T PARAMETER S
`REQ PARAM
`/
`
`REQUEST
`TO FLOPPY DRIVE
`?
`
`' COMMAND
`TO READ 0R
`MODIFY DA TA
`7
`
`DISK-REQUEST
`HANDLER 0F
`INT13H BIOS
`
`' YES
`REFER TO DISK_SPACE__ TABLE
`TO DETERMINE TYPE OF
`REG I 0N BEING ADDRESSED
`
`RE OUE S T
`T0 500 T2 ONE
`?
`
`REQUEST
`TO FA TZ ONE
`?
`
`RE OUE S T
`TO R00 TZ ONE
`?
`
`END
`
`FIG. 7
`
`9
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`- Sheet 9 of 27
`
`5,586,301
`
`RE Q_PARAM.
`CMD =READ
`?
`
`RE Q_ PARAM.
`CMD =READ
`?
`
`NO
`
`RECORD FAILURE TO
`PROVIDE ACCESS IN
`SYSTEM_LOG
`
`GENERA TE "WRI TE PRO TE C T"
`ERROR CODE
`
`ZERO BUFFER WITH
`ADDESS
`REQ_PARAM.
`BUFADDR
`
`FIG. 7A
`
`10
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 10 of 27
`
`5,586,301
`
`RE Q_ PARAM.CMD =READ
`?
`
`NO
`46
`\ SEARCH FOR MODIFIED
`ELEMENT 11v FAT
`
`”0 a
`
`YES
`DETERMINE CLUSTER NUMBER
`MODCLUST FOR ELEMENT
`FOUND
`I
`DETERMINE VALUE OF
`ACCESS_FIELD CORRESPONDING TO
`MODCLUST NUMBER IN ACCESS_MAP
`
`CHECK CORRECTNESS
`OF NEW VALUE
`OF MODIFIED
`FAT FIELD
`
`DETERMINE VALUE OF CLUSTER_FIELD.
`OWNER CORRESPONDING TO MODCLUST
`NUMBER IN CLUSTER=TABLE
`I
`DETERMINE OWNER-DI RE C TORY
`DESCRIPTOR FILEDEF_FIELD
`CORRESPONDING TO CLUSTER_FIELD.
`OWNER NUMBER IN FILEDEF_LIST
`
`I
`
`CHECK C ORRE C TNE SS OF PROPOSED
`CHANGE IN FAT CHAIN OF DI RE C TORY
`
`IS
`MOD/FICA TION
`CORRECT
`?
`
`FIG’. 7B
`
`11
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 11 of 27
`
`5,586,301
`
`46 /
`
`RE Q_ PARAM . CMD =READ
`
`SEARCH FOR MODIFIED
`DIRECTORY ENTRY
`
`DIRECTORY ENTRY
`
`ATTR_READONLY
`CHANG 1N6
`?
`
`CORRECT
`?
`
`START_ CLUSTER: CHECK CORRECTNESS
`deSTARTCLUSTER
`0/.- CHANGES IN
`NEW_ATTRIB=
`DIRECTORY ENTRY;
`deA TTRIBUTES
`
`CORRECT
`CLUSTER__TABLE
`AND
`MAIN_FAT;
`
`CHANCES
`CORRECT
`?
`
`ENTER NEW DIRECTORY
`ENTRY INTO
`FILE__DEF_ LIST;
`
`PRO TE C TI ON CONTROL
`COMMAND HA NDL ER
`
`END
`
`FIG. 7C
`
`READONLY
`FOR NEW DIRECTORY
`ENTRY
`?
`
`(CONT'D ON F1070)
`
`12
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 12 of 27
`
`5,586,301
`
`(co/vr’p FROM F1676)
`
`46 /
`
`DETERMINE VALUE OF
`CLUSTER__FIELD.
`OWNER CORRESPONDING TO
`deS TAR TCL US TER
`NUMBER IN CLUSTER__TABLE
`
`DETERMINE DESCRIPTOR OF
`OWNER OF MODIFIED DIRECTORY
`ENTRY FROM CLUSTER_FIELD.
`OWNER NUMBER IN FIELD__LIST
`
`COPY NEW VALUE OF DIRECTORY
`ENTRY INTO FIELD
`FILEDEF__FIELD. DIRENTRY
`
`WAS FILE
`ALL OCA TI ON
`CHANGED
`?
`
`CORRECT CLUSTER_TABLE
`- AND MAIN_FAT
`
`(I)
`
`FIG. 7D
`
`13
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 13 of 27
`
`5,586,301
`
`45' /
`
`DETERMINE NUMBER OF
`ADDRESSED CLUSTER VIRTNUMB
`
`PROGRAM FOR CONVERTING VIRTUAL
`CLUSTER NUMBER INTO REAL NUMBER
`AND DETERMINING ACCESS RIGHTS
`
`DETERMINE REAL ADDRESS SECADDR
`
`REQ_PARAM.CMD=READ
`
`ACCESS_FIELD= (I, I)
`
`ACCESS__FIELD= (I, O)
`
`FIG’. 7E
`
`14
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 14 of 27
`
`5,586,301
`
`RETURN_CODE=
`BAD_PARAM
`
`(
`
`BEGIN )
`
`VIRTCLUSTER
`REAL CLUSTER NUMBER
`
`1S
`VIRTCLUSTER
`CORRECT
`?
`YES
`FROM ACCESS_MAP,
`SELECT ACCESS_FIELD ELEMENT
`WITH CONTROLMAP NUMBER
`
`ACCESS_FIELD!=(O, 0
`
`YES
`
`CURCNT=VIRTCLUSTER
`
`YES
`
`REALCLUST=CNTMAP
`
`’ CURCNT=CURCNT+1
`
`RETURN_ CODEIOK
`
`C NTMAP = CNTMAP + 1
`;____
`
`END
`
`FIG. 8
`
`15
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 15 of 27
`
`5,586,301
`
`50
`
`@
`
`ENTER uSER PASSWORD
`USER PSW
`f
`EXECUTE COMMAND
`"IDENTIFY USER"
`
`USER
`ENTERS
`PASSWORD
`
`WAS
`COMMAND
`SUCCESSFULL Y
`EXECUTED
`'2
`
`I
`
`OBTAIN COMMAND CODE
`CMD_CODE FROM USER
`
`I
`
`USER @
`ENTERS
`COMMAND
`
`CMD_CODE=
`END USE OF
`PROGRAM
`
`CMD__ CODE =
`CHANCE
`PASSWORD
`
`OBTAIN NEW PASSWORD
`W W
`N __PS |FROM uSER
`EXECUTE COMMAND
`"CHANCE PASSWORD"
`
`h
`
`USER
`ENTERS
`PASSWORD
`
`O
`
`3
`
`WAS
`COMMAND
`SUCCESSFULL Y
`EXECUTED
`'?
`
`YES
`
`FIG’. 9
`
`A
`ISSUE ERROR MESSAGE
`I
`
`G)
`
`16
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 16 of 27
`
`5,586,301
`
`50
`\
`CMD__CODE=
`CHANCE
`NAME
`
`0 i
`EXECUTE DOS
`FUNCTION 430111
`(SET FILE ATTR/BUTES)
`FOR SPECIFIED FILE
`
`USER
`
`NAME
`
`WAS
`
`SUCCESSFUL L Y
`PERFORFORMED
`
`NEW_ NAME FROM USER
`I
`E XE CU TE COMMAND
`
`"CHANGE NAME " é
`
`CMD_CODE=
`CHANGE
`FILE PROTECTION
`A TTRIBUTE
`
`OBTAIN COMPLETE FILE
`NAME FILE__NAME
`AND NEW ATTRIBUTES
`NEW_ATTRIB FROM USER
`
`USER
`ENTERS
`FILE NAME
`AND ATTRIBUTES
`
`N EW__ ATTRIB
`CON TA INS
`ATTR_READ ONLY
`
`EXECUTE COMMAND
`"PERMIT CHANCE OF FILE
`ATTRIBUTES "
`
`WAS
`COMMAND
`SUCCESSFULL Y
`EXECUTED
`7
`
`YES
`
`FIG. 9A
`
`17
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 17 0f 27
`
`5,586,301
`
`PERFORM PROGRAM
`COMMAND
`"OB TA 1 N STA TUS
`OF CURRENT USE "
`
`CMD_CODE=
`DELETE USER
`
`OBTAIN NAME OF
`USER 70 BE
`DELETED
`USER__NAME
`
`USER
`ENTERS
`NAME
`
`ISSUE MESSAGE
`FOR IMPROPER
`COMMAND CODE
`
`EXECUTE COMMAND
`T0 DELETE
`USER
`
`CMD_CODE=
`REGISTER
`NEW USE
`
`OBTAIN NAME OF
`NEW USER
`USER_NAME
`
`1155/;
`ENTERS
`NAME
`
`EXECUTE COMMAND
`TO RE 6‘! STER
`NEW USER
`
`OBTAIN COMPLETE
`FILE NAME
`FILILNAME
`AND NAME OF
`USER TO WHOM
`_FILE [5 TO BE
`TRANSF ERRED
`
`USER
`ENTERS
`NAMES
`
`EXECUTE COMMAND
`"CHANGE FILE STA TUS "
`
`@
`
`FIG. 9B
`
`18
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 18 of 27
`
`5,586,301
`
`@ /8
`
`CMD.CODE- COMMAND CODE,
`COMMAND PARAME TE RS
`NO
`CMD-CODE:
`CHANGE NAME
`?
`N0
`CMD . CODE:
`CHANGE PASSWORD
`?
`N0
`
`YES
`
`YES
`
`EXECUTE COMMAND
`"CHANGE NAME "
`L5
`
`E XE CU TE COMMAND
`"CHANGE PASSWORD "
`LE
`
`CMD.CODE=
`CHANCE FILE PROTECT/0
`A TTRIBUTE
`
`YES
`
`EXECUTE CDMMAND
`mHA/vgg FILE
`A TTRIBUTE"
`
`' N0
`
`N0 CURUSERNMB=O .9 YES
`
`CMD.CODE=
`"PERM/T ATTRIBUTE CHANG
`
`YES
`
`L__ '
`
`EXECUTE COMMAND
`"PERMIT CHANCE
`OF FILE ATTRIBUTE"
`L“
`
`No
`
`) CMD.CODE=
`CHANGE FILE STATUS
`?
`N0
`CMD.CODE=
`REGISTER NEW USER‘
`?
`
`YES
`
`EXECUTE COMMAND
`"PERMIT CHANCE
`0F FILE STA ms"
`L“,
`
`YES
`
`W3‘
`
`Afg?Mlj‘é‘gR ,,
`l__~
`
`EXECUTE COMMAND
`"DELETE USE "
`l___
`
`N0
`CMD.CODE=
`DELETE USER
`?
`No
`RETURN_ CODE=UNDEF_CODE
`
`YES
`
`@ FIG. 10
`
`19
`
`

`
`US. Patent
`
`Dec. 17, 1996
`
`Sheet 19 of 27
`
`5,586,301
`
`US ER_ NAME- NAME
`OF USER TO BE
`REGISTERED
`
`CHECK TD TAL NUMBER OF
`PREVIOUSL Y REGISTERED
`SYSTEM USERS
`
`CHECK WAS
`SUCCE SSE UL
`?
`
`CHECK IF USER_NAME
`MATCHES NAMES 0F
`PREVIOUSL Y REGISTERED
`USERS
`
`RETURN_CODE=
`N()_SPACE
`
`CHECK WAS
`SUCCESSFUL
`?
`
`ALLOCA TE USER__FIELD
`FOR USER
`
`RETURN_CODE=
`BAD_ PARAM
`
`USER_ FIELD.NAME=
`USER__NAME
`
`RETURN_CODE=OK
`
`END
`
`FIG’. 11
`
`20
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 20 of 27
`
`5,586,301
`
`BEGIN
`
`
`
`
`USER_NAME- NAME
`OF USER TO BE
`DELETED
`
`
`
`
`SEARCH USER_LIST FDR
`USER_FIELD DESCRIPTOR
`
`IN WHICH NAME:
`
`USER_ NAME
`
`
`WAS SUCH
`
`DESCRIPTOR FOUND
`
`?
`
`
`
`
`DESCRIPTOR NOT
`FIRST IN LIST
`7
`
`USER_NMB= DESCRIPTDR
`NUMBER FROM LIST
`
`RETURN_CODE=
`BAD_PARAM
`
`
`
` SEARCH FILEDEF__LIST
`FOR DESCRIPTORS OF
`
`
`PERSONAL FILES 0F USER
`
`USER_NMB: FILE_FIELD.
`
`USERNMB=USER__NMB
`
` WAS(WERE)
`
`
`
`FILE
`(OR FILES)
`FOUND
`7
`
`
`
`
`
`
`
`RETURN_CODE=
`LIST_NOT__EMPTY
`
`
`
`
`USER_ FIELD.NAME=O
`USER__FIELD. PASSWORD=O
`
`RETURN_CODE=OK
`
`EN”
`
`FIG. 12
`
`21
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 21 of 27
`
`5,586,301
`
`BEGIN
`
`FILE_NAME: FULL NAME OF FILE;
`USER_TO: NAME OF USER TO
`WHOM FILE IS TO BE TRANSFERRED,
`
`OR PUBLIC
`
`
`EXTRACT DIRECTORY NAME A
`FROM FILE FILE_NAME:
`DIR_NAME= DIRECTORY NAME;
`FILE_NAME: FILE NAME
`
`
`
`
`SEARCH FILEDEF_LIST FOR DIRECTORY
`DESCRIPTOR FOR DIRECTORY DIR_NAME
`
`WAS
`
`
`
`DESCRI P TOR FOUND
`?
`
`
`
`
`
`
`
`
`
`
`LOG DESCRIPTOR NUMBER IN LIST:
`DIR_REF= NUMBER OF DESCRIPTOR
`IN LIST
`
`
`
`
`
`
`
`
`SEARCH FILEDEF_LIST FOR FILE
`DESCRIPTOR FOR FILE_NAME IN WHICH
`DIRENTRY. deNAME= FILE_NAME. NAME,
`DIRENTRY. deEXTENSION=
`FILE_NAME. EXTENSION,AND
`DIRREF=DIR_REF
`
`
`
`
`
`
`
`
`
`WAS
`
`
`
`DESCRI P TOR FOUND
`?
`
`RETURN__CODE=
`NOT__FOUN D
`
`
`LOG NUMBER OF USER TO WHOM
`FILE_NAME BEL ONGS .'
`
`USER_ FROM=FILE_ FIELD. USERNMB
`
`
`
`FIG. 13 g
`
`
`
`
`
`A USER_TO=USER_F'ROM
`
`22
`
`22
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 22 of 27
`
`5,586,301
`
`USER_TO_PUBLI
`?
`
`YES
`
`
`NEW-STATUS=PUBLIC
`
`
`
`N EW_ STATUS=PRIVATE
`
`CHECK CORREC TNESS 0F
`
`USER__TO
`
`[S USER_TO
`
`USER-T0:
`CURUS?ERNM :
`
`
` CALCULATE VIRTUAL CLUSTER
`
`
`
`NUMBER (VIRTUAL_CLUSTER)
`FROM REAL VALUE GIVEN 1/v
`FILE_FIELD. deSTARTCLUSTER
`
`
`
`
`
`CORRECT E
`
`USER__FRO
`PUBLIC
`7
`
`USER__TO
`CURUS7ERNM
`
`FILE_ FIELD.
`deSTARTCLUSTER:
`
`REAL_ CLUSTER
`
`CAL CULA TE REAL CLUSTER
`
`VALUE (REAL_CLUSTER)
`FROM VALUE IN
`
`FILE_FIELD.
`
`deSTARTCLUSTER
`
`
`
`
`
`
`
`FILE_ FIELD.
`deSTARTCLUSTER:
`REAL_CLUSTER
`
`
`
`FILE_ FIELD. STATUS:
`
`NEW_ STATUS
`
`
`
`
`
`
`
`FILE_ FIELD.USERNMB=
`
`
`(CONT’D 0/v FIG. 733)
`
`1314
`
`23
`
`
`
`23
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 23 of 27
`
`5,586,301
`
`(CONT’O FROM FIG.
`
`73,4)
`
`
`
`USER_TO=
`
`PUBLIC
`
`
`
`
`?
`
`E
`
`E
`
`
`
`SET FILEDEF__FIELD.
`
`
`STATUS: PUBLIC IN ALL
`
`DESCRIPTORS OF DIRECTORY
`CHAIN OF FILES TO
`
`
`35 TRANS/-‘ERRED
`
`
`
`RETURN_CODE=OK
`
`RETURN-C0DE=
`BAD PARAMETER
`
`END
`
`FIG’. 13B
`
`24
`
`24
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 24 of 27
`
`5,586,301
`
`BEGIN
`
`START_CLUSTER:START CLUSTER OF FILE;
`NEW_ATTRIB: VALUE or NEW ATTRIBUTE
`(READONLY/READWRITE)
`
`
`
`
`SEARCH FILEDEF_LIST FOR FILE DESCRIPTOR
`
`(FILEDEF_FIELD) IN WHICH deSTARTC/_US7'ER=
`START_CLUSTER
`
`RETURN_CODE=
`NOT_FOUND
`
`
`
`
`WAS
`
`DESCRIPTOR FOUND
`7 ,
`
`
`
`
`YES
`
`
`
`NEW ATTRIB=
`ATTR__ READONLY
`
`
`
`N0
`
`MODIFRO=1
`
`)/E5
`
`RETURN__CODE=
`WRITE_PROTECT
`
`(FILEDEF__FIELD) IN WHICH DIRREF:
`FILEDEF_FIELD. DIRREF AND deATTRIBUTES
`ATTR_READONLY
`
`SEARCH FILEDEF_LIST FOR FILE DESCRIPTORS
`
`
`CHANCE ATTRIBUTES OF CHAIN OF DIRECTORY
`DESCRIPTORS IN ACCORDANCE WI TH
`NEW*ATTRIB
`
`FILEDEF_FIELD.deATTRIBUTES:
`NEW_ATTRIB
`
`RETURN__CODE=OK
`
`F] 14
`
`MODIFRO=O
`
`END
`
`25
`
`
`
`WERE
`DESCR I P TORS FOUND
`?
`
`25
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 25 of 27
`
`5,586,301
`
`
`
`
`
`
`
`SET NEW PASSWORD OF CURRENT
`USER USER_FIELD .
`PASSWORD=NEW__PSW
`
`
`
`
`
`NEW_PSW: NEW USER PASSWORD
`
`RETURN_CODE=OK
`
`FIG. 15
`
`
`
`SET NEW NAME OF CURRENT
`USER USER__FIELD.
`NAME=NEW__NAME
`
`NEW_NAME: NEW USER NAME
`
`
`
`
`
`
`RETURN_CODE=OK
`
`
`
`FIG. 16
`
`26
`
`
`
`
`
`26
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 26 of 27
`
`5,586,301
`
`
`
`
`
`CURUSERNMB=O
`
`USER__STATUS=
`
`SUPERVISOR
`
`USER_STATUS=O
`
`
`
`
`
`
`
`
`USER_ NAME:
`
`USER_FIELD. NAME
`
`RETURN_CODE=OK
`
`FIG. 17
`
`
`
`USER_PSW: PASSWORD
`OF USER TO BE
`IDENTIFIED
`
`
`
`
`
`CHECK IF USER__PSW
`IDENTI CAL T0 USER_FIELD.
`PASSWORD OF CURRENT USER
`
`
`
`
`
`
`
`
`105/v 71 CAL
`7
`
` ' PASSWORD
`
`RETURN_CODE=OK
`
`RETURN__CODE=
`BAD___ PARAM
`
`
`
`FIG. 18
`
`27
`
`27
`
`

`
`U.S. Patent
`
`Dec. 17, 1996
`
`Sheet 27 of 27
`
`5,586,301
`
`
`
`MODIFYRO=1
`
`
`RETURN__CODE=OK
`
`
`
`
`FIG. 19
`
` ENTER COMMAND TO
`
`SWITCH PPSM TO
`PASSIVE ‘MODE INTO
`PROGRAMMABLE
`CONTROLLER
`
`
`
`CALL REOUES T
`
`
`
`
`
`
`
`ENTER COMMAND TO
`SWITCH PPSM TO
`ACTIVE MODE INTO
`PROGRAMMABLE
`CONTROLLER
`
`RE TURN CONTROL TO PROGRAM
`REOUESTING SERVICING
`
`FIG’. 20
`
`28
`
`28
`
`

`
`1
`PERSONAL COMPUTER HARD DISK
`PROTECTION SYSTEM
`
`5,586,301
`
`2
`
`FIELD OF THE INVENTION
`
`The invention pertains to apparatus for protecting data
`stored on a computer from inadvertent or intentional distor-
`tion.
`In particular,
`this invention concerns a hard disk
`protection system that protects data stored on a personal
`computer system that is accessible to a plurality of users.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`The most general and progressive approach to shared
`information processing using personal computers is to join
`the computers into a local area network (LAN). LAN’s
`facilitate data gathering and allow more eflicient use of
`personal computer memory. However, these networks also
`provide favorable conditions for the rapid spread of pro-
`grams known as computer viruses, and thus increase the risk
`of massive distortion of the information on the personal
`computer hard disks. LAN’s are particularly vulnerable to
`computer viruses which distort information for the purpose
`of causing economic loss to the information owners.
`Because of the enormous losses caused by existing viruses
`and the continual
`introduction of new viruses, personal
`computers have to be equipped with protection subsystems
`which prevent the deliberate distortion of information. How-
`ever, despite the wide variety of available file-protection
`subsystems, computer crime statistics indicate that computer
`viruses are as dangerous as ever and are still capable of
`causing enormous losses to personal computer users. Users
`of personal computers connected in LAN’s have a much
`higher risk than users of isolated computers. Therefore, there
`is still an urgent need to improve the methods and means of
`protecting computer files, especially for LAN-linked com-
`puters.
`
`An analysis of current methods and means of protecting
`V computer files shows that the most reliable protection is
`provided by subsystems which use dedicated hardware to
`support the protection programs. One particularly efliective
`way of protecting computer files is to use specialized
`processors acting as a connecting link between the central
`processor and the file storage device. A typical example of
`a highly reliable protection subsystem is the computer file
`protection subsystem developed and patented by Empirical
`Research System, Inc. (Computer File Protection System:
`International-Publication No. WO 90/13084, C06F 12/14.
`Application submitted Apr. 19, 1989, published Nov. 1,
`1990). This subsystem can be accessed by the operating
`system for modifications only during installation. The hard-
`ware for this subsystem includes programmable external
`memory and a programmable external control device. The
`programmable control device is based on a digital micro-
`processor and is installed as an intermediate link between
`the central processor and the file storage device. The pro-
`grammable control device monitors the control logic signals,
`the address signals, and the data signals formed by the
`central processor. An auxiliary memory stores file-access
`criteria established by the supervisor. The control device
`checks for file access authorization and prevents access
`attempts that do not meet
`the established criteria. The
`control device also reads the signatures of all the protected
`files and compares the signatures of the loaded files with the
`reference signatures. To store the file signatures, the con-
`troller creates a protected memory region that is inaccessible
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`29
`
`to the operating system. In the event of any deviation from
`the established protection criteria, the protection subsystem
`prohibits the use of the computer.
`An obvious disadvantage of the above-described sub-
`system is that any user can view the disk directories. This
`circumstance permits complete viewing of the disk directo-
`ries, and encourages unsanctioned activity by users wishing
`to study and distort the data of other users. Another obvious
`disadvantage of the above-described subsystem is that the
`hardware serving as the intermediate link between the
`central processor and the file storage device must be located
`on a board which connects to the file storage device or on the
`boards of other devices. As a result, this protection sub-
`system requires additional hardware and does not provide
`the most eflicient use of the existing hardware.
`
`OBJECTS OF THE INVENTION
`
`Accordingly, it is the general object of this invention to
`provide apparatus which address the aforementioned needs.
`It is another object of this invention to eliminate the need
`to monitor requests at the operating system level and at the
`modular device driver level of the personal computer.
`It is yet another object of this invention to require less
`complicated hardware.
`
`SUMMARY OF THE INVENTION
`
`invention are
`These and other objects of the instant
`achieved by providing a hard disk protection system for
`protecting data stored on a hard disk of a personal computer
`that is available to a plurality of users. The hard disk has
`logical disk structure including an operating system having
`logical drives. The system comprises protection programs
`that interpret the logical drives as a fixed set of zones on the
`hard disk for a particular user and wherein each of the fixed
`set of zones have respective access rules. The system also
`includes a hardware module responsive to the protection
`programs, that either allows or denies access to the hard disk
`based on the access rules. The hardware module has a first
`memory that is inaccessible to the central processing unit
`and a second memory that
`is accessible to the central
`processing unit.
`
`DESCRIPTION OF THE DRAWINGS
`
`Other objects and many of the attendant advantages of
`this invention will be readily appreciated as the same
`becomes better understood by reference to the following
`detailed description when considered in connection with the
`accompanying drawings wherein the structure and func-
`tional organization of the data protection and sharing system
`are illustrated in the following drawings:
`FIG. 1 is a structural block diagram of the hard disk
`protection system installed in a computer;
`FIG. 2 is a structural block diagram of the protection
`program support module;
`
`FIG. 3 shows the scheme for forming virtual disk space;
`FIG. 4 shows the scheme for converting a virtual cluster
`number into a real cluster number;
`FIGS. 5—5B is a flow chart of the protection initialization
`program;
`
`FIG. 6 is a flow chart of the program which converts a real
`cluster number into a virtual cluster number;
`FIGS. 7—7E is a flow chart of the disk-request handler;
`
`29
`
`

`
`3
`
`4
`
`5,586,301
`
`FIG. 8 flow chart of the program which converts a virtual
`cluster number into a real cluster number;
`FIGS. 9—9B is a flow chart of the protection control
`program;
`
`FIG. 10 is a flow chart of the protection control command
`handler;
`FIG. 11 is a flow chart of the program for processing the
`command to register a new user;
`FIG. 12 is a flow chart of the program for processing the
`command to delete a user;
`
`10
`
`FIGS. 13—13B is a flow chart of the program for process-
`ing the command to change the status of a file;
`FIG. 14 is a flow chart of the program for processing the
`command to change the protection attribute of a file;
`FIG. 15 is a flow chart of the program for processing the
`command to change a user password;
`FIG. 16 is a flow chart of the program for processing the
`command to change a user name;
`FIG. 17 is a flow chart of the program for processing the
`command to obtain the user’s status;
`
`FIG. 18 is a flow chart of the program for processing the
`command to identify the user;
`FIG. 19 is a flow chart of the program for processing the
`command to permit a change in a file attribute; and
`FIG. 20 is a flow chart for a key program.
`
`DESCRIPTION OF THE INVENTION
`
`to the various figures of the
`Referring now in detail
`drawing wherein like reference characters refer to like parts,
`there is shown at 20 in FIG. 1, a personal computer hard disk
`protection system (HDPS) that comprises a hardware mod-
`ule 22, known as the protection-program support module
`(PPSM), and protection software 24. At this juncture, it is
`necessary to point out that the PPSM 22 is subject matter of
`U.S. application Ser. No. 08/269,591 (now U.S. Pat. No.
`5,483,649), assigned to the same assignee as this invention
`and whose disclosure is incorporated by reference herein.
`As shown in FIG. 1, a conventional personal computer
`system basically comprises application software 26, an
`operating system 28 (e.g., DOS or WINDOWS, etc.) and a
`basic input/output system (BIOS) 30. Typically, access to the
`hard disk controller 32 (and, thereby, the hard disk 34 itself)
`from the application program 26 is via the entry point 34 to
`the standard BIOS handler known as INT 13H BIOS, as
`shown by paths 36A—36C. In some cases, access from the
`application program 26 to the hard disk controller 32 is
`direct, as shown by path 36D.
`However, with the HDPS 20 coupled to the personal
`computer system, as will be discussed in detail later, the
`HDPS 20 prevents direct access to the hard-disk controller
`34 by the application program 26 (as indicated by the
`hatched access path line 36D) and ensures security for disk
`access using the BIOS disk—request handler 38. In order to
`verify and ensure the security of disk requests using INT
`l3H BIOS, the HDPS 20 uses a link 40 with the BIOS input.
`This link 40 is established by modifying the interrupt vector
`table to replace the address of the original handler of INT
`13H BIOS with the address of the key program of the
`disk—request handler, which will also be discussed later.
`
`The protection software 24 comprises a set of protection
`programs which create service data 42 for use in the HDPS
`20 processes. These service data 42 of the protection pro-
`grams are a separate information component. The set of
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`30
`
`protection programs includes a protection initialization pro-
`gram 44, a disk—request handler 46, a control-command
`handler 48, a protection control program 50, and a set of key
`programs, which includes the initial key program 52, the
`command-handler key program 54, and the request-handler
`key program 56.
`The set of protection programs is stored on the hard disk
`34 and in the PPSM 22. In particular, the protection control
`program 50 is stored as an ordinary file on the hard disk 34.
`The other protection programs are stored in the PPSM 22.
`The PPSM 22 provides hidden storage of the protection
`programs and establishes a logical relationship between the
`ability to access the hard disk 34 and the execution phase of
`the protection programs. As shown in FIG. 2, the PPSM 22
`comprises an external board connected to the system bus
`(i.e., the address bus 58, data bus 60 and control bus 62) of
`the personal computer, and has two operating modes: active
`and passive. In the active mode, the PPSM 22 hides the
`protection programs from the central processing unit 64
`(CPU) and prevents the CPU 64 from accessing the hard
`disk 34. In the passive mode, the PPSM 22 permits the
`protection programs to be read, and does not affect the
`access to the hard disk 34 by the CPU 64. In order to obtain
`free access to the hard disk 34, the CPU 64 must switch the
`PPSM 22 to the passive mode, and to do this, the CPU 64
`must use one of the key programs. The reason for the use of
`the key programs is that the PPSM 22 determines the type
`of program which is attempting to change the status, and the
`PPSM 22 allows a change in its status only if flags are
`present indicating that the key program is active. After the
`PPSM 22 is switched to the passive mode, the key program
`transfers control to the protection programs stored in the
`PPSM 22.
`
`The PPSM 22 comprises a first memory 66, a second
`memory 68, a programmable controller 70, and a program
`discriminator 72. The first memory 66 stores the protection
`programs and can be made inaccessible to the CPU 64. The
`second memory 68, which is always accessible to the CPU
`64, stores the set of key programs which are used to change
`the status of the PPSM 22. The programmable controller 70
`prevents access to the hard disk 34 and forbids access to the
`first memory 66. The CPU 64 can program the mode of the
`programmable controller 70 only when a signal is present
`indicating that one of the key programs is active. The
`program discriminator 72 determines the type of program
`acting on the programmable controller 70 and establishes a
`logical relationship between the ability to switch the PPSM
`22 mode and the type of program acting on the program-
`mable controller 70. If flags are present indicating that one
`of the key programs is active, the program discriminator 72
`allows the entry of information into the programmable
`controller 70. Otherwise, the program discriminator 72 does
`not permit the entry of information in the programmable
`controller 70. The PPSM 22 also includes an address
`decoder 74 and an AND gate 76. The details of the operation
`of the PPSM 22 are set forth in U.S. application Ser. No.
`08/269,591 (now U.S. Pat. No. 5,483,649).
`The basis for the protection of data stored on the hard disk
`34 is the dynamic conversion of the file system to the
`configuration of the current user. The file system is con-
`verted by masking the clusters occupied by data that are not
`to be accessed by the current user and then representing the
`free disk space as being continuous. It should be noted at this
`juncture that the hard disk 34 comprises standard MS-DOS
`logical disk structure, i.e., the disk space is divided into a
`boot sector, a first copy of a file allocation table (FAT1), a
`second copy of the file allocation table (FAT2) and a root
`
`30
`
`

`
`5
`
`5,586,301
`
`6
`
`directory, with the remainder of the disk space allocated for
`file storage. Conventional logical disk structure is discussed
`in the “DOS Programmer Reference 4th Edition” by Terry
`Dettmann (copyright 1993) and in the “MS-DOS Program-
`mer’s Reference Manual” by Microsoft Corporation (copy-
`right 1993), both of which forms are incorporated by refer-
`ence herein.
`
`During the protection process, each logical drive of the
`MS-DOS operating system 28 is interpreted by the HDPS 20
`as a fixed set of zones of the disk space, with different access
`rules for each zone.
`
`The first zone called the BootZone, occupies the disk
`space from the sector containing the description of the
`logical-drive partition to the loading sector of the disk,
`inclusive. Access to this disk zone is permitted for reading
`only.
`
`The second zone, called the FatZone, occupies the disk
`space from the first sector of the first copy of the logical-
`drive FAT to the first sector of the root directory of the disk.
`Access to this zone is permitted for reading and writing. Any
`writing operation is preceded by verification of the correct-
`ness of the proposed changes, and writing will not be
`permitted if an attempt is made to write incorrect data.
`The third zone, called the RootZone, occupies the disk
`space from the first
`to the last sector of the disk root
`directory, inclusive. The operations of reading and writing
`are permitted for this zone. Before writing operations, the
`proposed changes are analyzed in order to prevent unsanc-
`tioned changes to the directory entries for the protected files
`and directories.
`
`The fourth zone called the ClustZone, occupies the disk
`space from the first sector of the first cluster of the disk to
`the beginning of the next zone, which is described below.
`Access to this zone is permitted for reading and writing.
`Before writing operations, the proposed changes are ana-
`lyzed in order to prevent unsanctioned changes in the
`protected files and directories.
`
`The fifth zone called the HiddenZone, occupies disk space
`at the end of the logical drive and is used to store HDPS data
`structures which are used for the operation of the system. No
`programs are permitted access to this zone for reading or
`writing. The contents of the disk loading sector are changed
`so that the disk space occupied by this zone is excluded from
`the disk space accessible to the operating system.
`The process of file-system

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket