OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 syntax = "proto2"; | 5 syntax = "proto2"; |
6 | 6 |
7 option optimize_for = LITE_RUNTIME; | 7 option optimize_for = LITE_RUNTIME; |
8 | 8 |
9 package enterprise_management; | 9 package enterprise_management; |
10 | 10 |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
165 | 165 |
166 // If this fetch is due to a policy invalidation, this field contains the | 166 // If this fetch is due to a policy invalidation, this field contains the |
167 // version provided with the invalidation. The server interprets this value | 167 // version provided with the invalidation. The server interprets this value |
168 // and the value of invalidation_payload to fetch the up-to-date policy. | 168 // and the value of invalidation_payload to fetch the up-to-date policy. |
169 optional int64 invalidation_version = 7; | 169 optional int64 invalidation_version = 7; |
170 | 170 |
171 // If this fetch is due to a policy invalidation, this field contains the | 171 // If this fetch is due to a policy invalidation, this field contains the |
172 // payload delivered with the invalidation. The server interprets this value | 172 // payload delivered with the invalidation. The server interprets this value |
173 // and the value of invalidation_version to fetch the up-to-date policy. | 173 // and the value of invalidation_version to fetch the up-to-date policy. |
174 optional bytes invalidation_payload = 8; | 174 optional bytes invalidation_payload = 8; |
175 | |
176 // Hash string for the chrome policy verification public key which is embedded | |
177 // into Chrome binary. Matching private key will be used by the server | |
178 // to sign per-domain policy keys during key rotation. If server does not | |
179 // have the key which matches this hash string, that could indicate malicious | |
180 // or out-of-date Chrome client. | |
Mattias Nissler (ping if slow)
2014/01/27 13:52:13
This comment should say how the hash is computed.
Andrew T Wilson (Slow)
2014/01/30 17:10:31
Why? We don't use it locally, so the actual algori
Mattias Nissler (ping if slow)
2014/01/31 21:00:34
You're right, I was confused. Maybe we should name
Andrew T Wilson (Slow)
2014/02/02 11:31:58
I'll do this in a followup CL.
| |
181 optional string verification_key_hash = 9; | |
175 } | 182 } |
176 | 183 |
177 // This message is included in serialized form in PolicyFetchResponse | 184 // This message is included in serialized form in PolicyFetchResponse |
178 // below. It may also be signed, with the signature being created for | 185 // below. It may also be signed, with the signature being created for |
179 // the serialized form. | 186 // the serialized form. |
180 message PolicyData { | 187 message PolicyData { |
181 // See PolicyFetchRequest.policy_type. | 188 // See PolicyFetchRequest.policy_type. |
182 optional string policy_type = 1; | 189 optional string policy_type = 1; |
183 | 190 |
184 // [timestamp] is milliseconds since Epoch in UTC timezone. It is | 191 // [timestamp] is milliseconds since Epoch in UTC timezone. It is |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
276 optional bytes policy_data_signature = 4; | 283 optional bytes policy_data_signature = 4; |
277 | 284 |
278 // If the public key has been rotated on the server, the new public | 285 // If the public key has been rotated on the server, the new public |
279 // key is sent here. It is already used for |policy_data_signature| | 286 // key is sent here. It is already used for |policy_data_signature| |
280 // above, whereas |new_public_key_signature| is created using the | 287 // above, whereas |new_public_key_signature| is created using the |
281 // old key (so the client can trust the new key). If this is the | 288 // old key (so the client can trust the new key). If this is the |
282 // first time when the client requests policies (so it doesn't have | 289 // first time when the client requests policies (so it doesn't have |
283 // on old public key), then |new_public_key_signature| is empty. | 290 // on old public key), then |new_public_key_signature| is empty. |
284 optional bytes new_public_key = 5; | 291 optional bytes new_public_key = 5; |
285 optional bytes new_public_key_signature = 6; | 292 optional bytes new_public_key_signature = 6; |
293 | |
294 // If new_public_key is specified, this field contains a signature | |
295 // of that key, signed using a key only available to DMServer. | |
296 // The public key portion of this well-known key is embedded into the | |
297 // Chrome binary. The hash of that embedded key is passed to DMServer | |
298 // as verification_key_hash field in PolicyFetchRequest. DMServer will | |
299 // pick a private key on the server which matches the hash (matches public | |
300 // key on the client). If DMServer is unable to find matching key, it will | |
301 // return an error instead of policy data. | |
302 // In case hash was not specified, DMServer will leave verification signature | |
303 // field empty (legacy behavior). | |
304 // In addition to the checks between new_public_key | |
305 // and new_public_key_signature described above, Chrome also verifies | |
306 // new_public_key with the embedded public key and | |
307 // new_public_key_verification_signature. | |
Mattias Nissler (ping if slow)
2014/01/27 13:52:13
We should not only verify new_public_key (i.e. the
Andrew T Wilson (Slow)
2014/01/30 17:10:31
Not sure I understand your question? new_public_ke
Mattias Nissler (ping if slow)
2014/01/31 21:00:34
Technically, you're right. The comment phrasing su
Andrew T Wilson (Slow)
2014/02/02 11:31:58
Technically we don't do any verification on newly-
| |
308 optional bytes new_public_key_verification_signature = 7; | |
309 | |
310 // Server-provided identifier of the fetched policy. This is to be used | |
311 // by the client when requesting Policy Posture assertion through an API | |
312 // call or SAML flow. | |
313 optional bytes policy_token = 8; | |
286 } | 314 } |
287 | 315 |
288 // Request from device to server for reading policies. | 316 // Request from device to server for reading policies. |
289 message DevicePolicyRequest { | 317 message DevicePolicyRequest { |
290 // The policy fetch request. If this field exists, the request must | 318 // The policy fetch request. If this field exists, the request must |
291 // comes from a non-TT client. The repeated field allows client to | 319 // comes from a non-TT client. The repeated field allows client to |
292 // request multiple policies for better performance. | 320 // request multiple policies for better performance. |
293 repeated PolicyFetchRequest request = 3; | 321 repeated PolicyFetchRequest request = 3; |
294 } | 322 } |
295 | 323 |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
621 | 649 |
622 // Auto-enrollment detection response. | 650 // Auto-enrollment detection response. |
623 optional DeviceAutoEnrollmentResponse auto_enrollment_response = 8; | 651 optional DeviceAutoEnrollmentResponse auto_enrollment_response = 8; |
624 | 652 |
625 // EMCert upload response. | 653 // EMCert upload response. |
626 optional DeviceCertUploadResponse cert_upload_response = 9; | 654 optional DeviceCertUploadResponse cert_upload_response = 9; |
627 | 655 |
628 // Response to OAuth2 authorization code request. | 656 // Response to OAuth2 authorization code request. |
629 optional DeviceServiceApiAccessResponse service_api_access_response = 10; | 657 optional DeviceServiceApiAccessResponse service_api_access_response = 10; |
630 } | 658 } |
OLD | NEW |