亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Tomcat 啟動時 SecureRandom 非常慢解決辦法

2024-09-01 13:52:10
字體:
來源:轉載
供稿:網友

Tomcat 啟動時 SecureRandom 非常慢解決辦法

最近使用阿里云的 Ubuntu 16.04 ESC 服務器運行 Tomcat 時發現,Tomcat 啟動的特別慢,通過查看日志,發現時間主要花在實例化 SecureRandom 對象上了。

Tomcat,啟動時,SecureRandom,慢,啟動,問題解決辦法

由該日志可以看出,實例化該對象使用了253秒,導致整個應用啟動了275秒之久。

注意這條日志:

org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [253,251] milliseconds.

根本原因是 SecureRandom 這個 jre 的工具類的問題。那為什么 SecureRandom generateSeed 這么慢,甚至掛在 Linux 操作系統呢?

Tomcat 7/8 都使用 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 類產生安全隨機類 SecureRandom 的實例作為會話 ID。

Tomcat 使用 SHA1PRNG 算法是基于 SHA-1 算法實現且保密性較強的偽隨機數生成器。

在 SHA1PRNG 中,有一個種子產生器,它根據配置執行各種操作。

Linux 中的隨機數可以從兩個特殊的文件中產生,一個是 /dev/urandom,另外一個是 /dev/random。他們產生隨機數的原理是利用當前系統的熵池來計算出固定一定數量的隨機比特,然后將這些比特作為字節流返回。熵池就是當前系統的環境噪音,熵指的是一個系統的混亂程度,系統噪音可以通過很多參數來評估,如內存的使用,文件的使用量,不同類型的進程數量等等。如果當前環境噪音變化的不是很劇烈或者當前環境噪音很小,比如剛開機的時候,而當前需要大量的隨機比特,這時產生的隨機數的隨機效果就不是很好了。

這就是為什么會有 /dev/urandom 和 /dev/random 這兩種不同的文件,后者在不能產生新的隨機數時會阻塞程序,而前者不會(ublock),當然產生的隨機數效果就不太好了,這對加密解密這樣的應用來說就不是一種很好的選擇。/dev/random 會阻塞當前的程序,直到根據熵池產生新的隨機字節之后才返回,所以使用 /dev/random 比使用 /dev/urandom 產生大量隨機數的速度要慢。

SecureRandom generateSeed  使用 /dev/random 生成種子。但是 /dev/random 是一個阻塞數字生成器,如果它沒有足夠的隨機數據提供,它就一直等,這迫使 JVM 等待。鍵盤和鼠標輸入以及磁盤活動可以產生所需的隨機性或熵。但在一個服務器缺乏這樣的活動,可能會出現問題。

有2種解決方案:

1. 在Tomcat環境中解決:

可以通過配置 JRE 使用非阻塞的 Entropy Source:

在 catalina.sh 中加入這么一行:-Djava.security.egd=file:/dev/./urandom 即可。

2. 在 JVM 環境中解決:

打開 $JAVA_PATH/jre/lib/security/java.security 這個文件,找到下面的內容:

securerandom.source=file:/dev/random

替換成:

securerandom.source=file:/dev/./urandom

這里值為何要在 dev 和 random 之間加一個點呢?是因為一個 JDK 的 bug,有人反饋即使對 securerandom.source 設置為 /dev/urandom 它也仍然使用的 /dev/random,有人提供了變通的解決方法,其中一個變通的做法是對 securerandom.source 設置為 /dev/./urandom 才行。也有人評論說這個不是 bug,是有意為之。

在 JDK 7 的 java.security 文件里,配置里的是:

# Select the source of seed data for SecureRandom. By default an# attempt is made to use the entropy gathering device specified by# the securerandom.source property. If an exception occurs when# accessing the URL then the traditional system/thread activity# algorithm is used.## On Solaris and Linux systems, if file:/dev/urandom is specified and it# exists, a special SecureRandom implementation is activated by default.# This "NativePRNG" reads random bytes directly from /dev/urandom.## On Windows systems, the URLs file:/dev/random and file:/dev/urandom# enables use of the Microsoft CryptoAPI seed functionality.#securerandom.source=file:/dev/urandom

