About the Authors |
|
xv | |
Preface |
|
xvii | |
Acknowledgements |
|
xix | |
|
1 Introduction to Computer Architecture and Security |
|
|
1 | (50) |
|
1.1 History of Computer Systems |
|
|
3 | (31) |
|
1.1.1 Timeline of Computer History |
|
|
5 | (10) |
|
1.1.2 Timeline of Internet History |
|
|
15 | (13) |
|
1.1.3 Timeline of Computer Security History |
|
|
28 | (6) |
|
1.2 John von Neumann Computer Architecture |
|
|
34 | (2) |
|
|
36 | (1) |
|
1.4 Input/Output and Network Interface |
|
|
37 | (1) |
|
1.5 Single CPU and Multiple CPU Systems |
|
|
38 | (3) |
|
1.6 Overview of Computer Security |
|
|
41 | (5) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
43 | (1) |
|
1.6.6 Hacking and Attacks |
|
|
44 | (2) |
|
1.7 Security Problems in Neumann Architecture |
|
|
46 | (2) |
|
|
48 | (3) |
|
|
48 | (2) |
|
|
50 | (1) |
|
|
51 | (17) |
|
2.1 Concept of Logic Unit |
|
|
51 | (1) |
|
2.2 Logic Functions and Truth Tables |
|
|
52 | (2) |
|
|
54 | (1) |
|
2.4 Logic Circuit Design Process |
|
|
55 | (1) |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
58 | (7) |
|
2.7.1 Design of an FPGA Biometric Security System |
|
|
59 | (1) |
|
2.7.2 A RIFD Student Attendance System |
|
|
59 | (6) |
|
|
65 | (3) |
|
|
67 | (1) |
|
|
67 | (1) |
|
3 Computer Memory and Storage |
|
|
68 | (22) |
|
3.1 A One Bit Memory Circuit |
|
|
68 | (2) |
|
3.2 Register, MAR, MDR and Main Memory |
|
|
70 | (2) |
|
|
72 | (2) |
|
|
74 | (2) |
|
3.4.1 Paged Virtual Memory |
|
|
75 | (1) |
|
3.4.2 Segmented Virtual Memory |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (9) |
|
|
78 | (1) |
|
3.6.2 Tertiary Storage and Off-Line Storage |
|
|
78 | (1) |
|
3.6.3 Serial Advanced Technology Attachment (SATA) |
|
|
79 | (1) |
|
3.6.4 Small Computer System Interface (SCSI) |
|
|
80 | (1) |
|
3.6.5 Serial Attached SCSI (SAS) |
|
|
81 | (1) |
|
3.6.6 Network-Attached Storage (NAS) |
|
|
82 | (1) |
|
3.6.7 Storage Area Network (SAN) |
|
|
83 | (2) |
|
|
85 | (1) |
|
3.7 Memory Access Security |
|
|
86 | (2) |
|
|
88 | (2) |
|
|
89 | (1) |
|
|
89 | (1) |
|
4 Bus and Interconnection |
|
|
90 | (28) |
|
|
90 | (5) |
|
|
91 | (2) |
|
|
93 | (1) |
|
|
93 | (2) |
|
4.2 Parallel Bus and Serial Bus |
|
|
95 | (12) |
|
4.2.1 Parallel Buses and Parallel Communication |
|
|
95 | (1) |
|
4.2.2 Serial Bus and Serial Communication |
|
|
96 | (11) |
|
4.3 Synchronous Bus and Asynchronous Bus |
|
|
107 | (2) |
|
4.4 Single Bus and Multiple Buses |
|
|
109 | (1) |
|
4.5 Interconnection Buses |
|
|
110 | (1) |
|
4.6 Security Considerations for Computer Buses |
|
|
111 | (1) |
|
4.7 A Dual-Bus Interface Design |
|
|
112 | (3) |
|
4.7.1 Dual-Channel Architecture |
|
|
113 | (1) |
|
4.7.2 Triple-Channel Architecture |
|
|
114 | (1) |
|
4.7.3 A Dual-Bus Memory Interface |
|
|
115 | (1) |
|
|
115 | (3) |
|
|
117 | (1) |
|
|
117 | (1) |
|
5 I/O and Network Interface |
|
|
118 | (26) |
|
|
118 | (2) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
122 | (14) |
|
|
123 | (1) |
|
|
123 | (1) |
|
5.4.3 USB Version History |
|
|
124 | (1) |
|
5.4.4 USB Design and Architecture |
|
|
125 | (2) |
|
|
127 | (1) |
|
5.4.6 USB Interface Connectors |
|
|
128 | (2) |
|
5.4.7 USB Connector Types |
|
|
130 | (3) |
|
5.4.8 USB Power and Charging |
|
|
133 | (3) |
|
|
136 | (1) |
|
5.5 Network Interface Card |
|
|
136 | (3) |
|
5.5.1 Basic NIC Architecture |
|
|
137 | (1) |
|
|
138 | (1) |
|
5.6 Keyboard, Video and Mouse (KVM) Interfaces |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
5.7 Input/Output Security |
|
|
140 | (1) |
|
5.7.1 Disable Certain Key Combinations |
|
|
141 | (1) |
|
5.7.2 Anti-Glare Displays |
|
|
141 | (1) |
|
5.7.3 Adding Password to Printer |
|
|
141 | (1) |
|
|
141 | (1) |
|
5.7.5 Encrypting Hard Drives |
|
|
141 | (1) |
|
|
141 | (3) |
|
|
142 | (1) |
|
|
143 | (1) |
|
6 Central Processing Unit |
|
|
144 | (28) |
|
|
144 | (9) |
|
6.1.1 Instruction Classifications |
|
|
144 | (1) |
|
|
145 | (1) |
|
6.1.3 Arithmetic Instructions |
|
|
145 | (2) |
|
6.1.4 Intel 64/32 Instructions |
|
|
147 | (6) |
|
|
153 | (5) |
|
6.2.1 General-Purpose Registers |
|
|
153 | (2) |
|
|
155 | (1) |
|
|
156 | (2) |
|
6.3 The Program Counter and Flow Control |
|
|
158 | (3) |
|
6.3.1 Intel Instruction Pointer |
|
|
158 | (1) |
|
6.3.2 Interrupt and Exception |
|
|
159 | (2) |
|
|
161 | (3) |
|
|
162 | (1) |
|
6.4.2 Architecture and Programming |
|
|
162 | (1) |
|
|
163 | (1) |
|
6.4.4 Advantages and Disadvantages |
|
|
163 | (1) |
|
|
164 | (1) |
|
|
164 | (2) |
|
6.5.1 Different Types of Pipelines |
|
|
164 | (1) |
|
6.5.2 Pipeline Performance Analysis |
|
|
165 | (1) |
|
|
166 | (1) |
|
|
166 | (2) |
|
|
168 | (1) |
|
|
169 | (3) |
|
|
170 | (1) |
|
|
170 | (2) |
|
7 Advanced Computer Architecture |
|
|
172 | (44) |
|
|
172 | (5) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
174 | (1) |
|
7.1.4 Symmetric Multiprocessing |
|
|
175 | (1) |
|
7.1.5 Multiprocessing Operating Systems |
|
|
175 | (1) |
|
7.1.6 The Future of Multiprocessing |
|
|
176 | (1) |
|
|
177 | (5) |
|
7.2.1 History of Parallel Processing |
|
|
177 | (1) |
|
|
178 | (1) |
|
7.2.3 Bit-Level Parallelism |
|
|
178 | (1) |
|
7.2.4 Instruction-Level Parallelism |
|
|
179 | (1) |
|
7.2.5 Data-Level Parallelism |
|
|
179 | (1) |
|
7.2.6 Task-Level Parallelism |
|
|
179 | (1) |
|
7.2.7 Memory in Parallel Processing |
|
|
180 | (1) |
|
7.2.8 Specialized Parallel Computers |
|
|
181 | (1) |
|
7.2.9 The Future of Parallel Processing |
|
|
182 | (1) |
|
|
182 | (5) |
|
7.3.1 Ubiquitous Computing Development |
|
|
183 | (1) |
|
7.3.2 Basic forms of Ubiquitous Computing |
|
|
184 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
7.4 Grid, Distributed and Cloud Computing |
|
|
187 | (10) |
|
7.4.1 Characteristics of Grid Computing |
|
|
187 | (1) |
|
7.4.2 The Advantages and Disadvantages of Grid Computing |
|
|
188 | (1) |
|
7.4.3 Distributed Computing |
|
|
189 | (1) |
|
7.4.4 Distributed Systems |
|
|
189 | (1) |
|
7.4.5 Parallel and Distributed Computing |
|
|
190 | (1) |
|
7.4.6 Distributed Computing Architectures |
|
|
190 | (2) |
|
|
192 | (1) |
|
7.4.8 Technical Aspects of Cloud Computing |
|
|
193 | (1) |
|
7.4.9 Security Aspects of Cloud Computing |
|
|
194 | (1) |
|
7.4.10 Ongoing and Future Elements in Cloud Computing |
|
|
195 | (1) |
|
7.4.11 Adoption of Cloud Computing Industry Drivers |
|
|
196 | (1) |
|
|
197 | (6) |
|
7.5.1 Internet Computing Concept and Model |
|
|
198 | (1) |
|
7.5.2 Benefit of Internet Computing for Businesses |
|
|
199 | (2) |
|
7.5.3 Examples of Internet Computing |
|
|
201 | (1) |
|
7.5.4 Migrating Internet Computing |
|
|
202 | (1) |
|
|
203 | (6) |
|
7.6.1 Types of Virtualization |
|
|
203 | (2) |
|
7.6.2 History of Virtualization |
|
|
205 | (1) |
|
7.6.3 Virtualization Architecture |
|
|
205 | (2) |
|
7.6.4 Virtual Machine Monitor |
|
|
207 | (1) |
|
7.6.5 Examples of Virtual Machines |
|
|
207 | (2) |
|
|
209 | (2) |
|
7.7.1 Biochemical Computers |
|
|
209 | (1) |
|
7.7.2 Biomechanical Computers |
|
|
209 | (1) |
|
7.7.3 Bioelectronic Computers |
|
|
210 | (1) |
|
|
211 | (5) |
|
|
212 | (2) |
|
|
214 | (2) |
|
8 Assembly Language and Operating Systems |
|
|
216 | (25) |
|
8.1 Assembly Language Basics |
|
|
217 | (6) |
|
|
217 | (2) |
|
8.1.2 The Binary Numbering System and Base Conversions |
|
|
219 | (1) |
|
8.1.3 The Hexadecimal Numbering System |
|
|
220 | (1) |
|
8.1.4 Signed and Unsigned Numbers |
|
|
221 | (2) |
|
8.2 Operation Code and Operands |
|
|
223 | (2) |
|
|
225 | (1) |
|
|
225 | (1) |
|
8.5 Stack and Buffer Overflow |
|
|
226 | (6) |
|
8.5.1 Calling Procedures Using CALL and RET (Return) |
|
|
228 | (1) |
|
8.5.2 Exploiting Stack Buffer Overflows |
|
|
229 | (2) |
|
|
231 | (1) |
|
8.6 FIFO and M/M/1 Problem |
|
|
232 | (2) |
|
8.6.1 FIFO Data Structure |
|
|
232 | (1) |
|
|
233 | (1) |
|
8.7 Kernel, Drivers and OS Security |
|
|
234 | (4) |
|
|
234 | (1) |
|
|
235 | (1) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
238 | (3) |
|
|
239 | (1) |
|
|
240 | (1) |
|
|
241 | (39) |
|
|
241 | (3) |
|
9.1.1 Signal, Data, and Channels |
|
|
242 | (1) |
|
9.1.2 Signal Encoding and Modulation |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (4) |
|
|
245 | (1) |
|
9.2.2 Transmission Control Protocol (TCP) |
|
|
246 | (1) |
|
9.2.3 The User Datagram Protocol (UDP) |
|
|
247 | (1) |
|
9.2.4 Internet Protocol (IP) |
|
|
247 | (1) |
|
|
248 | (2) |
|
|
248 | (1) |
|
|
249 | (1) |
|
|
250 | (7) |
|
|
251 | (1) |
|
|
251 | (2) |
|
9.4.3 Internet Protocol Version 4 (IPv4) |
|
|
253 | (1) |
|
9.4.4 Internet Protocol Version 6 (IPv6) |
|
|
254 | (1) |
|
9.4.5 Open Shortest Path First |
|
|
254 | (2) |
|
9.4.6 Throughput and Delay |
|
|
256 | (1) |
|
|
257 | (1) |
|
9.6 Wireless Networks and Network Address Translation (NAT) |
|
|
258 | (9) |
|
|
258 | (2) |
|
|
260 | (1) |
|
9.6.3 WLAN Handshaking, War Driving, and WLAN Security |
|
|
261 | (2) |
|
9.6.4 Security Measures to Reduce Wireless Attacks |
|
|
263 | (1) |
|
9.6.5 The Future of Wireless Network |
|
|
263 | (1) |
|
9.6.6 Network Address Translation |
|
|
264 | (1) |
|
9.6.7 Environmental and Health Concerns Using Cellular and Wireless Devices |
|
|
265 | (2) |
|
|
267 | (8) |
|
|
268 | (3) |
|
9.7.2 Firewall Architecture |
|
|
271 | (2) |
|
9.7.3 Constraint and Limitations of Firewall |
|
|
273 | (1) |
|
9.7.4 Enterprise Firewalls |
|
|
274 | (1) |
|
|
275 | (2) |
|
|
276 | (1) |
|
9.9 Virtual Cyber-Security Laboratory |
|
|
277 | (3) |
|
|
278 | (2) |
|
10 Design and Implementation: Modifying Neumann Architecture |
|
|
280 | (17) |
|
10.1 Data Security in Computer Systems |
|
|
280 | (4) |
|
|
281 | (1) |
|
10.1.2 Data Security and Data Bleaches |
|
|
282 | (1) |
|
10.1.3 Researches in Architecture Security |
|
|
283 | (1) |
|
10.2 Single-Bus View of Neumann Architecture |
|
|
284 | (2) |
|
10.2.1 John von Neumann Computer Architecture |
|
|
284 | (1) |
|
10.2.2 Modified Neumann Computer Architecture |
|
|
285 | (1) |
|
10.2.3 Problems Exist in John Neumann Model |
|
|
286 | (1) |
|
|
286 | (2) |
|
|
288 | (4) |
|
10.4.1 Working Mechanism of the Bus Controller |
|
|
288 | (1) |
|
10.4.2 Co-processor Board |
|
|
289 | (3) |
|
|
292 | (1) |
|
10.6 Micro-Operating System |
|
|
292 | (1) |
|
|
293 | (2) |
|
|
294 | (1) |
|
|
295 | (2) |
|
|
295 | (2) |
|
Appendix A Digital Logic Simulators |
|
|
297 | (3) |
|
A.1 CEDAR Logic Simulator |
|
|
297 | (1) |
|
|
298 | (1) |
|
A.3 Digital Logic Simulator v0.4 |
|
|
298 | (1) |
|
|
299 | (1) |
|
Appendix B Computer Security Tools |
|
|
300 | (4) |
|
|
300 | (1) |
|
|
300 | (1) |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
302 | (1) |
|
|
302 | (1) |
|
|
302 | (1) |
|
|
302 | (1) |
|
|
303 | (1) |
|
Appendix C Patent Application: Intrusion-Free Computer Architecture for Information and Data Security |
|
|
304 | (9) |
|
C.1 Background of the Invention |
|
|
304 | (4) |
|
C.1.1 John von Neumann Computer Architecture Model |
|
|
305 | (1) |
|
C.1.2 Modified Neumann Computer Architecture |
|
|
305 | (2) |
|
C.1.3 Problems Existed in the John Neumann Model |
|
|
307 | (1) |
|
C.1.4 The Goal of the Invention |
|
|
307 | (1) |
|
|
308 | (1) |
|
C.3 Detailed Description of the Invention |
|
|
308 | (2) |
|
|
310 | (3) |
Index |
|
313 | |