2) So the volunteer is supposed to leave the manager alone for a few hours while it is stuck in the attach wizard bouncing a ball between two computers?
I suspect that is not what you had in mind. The whole reason for the wizards existence is to provide the client software with an authenticator to attach to a project/account manager with when completed. If we leave the wizard and begin some background operation in the client, then the volunteer gets an empty UI not doing anything as far as they can tell. They would have to go to the event log (Advanced UI thing) just to see what the client is up too. Behind the wizard this is what is going on: 1. Get Project Config RPC (Run in Manager): detect various things about a project/account manager. Minimum password lengths, platforms supported, canonical project URL, etc. 2. Lookup Account/Create Account (Run in Manager): get the volunteer to give us enough information to acquire an authenticator. 3. Attach to project (Run in Client): when the wizard closes it instructs the client to attach to a project with the given authenticator. Once the client begins the attach process, the UI sees a project. It can display some information about it. Originally I envisioned this as something interjected between steps 1 and 2, when the browser window is closed, it passes the GUID to the lookup account phase and proceeds based on success or failure. What your proposing is to push more of the attach process into the client so the attach process can move between its states without the wizard being stuck displaying the bouncing ball between two computers. It would require a major overhaul of the client/manager-side attach process to support. ----- Rom From: hugh.w...@gmail.com [mailto:hugh.w...@gmail.com] On Behalf Of Hugh Wormington Sent: Monday, September 28, 2015 12:35 PM To: Rom Walton <r...@romwnet.org> Cc: Hugh Wormington <h...@gridrepublic.org>; Matthew Blumberg <m...@gridrepublic.org>; Rytis Slatkevičius <ry...@gridrepublic.org>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) 1) In the case of Progres Thru Processors the login is Facebook's, which they know. PTP links that through to the GR/BOINC user in the background. Apologies for not making that clear. 2) The client could poll for a few hours max, after which it could wait until the next time it's started up and then poll once and if necessary try the whole thing again. * I notice that other software sometimes fires up a browser window e.g. for feedback after uninstalling. Granted that example is not critical, but with the right UI I think it should be robust. For example if the first attempt failed, the client could show a window containing a link with a text like "Add this computer to your Progress Thru Processors (or whatever) account to get going (opens a browser window)". * No user interaction is required unless the browser is no longer logged in. * I'm not aware of any plugins/AVs etc that would interfere with this process unless an AV identified the URL as suspect, in which case we're probably stuffed anyway. * Rather than being browser-dependent it should be future-proof. 5) Interesting. There's a discussion about UUID uniquness in stackoverflow here<http://stackoverflow.com/questions/1155008/how-unique-is-uuid>. Hugh On 28 September 2015 at 16:48, Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> wrote: 1. In the case of Progress Thru Processors, it is a catastrophic failure case. Volunteers do not know what username/password they have been assigned. 2-4. How long should the client poll before assuming an error has occurred? All the various browser issues exist with plugins getting in the way plus now you might have window z-orders to worry about. What happens if the manager is over the browser window when it is looking for a username/password? What happens if the browser window is stuck behind a word processing application? 5. They do happen though. After deploying a test framework for a web property on a project I previously worked on, we would experience a 50% failure rate on test cases overnight every third day of testing. While the math says one thing it is still something that has to be accounted for. Granted the likelihood drops dramatically when they expire after a given amount of time. But you still might run into denial of service attacks accepting what amounts to random input from random locations on the internet. Although, I suppose you could just ignore the GUID if the session cookie is not available. Frankly, the more and more I think about this, the less and less I like it. With browser cookie lookup we only had to deal with changes to three browsers who more or less kept things somewhat predictable day to day. Now we are trying to work into the equation any number of browsers and the random factor of what the volunteer has configured (browser preferences, virus scanners, anti-malware detectors, browser plugins) and how they are using their system at the time of install. ----- Rom From: hugh.w...@gmail.com<mailto:hugh.w...@gmail.com> [mailto:hugh.w...@gmail.com<mailto:hugh.w...@gmail.com>] On Behalf Of Hugh Wormington Sent: Monday, September 28, 2015 5:22 AM To: Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> Cc: Hugh Wormington <h...@gridrepublic.org<mailto:h...@gridrepublic.org>>; Matthew Blumberg <m...@gridrepublic.org<mailto:m...@gridrepublic.org>>; Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) 1. This shouldn't matter. If the session cookie is missing (ie user not already logged into the website in that browser) then they will just be asked to login. NB the current installer cookies should no longer be used since the user identification comes from the website login. The user is then greeted with some message like "this computer has been added to your account". 2. to 4. I agree that approach seems unfeasible. I imagined the client simply poll the AMS until its GUID is "claimed" by a user. Is that feasible? It might also be good to have the ability to "retry attach" to a user account in case the original process didn't complete, maybe at boot time if it finds itself unclaimed. A "retry" would simply involve reloading the original browser URL. 5. GUIDs are widely used; the generator eg UUID ensures duplicates are so rare that statistically they never happen. [https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif]Hugh On 28 September 2015 at 01:44, Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> wrote: GUID would be more appropriate. I foresee a few problems with this approach though: 1. The ‘default’ browser wxWidgets detects may not be the browser the volunteer downloaded BOINC with. 2. The manager would have to wait on the association to complete which means it has to know how to deal with whatever browser to launched. (Basically the manager would have to know how each browser works. (window names, window class names, window titles, what events each window responds too)) (This is actually a more complicated problem than dealing with cookies.) 3. We may never be able to find out if the association was successful from the manager perspective. 4. Some browser plugins redirect errors and monkey with the error pages. (Norton 360, Google Toolbar, Yahoo Toolbar, etc.) 5. There is a remote possibility that two machines can generate the same GUID, without being able to check against the master list ahead of time it could happen. This solution might look okay from a server perspective, but it is a monster from a client implementation perspective. ----- Rom From: hugh.w...@gmail.com<mailto:hugh.w...@gmail.com> [mailto:hugh.w...@gmail.com<mailto:hugh.w...@gmail.com>] On Behalf Of Hugh Wormington Sent: Sunday, September 27, 2015 5:22 PM To: Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> Cc: Matthew Blumberg <m...@gridrepublic.org<mailto:m...@gridrepublic.org>>; Hugh Wormington <h...@gridrepublic.org<mailto:h...@gridrepublic.org>>; Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) > Where is the nonce generated? By the installer. > If it is generated by the installer and passed to the account manager, how to > we know who it came from? The installer loads a browser on the url passing the "nonce" as a url parameter. The receiving page is then able to associate it with a logged-in user, after which the association is known. A little side issue for avoidance of lexical confusion.... I'm a little unsure if this is really a "nonce" : * Nonce: is an arbitrary number that may only be used once in secure communication exchange (See diagram on this wikipedia page<https://en.wikipedia.org/wiki/Cryptographic_nonce>) It doesn't carry any information itself. * GUID: A globally unique identifier (GUID, /ˈɡuːɪd/) is a unique reference number used as an identifier in computer software. The term "GUID" typically refers to various implementations of the universally unique identifier<https://en.wikipedia.org/wiki/Universally_unique_identifier> (UUID) standard (Wikipedia<https://en.wikipedia.org/wiki/Globally_unique_identifier>) I think we're talking about a GUID which the installer generates at install time and uses to identify itself to two different processes 1) the front end web application 2) the account manager server. (A CPID is a kind of GUID, but this one isn't a CPID, since CPIDs are (AFAIK) generated by the BOINC project servers.) So is it a nonce or a GUID? Hugh PS Many apologies if I'm teaching grandmothers to suck eggs (does that work internationally??). On 26 September 2015 at 02:56, Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> wrote: In theory we could open up a browser with a URL like that. Where is the nonce generated? If it is generated from the account manager, how does the installer find it? If it is generated by the installer and passed to the account manager, how to we know who it came from? ----- Rom From: mblumb...@picador.net<mailto:mblumb...@picador.net> [mailto:mblumb...@picador.net<mailto:mblumb...@picador.net>] On Behalf Of Matthew Blumberg Sent: Friday, September 25, 2015 6:27 PM To: Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> Cc: Hugh Wormington <h...@gridrepublic.org<mailto:h...@gridrepublic.org>>; Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) So for GR/CE/PTP you end up with filenames like: gr_setup_asc_ODU0NjVfZWEwYWJkNjc4NDc2MjllMWFlOWVkM2I4YWRmZmZmZmY=.exe i'm really not comfortable with filenames like that for AMS, is it possible to : 1. open a browser window upon completion of install (*as is done already); but instead of using return_url from the cookie, use instead the URL from acct_mgr_url.xml, and append a random number as a parameter, e.g. http://acctmgr.com/?return_id=[nonce]<http://acctmgr.com/?return_id=%5bnonce%5d> 2. and then also use that same return_id as the user email address (e.g. as of the user had entered this into the email field when registering manually) (*tristan/rytis/hught, pls add any clarification if i'm missing something or got something wrong) On Fri, Sep 25, 2015 at 10:21 AM, Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>> wrote: A point of clarification. Everything the client needs to communicate with a project/account manager will be in project_init.xml or acct_mgr_url.xml. All that will be missing to do an attach is an authenticator. ----- Rom -----Original Message----- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu<mailto:boinc_dev-boun...@ssl.berkeley.edu>] On Behalf Of Rom Walton Sent: Friday, September 25, 2015 10:02 AM To: Hugh Wormington <h...@gridrepublic.org<mailto:h...@gridrepublic.org>>; Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>> Cc: Matthew Blumberg <m...@gridrepublic.org<mailto:m...@gridrepublic.org>>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) In essence this is what the setup cookie is for. In cases where there is a customized installer, everything the client needs will be in the project_init.xml or acct_mgr_url.xml (in the case of account managers) files. BOINC will treat the setup cookie as opaque data and just send it back to https://<project_url>/lookup_account.php<https://%3cproject_url%3e/lookup_account.php<https://%3cproject_url%3e/lookup_account.php%3chttps:/%3cproject_url%3e/lookup_account.php>>. So for GR/CE/PTP you end up with filenames like: gr_setup_asc_ODU0NjVfZWEwYWJkNjc4NDc2MjllMWFlOWVkM2I4YWRmZmZmZmY=.exe The filename can be made shorter as it depends on how large you want your random piece of data to be. ----- Rom From: hugh.w...@gmail.com<mailto:hugh.w...@gmail.com> [mailto:hugh.w...@gmail.com<mailto:hugh.w...@gmail.com>] On Behalf Of Hugh Wormington Sent: Friday, September 25, 2015 6:56 AM To: Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>> Cc: Matthew Blumberg <m...@gridrepublic.org<mailto:m...@gridrepublic.org>>; Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org>>; BOINC Developers Mailing List <boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>>; Tristan Olive <tol...@gridrepublic.org<mailto:tol...@gridrepublic.org>>; Hugh Wormington <h...@gridrepublic.org<mailto:h...@gridrepublic.org>> Subject: Re: [boinc_dev] Proposal: Simple Attach (Cookieless Installs) Further to Rytis's email (is this the place to continue this discussion or in Jira?): I agree, but I think the stored meta data need not include user info, only the project url. The installer would load a page on boinc.berkeley.edu<http://boinc.berkeley.edu><http://boinc.berkeley.edu> in a browser, passing the nonce or cipid or guid as a URL parameter (whichever variant is adopted). That in turn would forward it to the project site. At this point the project site could receive the cookies it set earlier (private and secure), and the nonce/cipid/guid and continue the process. If it finds no cookies it can ask the user to log in to the project site and then continue. Hugh On 25 September 2015 at 07:48, Rytis Slatkevičius <ry...@gridrepublic.org<mailto:ry...@gridrepublic.org><mailto:ry...@gridrepublic.org<mailto:ry...@gridrepublic.org>>> wrote: Is there really a need for such schemes? A script will be running to generate the download filenames (I assume at boinc.berkeley.edu<http://boinc.berkeley.edu><http://boinc.berkeley.edu>); why not store user's temporary metadata on the server instead of passing it through the installer filename, and look it up based on the IP address? There are not going to be any clashes if metadata is stored for only a short while. The process would be as follows: 1. The user registers at a website; 2. The website sends an RPC to boinc.berkeley.edu<http://boinc.berkeley.edu><http://boinc.berkeley.edu> (or other URLs, e.g. in case of a custom build), storing metadata as well as user's IP address; 3. The user downloads a regular installation file and installs; 4. Once installed, the first thing the client does is contact boinc.berkeley.edu<http://boinc.berkeley.edu><http://boinc.berkeley.edu> to retrieve metadata and attach wherever needed (maybe even possible through the installer?). The server would load data based on the requester's IP address. -- Pagarbiai / Sincerely Rytis Slatkevičius +370 670 77777<tel:%2B370%20670%2077777><tel:%2B370%20670%2077777> On Fri, Sep 25, 2015 at 12:28 AM, Matthew Blumberg <m...@gridrepublic.org<mailto:m...@gridrepublic.org><mailto:m...@gridrepublic.org<mailto:m...@gridrepublic.org>>> wrote: I'm a little worried about the proposed approach; I fear it will notably reduce conversion-completion rates -- if i got an installer with a 120 character filename, i'd [a] edit to clean it up, and/or [b] assume it was corrupted or infected and be afraid to run it. In any event, by way of making this work in the AMS context, can we request one minor revision to the current scheme -- In the current scheme, at completion of install, the wizard opens a browser window using the return_url specified in the browser cookie. Could you instead open a browser window upon completion, using the URL from acct_mgr_url.xml, and appending a random number as a parameter, e.g. http://acctmgr.com/?return_id=[nonce]<http://acctmgr.com/?return_id=%5bnonce%5d><http://acctmgr.com/?return_id=%5bnonce%5d> Best Wishes, ..Matt On Mon, Sep 21, 2015 at 10:59 AM, Rom Walton <r...@romwnet.org<mailto:r...@romwnet.org><mailto:r...@romwnet.org<mailto:r...@romwnet.org>>> wrote: Howdy Folks, Current Strategy: https://boinc.berkeley.edu/trac/wiki/SimpleAttach As part of the simplification process we (WCG and I) would like to propose the idea of cookieless installs. See: https://boinc.berkeley.edu/trac/wiki/SimpleAttach#CookielessInstalls Pros: We would be able to get around the various issues with cookies such as: * Browser implementations changing over time. * Sqlite changing over time * Unknown browsers Cons: Realistically we are limited to filenames that are 256 characters in size. Note: By default various shells on Windows limit the file namespace to 256 characters, the limits can by bypassed by prefixing the filename with \\.\<file://./<file://./%3cfile:/>> but most users do not know that. I also suspect that most browsers will complain about malware or something of that nature is we attempt to go past 256 characters. ----- Rom _______________________________________________ boinc_dev mailing list boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu><mailto:boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. _______________________________________________ boinc_dev mailing list boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. _______________________________________________ boinc_dev mailing list boinc_dev@ssl.berkeley.edu<mailto:boinc_dev@ssl.berkeley.edu> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. _______________________________________________ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.