Hi,

That would be in line with what I would suggest to be a good idea.

I'd similarly suggest this redundant Base64 process could be configured 
that way unless anyone can point to a reason it's actually needed?

On Thursday, January 22, 2015 at 10:45:00 AM UTC+11, Andrew Kaspick wrote:

> For Rails 5, could you potentially make SHA-256 the default for new apps 
> and opt-in for existing apps?
>
> On Wed, Jan 21, 2015 at 5:52 PM, <jsma...@gmail.com <javascript:>> wrote:
>
>> Thanks for this response.
>>
>> I guess that's a question of how big a jump Rails 5 is meant to be. I 
>> certainly wouldn't propose this on a minor jump, but I'd figured if you 
>> were rolling from Rails 4 to Rails 5 you could probably deal with sign 
>> outs. I understand the reasons it isn't hugely pressing, but again, if you 
>> were to "upgrade over time", I'd like to consider a major version jump as 
>> the time to do it. Alternatively, there's room to simply look at the length 
>> of a presented hash to check for backward compatibility hashes.
>>
>> On a related note, why is the CookieStore passed through Base64 encode 
>> twice? Look at a small piece of parsing code I wrote:
>>
>> str, sign = unescaped_cookie.split(/--/)
>> # Hex encoded HMAC
>> puts 'HMAC as per cookie validator: ' + sign
>>
>> str2 = str.unpack('m').join
>> cipher, iv = str2.split(/--/)
>>
>> cipher = c.unpack('m').join
>> iv = iv.unpack('m').join
>>
>> What this says is that the Cookiestore is basically formatted as: 
>> B64(B64(iv)--B64(cipher))--hex(HMAC)
>>
>> I get the feeling that could be much more efficient, both in performance, 
>> and the size of the generated cookies, by skipping that outer encode.
>>
>> On Wednesday, January 21, 2015 at 6:36:51 AM UTC+11, Michael Koziarski 
>> wrote:
>>
>>> Switching to another hashing function for Rails 5 would definitely be 
>>> possible.  The compatibility concerns are twofold:
>>>
>>> * Old hashes are no longer valid, so you sign everyone out the day you 
>>> do that deploy
>>> * Various old rubies on old OSes ship with old OpenSSL which didn't 
>>> support it.
>>>
>>> That second concern is well and truly gone these days so there's no 
>>> reason to worry about it.  However the first concern remains.  You'd have 
>>> to offer a transitional system where it accepted sha1 hashes and returned 
>>> sha256 ones.  You'd also need to think carefully about the defaults because 
>>> if you accept the sha1 hashes forever you're never actually closing the 
>>> theoretical issues.  It's not particularly difficult just requires time and 
>>> effort.
>>>
>>> Finally, the issues you're raising around sha1 don't necessarily apply 
>>> when used in an HMAC as it is here.  We should definitely upgrade over 
>>> time, but it's not as pressing as the TLS certs case.
>>>
>>> On Tue Jan 20 2015 at 7:12:03 PM <jsma...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I note that Cookiestore signs its data using SHA-1.
>>>>
>>>> I have found this issue regarding this: https://github.com/rails/
>>>> rails/pull/11677
>>>>
>>>> There it was noted that documentation was updated from SHA512, which 
>>>> would appear to have been considered at one time, to using SHA1 "for 
>>>> compatibility". SHA-1 is considered a deprecated cryptographic hash. The 
>>>> deprecation of support for SHA-1 certificates by Google in the Chrome 
>>>> browser is an example of proactive deprecation of obsolete algorithms that 
>>>> is generally well accepted by the community. The long term lifespan of a 
>>>> Cookiestore session cookie, coupled with the sensitivity of the session 
>>>> data often stored within it should be considered to amplify the threat. 
>>>>
>>>> I was wondering what "compatibility" issues would be present in 
>>>> changing the default hash to SHA-256 for an upcoming rails 5. It's been 
>>>> supported in OpenSSL for a very long time, which is in turn used to 
>>>> generate this hash. The documentation update was over a year ago, and that 
>>>> only documented an earlier configuration change which I don't believe to 
>>>> reflect current security practice.
>>>>
>>>> Moreover, that particular PR discusses this as not being configurable. 
>>>> I've spent some time trying to get a gem to override it without much 
>>>> success. 
>>>>
>>>> Any assistance on towards making this a default, or on how it could be 
>>>> turned into a gem would be appreciated.
>>>>
>>>>
>>>>  -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Ruby on Rails: Core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to rubyonrails-co...@googlegroups.com.
>>>> To post to this group, send email to rubyonra...@googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to rubyonrails-co...@googlegroups.com <javascript:>.
>> To post to this group, send email to rubyonra...@googlegroups.com 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to