Initial import to Tizen
[profile/ivi/python-twisted.git] / doc / historic / 2003 / pycon / conch / conch
1 #!/usr/bin/python
2 from slides import Slide, Bullet, SubBullet, URL
3 from twslides import Lecture
4
5 lecture = Lecture(
6     "Twisted Conch: SSH in Python",
7     Slide("Introduction",
8     ),
9     Slide("Other implementations (servers)",
10         Bullet("OpenSSH",
11             SubBullet(URL("http://www.openssh.org")),
12         ),
13         Bullet("FSecure SSH",
14             SubBullet(URL("http://www.f-secure.com/products/ssh/")),
15         ),
16         Bullet("LSH",
17             SubBullet(URL("http://www.lysator.liu.se/~nisse/lsh/")),
18         ),
19     ),
20     Slide("Other implementations (clients)",
21         Bullet("PuTTY",
22             SubBullet(URL("http://www.chiark.greenend.org.uk/~sgtatham/putty/")),
23         ),
24         Bullet("TeraTerm",
25             SubBullet(URL("http://www.ayera.com/teraterm/")),
26         ),
27         Bullet("MindTerm",
28             SubBullet(URL("http://www.appgate.com/mindterm/")),
29         ),
30     ),
31     Slide("Why Twisted?",
32         Bullet("Asynchronous"),
33         Bullet("Python"),
34         Bullet("High-Level"),
35     ),
36     Slide("No Forking or Threads",
37         Bullet("Forking is expensive"),
38         Bullet("Threads are complicated/expensive, esp. in Python"),
39         Bullet("Asynch means no worrying about any of that"),
40         Bullet("Makes running a session 2x as fast in Conch as in OpenSSH"),
41     ),
42     Slide("Security - No Pointers",
43         SubBullet("No buffer overflows"),
44         SubBullet("No off-by-1 errors"),
45         SubBullet("No malloc/free bugs"),
46         SubBullet("No arbitrary code execution"),
47     ),
48     Slide("Security - High Level",
49         Bullet("Strong built-in library"),
50         Bullet("Exceptions"),
51     ),
52     Slide("Security - Not Root",
53         Bullet("Limits vulnerablity in a compromise"),
54         Bullet("Allows use of process limits/etc."),
55     ),
56     Slide("Interfacing with other software",
57         Bullet("OpenSSH interacts only through separate processes",
58             SubBullet("Expensive"),
59             SubBullet("Complicated"),
60         ),
61         Bullet("Conch can interact in-process",
62             SubBullet("Faster"),
63             SubBullet("Easy integration to other Twisted and Python libraries"),
64         ),
65     ),
66     Slide("Speed",
67         Bullet("C is faster than Python"),
68         Bullet("Interpreter cost is high for the client"),
69         Bullet("FSH-style connection caching helps a bit"),
70         Bullet("Psyco helps as well"),
71     ),
72     Slide("Age",
73         Bullet("Conch is new",
74             SubBullet("First commit was July 15, 2002"),
75         ),
76         Bullet("Hasn't had a security aduit"),
77         Bullet("Shouldn't be used in security-critical systems"),
78     ),
79     Slide("Applications with Conch",
80         Bullet("Reality: MUD framework"),
81         Bullet("Insults: async. replacement for curses in Conch apps"),
82     ),
83     Slide("Future Directions",
84         Bullet("Generic authentication forwarding"),
85         Bullet("Work on applications"),
86         Bullet("Auditing of the code"),
87         Bullet("Increase speed"),
88         Bullet("SFTP/SCP"),
89         Bullet("Key Agent"),
90         Bullet("DNSSEC"),
91     ),
92     Slide("Conclusion",
93         Bullet("Working implementation in Python"),
94         Bullet("Much room for improvement"),
95     ),
96 )
97
98 lecture.renderHTML(".", "conch-%d.html", css="main.css")