Express.jsには、Cookieに署名付きデータを保存することでセッション管理を実現するライブラリとして、cookie-sessionがあります。
cookie-sessionがデフォルトで署名に使っているハッシュ関数を調べていくと、SHA1であることがわかります。SHA1は脆弱性が報告されており、自プロダクトのセキュリティ機能の説明を求められる昨今、わざわざ使うべきではありません。
cookie-sessionではREADMEのUsing a custom signature algorithmにある通り、keys属性にKeygripのインスタンスを与えることで、ハッシュ関数を変更できます。
var cookieSession = require('cookie-session')
var express = require('express')
var Keygrip = require('keygrip')
var app = express()
app.use(cookieSession({
name: 'session',
keys: new Keygrip(['key1', 'key2'], 'SHA384', 'base64')
}))
// ... your logic here ...
急にでてきたKeygripですが、これは署名付きデータを生成するライブラリで、cookie-sessionではこれをcookiesというライブラリを介して間接的に呼んで署名付きデータを生成しています。このKeygripのデフォルトハッシュ関数がSHA1なので、cookie-sessionでもデフォルトがSHA1になっています。KeygripはNode.jsのcryptoモジュールのcreateHmacを呼び出します。