]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
be gender neutral
authorAlexandre Marangone <amarango@redhat.com>
Mon, 23 Mar 2015 23:36:08 +0000 (16:36 -0700)
committerSage Weil <sage@redhat.com>
Mon, 23 Mar 2015 23:59:55 +0000 (16:59 -0700)
Signed-off-by: Alexandre Marangone <amarango@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
SubmittingPatches
doc/dev/cephx_protocol.rst
doc/dev/peering.rst
doc/dev/session_authentication.rst
doc/rados/operations/user-management.rst
src/include/Context.h
src/mds/Migrator.cc
src/mon/Elector.h
src/mon/PGMonitor.cc
src/mon/Paxos.cc
src/mon/Paxos.h

index 2a1658737ea530e94a92372810d36aeabca86d38..130f97756c9d8e1931760177e193a0175e055da4 100644 (file)
@@ -73,7 +73,7 @@ exactly the same in your tree and the submitters'. If you stick strictly to
 rule (c), you should ask the submitter to rediff, but this is a totally
 counter-productive waste of time and energy. Rule (b) allows you to adjust
 the code, but then it is very impolite to change one submitter's code and
-make him endorse your bugs. To solve this problem, it is recommended that
+make them endorse your bugs. To solve this problem, it is recommended that
 you add a line between the last Signed-off-by header and yours, indicating
 the nature of your changes. While there is nothing mandatory about this, it
 seems like prepending the description with your mail and/or name, all
index d6560c12e467d0311eaac3f7f73bb5f3cd1156c7..c514b38eb00df9eed05f5e1bbbdd9dfa720fd8a4 100644 (file)
@@ -18,18 +18,18 @@ The basic idea of the protocol is based on Kerberos.  A client wishes to obtain
 a server.  The server will only offer the requested service to authorized clients.  Rather 
 than requiring each server to deal with authentication and authorization issues, the system 
 uses an authorization server.  Thus, the client must first communicate with the authorization 
-server to authenticate himself and to obtain credentials that will grant him access to the 
-service he wants. 
+server to authenticate itself and to obtain credentials that will grant it access to the
+service it wants.
 
 Authorization is not the same as authentication.  Authentication provides evidence that some 
-party is who he claims to be.  Authorization provides evidence that a particular party is 
+party is who it claims to be.  Authorization provides evidence that a particular party is
 allowed to do something.  Generally, secure authorization implies secure authentication 
 (since without authentication, you may authorize something for an imposter), but the reverse 
 is not necessarily true.  One can authenticate without authorizing.  The purpose 
 of this protocol is to authorize.
 
-The basic approach is to use symmetric cryptography throughout.  Each client C has his own 
-secret key, known only to himself and the authorization server A.  Each server S has its own 
+The basic approach is to use symmetric cryptography throughout.  Each client C has its own
+secret key, known only to itself and the authorization server A.  Each server S has its own
 secret key, known only to itself and the authorization server A.  Authorization information 
 will be passed in tickets, encrypted with the secret key of the entity that offers the service.
 There will be a ticket that A gives to C, which permits C to ask A for other tickets.  This 
@@ -45,11 +45,11 @@ the system.
 Several parties need to prove something to each other if this protocol is to achieve its 
 desired security effects.
 
-1.  The client C must prove to the authenticator A that he really is C.  Since everything
+1.  The client C must prove to the authenticator A that it really is C.  Since everything
 is being done via messages, the client must also prove that the message proving authenticity
 is fresh, and is not being replayed by an attacker.
 
-2.  The authenticator A must prove to client C that he really is the authenticator.  Again,
+2.  The authenticator A must prove to client C that it really is the authenticator.  Again,
 proof that replay is not occurring is also required.
 
 3.  A and C must securely share a session key to be used for distribution of later
@@ -59,7 +59,7 @@ known only to A and C.
 4.  A must receive evidence from C that allows A to look up C's authorized operations with
 server S.  
 
