This book contains everything you need to make your application program support IPv6. IPv6 socket APIs (RFC2553) are fully described with real-world examples. It covers security, a great concern these days. To secure the Internet infrastructure, every developer has to take a security stance - to audit every line of code, to use proper API and write correct and secure code as much as possible. To achieve this goal, the examples presented in this book are implemented with a security stance. Also, the book leads you to write secure programs. For instance, the book recommends against the use of some of the IPv6 standard APIs - unfortunately, there are some IPv6 APIs that are inherently insecure, so the book tries to avoid (and discourage) the use of such APIs. Another key issue is portability. The examples in the book should be applicable to any of UNIX based operating systems, MacOS X, and Windows XP. * Covers the new protocol just adopted by the Dept of Defense for future systems * Deals with security concerns, including spam and email, by presenting the best programming standards * Fully describes IPv6 socket APIs (RFC2553) using real-world examples * Allows for portability to UNIX-based operating systems, MacOS X, and Windows XP
Author(s): Jun-ichiro itojun Hagino
Edition: 1
Publisher: MIX
Year: 2004
Language: English
Pages: 375
TeamLiB......Page 1
Cover......Page 2
Contents......Page 7
Preface......Page 9
Be Security Conscious When Writing Programs......Page 11
Terminology and Portability......Page 12
1.1 A History of IPv6 and Its Key Features......Page 14
1.2 Transition from IPv4-Only Internet to IPv4/v6 Dual Stack Internet......Page 17
1.3 UNIX Socket Programming......Page 19
1.4 IPv6 Architecture from a Programmer's Point of View......Page 23
2.1 AF_INET6: The Address Family for IPv6......Page 26
2.2 Why Programs Need to Be Address-Family Independent?......Page 27
2.3 Guidelines to Address-Family Independent Socket Programming......Page 30
3.2 Finding Where to Rewrite, Reorganizing Code......Page 40
3.3 Rewriting Client Applications......Page 42
3.4 Rewriting Server Applications......Page 44
4.2 Issues with......Page 62
4.3 Issues with an IPv4 Mapped Address......Page 63
4.4 bind(2) Ordering and Conflicts......Page 64
4.6 Portability across Systems......Page 65
4.8 Platform Support Status......Page 67
5.1 Server Program Example—popa3d......Page 72
5.3 Client Program Example—nail......Page 75
A: Coming updates to IPv6 APIs......Page 94
B: RFC2553......Page 96
C: RFC3493......Page 138
D: RFC2292......Page 178
E: RFC3542......Page 246
F: IPv4-Mapped Address API Considered Harmful......Page 324
G: IPv4-Mapped Addresses on the Wire Considered Harmful......Page 330
H: Possible Abuse Against IPv6 Transition Technologies......Page 336
I: An Extension of format for IPv6 Scoped Addresses......Page 346
J: Protocol Independence Using the Sockets API......Page 358
References......Page 368
C......Page 370
I......Page 371
P......Page 372
S......Page 373
W......Page 374