aboutsummaryrefslogtreecommitdiff
path: root/docs/bpki.dot
blob: d2cc84249c7fbe263eb29e37d2a55ff8b9bbfab1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// $Id$
//
// Pictures to show why I prefer the symmetric BPKI model.  As far as
// I can tell, the asymmetric model is every bit as complex for me as
// the symmetric model; the only difference is the added annoyance of
// having to keep track of a larger number of BSC EE certificates.
//
// Color code:
//   Black:	Hosting entity
//   Blue:	Hosted entity
//   Red:	Cross-certified peer
//
// Shape code:
//   Octagon:	TA
//   Diamond:	CA
//   Record:	EE

digraph bpki_symmetric {
	rotate = 90; size = "11,8.5"; splines = true; ratio = fill;

	// Hosting entity
	node			[ color = black, shape = record ];
	TA			[ shape = octagon ];
	rpkid			[ label = "rpkid|{HTTPS server|HTTPS left-right client|CMS left-right}" ];
	irdbd			[ label = "irdbd|{HTTPS left-right server|CMS left-right}" ];
	irbe			[ label = "IRBE|{HTTPS left-right client|CMS left-right}" ];

	// Hosted entities
	node			[ color = blue, fontcolor = blue ];
	Alice_CA		[ shape = diamond ];
	Alice_EE		[ label = "Alice\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Ellen_CA		[ shape = diamond ];
	Ellen_EE		[ label = "Ellen\nBSC EE|{HTTPS up-down client|CMS up-down}" ];

	// Peers
	node			[ color = red, fontcolor = red, shape = diamond ];
	Bob_CA;
	Carol_CA;
	Dave_CA;
	Frank_CA;
	Ginny_CA;
	Harry_CA;

	edge			[ color = black, style = solid ];
	TA -> Alice_CA;
	TA -> Ellen_CA;

	edge			[ color = black, style = dashed ];
	TA -> rpkid;
	TA -> irdbd;
	TA -> irbe;

	edge			[ color = blue, style = solid ];
	Alice_CA -> Bob_CA;
	Alice_CA -> Carol_CA;
	Alice_CA -> Dave_CA;
	Ellen_CA -> Frank_CA;
	Ellen_CA -> Ginny_CA;
	Ellen_CA -> Harry_CA;

	edge			[ color = blue, style = dashed ]
	Alice_CA -> Alice_EE;
	Ellen_CA -> Ellen_EE;
}

digraph bpki_asymmetric {
	rotate = 90; size = "11,8.5"; splines = true; ratio = fill;

	// Hosting entity
	node			[ color = black, shape = record ];
	TA			[ shape = octagon ];
	rpkid			[ label = "rpkid|{HTTPS server|HTTPS left-right client|CMS left-right}" ];
	irdbd			[ label = "irdbd|{HTTPS left-right server|CMS left-right}" ];
	irbe			[ label = "IRBE|{HTTPS left-right client|CMS left-right}" ];

	// Hosted entities
	node			[ color = blue, fontcolor = blue ];
	Alice_CA		[ shape = diamond ];
	Ellen_CA		[ shape = diamond ];

	// Peers
	node			[ color = red, fontcolor = red, shape = diamond ];
	Bob_CA;
	Carol_CA;
	Dave_CA;
	Frank_CA;
	Ginny_CA;
	Harry_CA;

	// EE certs issued to us by peers
	node			[ color = red, fontcolor = red, shape = record ];
	Alice_Bob_EE		[ label = "Alice-Bob\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Alice_Carol_EE		[ label = "Alice-Carol\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Alice_Dave_EE		[ label = "Alice-Dave\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Ellen_Frank_EE		[ label = "Ellen-Frank\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Ellen_Ginny_EE		[ label = "Ellen-Ginny\nBSC EE|{HTTPS up-down client|CMS up-down}" ];
	Ellen_Harry_EE		[ label = "Ellen-Harry\nBSC EE|{HTTPS up-down client|CMS up-down}" ];

	edge			[ color = black, style = solid ];
	TA -> Alice_CA;
	TA -> Ellen_CA;

	edge			[ color = black, style = dashed ];
	TA -> rpkid;
	TA -> irdbd;
	TA -> irbe;

	edge			[ color = blue, style = solid ];
	Alice_CA -> Bob_CA;
	Alice_CA -> Carol_CA;
	Alice_CA -> Dave_CA;
	Ellen_CA -> Frank_CA;
	Ellen_CA -> Ginny_CA;
	Ellen_CA -> Harry_CA;

	edge			[ color = red, style = dashed ];
	Bob_CA   -> Alice_Bob_EE;
	Carol_CA -> Alice_Carol_EE;
	Dave_CA  -> Alice_Dave_EE;
	Frank_CA -> Ellen_Frank_EE;
	Ginny_CA -> Ellen_Ginny_EE;
	Harry_CA -> Ellen_Harry_EE;
}