1 |
W dniu sob, 28.10.2017 o godzinie 18∶44 +0000, użytkownik Robin H. |
2 |
Johnson napisał: |
3 |
> On Sat, Oct 28, 2017 at 01:50:46PM +0200, Michał Górny wrote: |
4 |
> > > A SVN or Git repo might also have dot-named directories. |
5 |
> > |
6 |
> > I like the implicit idea better as it is more consistent with normal |
7 |
> > tool behavior, like 'ls' not listing the files. Dotfiles can be created |
8 |
> > by many random tools or even the filesystem (especially in some cases |
9 |
> > of overlay filesystems). |
10 |
> > |
11 |
> > That said, the case of 'lost+found' just occurred to me. I suppose this |
12 |
> > one we will want to always IGNORE. |
13 |
> |
14 |
> Thought: make the package manager responsible for their own ignore list |
15 |
> in addition to the IGNORE values; and by default it can contain a |
16 |
> partial overlap with the IGNORE manifest entries. |
17 |
> **/.git |
18 |
> /lost+found # ignore at the top-level only |
19 |
> /distfiles # ignore at the top-level only |
20 |
> /packages # ignore at the top-level only |
21 |
> /local # ignore at the top-level only |
22 |
> |
23 |
> If users need other values, it's a package-manager config knob. |
24 |
|
25 |
We don't want pre-EAPI times where things will fail out of the box |
26 |
unless the user choose the one tool that got the whole list right |
27 |
and/or configure it to account for default list. |
28 |
|
29 |
I don't mind package manager providing the ability to ignore additional |
30 |
entries but the spec should work out of the box too. |
31 |
|
32 |
> |
33 |
> > Let's try: |
34 |
> > |
35 |
> > > 2. Start at the top-level Manifest file. Verify its OpenPGP signature. |
36 |
> > > Optionally verify the ``TIMESTAMP`` entry if present. |
37 |
> > > If the timestamp is significantly out of date compared to the local |
38 |
> > > clock or a trusted source, halt or require manual intervention |
39 |
> > > from the user. Remove the top-level Manifest from the *present* set. |
40 |
> > |
41 |
> > Maybe it would look better if I split it into sub-points. |
42 |
> |
43 |
> Yes, put 'Verifying TIMESTAMP' into a new section as you added below, |
44 |
> including the out-of-date part there; don't detail how to verify it in |
45 |
> this section. |
46 |
|
47 |
I will try to do this today. |
48 |
|
49 |
> > > GLEP61, for the transition period, required compressed & uncompressed Manifests |
50 |
> > > in the same directory to have identical content. Include mention of that here. |
51 |
> > |
52 |
> > Can do. But I'll do it in 'Backwards compatibility' section: |
53 |
> > > - if the Manifest files inside the package directory are compressed, |
54 |
> > > a uncompressed file of identical content must coexist. |
55 |
> > > Saying that either can be used is a potential issue. |
56 |
> > |
57 |
> > Why? It also says that they must be identical, so it's of no difference |
58 |
> > to the implementation which one is used. |
59 |
> |
60 |
> It's safe if the identical requirement is there, and potentially unsafe otherwise. |
61 |
|
62 |
That's why they're both put in a *single sentence*? |
63 |
|
64 |
> > > > Timestamp field |
65 |
> > > |
66 |
> > > A malicious third-party may use the principles of exclusion and replay |
67 |
> > > to deny an update to clients, while at the same time recording |
68 |
> > > the identity of clients to attack. The timestamp field can be used |
69 |
> > > to detect that. |
70 |
> > > |
71 |
> > > In order to provide a more complete protection, the Gentoo |
72 |
> > > Infrastructure should provide an ability to obtain the timestamps |
73 |
> > > of all Manifests from a recent timeframe over a secure channel |
74 |
> > > for comparison. |
75 |
> > > |
76 |
> > > Strictly speaking, this is already provided by the various |
77 |
> > > ``metadata/timestamp.*`` files provided already by Gentoo which are also |
78 |
> > > covered by the Manifest. However, including the value in the Manifest |
79 |
> > > itself has a little cost and provides the ability to perform |
80 |
> > > the verification stand-alone. |
81 |
> |
82 |
> Just add in the sentence re trusted source from before, otherwise good. |
83 |
> The rest of this thread devolved into specifics about implementing the |
84 |
> validation; which aren't relevant to this GLEP (yes, telling the package |
85 |
> manager that it's a known old tree, ignore the age only, is a valid use |
86 |
> case). |
87 |
|
88 |
Ok. |
89 |
|
90 |
> > > Could we please note here, for the transitional period, that the |
91 |
> > > file equivalence rule is applicable? |
92 |
> > > During the transitional, the package Manifests may contain two entries for a |
93 |
> > > given file: (DATA, EBUILD) or (DATA, AUX). The MISC type remains the |
94 |
> > > same. |
95 |
> > |
96 |
> > Equivalence rule is applicable always. However, there's no point |
97 |
> > in duplicating the entry for the same file as that's only going |
98 |
> > to increase space use. |
99 |
> |
100 |
> This means that new verification tools (beyond Gemato) need to handle |
101 |
> the legacy types for the moment, and can't just skip them (eg if both |
102 |
> entries existed). |
103 |
|
104 |
Which is the easier way forward. Otherwise, we end up having a lot of |
105 |
duplication during the transition period (which would amount to 2 years |
106 |
at the very least, and probably a lot more). |
107 |
|
108 |
> |
109 |
> > > > - the Manifest files inside the package directory can be signed |
110 |
> > > > to provide authenticity verification. |
111 |
> > > |
112 |
> > > Why do we need to specify this in backwards compat, it's still permitted above. |
113 |
> > |
114 |
> > But it makes no sense when top-level Manifest is signed. This points out |
115 |
> > that for tools not supporting full-tree verification smaller signatures |
116 |
> > need to be used (skipping the fact that Portage did not ever implement |
117 |
> > it). |
118 |
> |
119 |
> The Manifests might not be signed by the same entity. |
120 |
> /metadata/glsa/Manifest might be signed by the security team, |
121 |
> /sec-policy/Manifest might be signed by SELinux team, |
122 |
> /Manifest should STILL be signed by Infra/tree-generation-process. |
123 |
|
124 |
I honestly doubt this will ever happen, and even if it does, it isn't |
125 |
really relevant to the spec at hand. My point was: if someone signs |
126 |
the whole repository, he normally will consider it pointless to sign |
127 |
individual package Manifests. This explains why he might consider it. |
128 |
|
129 |
-- |
130 |
Best regards, |
131 |
Michał Górny |