Index: openacs-4/packages/acs-core-docs/www/security-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/security-design.html 27 Oct 2014 16:39:25 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/security-design.html 7 Aug 2017 23:47:52 -0000 1.36 @@ -1,5 +1,5 @@ -Security Design

Security Design

By Richard Li and Archit Shah

+Security Design

Security Design

By Richard Li and Archit Shah

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

Introduction

@@ -41,7 +41,7 @@ for a secure authentication token. However, the basic architecture here lays the foundation for a secure system and can be easily adapted to a more secure authentication system by forcing all logins to occur over HTTPS.

Details

The authentication system issues up to four signed cookies (see below), -with each cookie serving a different purpose. These cookies are:

namevaluemax-agesecure?
ad_session_idsession_id,user_idSessionTimeoutno
ad_user_loginuser_idInfinityno
ad_user_login_secureuser_id,randomInfinityyes
ad_secure_tokensession_id,user_id,randomSessionLifetimeyes
  • ad_session_id

    • reissued on any hit separated by more than SessionRenew seconds from the +with each cookie serving a different purpose. These cookies are:

      namevaluemax-agesecure?
      ad_session_idsession_id,user_idSessionTimeoutno
      ad_user_loginuser_idInfinityno
      ad_user_login_secureuser_id,randomInfinityyes
      ad_secure_tokensession_id,user_id,randomSessionLifetimeyes
      • ad_session_id

        • reissued on any hit separated by more than SessionRenew seconds from the previous hit that received a cookie

        • is valid only for SessionTimeout seconds

        • is the canonical source for the session ID in ad_conn

      • ad_user_login

        • is used for permanent logins

      • ad_user_login_secure

        • is used for permanent secure logins

        • contains random garbage (ns_time) to prevent attack against the secure hash

      • ad_secure_token

        • is a session-level cookie from the browser's standpoint

        • its signature expires in SessionLifetime seconds

        • contains random garbage (ns_time) to prevent attack against the secure @@ -84,7 +84,7 @@ immediately

        • nothing: if the cookie is present, it remains

        The current state of the permanent login cookies is not taken into account when determining the appropriate action. -

        previous login statepermanent login requestedsecure connectionaction on insecureaction on secure
        otheryysetset
        sameyysetset
        otherynsetdelete
        sameynsetnothing
        samenynothingdelete
        othernydeletedelete
        othernndeletedelete
        samenndeletedelete

        ad_user_login +

        previous login statepermanent login requestedsecure connectionaction on insecureaction on secure
        otheryysetset
        sameyysetset
        otherynsetdelete
        sameynsetnothing
        samenynothingdelete
        othernydeletedelete
        othernndeletedelete
        samenndeletedelete

        ad_user_login callssec_setup_session which actually calls sec_generate_session_id_cookie to generate the new cookie with refer to the appropriate user_id. If the connection is secure @@ -348,4 +348,4 @@ chosen from the cache to be used is chosen by a call to ns_rand.

      • ad_secure_conn_p As discussed above, the security of the secure sessions authentication system is -dependent upon this function.

View comments on this page at openacs.org
+dependent upon this function.