14.07.2013 Views

Understanding Security APIs - CrySyS Lab

Understanding Security APIs - CrySyS Lab

Understanding Security APIs - CrySyS Lab

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ecome more important than ever for us to develop an understanding of <strong>Security</strong><br />

<strong>APIs</strong>. We need to understand their abilities and limitations, and the secrets of good<br />

design. Only then will we be able to judge whether devolution of policy enforcement<br />

to computers is in the best interests of our society.<br />

The aim of this thesis is to build an understanding of <strong>Security</strong> <strong>APIs</strong> at both technical,<br />

operational and social levels. It makes an in-depth examination of the abilities<br />

and weaknesses of today’s <strong>Security</strong> <strong>APIs</strong>, drawing strongly from financial security<br />

applications, and the study of tamper-resistant hardware. It exposes the shortcomings<br />

of existing <strong>APIs</strong>, which are failing in some cases to enforce even the simplest of<br />

policies. It examines API failures both in simple two party cases, and complex heterogeneous<br />

environments. It proposes starting points for methods of analysis, brings<br />

to bear previous innovation from other fields of computer science, and provides the<br />

first tentative advice on good design practice.<br />

If <strong>Security</strong> <strong>APIs</strong> do become important and ubiquitous, this thesis should lay the<br />

groundwork for a new and worthwhile field of study.<br />

1.1 How to Read this Thesis<br />

Chapter 2 introduces <strong>Security</strong> <strong>APIs</strong> and describe their origins, then chapter 3 describes<br />

the discovery and development of API attacks. Readers who are unfamiliar<br />

with the concept of an API attack should find the simplified explanations of chapter<br />

3 particularly helpful to study before tackling the meat of the thesis in chapter 7.<br />

Note also that there is a glossary at the back of the thesis to help with all the TLAs.<br />

Chapters 4, 5 and 6 introduce the applications and industrial background to <strong>Security</strong><br />

<strong>APIs</strong> in considerable detail. As this thesis is all about understanding <strong>Security</strong> <strong>APIs</strong>,<br />

taking time to read about the background is as important as learning about the<br />

attacks, but nevertheless some people may prefer to read more about attacks before<br />

coming back to look at the big picture, and should skip past these chapters straight<br />

to the analysis of <strong>Security</strong> API failures in chapter 7.<br />

Chapter 7 is the heart of the thesis. Useful abstractions for analysis of <strong>Security</strong><br />

<strong>APIs</strong> are first introduced, followed by a catalogue of attack techniques and actual<br />

instances (fairly heavy going!). Chapter 7 finishes with a discussion of formal methods<br />

for analysis of <strong>Security</strong> <strong>APIs</strong>. Chapter 8 then draws together the common themes<br />

behind the failures described in chapter 7 into wisdom and heuristics for good <strong>Security</strong><br />

API design. It then goes on to discuss the design issues facing modern <strong>APIs</strong>,<br />

in particular authorisation and trusted paths.<br />

Finally, chapters 9 and 10 speculate about the future of <strong>Security</strong> <strong>APIs</strong>, and draw<br />

some general conclusions about what it will take for API design and research to<br />

mature, and whether or not they will have an important role to play in the future<br />

of computer security.<br />

13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!