Reputation: 31
I'm using R on windows. I experience no problems communicating with general secured sites. I tried (and failed) communicating with a specific SECURED site (my bank) via getURL(url). (No problem loging to this site manually). Here is the "R" code:
library(RCurl) ; options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
url <- "https://hb2.bankleumi.co.il/uniquesig4e0824291ffbe1b42058d6558ed87217/uniquesig0/InternalSite/CustomUpdate/eBank_ULI_Login.asp?resource_id=C66B095BD60649D18ECB79F04C657517&login_type=2&site_name=leumi&secure=1&URLHASH=da2ded08-57dd-488c-94ff-34629781f5fb&orig_url=https%3a%2f%2fhb2.bankleumi.co.il%2fE%2flogin.html"
getURL(url)
traceback()
The following error and traceback() chain of function calls is generated:
Error in function (type, msg, asError = TRUE) :
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
5: fun(structure(list(message = msg, call = sys.call()), class = c(typeName,
"GenericCurlError", "error", "condition")))
4: function (type, msg, asError = TRUE)
{
if (!is.character(type)) {
i = match(type, CURLcodeValues)
typeName = if (is.na(i))
character()
else names(CURLcodeValues)[i]
}
typeName = gsub("^CURLE_", "", typeName)
fun = (if (asError)
stop
else warning)
fun(structure(list(message = msg, call = sys.call()), class = c(typeName,
"GenericCurlError", "error", "condition")))
}
(35L, "error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure", TRUE)
3: .Call("R_curl_easy_perform", curl, .opts, isProtected, .encoding,
PACKAGE = "RCurl")
2: curlPerform(curl = curl, .opts = opts, .encoding = .encoding)
1: getURL(url)
I've tried also getURL(url, ssl.verifypeer = FALSE)
and got the same error.
From the url string it looks as if the problem may be with the expected unique signatures. Is there a way to fix it via SSL/RCurl/R?
Upvotes: 1
Views: 2863
Reputation: 123320
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
This is the message one gets when trying to connect to the server with any other cipher except RC4. This server supports only RC4-SHA and RC4-MD5, which are both considered broken. I guess R has RC4 support disabled by default. You might try to enable it by setting the "ssl.cipher.list" option to "RC4-SHA".
with a specific SECURED site (my bank)
I think you need to question the security of your bank if all they offer is a cipher considered as broken. See also the report from SSLLabs where the receive a grade of B because of this and some more security problems.
Upvotes: 2