You can get the referer from $_SERVER['HTTP_REFERER'] (and store in in your own cookie). ^
If your uses unencrypted search you can look if the referer is google - it will contain the search keywords in a get parameter named "q". If the visitor used encrypted search (for example when he/she is logged in to her Google account) you cannot get the keyword (not even GA itself displays search keywords in that case).
You can maintain a list of search engine names and if the referer matches an entry in the list you'll know that this was an organic search.
Among other things Google uses utm parameters to identify campaign sources, and since these are merely GET-Parameters you can read them in your custom script. For auto-tagged adwords campaigns you cannot get the keywords, but the glcid-PArameter will at least tell you that this is a paid search.
So while I don't know if Universal Analytics provides any specific methods to get that info (like you I'm still searching for an answer to that) but it's possible to get at least some info without relying on Google at all.