-5.  C must receive a ticket from A that will prove to S that C can perform his authorized
+5.  C must receive a ticket from A that will prove to S that C can perform its authorized
 operations.   This ticket must be usable only by C.
 
 6.  C must receive from A a session key to protect the communications between C and S.  The
@@ -141,18 +141,18 @@ We now call the same routine the client used to calculate the hash, based on the
 the client challenge (which is in the incoming message), the server challenge (which we saved), 
 and the client's key (which we just obtained).  We check to see if the client sent the same 
 thing we expected.  If so, we know we're talking to the right client.  We know the session is 
-fresh, because he used the challenge we sent him to calculate his crypto hash.  So we can 
-give him an authentication ticket.
+fresh, because it used the challenge we sent it to calculate its crypto hash.  So we can
+give it an authentication ticket.
 
 We fetch C's ``eauth`` structure.  This contains an ID, a key, and a set of caps (capabilities).
 
-The client sent us his old ticket in the message, if he had one.  If so, we set a flag, 
+The client sent us its old ticket in the message, if it had one.  If so, we set a flag,
 ``should_enc_ticket``, to true and set the global ID to the global ID in that old ticket.  
-If the attempt to decode his old ticket fails (most probably because he didn't have one), 
+If the attempt to decode its old ticket fails (most probably because it didn't have one),
 ``should_enc_ticket`` remains false.  Now we set up the new ticket, filling in timestamps, 
 the name of C, the global ID provided in the method call (unless there was an old ticket), and 
 his ``auid``, obtained from the ``eauth`` structure obtained above.  We need a new session key 
-to help the client communicate securely with us, not using his permanent key.    We set the 
+to help the client communicate securely with us, not using its permanent key.    We set the
 service ID to ``CEPH_ENTITY_TYPE_AUTH``, which will tell the client C what to do with the 
 message we send it.  We build a cephx response header and call 
 ``cephx_build_service_ticket_reply()``.
@@ -181,13 +181,13 @@ filled in.  There's a global ID that comes up as a result of this fiddling that
 the reply message.  The reply message is built here (mostly from the ``response_bl`` buffer) 
 and sent off.
 
-This completes Phase I of the protocol.  At this point, C has authenticated himself to A, and A has generated a new session key and ticket allowing C to obtain server tickets from A.
+This completes Phase I of the protocol.  At this point, C has authenticated itself to A, and A has generated a new session key and ticket allowing C to obtain server tickets from A.
 
 Phase II
 --------
 
 This phase starts when C receives the message from A containing a new ticket and session key.
-The goal of this phase is to provide A with a session key and ticket allowing him to 
+The goal of this phase is to provide A with a session key and ticket allowing it to
 communicate with S.
 
 The message A sent to C is dispatched to ``build_request()`` in ``CephxClientHandler.cc``, 
@@ -240,12 +240,12 @@ put it in the buffer provided in the call to ``cephx_verify_authorizer()`` and r
 to ``handle`_request()``.  This will be used to prove to C that A (rather than an attacker) 
 created this response.
 
-Having verified that the message is valid and from C, now we need to build him a ticket for S.  
-We need to know what S he wants to communicate with and what services he wants.  Pull the 
-ticket request that describes those things out of his message.  Now run through the ticket 
-request to see what he wanted.  (He could potentially be asking for multiple different 
+Having verified that the message is valid and from C, now we need to build it a ticket for S.
+We need to know what S it wants to communicate with and what services it wants.  Pull the
+ticket request that describes those things out of its message.  Now run through the ticket
+request to see what it wanted.  (He could potentially be asking for multiple different
 services in the same request, but we will assume it's just one, for this discussion.)  Once we 
-know which service ID he's after, call ``build_session_auth_info()``.
+know which service ID it's after, call ``build_session_auth_info()``.
 
 ``build_session_auth_info()`` is in ``CephxKeyServer.cc``.  It checks to see if the 
 secret for the ``service_ID`` of S is available and puts it into the subfield of one of 
@@ -314,22 +314,22 @@ we need, since we now have a ticket we didn't have before.  If we've taken care
 everything we need, we'll return 0.
 
 This ends phase II of the protocol.  We have now successfully set up a ticket and session key 
-for client C to talk to server S.  S will know that C is who he claims to be, since A will 
-verify it.  C will know it is S he's talking to, again because A verified it.  The only
+for client C to talk to server S.  S will know that C is who it claims to be, since A will
+verify it.  C will know it is S it's talking to, again because A verified it.  The only
 copies of the session key for C and S to communicate were sent encrypted under the permanent
 keys of C and S, respectively, so no other party (excepting A, who is trusted by all) knows
 that session key.  The ticket will securely indicate to S what C is allowed to do, attested 
 to by A.  The nonces passed back and forth between A and C ensure that they have not been 
-subject to a replay attack.  C has not yet actually talked to S, but he is ready to.
+subject to a replay attack.  C has not yet actually talked to S, but it is ready to.
 
 Much of the security here falls apart if one of the permanent keys is compromised.  Compromise
 of C's key means that the attacker can pose as C and obtain all of C's privileges, and can
 eavesdrop on C's legitimate conversations.  He can also pretend to be A, but only in 
-conversations with C.  Since he does not (by hypothesis) have keys for any services, he
-cannot generate any new tickets for services, though he can replay old tickets and session
+conversations with C.  Since it does not (by hypothesis) have keys for any services, he
+cannot generate any new tickets for services, though it can replay old tickets and session
 keys until S's permanent key is changed or the old tickets time out. 
 
 Compromise of S's key means that the attacker can pose as S to anyone, and can eavesdrop on 
 any user's conversation with S.  Unless some client's key is also compromised, the attacker
-cannot generate new fake client tickets for S, since doing so requires him to authenticate
-himself as A, using the client key he doesn't know.
+cannot generate new fake client tickets for S, since doing so requires it to authenticate
+himself as A, using the client key it doesn't know.
index ed40589ba195b6166be430a096d8b3f42649a28d..63574cac49dbe7a237403c9f969a9fe29284bda2 100644 (file)
@@ -169,20 +169,20 @@ The high level process is for the current PG primary to:
      we learn about a *last epoch started* that is newer than our own, we can
      prune older *past intervals* and reduce the peer OSDs we need to contact.
 
-  5. if anyone else has (in his PG log) operations that I do not have,
+  5. if anyone else has (in its PG log) operations that I do not have,
      instruct them to send me the missing log entries so that the primary's
      *PG log* is up to date (includes the newest write)..
 
   5. for each member of the current *acting set*:
 
-     a) ask him for copies of all PG log entries since *last epoch start*
+     a) ask it for copies of all PG log entries since *last epoch start*
        so that I can verify that they agree with mine (or know what
-       objects I will be telling him to delete).
+       objects I will be telling it to delete).
 
        If the cluster failed before an operation was persisted by all
        members of the *acting set*, and the subsequent *peering* did not
        remember that operation, and a node that did remember that
-       operation later rejoined, his logs would record a different
+       operation later rejoined, its logs would record a different
        (divergent) history than the *authoritative history* that was
        reconstructed in the *peering* after the failure.
 
@@ -193,8 +193,8 @@ The high level process is for the current PG primary to:
        any OSD that stores data from a divergent update to delete the
        affected (and now deemed to be apocryphal) objects.
 
-     b) ask him for his *missing set* (object updates recorded
-       in his PG log, but for which he does not have the new data).
+     b) ask it for its *missing set* (object updates recorded
+       in its PG log, but for which it does not have the new data).
        This is the list of objects that must be fully replicated
        before we can accept writes.
 
index fd2651dd05d6cbc0c9ae1bc2d458894389cf858f..e8a5059c69e39e4dcad986436c36b17cd13a499b 100644 (file)
@@ -5,7 +5,7 @@ Peter Reiher
 7/30/12
 
 The original Cephx protocol authenticated the client to the authenticator and set up a session 
-key used to authenticate the client to the server he needs to talk to.  It did not, however, 
+key used to authenticate the client to the server it needs to talk to.  It did not, however,
 authenticate the ongoing messages between the client and server.  Based on the fact that they
 share a secret key, these ongoing session messages can be easily authenticated by using the
 key to sign the messages.  
index de43e18b5e9bbec8f8c90c6dfa3efa68ba20b9e5..287fb333b47f21b46061a50974b10abde1b95842 100644 (file)
@@ -641,7 +641,7 @@ authentication issues more fully.
 
 At the moment, none of the Ceph authentication protocols provide secrecy for
 messages in transit. Thus, an eavesdropper on the wire can hear and understand
-all data sent between clients and servers in Ceph, even if he cannot create or
+all data sent between clients and servers in Ceph, even if it cannot create or
 alter them. Further, Ceph does not include options to encrypt user data in the
 object store. Users can hand-encrypt and store their own data in the Ceph
 object store, of course, but Ceph provides no features to perform object
index 2ae92214b724224add05f084e6ddb6de923c816f..01214f637550c0a5f769df6fbd055ad5fb9b3abe 100644 (file)
@@ -191,7 +191,7 @@ public:
   }
   void complete(int r) {
     // Neuter any ContextInstanceType custom complete(), because although
-    // I want to look like him, I don't actually want to run his code.
+    // I want to look like it, I don't actually want to run its code.
     Context::complete(r);
   }
   void finish(int r) {
index e1f8ce8873ed51853f23958cebc9408a15f74597..86e10feb3b1574636aa5d71ed9fbf9d6555af1c7 100644 (file)
@@ -1905,7 +1905,7 @@ void Migrator::handle_export_discover(MExportDirDiscover *m)
     if (r > 0) return;
     if (r < 0) {
       dout(7) << "handle_export_discover_2 failed to discover or not dir " << m->get_path() << ", NAK" << dendl;
-      assert(0);    // this shouldn't happen if the auth pins his path properly!!!! 
+      assert(0);    // this shouldn't happen if the auth pins its path properly!!!!
     }
 
     assert(0); // this shouldn't happen; the get_inode above would have succeeded.
index f989bd5de5a0d66ef68971a8eb0bdc979e5a778d..f2ac66cc3fb8ccb4990519b3722d70fc360f582d 100644 (file)
@@ -127,7 +127,7 @@ class Elector {
    */
   int      leader_acked;
   /**
-   * Indicates when we have acked him
+   * Indicates when we have acked it
    */
   utime_t   ack_stamp;
   /**
@@ -245,7 +245,7 @@ class Elector {
   void victory();
 
   /**
-   * Handle a message from some other node proposing himself to become him
+   * Handle a message from some other node proposing itself to become it
    * the Leader.
    *
    * If the message appears to be old (i.e., its epoch is lower than our epoch),
@@ -253,16 +253,16 @@ class Elector {
    *
    *  @li Ignore it because it's nothing more than an old proposal
    *  @li Start new elections if we verify that it was sent by a monitor from
-   *     outside the quorum; given its old state, it's fair to assume he just
-   *     started, so we should start new elections so he may rejoin
+   *     outside the quorum; given its old state, it's fair to assume it just
+   *     started, so we should start new elections so it may rejoin
    *
    * If we did not ignore the received message, then we know that this message
-   * was sent by some other node proposing himself to become the Leader. So, we
+   * was sent by some other node proposing itself to become the Leader. So, we
    * will take one of the following actions:
    *
-   *  @li Ignore him because we already acked another node with higher rank
-   *  @li Ignore him and start a new election because we outrank him
-   *  @li Defer to him because he outranks us and the node we previously
+   *  @li Ignore it because we already acked another node with higher rank
+   *  @li Ignore it and start a new election because we outrank it
+   *  @li Defer to it because it outranks us and the node we previously
    *     acked, if any
    *
    *
index e699efb652b7bba4ea3d99c1c431d8cd738866e2..a1ffcb1904c8b9181158322f6145c75fb309cfec 100644 (file)
@@ -1193,7 +1193,7 @@ void PGMonitor::send_pg_creates(int osd, Connection *con)
     m->mkpg[*q] = pg_create_t(pg_map.pg_stat[*q].created,
                              pg_map.pg_stat[*q].parent,
                              pg_map.pg_stat[*q].parent_split_bits);
-    // Need the create time from the monitor using his clock to set last_scrub_stamp
+    // Need the create time from the monitor using its clock to set last_scrub_stamp
     // upon pg creation.
     m->ctimes[*q] = pg_map.pg_stat[*q].last_scrub_stamp;
   }
index 95b35388453ea64307b3766b95c9ad47bc83e9e0..9c85ced52bfe51e3e540a241dbe05193f83a91de 100644 (file)
@@ -292,7 +292,7 @@ void Paxos::handle_collect(MMonPaxos *collect)
 /**
  * @note This is Okay. We share our versions between peer_last_committed and
  *      our last_committed (inclusive), and add their bufferlists to the
- *      message. It will be the peer's job to apply them to his store, as
+ *      message. It will be the peer's job to apply them to its store, as
  *      these bufferlists will contain raw transactions.
  *      This function is called by both the Peon and the Leader. The Peon will
  *      share the state with the Leader during handle_collect(), sharing any
index 769dca0a55996c4bebe903e4c65fe00edb1e2fa1..12b35db72eb25dd9c9e961e40ccfc15d9e2e1b80 100644 (file)
@@ -453,7 +453,7 @@ private:
    *
    * We use this variable to assess if the Leader should take into consideration
    * an uncommitted value sent by a Peon. Given that the Peon will send back to
-   * the Leader the last Proposal Number he accepted, the Leader will be able
+   * the Leader the last Proposal Number it accepted, the Leader will be able
    * to infer if this value is more recent than the one the Leader has, thus
    * more relevant.
    */
@@ -463,7 +463,7 @@ private:
    *
    * If the system fails in-between the accept replies from the Peons and the
    * instruction to commit from the Leader, then we may end up with accepted
-   * but yet-uncommitted values. During the Leader's recovery, he will attempt
+   * but yet-uncommitted values. During the Leader's recovery, it will attempt
    * to bring the whole system to the latest state, and that means committing
    * past accepted but uncommitted values.
    *
@@ -764,14 +764,14 @@ private:
    *
    * Once a Peon receives a collect message from the Leader it will reply
    * with its first and last committed versions, as well as information so
-   * the Leader may know if his Proposal Number was, or was not, accepted by
+   * the Leader may know if its Proposal Number was, or was not, accepted by
    * the Peon. The Peon will accept the Leader's Proposal Number iif it is
    * higher than the Peon's currently accepted Proposal Number. The Peon may
    * also inform the Leader of accepted but uncommitted values.
    *
    * @invariant The message is an operation of type OP_COLLECT.
    * @pre We are a Peon.
-   * @post Replied to the Leader, accepting or not accepting his PN.
+   * @post Replied to the Leader, accepting or not accepting its PN.
    *
    * @param collect The collect message sent by the Leader to the Peon.
    */
@@ -859,7 +859,7 @@ private:
    * @pre We are a Peon
    * @pre We are on STATE_ACTIVE
    * @post We are on STATE_UPDATING iif we accept the Leader's proposal
-   * @post We send a reply message to the Leader iif we accept his proposal
+   * @post We send a reply message to the Leader iif we accept its proposal
    *
    * @invariant The received message is an operation of type OP_BEGIN
    *
@@ -1152,7 +1152,7 @@ public:
    * quorum, thus automatically assume we are on STATE_RECOVERING, which means
    * we will soon be enrolled into the Leader's collect phase.
    *
-   * @pre There is a Leader, and he's about to start the collect phase.
+   * @pre There is a Leader, and it?s about to start the collect phase.
    * @post We are on STATE_RECOVERING and will soon receive collect phase's 
    *      messages.
    */