1 | | Proof of Account Ownership |
| 1 | = Proof of Account Ownership = |
| 2 | Provides your users a proof of BOINC project account ownership using OpenSSL public key cryptography. The user enters a message and that is signed alongside their account ID using the project's private key, proving that the user owns the account to external systems. |
| 3 | |
| 4 | == User guide == |
| 5 | 1. Login then navigate to the 'Proof of Account Ownership' page.[[BR]]2. Enter the message you wish to be signed.[[BR]]3. Complete the captcha then submit the form.[[BR]]4. A text box will appear, copy the contents. |
| 6 | |
| 7 | == Project administrator guide == |
| 8 | Changes required to integrate this functionality: |
| 9 | |
| 10 | 1. Have the latest stable OpenSSL installed on your BOINC web server.[[BR]]2. Install the latest BOINC PR2965 web server changes: |
| 11 | |
| 12 | {{{ |
| 13 | html/inc/util.inc - fixing ttok warnings |
| 14 | html/user/get_project_config.php - export public key safely |
| 15 | html/inc/user.inc - add link to account ownership form within the profile |
| 16 | |
| 17 | html/user/account_ownership_action.php - new file |
| 18 | html/user/account_ownership_form.php - new file |
| 19 | }}} |
| 20 | 3. Configure reCAPTCHA for the form.[[BR]]4. Generate OpenSSL keys in the /project/keys/ folder: |
| 21 | |
| 22 | {{{ |
| 23 | openssl genpkey -algorithm RSA -out ownership_sign_private.pem -pkeyopt rsa_keygen_bits:2048 |
| 24 | openssl rsa -pubout -in ownership_sign_private.pem -out ownership_sign_public.pem |
| 25 | }}} |
| 26 | 5. Adjust key permissions: |
| 27 | |
| 28 | {{{ |
| 29 | chown -R boincadm:boincadm ownership_sign_p* |
| 30 | chmod --reference upload_private ownership_sign_public.pem |
| 31 | chmod --reference upload_private ownership_sign_private.pem |
| 32 | }}} |
| 33 | 6. Try the form, sign a message, attempt to verify the message using your public key and the decoded base64 message from the form. |
| 34 | |
| 35 | == Security == |
| 36 | The private key needs to remain on the web server, however if this key is compromised then proof of account ownership could be forged. It's important to maintain an updated and secure BOINC project web server to reduce the risk of this happening. |
| 37 | |
| 38 | If you believe that the private key has been compromised, then simply generate a new key pair to start from scratch, users will need to regenerate their signed messages. |