但這個 /dev/urandom 也同那個 bug 報告里所說的等同于 /dev/random;要使用非阻塞的熵池,這里還是要修改為 /dev/./urandom。經測試,貌似 JDK 7 并沒有同注釋里的意思修復了這個問題。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品网站在线播放gif| 欧美一区三区三区高中清蜜桃| 欧美韩国理论所午夜片917电影| 亚洲综合中文字幕在线| 奇米一区二区三区四区久久| 国产精品pans私拍| 国产欧美久久久久久| 一本色道久久综合亚洲精品小说| 亚洲精品美女网站| 色偷偷av一区二区三区乱| 国产美女精品免费电影| 日韩免费在线免费观看| 亚洲日本中文字幕| 亚洲а∨天堂久久精品喷水| 久久久久北条麻妃免费看| 成人精品视频99在线观看免费| 国产在线观看一区二区三区| 国产主播精品在线| 成人www视频在线观看| 亚洲精品一区久久久久久| 久久影院免费观看| 国产欧美日韩中文字幕在线| 亚洲综合中文字幕在线| 久久久成人精品视频| 奇米影视亚洲狠狠色| 亚洲精品日韩在线| 久久久精品欧美| 国模gogo一区二区大胆私拍| 欧美成人手机在线| 国产91在线高潮白浆在线观看| 国产精品久久久久久久久久| 日韩女优在线播放| 久久中文字幕视频| 亚洲аv电影天堂网| 日日狠狠久久偷偷四色综合免费| 欧美一级大片在线观看| 97久久精品在线| 欧美国产精品va在线观看| 在线日韩日本国产亚洲| 最新的欧美黄色| 精品成人乱色一区二区| 亚洲一区二区三区乱码aⅴ| 日韩av电影免费观看高清| 欧美成人精品在线播放| 欧美理论片在线观看| 欧美成人免费观看| 精品视频在线观看日韩| 国产精品∨欧美精品v日韩精品| 久久精视频免费在线久久完整在线看| 国产精品香蕉国产| 国产91精品最新在线播放| 久久久人成影片一区二区三区观看| 青青在线视频一区二区三区| 亚洲区在线播放| 日韩黄在线观看| 国产精品视频久久久| 国产精品96久久久久久| 日韩av理论片| 91在线中文字幕| 性色av一区二区三区红粉影视| 在线观看日韩www视频免费| 久久五月天综合| 久久精品国产欧美亚洲人人爽| 奇米四色中文综合久久| 国产主播精品在线| 欧美日韩福利电影| 人体精品一二三区| 国产精品对白刺激| 不卡av在线播放| 国产精品丝袜一区二区三区| 国语自产在线不卡| 国产女同一区二区| 26uuu亚洲国产精品| 最近的2019中文字幕免费一页| 亚洲男人的天堂在线| 欧美日韩午夜激情| 欧美视频一二三| 久久久久久久电影一区| 九九综合九九综合| 亚洲欧美制服丝袜| 狠狠躁夜夜躁久久躁别揉| 97在线视频观看| 欧美激情一区二区三区高清视频| 欧美性猛交xxxx黑人猛交| 国产欧美日韩中文字幕| 亚洲最大成人网色| 国产999精品久久久| 日韩高清电影好看的电视剧电影| 久久精品国产亚洲精品| 国产精品一区二区在线| 久久久久免费视频| 欧美综合激情网| 91国产视频在线| 欧美激情一级精品国产| 成人羞羞国产免费| 美日韩精品免费观看视频| 精品国产一区二区在线| 国产精品自在线| 97视频在线观看免费| 成人精品在线视频| 亚洲视频欧美视频| 欧美视频在线视频| 这里只有精品视频| 一区二区三区视频免费| 日本电影亚洲天堂| 欧美三级免费观看| 国产美女精品视频| 国产日韩精品在线播放| 国产精品人人做人人爽| 91老司机在线| 欧美日韩xxx| 中文字幕v亚洲ⅴv天堂| 一区二区在线视频播放| 日韩av中文字幕在线| 日韩av影院在线观看| 国产在线观看精品一区二区三区| 欧美一级电影久久| 久久免费视频在线观看| 日韩在线视频观看正片免费网站| 欧美日韩在线第一页| 亚洲jizzjizz日本少妇| 97视频免费观看| 亚洲欧美在线x视频| 亚洲情综合五月天| 欧美猛交免费看| 亚洲欧美精品中文字幕在线| 精品电影在线观看| 国产亚洲成av人片在线观看桃| 大伊人狠狠躁夜夜躁av一区| 操日韩av在线电影| 亚洲片国产一区一级在线观看| 91tv亚洲精品香蕉国产一区7ujn| 国产日韩综合一区二区性色av| 欧美精品久久久久久久久| 国产精品成人av性教育| 91av在线视频观看| 亚洲综合成人婷婷小说| 久久最新资源网| 欧美成年人视频网站欧美| 国产午夜精品视频免费不卡69堂| 国产欧美精品va在线观看| 亚洲国模精品一区| 成人网址在线观看| 久久不射电影网| 欧美黄色片在线观看| 国色天香2019中文字幕在线观看| 456国产精品| 久久久国产精品一区| 国产99久久精品一区二区 夜夜躁日日躁| 69国产精品成人在线播放| 海角国产乱辈乱精品视频| 久久久久久久久久久网站| 久久99久久久久久久噜噜| 欧美极品欧美精品欧美视频| 精品久久久久久久久久久久| 亚洲性视频网站| 欧美日韩亚洲成人| 成人国产精品一区| 精品国产精品三级精品av网址| 亚洲精品久久久久中文字幕二区| 亚洲国产精品女人久久久| 中文字幕久热精品视频在线| 欧美激情欧美激情在线五月| 久久久999精品视频|