反思考 \ 逆思考

基本上?沒啥好多說,有很多事情,也難以解釋!

最近都在 Facebook 閒逛比較多,有興趣?怕被牽連的就別來了。

快速連結 >> 工作印象 專題

快速連結 >> 官僚文化 專題

快速連結 >> 貿易經濟 專題

快速連結 >> 職業探討 專題

快速連結 >> 阿榮福利味事件 真相


2011年6月28日 星期二

暫停收費項目?還要被罰一百萬!

看到這篇新聞?真的很感無言!

「Android Market」其實?已經有很多「盜版、破解」出現在共享資訊的模糊區塊中!

因此?很多資訊付費的特徵,其實!並沒有多大用處!甚至「Android Market」的付費?也根本很難「獲利」;因為破解、盜版,在短短兩週內?就已經越來越多!

而且 Android Market 的付費軟體?其實.....很少........很少.......!

那些付費軟體?都不是簡單的工具!很少有人會去付費使用!

因此?若真的開放「試用」,其實?並不符合「Android Market 資訊產業」的背景!

我覺得?這個爭議?純粹是打壓「Google」而已!

Android Market

https://market.android.com/details?id=com.whatsapp&feature=top-free
https://market.android.com/details?id=com.google.android.apps.maps&feature=top-free

畢竟 Google 推出「 Android 」實在是太成功了。



新聞來源「Android Market 新聞來源
Google付費軟體退費爭議:突顯現行消保法缺乏彈性規定
文/蘇文彬 (記者) 2011-06-28
因軟體、音樂等著作商品特殊的使用特性,若適合7天無條件退貨機制容易引發爭議,Google事件突顯了現行消保法缺乏平衡消費者、業者兩方利益的彈性規定。

Google因付費行動軟體退費服務違反消保法遭台北市政府重罰,宣佈暫停Android Market付費軟體銷售而引發爭議。此事突顯出目前消保法欠缺依照不同商品使用性質彈性規範的問題。

Google因提供的行動付費軟體退費機制限制消費者需在15分鐘內辦理退款,違反台灣消保法7天內退費的規定,Google週一與台北市政府協商溝通未 取得共識,Google逕行暫停Android Market上付費軟體服務,為此北市府重罰100萬元,並要求7月前限期改善。

由於Google暫停付費軟體銷售同時影響到消費者與軟體開發商權益,在網路上也起許多發網友的討論。有網友認為北市府影響到Android用戶購買付費 軟體權益,有的則質疑不該將軟體納入消保法規定,一律適用7天退貨期間規定,不利於軟體產業發展。但也有網友認同北市府作法,認為Google應遵守本地 法律。

台北市政府要求Google提供消費者7天內退費的要求,主要是依照消保法第19、19-1條規定,將行動軟體買賣行為納入消保法規範,依法律規定消費者透過郵購(也適用在網路購物上)購買商品或服務,可在7天內無需說明理由及負擔費用退回商品。

台北市政府依法要求Google提供7天內退費為依法行事,但電子書、音樂、軟體等數位著作是否可比照其他商品適用7天退貨規定則有爭議,若消費者在7天內看完電子書,或是聽完音樂專輯、電玩遊戲破關辦理退費,影響到著作者或銷售商的收益。

資策會科技法律研究所研究員郭戎晉表示,我國的消保法目前並未依不同的產品、服務性質進行規範,消費者透過郵購或網路購物買賣的商品或服務得以在7天的法 定猶豫期內退貨。但其他國家對於不同商品、服務區分提供彈性的規範,例如歐盟對消費者提供退貨權利,但是以負面表列的方式將軟體等商品、服務排除在外,日 本法規則相反,原則上不提供消費者退貨權利,但正面列舉某些商品可以退貨。

因為現行消保法對所有商品及服務消費提供7天退貨保障可能引起買賣糾紛,例如購買軟體產品,消費者是否可拆封,甚至進一步安裝軟體,然後在7天內要求退 費,消保法在施行細則中雖然有一些較具體的規範,但遇有爭議多以個案方式處理,由消保團體為消費者與廠商協商糾紛,協商處理未果則以法律途徑解決。

消保會也承認目前消保法對所有商品、服務提供7天內退貨的規定確實存有爭議。台北市政府法規委員會主委葉慶元6/27晚間在個人http://blog.yam.com/philipy/article/39261422部落格提到:


也有網友質疑,軟體不應該適用郵購買賣七日鑑賞期的規定。我必須同意這是一個非常有爭議的議題,但是,目前法律並沒有將軟體買賣排除消費者保護法七日鑑賞期之適用,所以Google不能自己變成立法者,自己決定適不適用消保法的規定—台灣業者不能,Google也不能。…

換句話說,若消保法規定無法因時、地、物制宜,北市府現在也只能依法行政,要求Google和台灣廠商、其他國際業者同樣遵守台灣法規,修法解決不同商品、服務爭議則是長遠之道。

郭戎晉表示,消保會在民國96年提出修正草案,參考歐盟的做法避免消費者濫用權利,擬以負面表列方式將軟體等特定商品排除在外,不適用消保法郵購買賣提供7天內退貨的規定,但因為當時消保團隊抗議而未通過,現行消保法的郵購退買規定仍一體適用於各商品及服務。

雖然Google暫停付費軟體事件再次突顯了消保法對消費者退貨的僵化規定,但Google Android Market不分軟體性質,全球統一規定15分鐘內申請退費的時間限制也不盡合理,如同其他網友看法,某些功能複雜的軟體不容易在15分鐘內試用確認有沒 有缺陷,因此15分鐘內申請退費也不該適用在所有軟體上,或許Google也應檢討自己的服務條款,依不同軟體性質延長試用的時間。

2011年6月26日 星期日

十年前~~的「網站導引」


今天為了?要找一條「RS232 轉接線」翻箱倒櫃~~找出一顆「十年前 IBM 590 筆記型電腦」的原機硬碟,還真給我抖出十年前「自己用的一些工具」!

現在?要去資訊賣場?買一條 RS232 轉接線,恐怕連規格都找不到!

好在 Dark Man 十年前的工具箱中?就還有這樣一條.....................

而比較會讓人?有所感覺得?恐怕是「下面那張網路導引的表格」

----------------------------------------------------------------------------------------------------------




這是十年前一台「 IBM 590 筆記型電腦」取下的硬碟...........留存至今的資料!

回想那個「網路風潮」至今的「資訊世界」?

已經有很多「網站」都關門大吉....................


這些網址?僅剩「32%」還是有效網址!
而到 「2001年」 至今,仍繼續提供服務?又僅僅只剩下「19%」左右........

Open find 夢想家 綠界
蕃薯藤 臺灣索引 網路羅盤
雅虎台灣 阿波羅 發現者
蓋世引擎 怪獸搜尋 UFO
新浪台灣 和信哇塞 知諸網
Todo 悅氏國際 中央大學
USA todo Seed Net 獵犬
哇塞 八爪魚 網路
奇摩 悠游台灣 任意門
日出 Need 全球華人網
聚寶盆 華揚 老街
DoctorLi Idea 太一天地
網際W3導遊 易上網 SlashSearch
金金索引 大嘴巴 哦耶
網站分類簿 大同網路 諾貝爾
網路工廠織夢 凹凸搜尋 JAKE
搜尋網 超人氣 點將家
領航員 蘇活頻道 太陽日
新絲路 HeShow WOWNET
台灣網路資源 台灣WWW目錄 傑洛資訊
恐龍引擎 Kclau 創業資訊
羅賓 福爾摩莎 華人搜尋引擎
Ablook 神經 幻想馳騁
華凌 武藝 TheNet
大臺灣角頭網 春光網 CQ
馬鈴薯 中華電信 168
第一網際大樓 全球資訊 臺灣電訊
元碁資訊 MIT 永恆網聯


網路世界的興衰,從這樣一張十年前的「網站導引」,就能夠知道許多!



_

2011年6月25日 星期六

資訊書籍的「經典代表」

這一類的書籍!
值得珍藏的「動物手冊」書籍,湊出一個系列?這價值不斐啊!

刻板的說是「原文書」,但最重要的是「函式結構」比訪間的書籍更加完善!

若有機會的話?
去各地的圖書館?都未必能夠湊齊幾本!
因為這些動物手冊,真的是相當珍貴!!
每次再版?立刻就被「掃蕩一空」!



這類動物手冊!適合珍藏!價值更是永不跌損!

看這類書籍,比去「學校上課、資訊補習」,更能學到「技術、實務」的達成!

其實「學校上課、資訊補習」;都不能說明「關鍵技術」的事實,甚至刻意將「關鍵技術」變成一種「軟體」來替代授予「資訊技術」的事實;使得更多人「操作工具」,而不是學習「技術\知識」的實務。

這些書籍,被大量印刷成冊?又低價販售..........是要說「造福人群」嗎?

-

-

-
-
若有機會的話?
去各地的圖書館?都未必能夠湊齊幾本!
因為這些動物手冊,真的是相當珍貴!!
每次再版?立刻就被「掃蕩一空」!

DC 漫畫電影!

關於美國隊長?手上那隻「盾牌」,幾乎成為他的「招牌」!

至於?「超人」不算是人

很多故事......漸漸脫離身為人的限制,這群「DC英雄」其實?大部分都不是「自然人、天然人」的背景,大部分都是「實驗產物」。

不知道上映了沒有?美國隊長\復仇者




有聽過?在週末教堂做禱告時....心中默默向上帝詛咒「快點帶走誰敵人,讓自己在人世間,能活得更美好!」

有聽過?在週末教堂做禮拜時....心中默默向上帝詛咒「快快帶走誰(人)的幸福,讓自己在人世間,能活得更幸福!」

(PS.以上「兩句祈禱文」,是每一個天主教徒「不違反教規、不違反教義」而又能「詛咒」他人,讓上帝「聽取每一個邪惡的思維」的好方法!)


天主教\基督教~ㄉ教宗?恐怕會翻臉!
其實?很多國家都面對「宗教入侵、違逆宗教」的社會問題!

但.....宗教其實不能解決「國家、社會」的文明問題,甚至會「隱匿道德敗壞的事實」。



背後長眼睛(好困擾!)

這些「可愛小女生」是從「哪裡來ㄉ」?

更扯的是?集體圍堵(約17個強弱不一的精神體);就像有24隻大小槍械,壓在我頭上,一點都不好玩咩!

火星文→ (\¿/)

(PS.我手上要是有「一把好槍+17發子彈」,我連瞄準都不用,就送你們一人吃一顆。)

還有,常駐「便利商店」當作碉堡,隔著透明玻璃「狙擊」的兩個小妹(一個把風一個攻擊),還會「對換座位」.............我無言......!!

火星文→ (\火/)



還有?

上次說要幫我申請「保育類物種」資格的「政府官員」!不知道?資料申請下來沒有!
(PS.申請下來,能有什麼權力啊?希望要有「逝紙の免付特權 、殺人免許」!)

「可以不要玩我嗎?」
「大家對精神衛生?都很不重視唷!」


火星文→ (\5/)

2011年6月22日 星期三

「道理」源自於什麼?

一張參考圖?

(PS1.參考圖本身,只是一種綺思?是否能帶給你寬廣的思維!增進你?能夠判斷更多事情,才是最重要!)

(PS2.其實?道未必正,佛未必正,魔未必陰、神未必陽、一切在未定之前?他們本來面貌?)

(PS3.教你看錯一切!原因是「你眼前太多,而無法獲得「真解」而你的思維?又獨獨欠缺自我成長的進展!)

(PS4.人生是一條怎樣的道路,經常「賦予別人更多錯誤,才能夠讓自己活得更好?」)



取圖「小說\港漫:『六道輪迴』」


當你我思維清楚!

怎樣「做人」時,會否?你我都已經失去「道」,甚至「失去心智」。


小人並非不惡
中庸並非不爭
大智並非不鳴

有太多看似?卻永遠沒有真相!

將你眼前遮了多少,你身又身負多少,別人授予「盲目」條件。


「早定」誰定下的規矩?
「道理」誰先說的方法?
「倫理」誰承繼的精神?

有時?其實毫無規矩~更無方法~毫無精神..................

那到底是什麼?在推動我們的一生...............



「緣、因、果」「道行、業障」

其實,人們並不知道,該如何?將事情做好,甚至是做得更好!

「而那些能夠做得好?僅僅是我們曾看到好得一面。」


不受所想、難
不受因果、難
不受因緣、難
不受道理、難
不受業道、難
不受法身、難

最難有六...................

2011年6月20日 星期一

ADSL 頻寬(民間測試)

依據「中華電信、遠傳、亞太、台灣大哥大」各家 ADSL 廠商,實測結果是「慘不忍睹」。


這種效果之下?就和 15 年前使用「數據機」的時代?差異不大?


一般玩家申請 50M\10M 的 ADSL 頻寬所獲得的「頻寬實際效果」。

台北 → 高雄
FTP 下載平均 94 K

高雄 → 台北
FTP 下載平均 97 K



以「校園網路、專線設備」為對象,去測試「網路頻寬」時?


台北 → 高雄
FTP 下載平均 192 ~ 271 K

高雄 → 台北
FTP 下載平均 142 ~ 218 K


因此?「NCC」對於電信業者,是否開罰...........反而會讓我覺得「NCC」根本不夠專業!

Sun JAVA 的免則聲明

看到「甲骨文」大老哥?要求償 Google 大神?不免也稍稍關心一下!


Oracle 提出關於「Sun Java」的免責條例.....共 20 條
Sun Java 的免責聲明「 http://www.java.com/zh_TW/about/disclaimer.jsp 」

看完這些免則內容後,對「甲骨文」大老哥的感官,總覺得 Google(開發者)遇到 Oracle(流氓)喊價!

一、技術所有者 Oracle 自己擁有平台,卻不發展手機系統?
二、持有 Java 專利向 Google 求償,這是「先持發源專利」,去控告開發者?

總之很不正常.............

難道「甲骨文」想要買下「 Google 」嗎?


先是SunJava 的免責聲明!

免責聲明

關於 java.com 中「責任」一詞的含義…

您在 java.com 可看到許多協力廠商的廣告與促銷活動。這些往往是以通往其他網站或資源的連結的方式提供。您必須瞭解 Oracle 對此類外部網站或資源概不負責。Oracle 對此類網站或資源或從之而取得的任何內容、廣告、產品或其他資料概不背書與負責。若您看到任何不喜歡或不認同的內容,我們建議您立即離開該網站或資源。因 任何在 java.com 上或從之而取得的此類內容、商品或服務所造成之損失或損害,或因與使用、依賴此類內容、商品或服務相關所造成之損失或損害,Oracle 概不承擔直接或間接的責任。

您本人以及相關的協力廠商需對雙方之間的所有互動承擔完全責任。這包括,如所有信件往來、您處理的所有交易 (包括任何商品或服務的款項及交付,以及與此類交易相關的任何條款、條件、擔保或表述)、您所參與的任何促銷活動以及其他互動。Oracle 對因此類交易造成的任何損失或損害,或因在 java.com 上此類協力廠商廣告主造成的任何損失或損害概不承擔法律責任。

如需關於 java.com 最新的完整條款與規定的清單,請移至 http://www.oracle.com/html/terms.html。本免責聲明僅概述「使用條款」中的部分條款。如使用條款與本免責聲明相牴觸,以當時最新的使用條款為準。我們鼓勵您經常查閱使用條款,以確定您使用的是最新版本。



Oracle 提出的 20條相關
http://www.oracle.com/html/terms.html (英文之後,有中文翻譯!)

BY USING THE ORACLE WEB SITES, YOU AGREE TO THESE TERMS OF USE. IF YOU DO NOT AGREE TO THESE TERMS OF USE, PLEASE DO NOT USE THE ORACLE WEB SITES.

Welcome to the Oracle Web sites (the "Site"). Through the Site, you have access to a variety of resources and content. These include: (a) software and software as a service offerings ("Software"); (b) Web pages, data, messages, text, images, photographs, graphics, audio and video such as podcasts and Webcasts, and documents such as press releases, white papers and product data sheets ("Materials"); and (c) forums, discussion groups, chat areas, bulletin boards, blogs, wikis, e-mail functions, and other services in connection with which you can upload, download, share, email, post, publish, transmit or otherwise access or make available Content (as defined below) ("Community Services"). Software, Materials, Community Services, and other information, content and services are collectively referred to as "Content." By accessing or using the Site or the Content provided on or through the Site, you agree to follow and be bound by the following terms and conditions concerning your access to and use of the Site and the Content provided on or through the Site ("Terms of Use") and our Privacy Policy. Oracle Corporation and its affiliated companies ("We" or "Oracle") may revise the Terms of Use and Privacy Policy at any time without notice to you. The revised Terms of Use and Privacy Policy will be effective when posted. You can review the most current Terms of Use at http://www.oracle.com/html/terms.html and Privacy Policy at http://www.oracle.com/html/privacy.html.

1. Terms Applicable to Specific Content and Areas of the Site
Some areas of the Site or Content provided on or through the Site may have additional rules, guidelines, license agreements, user agreements or other terms and conditions that apply to your access or use of that area of the Site or Content (including terms and conditions applicable to a corporation or other organization and its users). If there is a conflict or inconsistency between the Terms of Use and the rules, guidelines, license agreement, user agreement or other terms and conditions for a specific area of the Site or for specific Content, the latter shall have precedence with respect to your access and use of that area of the Site or Content.

2. Use of Software
Your use of Software is subject to all agreements such as a license agreement or user agreement that accompanies or is included with the Software, ordering documents, exhibits, and other terms and conditions that apply ("License Terms"). In the event that Software is provided on or through the Site and is not licensed for your use through License Terms specific to the Software, you may use the Software subject to the following: (a) the Software may be used solely for your personal, informational, noncommercial purposes; (b) the Software may not be modified or altered in any way; and (c) the Software may not be redistributed.

3. Use of Materials
You may download, store, display on your computer, view, listen to, play and print Materials that Oracle publishes or broadcasts on the Site or makes available for download through the Site subject to the following: (a) the Materials may be used solely for your personal, informational, noncommercial purposes; (b) the Materials may not be modified or altered in any way; and (c) the Materials may not be redistributed.

4. Use of Community Services
Community Services are provided as a convenience to users and Oracle is not obligated to provide any technical support for, or participate in, Community Services. While Community Services may include information regarding Oracle products and services, including information from Oracle employees, they are not an official customer support channel for Oracle.

You may use Community Services subject to the following: (a) Community Services may be used solely for your personal, informational, noncommercial purposes; (b) Content provided on or through Community Services may not be redistributed; and (c) personal data about other users may not be stored or collected except where expressly authorized by Oracle.

5. Reservation of Rights
The Site and Content provided on or through the Site are the intellectual property and copyrighted works of Oracle or a third party provider. All rights, title and interest not expressly granted with respect to the Site and Content provided on or through the Site are reserved. All Content is provided on an "As Is" and "As Available" basis, and Oracle reserves the right to terminate the permissions granted to you in Sections 2, 3 and 4 above and your use of the Content at any time.

6. Your Content
You agree that you will only upload, share, post, publish, transmit, or otherwise make available ("Share") on or through the Site Content that you have the right and authority to Share and for which you have the right and authority to grant to Oracle all of the licenses and rights set forth herein. By Sharing Content, you grant Oracle a worldwide, perpetual, royalty-free, irrevocable, nonexclusive, fully sublicensable license to use, reproduce, modify, adapt, translate, publish, publicly perform, publicly display, broadcast, transmit and distribute the Content for any purpose and in any form, medium, or technology now known or later developed. This includes, without limitation, the right to incorporate or implement the Content into any Oracle product or service, and to display, market, sublicense and distribute the Content as incorporated or embedded in any product or service distributed or offered by Oracle without compensation to you. You warrant that: (a) you have the right and authority to grant this license; (b) Oracle's exercise of the rights granted pursuant to this license will not infringe or otherwise violate any third party rights; and (c) all so-called moral rights in the Content have been waived to the full extent allowed by law.

You agree that you will not Share any Content that: (a) is binary executable code; (b) is false or misleading; (c) is defamatory, derogatory, degrading or harassing of another or constitutes a personal attack; (d) invades another's privacy or includes another's confidential, sensitive or personal information; (e) promotes bigotry, racism, hatred or harm against any group or individual; (f) is obscene or not in good taste; (g) violates or infringes or promotes the violation or infringement of another's rights, including intellectual property rights; (h) you do not have the right and authority to Share and grant the necessary rights and licenses for; (i) violates or promotes the violation of any applicable laws or regulations; (j) contains a solicitation of funds, goods or services, or promotes or advertises goods or services; or (k) contains any viruses, Trojan horses, or other components designed to limit or harm the functionality of a computer.

Oracle does not want to receive confidential information from you through or in connection with the Site. Notwithstanding anything that you may note or state in connection with Sharing Content, it shall not be considered confidential information and shall be received and treated by Oracle on a non-confidential and unrestricted basis.

7. Security, Passwords and Means of Accessing the Site and Content
You agree not to access or use the Site in any manner that could damage, disable, overburden, or impair any Oracle accounts, computer systems or networks. You agree not to attempt to gain unauthorized access to any parts of the Site or any Oracle accounts, computer systems or networks. You agree not to interfere or attempt to interfere with the proper working of the Site or any Oracle accounts, computer systems or networks. You agree not to use any robot, spider, scraper or other automated means to access the Site or any Oracle accounts, computer systems or networks without Oracle's express written permission.

Access to and use of password protected or secure areas of the Site is restricted to authorized users only. You agree not to share your password(s), account information, or access to the Site. You are responsible for maintaining the confidentiality of password(s) and account information, and you are responsible for all activities that occur under your password(s) or account(s) or as a result of your access to the Site. You agree to notify Oracle immediately of any unauthorized use of your password(s) or account(s).

8. No Unlawful or Prohibited Use
You agree not to use the Site or Content provided on or through the Site for any purpose that is unlawful or prohibited by these Terms of Use, or the rules, guidelines or terms of use posted for a specific area of the Site or Content provided on or through the Site.

9. Indemnity
You agree to indemnify and hold harmless Oracle, its officers, directors, employees and agents from and against any and all claims, liabilities, damages, losses or expenses, including reasonable attorneys' fees and costs, due to or arising out of Content that you Share, your violation of the Terms of Use or any additional rules, guidelines or terms of use posted for a specific area of the Site or Content provided on or through the Site, or your violation or infringement of any third party rights.

10. Monitoring
Oracle has no obligation to monitor the Site or screen Content that is Shared on or through the Site. However, Oracle reserves the right to review the Site and Content and to monitor all use of and activity on the Site, and to remove or choose not to make available on or through the Site any Content at its sole discretion.

11. Termination of Use
Oracle may, in its sole discretion, at any time discontinue providing or limit access to the Site, any areas of the Site or Content provided on or through the Site. You agree that Oracle may, in its sole discretion, at any time, terminate or limit your access to or use of the Site or any Content. Oracle will terminate or limit your access to or use of the Site if, under appropriate circumstances, you are determined to be a repeat infringer of third party copyright rights. You agree that Oracle shall not be liable to you or any third-party for any termination or limitation of your access to or use of the Site or any Content.

12. Third Party Web Sites, Content, Products and Services
The Site provides links to Web sites and access to Content, products and services of third parties, including users, advertisers, affiliates and sponsors of the Site. Oracle is not responsible for third party Content provided on or through the Site and you bear all risks associated with the access and use of such Web sites and third party Content, products and services.

13. Disclaimer
EXCEPT WHERE EXPRESSLY PROVIDED OTHERWISE, THE SITE, AND ALL CONTENT PROVIDED ON OR THROUGH THE SITE, ARE PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS. ORACLE EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT WITH RESPECT TO THE SITE AND ALL CONTENT PROVIDED ON OR THROUGH THE SITE. ORACLE MAKES NO WARRANTY THAT: (A) THE SITE OR CONTENT WILL MEET YOUR REQUIREMENTS; (B) THE SITE WILL BE AVAILABLE ON AN UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE BASIS; (C) THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SITE OR ANY CONTENT PROVIDED ON OR THROUGH THE SITE WILL BE ACCURATE OR RELIABLE; OR (D) THE QUALITY OF ANY CONTENT PURCHASED OR OBTAINED BY YOU ON OR THROUGH THE SITE WILL MEET YOUR EXPECTATIONS.

ANY CONTENT ACCESSED, DOWNLOADED OR OTHERWISE OBTAINED ON OR THROUGH THE USE OF THE SITE IS USED AT YOUR OWN DISCRETION AND RISK. ORACLE SHALL HAVE NO RESPONSIBILITY FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OR USE OF CONTENT.

ORACLE RESERVES THE RIGHT TO MAKE CHANGES OR UPDATES TO, AND MONITOR THE USE OF, THE SITE AND CONTENT PROVIDED ON OR THROUGH THE SITE AT ANY TIME WITHOUT NOTICE.

14. Limitation of Liability
IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, ARISING FROM YOUR ACCESS TO, OR USE OF, THE SITE OR ANY CONTENT PROVIDED ON OR THROUGH THE SITE.

15. Exclusions and Limitations
SOME JURISDICTIONS DO NOT ALLOW THE DISCLAIMER OR EXCLUSION OF CERTAIN WARRANTIES OR THE DISCLAIMER, EXCLUSION OR LIMITATION OF CERTAIN LIABILITIES. TO THE EXTENT THAT THEY ARE HELD TO BE LEGALLY INVALID, DISCLAIMERS, EXCLUSIONS AND LIMITATIONS SET FORTH IN THESE TERMS OF USE, INCLUDING THOSE SET FORTH IN SECTIONS 13 AND 14, DO NOT APPLY AND ALL OTHER TERMS SHALL REMAIN IN FULL FORCE AND EFFECT.

16. Privacy Policy
Oracle is concerned about your privacy and has developed a policy to address privacy concerns. For more information, please see Oracle's Privacy Policy. Any personal information collected on this Site may be accessed and stored globally and will be treated in accordance with Oracle's Privacy Policy.

17. Note About Minors
Minors are not eligible to use the Site, and we ask that they do not submit any information to us.

18. Export Restrictions/Legal Compliance
You may not access, download, use or export the Site, or the Content provided on or through the Site, in violation of U.S. export laws or regulations, or in violation of any other applicable laws or regulations. You agree to comply with all export laws and restrictions and regulations of any United States or foreign agency or authority, and not to directly or indirectly provide or otherwise make available the services and products of Oracle in violation of any such restrictions, laws or regulations, or without all necessary approvals, including, without limitation, for the development, design, manufacture or production of nuclear, chemical or biological weapons of mass destruction and of missile technology. As applicable, you shall obtain and bear all expenses relating to any necessary licenses and/or exemptions with respect to your own use of the services of Oracle outside the U.S. Neither the services of Oracle nor the underlying information or technology may be downloaded or otherwise provided or made available, either directly or indirectly, (a) into Cuba, Iran, North Korea, Sudan, Syria or any other country subject to U.S. trade sanctions, to individuals or entities controlled by such countries, or to nationals or residents of such countries other than nationals who are lawfully admitted permanent residents of countries not subject to such sanctions; or (b) to anyone on the U.S. Treasury Department's list of Specially Designated Nationals and Blocked Persons or the U.S. Commerce Department's Table of Denial Orders. By agreeing to these Terms of Use, you agree to the foregoing and represent and warrant that you are not located in, under the control of, or a national or resident of any such country or on any such list.

19. Applicable Laws
All matters relating to your access to, and use of, the Site and Content provided on or through or uploaded to the Site shall be governed by U.S. federal law or the laws of the State of California. Any legal action or proceeding relating to your access to, or use of, the Site or Content shall be instituted in a state or federal court in San Francisco, San Mateo or Santa Clara County, California. You and Oracle agree to submit to the jurisdiction of, and agree that venue is proper in, these courts in any such legal action or proceeding.

20. Copyright/Trademark
Copyright© 1995, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names appearing on the Site may be trademarks of their respective owners.

For information on use of Oracle trademarks, go here.

For information on making claims of copyright infringement, go here.

21. Contact Information
If you have any questions regarding these Terms of Use, please contact Oracle at trademar_us@oracle.com. If you have any other questions, contact information is available at the Contact Oracle page on the Site.


通過使用Oracle Web站點,您同意這些使用條款。如果您不同意這些使用條款,請不要使用Oracle網站。

歡迎到Oracle網站(“網站”)。通過網站,您可以訪問各種資源和內容。這些措施包括:(一)軟件和軟件即服務產品(“軟件”)(二)網頁,數據,信息,文字,圖像,照片,圖形,音頻和視頻,如播客和網絡廣播和文件,如新聞稿,白皮書和產品數據表(“材料”);及(c)論壇,討論組,聊天室,電子公告板,博客,維基,電子郵件功能,以及其他服務的連接,使用它可以上傳,下載,共享,電子郵件,張貼,發布,傳播或以其他方式訪問或提供內容(定義如下)(“社區服務”)。軟件,材料,社區服務等信息,內容和服務被統稱為“內容”。通過訪問或使用本網站或內容提供或通過本網站,您同意遵守並受下列條款及條件有關您的訪問和使用本網站和內容提供或通過網站(“條款使用“)和我們的隱私政策。甲骨文公司及其附屬公司(“我們”或“甲骨文”)可能會修改使用條款及私隱政策在任何時候,恕不另行通知您。修訂後的使用條款和隱私政策將張貼時生效。您可以查看最新的使用條款和隱私政策在http://www.oracle.com/html/terms.html在http://www.oracle.com/html/privacy.html。


Google 大神中文翻譯!

1。條款適用於特定的內容和地區的網站
一些地區的網站或內容提供或通過網站可能有額外的規則,指引,許可協議,用戶協議或其他條款和條件適用於您訪問或使用該領域的網站或內容(包括條款及條件適用於公司或其他組織及其用戶)。如果有衝突或不一致的條款和使用規則,指引,許可協議,用戶協議或其他條款和條件,特定區域的網站或特定內容,後者應優先就您的訪問並利用該地區的網站或內容。

2。軟件的使用
您使用的軟件是受所有協議,如許可協議或用戶協議附帶或包含在軟件,訂貨文件,證物,及其他條款和條件適用(“許可條款”)。在事件上提供軟件或通過網站和未授權您使用許可條款,通過特定的軟件,您可以使用該軟件受到以下幾點:(一)軟件可僅用於個人,信息,非商業目的;(二)軟件不得修改或以任何方式改變;及(c)該軟件可能無法重新分配。

3。使用的材料
你可以下載,存儲,顯示在您的電腦,查看,收聽,播放和打印材料,甲骨文發布或廣播,網站或使得可通過網站下載受以下幾點:(一)材料可單獨使用您的個人,信息,非商業目的;(二)材料不得修改或以任何方式改變;及(c)該材料不得被重新分配。

4。利用社區服務
社區服務是為了方便用戶和甲骨文是沒有義務提供任何技術支持,或參與社區服務。雖然社區服務可能包括關於 Oracle產品和服務,包括信息從 Oracle的員工,他們是不是正式的客戶支持渠道的甲骨文。

您可以使用社區服務須符合下列:(一)社區服務可能僅用於個人,信息,非商業目的;(二)資料提供或通過社區服務可能無法重新分配;及(c)有關的個人資料其他用戶可能不會被儲存或收集除非明確授權甲骨文。

5。保留權利
網站和內容提供上或通過本網站的知識產權和版權保護的作品,Oracle或第三方供應商。所有權利,所有權和利益未明確授予的有關本網站和內容提供上或通過本網站保留。所有內容是基於“現況”及“現有”的基礎上,甲骨文保留權利終止的權限授予您在第2,第3和第4段和您使用的內容在任何時候。

6。您的內容
您同意,您將只能上傳,共享,發布,出版,傳送,或以其他方式提供(“股份”)或通過網站上的內容,你有權利和權力分享和你有權利和權力授予甲骨文所有的執照和本宣言所載的權利。通過共享的內容,您授予甲骨文全球性的,永久性的,免版稅的,不可撤銷的,非獨家的,完全再授權許可,以使用,複製,修改,改編,翻譯,出版,公開表演,公開展示,播放,傳輸和分發內容任何目的和以任何形式,媒介或技術現在已知或以後開發的。這包括,但不限於權利或實施內容納入到任何Oracle產品或服務,並顯示,市場,再許可和分發內容納入或嵌入在任何產品或服務分發或由Oracle提供無償給你。您保證:(a)你有權利和權力授予該許可證;(二)Oracle的行使授予的權利根據本牌照不會侵犯或違反任何第三方權利,以及(c)所有所謂的道德權利的內容已被免去的完整法律允許範圍內。

您同意您將不共享任何內容:(一)是二進制可執行代碼;(二)虛假或誤導性的;(三)誹謗,詆毀,侮辱或騷擾他人或構成人身攻擊;(四)侵犯他人隱私或者包含其他的機密,敏感或個人資料;(五)促進偏見,種族主義,仇恨或傷害針對任何團體或個人;(六)淫褻或不大方;(七)違反或侵犯或促進侵犯或侵犯他人的權利,包括知識產權;(H),你沒有權利和權力分享和給予必要的權利和許可證;(一)違反或促進違反任何適用法律或法規;(J )包含招攬資金,商品或服務,或推廣或宣傳商品或服務,或(k)包含任何病毒,特洛伊木馬或其他組件旨在限制或損害功能的電腦。

Oracle不希望收到您的機密信息通過或連接的網站。儘管你可能會注意到任何國家或在連接與共享的內容,不得被視為機密信息,並應接受和處理由甲骨文在非機密的和無限制的基礎。

7。安全,密碼和訪問網站的方式和內容
您同意不使用本網站訪問或以任何方式損害,禁用,超負荷或損害任何Oracle帳戶,計算機系統或網絡。您同意不試圖未經授權訪問任何部位的網站或任何Oracle帳戶,計算機系統或網絡。您同意不干擾或企圖干擾正常工作的網站或任何Oracle帳戶,計算機系統或網絡。您同意不使用任何機器人,蜘蛛,刮刀或其他自動手段來訪問網站或任何Oracle帳戶,計算機系統或網絡沒有甲骨文的明確書面許可。

訪問和使用密碼保護或安全區域的網站僅限於授權用戶。您同意不分享您的密碼(S),帳戶信息,或訪問網站。您有責任維護保密的密碼(S)和帳戶信息,而你負責的所有活動發生在你的密碼資料或帳戶(S)或作為結果您訪問本網站。您同意立即通知甲骨文的任何未經授權的使用您的密碼資料或帳戶資料。

8。任何非法或禁止使用
您同意不使用本網站或內容提供或通過網站為任何目的是非法或禁止這些使用條款,或規則,指引或使用條款張貼特定區域的網站或內容提供或通過網站。

9。賠款
您同意賠償並無害的甲骨文,其管理人員,董事,僱員及代理人免受任何和所有的債權,債務,損害賠償,損失或費用,包括合理的律師費和費用,或因所產生的內容,你分享,你違反了使用條款或任何其他規則,指引或使用條款張貼特定區域的網站或內容提供或通過本網站,或違反或侵犯任何第三方的權利。

10。監測
甲骨文公司沒有義務監視網站或屏幕上的共享內容,或通過網站。然而,甲骨文有權審查本網站和內容,並監視所有使用和活動的網站,並刪除或選擇不提供或通過本網站的任何內容自行決定。

11。終止使用
甲骨文可能在其自行決定,在任何時候停止提供或限制訪問的網站,任何地區的網站或內容提供或通過本網站。您同意,甲骨文可能在其自行決定在任何時間,終止或限制您訪問或使用本網站或任何內容。甲骨文將終止或限制您訪問或使用本網站如果在適當情況下,你下定決心要重複侵權的第三方版權的權利。您同意,甲骨文概不負責對您或任何第三方的任何終止或限制您訪問或使用本網站或任何內容。

12。第三方網站,內容,產品和服務
該網站提供的鏈接網站和訪問內容,產品和服務的第三方,包括用戶,廣告商,附屬公司和贊助商的網站。 Oracle不負責第三方內容提供上或通過本網站,你承擔所有風險與訪問和使用這些網站和第三方內容,產品和服務。

13。免責聲明
除非另有明確規定外,該網站,所有內容提供上或通過本網站,以資上的“原樣”及“現有”的基礎。 ORACLE明確否認任何種類的擔保,明示或暗示,包括但不限於對適銷性的暗示的保證,適合特定用途或不侵權關於網站和所有提供的內容上或通過本網站。 ORACLE不作任何保證:(一)本網站或內容將滿足您的要求;(B)該網站將可在不中斷,及時,安全或無錯誤基礎;(C)的結果可以從的使用本網站或任何資料提供或透過本網站將是準確或可靠;或(d)質量購買或獲得的任何內容,閣下或通過本網站將符合您的期望。

任何內容前往瀏覽,下載或以其他方式獲得的上或通過本網站的使用是用在您自己決定並自擔風險。 ORACLE將不承擔對任何損壞您的計算機系統或丟失的數據結果從下載及使用內容。

Oracle保留權利作出改變或更新,並監督使用,站點和內容提供上或通過網站在任何時間,恕不另行通知。

14。責任限制
在任何情況下,ORACLE均不對任何直接,間接,偶然,特殊或間接損失或損害,喪失利潤,收入,資料或使用,招致您或任何第三方,無論是在動作中的合同或民事侵權行為,起因於您訪問或使用,本網站或任何資料提供或透過本網站。

15。排除和限制
某些司法管轄區不允許聲明或排除某些擔保或免責聲明,排除或限制某些負債。 TO的範圍內,他們在法律上無效,免責聲明,排除和限制SET列於這些使用條款,包括SET列於第13及14,不適用,所有其他條款將維持十足效力及作用。

16。隱私權政策
甲骨文是關心您的隱私,並已制定了一項政策,以解決隱私問題。欲了解更多信息,請參閱 Oracle的隱私政策。任何個人在本網站收集的信息,可以訪問和存儲全球和將被視為根據甲骨文的隱私政策。

17。注意:關於未成年人
未成年人是沒有資格使用本網站,我們要求他們不要提交任何資料給我們。

18。出口限制/法律合規
您可能無法訪問,下載,使用或出口本網站,或內容提供或通過本網站,違反了美國的出口法律或法規,或違反任何其他適用法律或法規。您同意遵守所有出口法律和法規的限制,任何美國或外國機構或權威,而不是直接或間接提供或以其他方式提供的服務和產品的甲骨文違反任何上述限制,法律或法規,或者沒有所有必要的批准,包括但不限於開發,設計,製造或生產核武器,化學武器或生物武器和大規模殺傷性導彈技術。如適用,您應當取得並承擔所有費用與任何必要的許可證和/或豁免就自己使用的服務,甲骨文在美國以外的無論是服務的甲骨文也不是基礎信息或技術可以下載或以其他方式提供或提供直接或間接(一)進入古巴,伊朗,朝鮮,蘇丹,敘利亞或任何其他國家受美國貿易制裁的個人或實體控制這些國家,或國民或居民在這些國家除國民承認誰是合法永久居民的國家不受此類制裁;或(b)任何人對美國財政部特別指定國民名單和阻止人士或美國商務部拒絕訂購表。同意這些使用條款,您同意上述和代表並保證您不位於,在控制,或國家或居民任何國家或任何此類名單。

19。適用法律
所有有關您訪問和使用,本網站和內容提供或通過或上傳到網站應受美國聯邦法律或法律的加利福尼亞州。任何法律行動或法律程序與您訪問或使用,本網站或內容,將會在州或聯邦法院在舊金山,聖馬刁或聖克拉拉縣,加利福尼亞。您和甲骨文同意提交給管轄,並同意在適當的場地,這些法院在任何該等訴訟或法律程序。

20。版權 /商標
版權所有 © 1995,2010,Oracle和/或其附屬公司。保留所有權利。

Oracle和Java是甲骨文的註冊商標和/或它的分支機構。其他名稱出現在網站上可能是其各自所有者的商標。

對於信息使用Oracle商標,走在這裡。

有關資料進行索賠侵犯​​版權,請在這裡。

21。聯繫信息
如果您有任何疑問這些使用條款,請聯繫 Oracle在trademar_us@oracle.com。如果您有任何其它問題,請聯繫信息,請聯絡甲骨文頁的網站。


2011年6月19日 星期日

甲骨文「手持 Sun Java 專利」控告「Google大神」

甲骨文告谷歌 索賠61億美元

 更新日期:2011/06/18 16:28
(路透舊金山17日電)根據法庭文件,甲骨文公司(Oracle)在與谷歌公司(Google)的智慧型手機市場專利訴訟上,尋求賠償14億到61億美元
甲骨文去年告上Google,聲稱這間網路搜尋公司的Android作業科技侵犯甲骨文的Java專利。
甲骨文在2000年1月藉由收購昇陽電腦公司(SunMicrosystems)買下Java程式語言。
一名美國法官本週命令Google公開含有甲骨文公司損失索賠細節的部分法庭文件。Google今天服從這項命令,公開甲骨文公司尋求的索賠範圍。

Google在法庭檔案中對甲骨文的索賠金額提出質疑,稱這筆「金額驚人」,跟爭議中的智慧財產合理評估不成比例。中央社(翻譯)




其實 Dark Man 認為?

很多「智慧財產」,只要願意花時間開發?都能有相當的水準!
至於「Code Pro」的問題?就經常不是「什麼合理解釋?」

這也使得「資訊產業」投注在開發的人?越來越少!甚至是「開發環境」的漸漸縮小、人才凋零........... 的背景!

若大廠商,也都這樣彼此互相控告?會是顯得「Google 資訊達成」的技術?會牴觸到「Oracle」在未來市場的權益嗎?

其實?


在「資訊商業行為」的達成上,很多時候?

先達者為「失」,後達者為「購」。

簡單說是「你開發?卻沒有人願意買;只會讓你在開發上?失去獲利!」


但若?


「你的開發?會威脅到「某某大商人、某某大權貴」時,他們會用積極的低價,去購買「你的技術,並停止你,在相關技術的成長。」

當然?這種背景,也使得「許多人」從商業環境,轉投入「自由軟體」的懷抱!

這反使得「大商人、大權貴」,若盜用「自由軟體」的語言編寫時?「必須付出巨大的代價」或「大商人、大權貴」乖乖的向「自由軟體」做出商業付費的評估!

2011年6月18日 星期六

Linux 版本更新?

大字體| 中字體| 小字體|

最近 CentOS 遲遲未能更新 6.x 版本!
Cent OS 參考書籍(原文下載)

因此?給大家,這如同 Cent OS 可免費贊助的版本!

Debian 6.x版本 下載
(此為 I386 版本 DVD.ISO 下載後,以「DVD 燒錄機」轉出,即可使用!)
Ubuntu 有熟悉的人,都知道!
Debian 就是「Ubuntu」的原始真面貌!

而 Debain 為許多「自由軟體」都非常喜愛!



以兩大類型被稱為「RedHat」「Debian」發展的性質?最重要的「不同」是什麼?



RedHat 為首下「Fedora、Suse、CentOS」均為採用 Yum 封裝管理 RPM 套件。


Debian 為首下「B2D、mini linux、ClonezillaLinux」也都是 Debian 的相關產物,他們都採用 Apt 封裝管理 deb 套件!


這也使得「Linux」形成一個很大的分水嶺?兩大套件系統「rpm\deb」的不同!

但在功能上?其實大同小異,並無任何不同之處!尤其是一些主要的服務介面?都仍源自於 Linux 各項伺服觀念。



-------------------------------------------------
先附上 Debian 的文件

APT-GET 鏡像更新列表「 http://www.debian.org/mirror/list 」


echo 'deb http://鏡像網址 ' > /etc/apt/sources.list

#apt-get update


Debian 操作之 apt-get


apt-get:

apt-get {update|upgrade|dist-upgrade|install pkg |remove pkg | source pkg |check|autoclean}

update: 根據源列表"/etc/apt/sources.list"獲取可更新包索引(不安裝,要安裝可更新列表的包要使用 apt-get upgrade 或 apt-get dist-upgrade 命令)。

upgrade: 在執行 apt-get update 命令之後,使用 apt-get upgrade 來升級軟件包。該命令不會引起其他包的變化(即使是存在依賴關係)。

dist-upgrade: 類似upgrade命令,但apt-get會自動檢查並處理好被升級的包的依賴關係。


apt-get update —— 在修改/etc/apt/sources.list或者/etc/apt/preferences之後運行該命令。此外您需要定期運行這一命令以確保您的軟件包列表是最新的。
apt-get install packagename——安裝一個新軟件包(參見下文的aptitude)
apt-get remove packagename —— 卸載一個已安裝的軟件包(保留配置文件)
apt-get –purge remove packagename —— 卸載一個已安裝的軟件包(刪除配置文件)
dpkg –force-all –purge packagename —— 有些軟件很難卸載,而且還阻止了別的軟件的應用,就可以用這個,不過有點冒險。
apt-get autoclean apt —— 會把已裝或已卸的軟件都備份在硬盤上,所以如果需要空間的話,可以讓這個命令來刪除你已經刪掉的軟件
apt-get clean —— 這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的。
apt-get upgrade —— 更新所有已安裝的軟件包
apt-get dist-upgrade —— 將系統升級到新版本
apt-cache search string —— 在軟件包列表中搜索字符串
dpkg -l package-name-pattern —— 列出所有與模式相匹配的軟件包。如果您不知道軟件包的全名,您可以使用「*package-name-pattern*」。
aptitude —— 詳細查看已安裝或可用的軟件包。與apt-get類似,aptitude可以通過命令行方式調用,但僅限於某些命令——最常見的有安裝和卸載命令。由於aptitude比apt-get —— 瞭解更多信息,可以說它更適合用來進行安裝和卸載。
apt-cache showpkg pkgs —— 顯示軟件包信息。
apt-cache dumpavail —— 打印可用軟件包列表。
apt-cache show pkgs —— 顯示軟件包記錄,類似於dpkg –print-avail。
apt-cache pkgnames —— 打印軟件包列表中所有軟件包的名稱。
dpkg -S file —— 這個文件屬於哪個已安裝軟件包。
dpkg -L package —— 列出軟件包中的所有文件。
apt-file search filename —— 查找包含特定文件的軟件包(不一定是已安裝的),這些文件的文件名中含有指定的字符串。apt-file是一個獨立的軟件包。您必須 先使用apt-get install來安裝它,然後運行apt-file update。如果apt-file search filename輸出的內容太多,您可以嘗試使用apt-file search filename | grep -w filename(只顯示指定字符串作為完整的單詞出現在其中的那些文件名)或者類似方法,例如:apt-file search filename | grep /bin/(只顯示位於諸如/bin或/usr/bin這些文件夾中的文件,如果您要查找的是某個特定的執行文件的話,這樣做是有幫助的)。

* apt-get autoclean——定期運行這個命令來清除那些已經卸載的軟件包的.deb文件。通過這種方式,您可以釋放大量的磁盤空間。如果您的需求十分迫切,可 以使用apt-get clean以釋放更多空間。這個命令會將已安裝軟件包裹的.deb文件一併刪除。大多數情況下您不會再用到這些.debs文件,因此如果您為磁盤空間不足 而感到焦頭爛額,這個辦法也許值得一試。
典型應用


還可以給 apt-get 指定選項:

-s 不改變系統,僅獲得輸出。

-d 僅下載包,不自動安裝。

-f 修正未滿足的依賴關係。

--purge 刪除包時,連同該包相關的配置文件一起刪除。

相關文件:

/etc/apt/sources.list 源地址列表。
/var/lib/apt/list/ 各個源上的所有包信息文件。
/var/lib/apt/list/partial/ 正在下載的包信息文件。
/var/cache/apt/archives/ 包文件。
/var/cache/apt/archives/partial/ 正在下載的包文件。



Ubuntu軟件包格式為deb,安裝方法如下:

sudo  dpkg  -i  package.deb

dpkg的詳細使用方法,網上有很多,下面簡單列了幾個:
dpkg -i package.deb 安裝包
dpkg -r package 刪除包
dpkg -P package 刪除包(包括配置文件)
dpkg -L package 列出與該包關聯的文件
dpkg -l package 顯示該包的版本
dpkg –unpack package.deb 解開 deb 包的內容
dpkg -S keyword 搜索所屬的包內容
dpkg -l 列出當前已安裝的包
dpkg -c package.deb 列出 deb 包的內容
dpkg –configure package 配置包

(根據Ubuntu中文論壇上介紹,使用apt-get方法安裝的軟件,所有下載的deb包都緩存到了/var/cache/apt /archives目錄下了,所以可以把常用的deb包備份出來,甚至做成ISO工具包、刻盤,以後安裝Ubuntu時就可以在沒有網絡環境的情況下進行了)

其他 Debian 官方詳盡說明 http://www.debian.org/doc/manuals/apt-howto/

-------------------------------------------------

#/etc/yum.conf
#/etc/etc/yum.repos.d/CentOS-TWaren-plus.repo


[CentOS-TWaren-Plus]
name=CentOS-TWaren-plus
baseurl=http://ftp.twaren.net/Linux/CentOS/5.6/centosplus/i386/
gpgcheck=1
gpgkey=http://ftp.twaren.net/Linux/CentOS/RPM-GPG-KEY-CentOS-5
enabled=1


#yum clear all
#yum list

即可


//檢查有哪些可更新的rpm包
#yum check-update

//安裝rpm包,使xmms可以播放mp3
#yum install xmms-mp3

//安裝mplayer,同時自動安裝相關的軟件
#yum install mplayer

//刪除licq包,同時刪除與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text,非常方便

//系統更新(更新所有可以升級的rpm包,包括kernel)
#yum -y update

//每天定期執行系統更新
#chkconfig yum on
#service yum start

-------------------------------------------------------------------
其他有興趣的人?就自己上網去查!更多資料ㄅ
Dark Man 自己,當下除 Mail Server 是 CentOS 架 Sendmail 之外?已有心要轉換 Debian 的運用。

日前已經將「Windows 2000 Server」也拆ㄌ

2011年6月16日 星期四

磁碟陣列是什麼東西?(RAID, Redundant Array of Independent Disks)

讓人會心一笑的照片..............下圖取自「永遠UINX」

下文章取自 TOM'S


RAID模式硬碟數量資料安全性可利用性實際容量傳輸效能架設成本
01+略差極差100%極佳極低
12良好良好50%尚可偏低
33+尚可良好(x-1)/ x尚可中等
53+尚可良好(x-1)/ x良好中等
0+14、6、8…良好良好50%良好中等

RAID 0 一個單一存儲區塊

RAID 0對長期保存資料來講並非是個好選擇,而主要應用在暫存資料用的磁碟,像是檔案或是資料庫伺服器等。如果系統本身需要隨時備份,那

RAID 1是最佳選擇。如果您有可以熱插拔的設備,您可以在電腦運作中交換硬碟,來將資料備份到不同電腦上容量相同的不同硬碟。接著把硬碟接回電腦,RAID
1模式將會再次啟動,繼續保持資料備份的同步性。

RAID 1 純粹只是即時鏡射(mirror)硬碟的資料(特定情況下,也可能鏡射任何RAID陣列),所以許多人會有誤解,以為這個模式無法對效能有所改善。

雖然寫入動作的確和只有一顆硬碟時沒有兩樣,

但是讀取資料時理論上是可以達到和RAID 0相同的速度的。

這只是理論上的計算,因為這種情況是以資料同時從所有陣列內磁碟機上讀取來計算的,但實際上資料讀取的動作,沒有辦法像RAID 0這樣分散的很確實。

這部份控制器會以特殊方式來處理分散讀取的動作。

如果您著重在最大限度的資料安全性,以及最低限度的資料救援花費時間(像是簡易伺服器等),那RAID 1就有用了。大多數RAID控制器都能夠在硬碟經過交換後,自動進行獨立的資料回覆動作。但只有在您的硬碟安裝在可熱插拔的硬碟櫃中,才能夠即時進行回覆。

RAID 3 的普及率已經越來越低,因為RAID 5不但提供更多優點,缺點也要來的少。
在RAID 3模式中,其中一台硬碟用來存放同位元檢查值。

它最大的優點在於能夠把資料分散到各硬碟上,在大幅提升資料傳輸率的同時,也可以防止單顆硬碟損壞。不過由於同位元檢查值只寫入一台硬碟,所以寫入效能也大幅下降。

RAID 3通常應用在存放大多數靜態資料,或是需要RAID 1以上的效能,但同時也要兼顧資料安全的伺服器上。這也是讓寫入性能的影響不那麼大的簡單方式。

RAID 5 幾乎佔了目前高階伺服器的大多數。如果您使用4~7顆硬碟,而且硬碟容量夠大,能容許較大的分割區,那這種模式的效能就顯得十分出色。

和RAID 3不同的是,它的同位元檢查值也一樣分散在各硬碟上,這對效能會產生正面的影響。

這也讓RAID 5模式在各種應用上都能提供十分高的效能。



逼近極限:巢狀RAID陣列

如果您覺得以上陣列所提供的傳輸率還不夠高,您可以組合各種RAID模式。這種架構稱作<B>巢狀RAID陣列(Nested RAID,或多重RAID陣列),不過您應該很少有機會接觸它。這也是當然的,因為傳統的RAID陣列已經夠快了。

就我們所知,IDE市場中並沒有支援巢狀RAID陣列的產品(RAID 10模式例外)。至於SCSI產品方面,如果您想架設一個規格超級豪華的巢狀RAID陣列,最好先準備幾百到幾千美元買張RAID卡吧。

RAID 0+1模式
最常見的巢狀RAID陣列應該是0+1模式。這個模式需要最少4台硬碟,而且數目必須要是偶數。用其中半數硬碟設定出磁碟組(RAID 0),再把另外半數硬碟用來鏡射(RAID 1)這些硬碟。這樣一來,效能和單用一顆硬碟比起來,讀取速度可以快上4倍,寫入效能也會是原本的2倍。

RAID 50(5+0)模式
覺得幾顆硬碟組成的RAID 5陣列速度還不夠快嗎?那不妨建立一個包含兩個架構相同RAID 5陣列的磁碟組吧。雖然這樣一來資料安全性已經消失(在此陣列本身算是一台硬碟),但理論上效能還能再增加一倍。實際上您要考慮到的,將會是PCI界面與網路頻寬的限制,而不是硬碟陣列的速度。

在巢狀RAID陣列(或多重RAID陣列)中,命名是個重要的因素。雖然RAID 0+1的磁碟組只用在下層,鏡射只用在上層,但RAID 10則剛好相反。不過因為RAID 10並不實用,所以這裡誤用名稱也顯得沒那麼重要。

巢狀RAID與安全性:不是1就是0雖然大多數人應該不會有機會接觸到這麼大型的磁碟陣列,不過我們還是再多提一下RAID的注意事項吧。

雖然將多重RAID陣列組合起來,是有效且穩定的方式,但要保有完整的資料安全性,必須每個陣列本身都具有安全性的保證。像以RAID 0陣列組成的RAID 5陣列就不安全,因為RAID 0當中只要有硬碟故障,那資料仍舊無法救回。




維基百科的說明 http://zh.wikipedia.org/wiki/RAID

以下說明為「Dark Man」自己的敘述



JBOD

純粹的「磁碟空間」,去堆積形成「儲存媒體」,在實務觀念上,接近「磁帶儲存」的觀念,損壞也僅「損壞之磁帶區域」資料損毀!











RAID 0
根據「多個儲存設備,建立成單一的儲存接口。」去排序存取。
情況:儲存運作是「檔案 100MB 大小,以順序去「A1寫入1MB、
A2寫入1MBA3寫入1MBA4寫入1MBA5寫入1MBA6寫入1MBA7寫入1MBA8寫入1MB然後又回過頭「A1寫入1MB、A2寫入1MBA3寫入1MBA4寫入1MBA5寫入1MBA6寫入1MBA7寫入1MBA8寫入1MB直到 100MB 完整寫入 RAID 0 磁碟為止!
(因此,若其中一個寫入標記損毀?就很難救援!)
經常發生「寫入未達 1MB時,就放棄多餘空間(寫入700K - 1024 ≧)。」


RAID 1
線上「1:1」備份的觀念,去落實「同步映鏡備份」。
情況:「儲存 Disk 0 寫入 1MB →同樣  Disk 1 寫入 1MB」
因此?「Disk 0」和「Disk 1」的資料將會完全相同,沒有差異!
 (RAID 中「安全性最好」的儲存方式。DarkMan 也愛用)
物理 RIAD 陣列卡:兩個硬碟「廠牌、容量、型號、批號」最好都一樣!








 RAID 2


此為「RAID 0」的加強版本?以漢明碼(Hamming Code)的儲存特徵去「分割寫入」,來做錯誤修正(ECC,Error Correction Code),聽說會損失 ≧21% 的儲存空間去做檢查,至於實際損失?Dark Man 也沒有嘗試過。


 RAID3

多顆硬碟(可以很多顆大小不同也無所謂!)由一顆硬碟,去負責「磁碟標記法則 →  Bit-interleaving(磁碟交錯儲存)」的任務,標記其他硬碟上,所擁有的「磁碟記錄」,使得磁碟資源?能夠有效的快速存取,而且能夠無限制的增加「硬碟數量」(PS.要你的電腦硬體,能夠負擔這樣多硬碟!

RAID 4

與RAID 3 類似,但是在「磁碟檢查」上,就相當精準!因為不僅僅存入時是「Bit-interleaving」連讀取時,也再次「Bit-interleaving」檢查,聽說對硬碟耗損很嚴重?







RAID 5

擁有比較[ RAID 2 , 3 , 4 ]負擔更小的「磁碟檢查方式」最少三顆硬碟組成,似乎沒有硬碟大小限制。

(商業界認為,RAID 5 包含 RAID 0 , 1 , 3 的功能特性,相當安全。)



RAID 6

採取兩組不同的演算法?去證明硬碟存取資料沒有異常!
聽說「資訊業界」通常是「去頭去尾」來做這件事情!




RAID 7( RAID 1 + 0 )

採取兩組 RAID 1 並行,在資料備份上,顯得格外安全。

在磁碟 I / O控制單元負擔會很大!
於 I/O控制卡的晶片,要有超高水準的表現?才能達成!








RAID 1 + 0 \ RAID 0 + 1

1+0 先鏡射、後分割
0+1 先分割、後鏡射

這也很安全!聽說 0 + 1 的操作方式比較多人採用!
因為「 0+ 」在前面,能夠快速的存取資料,線上同步備份「+1」「效能好、安全性不低。」







其他

RAID 50「一套 RAID 5 + 運作 RAID 0」


RAID 53「一套 RAID 5 + 運作 RAID 3」

其他蜂巢形狀的 RAID 仍有不少「軟式磁碟管理」的玩家?天天湊合出各種組成方式,但基本上?都不脫離這些方式的混合!

取自維基百科的一段話......
RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多只在研究領域有實作,而實際應用上則以RAID5或RAID6為主。


若這樣仍舊看不懂?就回「頁頂」去看「飲水機」的圖片!

圖....(1)

大多是做給別人的知識答案,用的片段圖!




















x509 是什麼?

基本上?這 x509 可以查到的資料不多!

但 x509 貫串整個網路訊息的「「架構」」可怕吧!

不僅僅是「Root CA . key」「SSL CA . key」「憑證 public \ pricvate . KEY」「WEB Server SSL .key」「Mail UID RSA . key」

在「服務端」又有不少,與其相對照的「程式服務」?多到讓人感到訝異!

在 x509 運用上?幾乎包涵了整個網路世界!


那到底?這是什麼?

純粹只是「加密、解密」嗎?還是一種「第三證明」的機制?

但他的運用之廣泛...............令人訝異?

請看完全文之後,在開始思考,這 x509 是什麼?

A.確定自己知道「伺服器諸元」是在表達什麼?
B.確定自己清楚「伺服器諸元」是在建立什麼?
C.確定自己理解「伺服器諸元」是在運作什麼?

「 x509 」還真的很少有完整的介紹!
不管是去「爬網文」或「名嘴講師」都未曾說明........這很關鍵的 x509 是怎樣存在,這文章是抓自「網中人」的網站!



因為看到「自己許久之前,在「 Yahoo 知識家 」的一個回答!Dark Man 木然的楞ㄌ開始回頭查資料,才深覺得?問題還可以繼續深入,於是找到這篇相當讚的文章。」



X.509標準簡介
   伺服器SSL數位憑證和用戶端單位數位憑證的格式遵循 X.509 標準。 X.509 是由國際電信聯盟(ITU-T)制定的數位憑證標準。為了提供公用網絡用戶目錄資訊服務, ITU 於 1988 年制定了 X.500 系列標準。其中 X.500 和 X.509 是安全認證系統的核心, X.500 定義了一種區別命名規則,以命名樹來確保用戶名稱的唯一性; X.509 則為 X.500 用戶名稱提供了通信實體鑑別機制,並規定了實體鑑別過程中廣泛適用的憑證語法和資料介面, X.509 稱之為憑證。

   X.509 給出的鑑別框架是一種基於公開密鑰體制的鑑別業務密鑰管理。一個用戶有兩把密鑰:一把是用戶的專用密鑰(簡稱為:私鑰),另一把是其他用戶都可得到和利用的公共密鑰(簡稱為:公鑰)。用戶可用常規加密演算法(如 DES)為資訊加密,然後再用接收者的公共密鑰對 DES 進行加密並將之附於資訊之上,這樣接收者可用對應的專用密鑰打開 DES 密鎖,並對資訊解密。該鑑別框架允許用戶將其公開密鑰存放在CA的目錄項中。一個用戶如果想與另一個用戶交換秘密資訊,就可以直接從對方的目錄項中獲得相應的公開密鑰,用於各種安全服務。

   最初的 X.509 版本公佈於 1988 年,版本 3 的建議稿 1994 年公佈,在 1995 年獲得批准。本質上, X.509 憑證由用戶公共密鑰與用戶識別字組成,此外還包括版本號、憑證序列號、CA 識別字、簽名演算法標識、簽發者名稱、憑證有效期等。用戶可通過安全可靠的方式向 CA 提供其公共密鑰以獲得憑證,這樣用戶就可公開其憑證,而任何需要此用戶的公共密鑰者都能得到此憑證,並通過 CA 檢驗密鑰是否正確。這一標準的最新版本 -- X.509 版本 3 是針對包含擴展資訊的數位憑證,提供一個擴展欄位,以提供更多的靈活性及特殊環境下所需的資訊傳送。

   為了進行身份認證, X.509 標準及公共密鑰加密系統提供了一個稱作數位簽署的方案。用戶可生成一段資訊及其摘要(亦稱作資訊「指紋」)。用戶用專用密鑰對摘要加密以形成簽名,接收者用發送者的公共密鑰對簽名解密,並將之與收到的資訊「指紋」進行比較,以確定其真實性。

   目前, X.509 標準已在編排公共密鑰格式方面被廣泛接受,已用於許多網路安全應用程式,其中包括 IP 安全( Ipsec )、安全套接層( SSL )、安全電子交易( SET )、安全多媒體 INTERNET 郵件擴展( S/MIME )等。 




如何製作 SSL X.509 憑證?
目錄

   1. 前言
   2. 若妳是 root
         1. 設定 OpenSSL 的環境
         2. 製作最高層認證中心 (Root CA)
               1. 製作 Public/Private Key
               2. 填寫憑證申請書
               3. 簽發憑證
         3. 製作伺服器用的憑證
               1. 製作 Public/Private Key
               2. 填寫憑證申請書
               3. 簽發憑證
   3. 若妳是一般使用者
         1. 設定 OpenSSL 的環境
         2. 製作最高層認證中心 (Root CA)
               1. 製作 Public/Private Key
               2. 填寫憑證申請書
               3. 簽發憑證
         3. 製作伺服器用的憑證
               1. 製作 Public/Private Key
               2. 填寫憑證申請書
               3. 簽發憑證
   4. 設定伺服器
         1. HTTP
               1. Apache
         2. POP3
               1. Qpopper
         3. SMTP
               1. Sendmail
   5. 設定作業系統
         1. MS-WINDOWS
   6. 設定瀏覽器
         1. Mozilla 與 Netscape 6 以後的版本
         2. Internet Explorer
         3. Opera
         4. Lynx
   7. 設定電子郵件程式
         1. Mozilla 與 Netscape 6 以後的版本
         2. Netscape 4 及更早的版本
         3. Outlook Express 6
         4. Outlook Express 5.5
         5. Outlook Express 4/5
         6. Eudora 5.1 以後的版本
         7. Becky!
         8. Opera 郵件
   8. 觀念討論
         1. SSL/X.509 簡介
         2. 憑證無效的警告
         3. 資料?什麼資料?
         4. 所以 SSL 就安全了囉?
         5. 什麼是數位簽名?
         6. 什麼是憑證?
         7. 什麼是認證中心?
         8. 什麼是最高層認證中心?
         9. 如何填寫憑證申請書
        10. X.509 憑證制度的檢討
        11. 其她 SSL/X.509 憑證的做法
   9. 註釋
  10. 參考資料
  11. 後記

前言

版權所有 © 2002 依瑪貓。依瑪貓保有所有權利。如欲轉載、引用本文,請先詳閱旅舍依瑪版權聲明。

本文的目的為:在 Linux/*BSD/UNIX 下,用 OpenSSL ,以自己名字發行 X.509 SSL 憑證 (Certificate) 。我們會製作兩個憑證:第一步先做以自己為名 (XXX Association, YYY Corporation) ,自己簽名背書的最高層認證中心 (Root CA) ,第二步再做以伺服器為名 (www.abccompany.com) ,用第一步做的最高層認證中心 (XXX Association, YYY Corporation) 簽發的憑證 (Certificate) 。為簡化起見,我們不做中間的憑證單位,直接由最高層認證中心 (Root CA) ,來簽發憑證。

本文只討論 SSL X.509 憑證做法,不討論系統安全問題,不討論加解密的演算法,也不討論 OpenSSL 的如何安裝。我假設妳瞭解基本 Public Key/Private Key 不對稱加解密的觀念,知道什麼是 RSA/DSA 演算法。我也假設妳已經裝好了 OpenSSL ,安裝時使用下列符合 FHS[1] 標準的設定:

    ./config --prefix=/usr --openssldir=/usr/share/ssl

或安裝 RPM 或 apt 的 openssl 套件。

本文是做法教學 (HOWTO) ,所以在編排上,把做法步驟 (how) 放在最前面,觀念說明和討論 (what and why) 等,都放在文末。若妳看不懂做法,或想先學一些基本概念,請先往後翻閱,不需由前到後閱讀。

請注意:依本文製作的憑證,還是會在瀏覽器等 SSL 程式上出現憑證無效的警告。詳情請參考「SSL/X.509 簡介」與「憑證無效的警告」。

按 X.509 的規定,憑證可以用 RSA Key ,也可以用 DSA Key 。不過在 SSL 通訊中,伺服器的憑證因為要用來傳 Key ,而只有 RSA 可以傳 Key ,所以只能用 RSA 。至於認證中心,只是簽名查核用,不用傳 Key , DSA 或 RSA 都可以,但因為還有一些 SSL 程式不認得 DSA[2] ,為相容性起見,這裏我們也做成 RSA 。

要製作最高層認證中心,可以以一般使用者權限來做,不一定要是 root 。但如果做出來的最高層認證中心,是整個組織簽發憑證要用的,建議以 root 的權限來做,比較安全。同理,製作憑證,也可以以一般使用者權限來做。但如果做出來的憑證,是這個伺服器要用的,為安全起見,建議以 root 的權限來做。
若妳是 root ,要安裝給整個組織來用:
設定 OpenSSL 的環境

若妳是用上述方法安裝:

    ./config --prefix=/usr --openssldir=/usr/share/ssl

或裝 Red Hat 的 RPM , OpenSSL 的設定檔目錄會在 /usr/share/ssl 。若妳是安裝 Mandrake 的 RPM ,設定檔目錄會在 /usr/lib/ssl 。這兩個位置都不符合 FHS 的要求,資料備份起來也不方便。設定檔應該放在 /etc/ssl 下。若妳是安裝 Debian 的 apt ,設定檔目錄會在 /etc/ssl 下,不會有問題。

    # 設定相關的目錄
    mkdir -p /etc/ssl
    mkdir -p /etc/ssl/private
    chmod og-rwx /etc/ssl/private
    mkdir -p /etc/ssl/certs
    mkdir -p /etc/ssl/crl
    mkdir -p /etc/ssl/newcerts

    # 設定 OpenSSL 設定檔[3]
    mv /usr/share/ssl/openssl.cnf /etc/ssl
    ln -s /etc/ssl/openssl.cnf /usr/share/ssl/openssl.cnf

    # 設定 OpenSSL 設定檔的位置[4]
    export OPENSSL_CONF="/etc/ssl/openssl.cnf"

    # 把 OpenSSL 設定檔的位置加進 .bashrc 中[5]
    echo "# OpenSSL 設定檔的位置" >> ~/.bashrc
    echo "export OPENSSL_CONF=\"/etc/ssl/openssl.cnf\"" >> ~/.bashrc

    # 製作亂數檔[6]
    openssl rand -out /etc/ssl/private/.rand 1024
    chmod og-rwx /etc/ssl/private/.rand

然後修改 /etc/ssl/openssl.cnf ,把這一行

    dir = ./demoCA # Where everything is kept

改成這樣

    dir = /etc/ssl # Where everything is kept

製作最高層認證中心 (Root CA)

若妳之前做過最高層認證中心,不要重做,不然原來簽發的憑證,都會失效,都要重簽。除非最高層認證中心自己過期、檔案遺失、 Private Key 外洩,否則絕對不要重做最高層認證中心。

假設妳要做的最高層認證中心叫做 myrootca 。
1. 製作 Private Key (及 Public Key )

這裏我們做一支新的 Private Key 。 Public Key 可由 Private Key 推得,所以不用特別去做。

請為最高層認證中心的 Private Key 設定一個適當的密碼。

    # 製作 RSA[7] Private Key
    openssl genrsa -des3 -out /etc/ssl/private/myrootca.key 2048
    chmod og-rwx /etc/ssl/private/myrootca.key

2. 填寫憑證申請書

憑證申請書,是把妳的資料,和這個 Public Key 夾在一起,以便認證中心審核,簽上簽名用的。所以這個步驟,會問妳這個 Key 的相關資料,包括國家、城市、單位名稱、部門名稱、憑證名稱、聯絡人的信箱,以及申請的效期等等。請一一填寫。詳情請參考「什麼是憑證?」。

若妳要直接用最高層認證中心來直接當憑證用,憑證名稱 (Common Name) 請用伺服器的全名 (www.abc.com) 。詳情請參考「其她 SSL/X.509 憑證的做法」。

若不知如何填寫,請參閱「如何填寫憑證申請書」。

    # 填寫憑證申請書
    openssl req -new -key /etc/ssl/private/myrootca.key -out /tmp/myrootca.req

3. 簽發憑證

最高層認證中心因為沒有上級了,沒有人能給它簽名,只能自己給自己簽名。詳情請參考「什麼是最高層認證中心?」。

最高層認證中心最好永遠不要過期。要是過期重簽,所有原來它簽發的憑證也都要重簽,所有 SSL 程式也都要重新設定。所以我們效期簽 7305 天(大約 20年)。若不設效期的話,預設是 30 天(一個月)。

簽完憑證,憑證申請書就不用了,可以刪掉。

    # 自己給自己簽名
    openssl x509 -req -days 7305 -sha1 \
     -extfile /etc/ssl/openssl.cnf -extensions v3_ca \
     -signkey /etc/ssl/private/myrootca.key \
     -in /tmp/myrootca.req -out /etc/ssl/certs/myrootca.crt

    # 刪除憑證申請書
    rm -f /tmp/myrootca.req

這樣就好了。 Private Key 在 /etc/ssl/private/myrootca.key ,自己簽名的 Public Key 憑證在 /etc/ssl/certs/myrootca.crt 。 myrootca.key 是 Private Key ,要小心存好保護,只有 root 才能讀,權限建議 0444 。 myrootca.crt 是 Public Key 憑證,要儘量散出去,讓大家用。最好放到內部網路上,或放到網站上,讓大家自己下載,自己加進去。
製作伺服器用的憑證

假設妳要做 myhost 的憑證:
1. 製作 Private Key (及 Public Key )

這裏我們做一支新的 Private Key 。 Public Key 可由 Private Key 推得,所以不用特別去做。

請先登入到要用憑證的那臺伺服器上。

注意:伺服器的 Private Key 不要設密碼,不然 SSL 伺服器程式啟動的時候,一去讀憑證和 Private Key ,就要問一次密碼。每次重開機,依序啟動每個伺服器程式的時候,一碰到要讀 Private Key 的伺服器程式,都會停下來等鍵盤輸入密碼。要是放假沒人,或伺服器放在 IDC 機房,從遠端重開機或 Crash 後自行重開機,卻當在那裏等鍵盤敲密碼,開不了機,那就不好玩了。

    # 製作 RSA Private Key
    openssl genrsa -out /etc/ssl/private/myhost.key 2048
    chmod og-rwx /etc/ssl/private/myhost.key

2. 填寫憑證申請書

憑證申請書,是把妳的資料,和這個 Public Key 夾在一起,以便認證中心審核,簽上簽名用的。所以這個步驟,會問妳這個 Key 的相關資料,包括國家、城市、單位名稱、部門名稱、憑證名稱、聯絡人的信箱,以及申請的效期等等。這裏憑證名稱 (Common Name) 要用伺服器的全名 (www.abc.com) ,其她請一一填寫。詳情請參考「什麼是憑證?」。

若不知如何填寫,請參閱「如何填寫憑證申請書」。

    # 填寫憑證申請書
    openssl req -new -key /etc/ssl/private/myhost.key -out /tmp/myhost.req

3. 用最高層認證中心簽發憑證[8]

伺服器憑證的效期其實無所謂,過期重簽一張就好了。 SSL 程式認的是認證中心,不是憑證,所以憑證簽了就會生效,不用去設定 SSL 程式。不過為免重簽的麻煩,我們效期還是簽 3650 天(大約十年)。

簽完憑證,憑證申請書就不用了,可以刪掉。

    # 簽發憑證
    openssl x509 -req -days 3650 -sha1 \
     -extfile /etc/ssl/openssl.cnf -extensions v3_req \
     -CA /etc/ssl/certs/myrootca.crt -CAkey /etc/ssl/private/myrootca.key \
     -CAserial /etc/ssl/myrootca.srl -CAcreateserial \
     -in /tmp/myhost.req -out /etc/ssl/certs/myhost.crt

    # 刪除憑證申請書
    rm -f /tmp/myhost.req

這樣就好了。[9] Private Key 在 /etc/ssl/private/myhost.key ,要小心存好保護,只有 root 才能讀,建議權限為 0400 ; Public Key 憑證在 /etc/ssl/certs/myhost.crt ,要儘量散出去,讓大家用。這組 Public/Private Key 憑證可以做為 myhost 的 SSL 憑證,用在 HTTPS 或 POP3S/TLS/SSL 上。最好不要把檔案搬到別的地方。妳可以在設定檔裏,把憑證位置設定到這裏。 Private Key 不要到處放,以免不小心忘記保護。
若妳是一般使用者:
設定 OpenSSL 的環境

    # 設定相關的目錄
    mkdir -p ~/etc
    mkdir -p ~/etc/ssl
    mkdir -p ~/etc/ssl/private
    chmod og-rwx ~/etc/ssl/private
    mkdir -p ~/etc/ssl/certs
    mkdir -p ~/etc/ssl/crl
    mkdir -p ~/etc/ssl/newcerts
    mkdir -p ~/tmp

    # 設定 OpenSSL 設定檔[10]
    cp /usr/share/ssl/openssl.cnf ~/etc/ssl

    # 設定 OpenSSL 設定檔的位置[11]
    export OPENSSL_CONF="$HOME/etc/ssl/openssl.cnf"

    # 把 OpenSSL 設定檔的位置加進 .bashrc 中[12]
    echo "# OpenSSL 設定檔的位置" >> ~/.bashrc
    echo "export OPENSSL_CONF=\"$HOME/etc/ssl/openssl.cnf\"" >> ~/.bashrc

    # 製作亂數檔[13]
    openssl rand -out ~/etc/ssl/private/.rand 1024
    chmod og-rwx ~/etc/ssl/private/.rand

然後修改 ~/etc/ssl/openssl.cnf ,把這一行

    dir = ./demoCA # Where everything is kept

改成這樣

    dir = ~/etc/ssl # Where everything is kept

製作最高層認證中心 (Root CA)

若妳之前做過最高層認證中心,不要重做,不然原來簽發的憑證,都會失效,都要重簽。除非最高層認證中心自己過期、檔案遺失、 Private Key 外洩,否則絕對不要重做最高層認證中心。

假設妳要做的最高層認證中心叫做 myrootca 。
1. 製作 Private Key (及 Public Key )

這裏我們做一支新的 Private Key 。 Public Key 可由 Private Key 推得,所以不用特別去做。

請為最高層認證中心的 Private Key 設定一個適當的密碼。

注意:伺服器的 Private Key 不要設密碼,不然 SSL 伺服器程式啟動的時候,一去讀憑證和 Private Key ,就要問一次密碼。每次重開機,依序啟動每個伺服器程式的時候,一碰到要讀 Private Key 的伺服器程式,都會停下來等鍵盤輸入密碼。要是放假沒人,或伺服器放在 IDC 機房,從遠端重開機或 Crash 後自行重開機,卻當在那裏等鍵盤敲密碼,開不了機,那就不好玩了。

    # 製作 RSA[14] Private Key
    openssl genrsa -des3 -out ~/etc/ssl/private/myrootca.key 2048
    chmod og-rwx ~/etc/ssl/private/myrootca.key

2. 填寫憑證申請書

憑證申請書,是把妳的資料,和這個 Public Key 夾在一起,以便認證中心審核,簽上簽名用的。所以這個步驟,會問妳這個 Key 的相關資料,包括國家、城市、單位名稱、部門名稱、憑證名稱、聯絡人的信箱,以及申請的效期等等。請一一填寫。詳情請參考「什麼是憑證?」。

若不知如何填寫,請參閱「如何填寫憑證申請書」。

若妳要直接用最高層認證中心來直接當憑證用,憑證名稱 (Common Name) 請用伺服器的全名 (www.abc.com) 。詳情請參考「其她 SSL/X.509 憑證的做法」。

    # 填寫憑證申請書
    openssl req -new -key ~/etc/ssl/private/myrootca.key -out ~/tmp/myrootca.req

3. 簽發憑證

最高層認證中心因為沒有上級了,沒有人能給它簽名,只能自己給自己簽名。詳情請參考「什麼是最高層認證中心?」。

最高層認證中心最好永遠不要過期。要是過期重簽,所有原來它簽發的憑證也都要重簽,所有 SSL 程式也都要重新設定。所以我們效期簽 7305 天(大約 20年)。若不設效期的話,預設是 30 天(一個月)。

簽完憑證,憑證申請書就不用了,可以刪掉。

    # 自己給自己簽名
    openssl x509 -req -days 7305 -sha1 \
     -extfile ~/etc/ssl/openssl.cnf -extensions v3_ca \
     -signkey ~/etc/ssl/private/myrootca.key \
     -in ~/tmp/myrootca.req -out ~/etc/ssl/certs/myrootca.crt

    # 刪除憑證申請書
    rm -f ~/tmp/myrootca.req

這樣就好了。 Private Key 在 ~/etc/ssl/private/myrootca.key ,自己簽名的 Public Key 憑證在 ~/etc/ssl/certs/myrootca.crt 。 myrootca.key 是 Private Key ,要小心存好保護,只有自己才能讀,權限建議 0400 。 myrootca.crt 是 Public Key 憑證,要儘量散出去,讓大家用。最好放到網站上,讓大家自己下載,自己加進去。
製作伺服器用的憑證

假設妳要做 myhost 的憑證:
1. 製作 Private Key (及 Public Key )

這裏我們做一支新的 Private Key 。 Public Key 可由 Private Key 推得,所以不用特別去做。

    # 製作 RSA Private Key
    openssl genrsa -out ~/etc/ssl/private/myhost.key 2048
    chmod og-rwx ~/etc/ssl/private/myhost.key

2. 填寫憑證申請書

憑證申請書,是把妳的資料,和這個 Public Key 夾在一起,以便認證中心審核,簽上簽名用的。所以這個步驟,會問妳這個 Key 的相關資料,包括國家、城市、單位名稱、部門名稱、憑證名稱、聯絡人的信箱,以及申請的效期等等。這裏憑證名稱 (Common Name) 要用伺服器的全名 (www.abc.com) ,其她請一一填寫。詳情請參考「什麼是憑證?」。

若不知如何填寫,請參閱「如何填寫憑證申請書」。

    # 填寫憑證申請書
    openssl req -new -key ~/etc/ssl/private/myhost.key -out /tmp/myhost.req

3. 用最高層認證中心簽發憑證[8][15]

伺服器憑證的效期其實無所謂,過期重簽一張就好了。 SSL 程式認的是認證中心,不是憑證,所以憑證簽了就會生效,不用去設定 SSL 程式。不過為免重簽的麻煩,我們效期還是簽 3650 天(大約十年)。

簽完憑證,憑證申請書就不用了,可以刪掉。

    # 簽發憑證
    openssl x509 -req -days 3650 -sha1 \
     -extfile ~/etc/ssl/openssl.cnf -extensions v3_req \
     -CA ~/etc/ssl/certs/myrootca.crt -CAkey ~/etc/ssl/private/myrootca.key \
     -CAserial ~/etc/ssl/myrootca.srl -CAcreateserial \
     -in /tmp/myhost.req -out ~/etc/ssl/certs/myhost.crt

    # 刪除憑證申請書
    rm -f /tmp/myhost.req

這樣就好了。[16] Private Key 在 ~/etc/ssl/private/myhost.key ,要小心存好保護,只有自己才能讀,建議權限為 0400 ; Public Key 憑證在 ~/etc/ssl/certs/myhost.crt ,要儘量散出去,讓大家用。這組 Public/Private Key 憑證可以做為 myhost 的 SSL 憑證,用在 HTTPS 或 POP3S/TLS/SSL 上。
設定伺服器

常見的 SSL 通訊方式有兩種:一種是傳統的 SSL ,一種是新的 TLS 。

傳統的 SSL ,一連上伺服器,就進入 SSL ,全程加密。這樣做有一個缺點:為了不讓使用者程式混淆,要把 SSL 開在另外一個 TCP 埠,還要設定使用者的程式,改連到 SSL 的那個 TCP 埠去。 HTTP 和 HTTPS 的方式就是這樣。

新的 TLS ,則是在使用者程式連上伺服器後,下 STARTTLS 指令,如果伺服器有 SSL ,就會進入 SSL ,雙方開始加密;如果伺服器沒有 SSL ,會回報給使用者程式,雙方按原來的方式繼續連線。這樣做的好處是,使用者程式不用改設連接埠,可以自動切換,相容性高,也不用為了 SSL ,多開一個 TCP 埠。但 TLS 的缺點則是,就算不做 SSL ,還可以退回原來的方式繼續連線,那 SSL 程式查核憑證簽名的工作,有做等於沒做。只有連線加密的的優點而已,無法真正查證伺服器的身份。 SMTP 就是一個例子。

以下依不同的通訊協定,分別討論。
HTTP

HTTP 是最早用 SSL 的通訊協定。 Netscape 當初是為了加密 HTTP ,做安全網路交易,才設計了 SSL ,開一個新的 TCP 埠 443 給它專用,取名為 HTTPS ,延用至今。因此, HTTP 的 SSL 用的是傳統的方式,沒有 TLS ,要開 HTTPS(443) 。
Apache

Apache 要做 HTTPS ,可以搭配 Apache-SSL ,或搭配 mod_ssl 。請參考各自的設定說明。

要注意的是,一個 Apache 只能記一組憑證,而憑證上有伺服器的全名,瀏覽器會用來核對網站站名,所以一個 Apache ,也只能架一個 SSL 站,用一個站名。除非妳跑很多份 Apache ,各自跑在不同的 IP 或不同的 TCP 埠上,才能在同一臺伺服器上,跑好幾個 SSL 站。

以 mod_ssl 來說,安裝好後, httpd.conf 設定舉例如下:

    ......
    ## mod_ssl.c: mod_ssl 基本設定
    <IfModule mod_ssl.c>
        Listen 443
        AddType application/x-x509-ca-cert .crt
        AddType application/x-pkcs7-crl    .crl
        SSLSessionCache dbm:/var/log/apache/ssl_scache
        SSLSessionCacheTimeout 300
        SSLPassPhraseDialog builtin
        SSLMutex file:/var/log/apache/ssl_mutex
        SSLRandomSeed startup builtin
        SSLRandomSeed connect builtin
        SSLLog /var/log/apache/ssl_engine_log
        SSLLogLevel info
        SSLCipherSuite ALL:!ADH:!EXP56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/ssl/certs/myhost.crt
        SSLCertificateKeyFile /etc/ssl/private/myhost.key
        <VirtualHost *:443>
            SSLEngine on
        </VirtualHost>
    </IfModule>
    ......

設好後,檢查看 httpd.conf 有沒有設錯:

    httpd -t

要是沒有問題,重開 httpd , SSL 網站就開跑了。
POP3

POP3 可以跑兩種方式:傳統用 POP3S(995) 埠專跑 SSL ,或是用 TLS ,在原來的 POP3(110) 上,加上 STARTTLS 的功能。
Qpopper

要安裝 Qpopper ,請參考 Qpopper 的說明文件。

Qpopper 可以做 POP3S(995) ,也可以在 POP3(110) 上做 TLS 。然而,一個 Qpopper 只能開一個 TCP 埠,用一種方式跑。如果要同時做 POP3S(995) 和 POP3(110)/TLS ,要跑兩份 Qpopper,各自用不同的設定檔。

設定 /etc/qpopper.conf 如下:

    # qpopper.conf: Qpopper POP3(110)/TLS 的設定檔
    set clear-text-password         = always
    set statistics                  = true
    set tls-support                 = stls
    set tls-private-key-file        = /etc/ssl/private/myhost.key
    set tls-server-cert-file        = /etc/ssl/certs/myhost.crt

設定 /etc/qpopper-s.conf 如下:

    # qpopper-s.conf: Qpopper POP3S(995) 的設定檔
    set clear-text-password         = tls
    set statistics                  = true
    set tls-support                 = alternate-port
    set tls-private-key-file        = /etc/ssl/private/myhost.key
    set tls-server-cert-file        = /etc/ssl/certs/myhost.crt

然後用 root 的權限,分別執行:

    popper -f /etc/qpopper.conf
    popper 995 -f /etc/qpopper-s.conf

這樣就可以了。查看:

    ps ax | grep popper

妳會看到有兩個 popper ,用不同的參數在跑。查看:

    netstat -ap | grep popper

妳會看到兩個 popper ,分別在 POP3(110) 和 POP3S(995) 兩個 TCP 埠上。
SMTP

SMTP 為了讓郵件伺服器間收發信時,彼此相容,所以用 TLS ,不另開 TCP 埠。
Sendmail

為讓郵件儘量流通,不要掉信, Sendmail 能加密就加密,不會查核對方的憑證。更何況,在 TLS 下,查核對方的憑證,也沒什麼意義。

要設定 Sendmail 使用 SSL ,編譯 Sendmail 時,要在 devtools/Site/site.config.m4 檔,加入下列這幾行:

    # STARTTLS - 加入 SSL/TLS 功能
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
    APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')

編譯、安裝:

    # 編譯 Sendmail
    ./Build

    # 安裝 Sendmail
    make install

接下來要設定 Sendmail 的設定檔 /etc/mail/sendmail.cf 。如果妳是用 m4 來做設定檔,在 m4 檔 config.mc 中加入下列幾行:

    dnl Sendmail STARTTLS SSL/TLS 設定
    define(`confCACERT_PATH', `/etc/ssl/certs/')
    define(`confCACERT', `/etc/ssl/certs/myrootca.crt')
    define(`confSERVER_CERT', `/etc/ssl/certs/myhost.crt')
    define(`confSERVER_KEY', `/etc/ssl/private/myhost.key')
    define(`confCLIENT_CERT', `/etc/ssl/certs/myhost.crt')
    define(`confCLIENT_KEY', `/etc/ssl/private/myhost.key')

重做設定檔:

    m4 m4/cf.m4 config.mc > config.cf
    cp -f config.cf /etc/mail/sendmail.cf

然後重開 Sendmail 。這樣 Sendmail SMTP 就可以開始做 SSL/TLS 了。

不過設定還沒結束。

Sendmail 自 8.12.1 版以後,為加強安全性,將伺服器和使用者程式分開。伺服器程式因為要跑在低於 1024 的 SMTP(25) 埠,還是要由 root 來啟動,以 root 的權限來執行。使用者程式則不再 setuid root ,改成 setgid smmsp ,用 smmsp 群組的權限執行,再用 SMTP 連線到伺服器程式發信。

Sendmail 伺服器程式因為有 root 的權限,要讀 Private Key 不是問題。可是, Sendmail 使用者程式現在沒有了 root 的權限,發信的時候,就讀不到我們伺服器的 Private Key 了。怎麼辦?

我們不要讓 Sendmail setuid-root ,也不要開放伺服器 Private Key 的權限。我們可以另外做一組只有 smmsp 群組讀得到的憑證,給 Sendmail 的使用者程式專用:

    # 設定目錄
    mkdir -p /etc/mail/private
    chgrp smmsp /etc/mail/private
    chmod o-rwx /etc/mail/private
    mkdir -p /etc/mail/certs

    # 製作 RSA Private Key
    openssl genrsa -out /etc/mail/private/myhost-msp.key 2048
    chgrp smmsp /etc/mail/private/myhost-msp.key
    chmod o-rwx /etc/mail/private/myhost-msp.key

    # 填寫憑證申請書
    openssl req -new -key /etc/mail/private/myhost-msp.key \
     -out /tmp/myhost-msp.req

    # 簽發憑證
    openssl x509 -req -days 3650 -sha1 \
     -extfile /etc/ssl/openssl.cnf -extensions v3_req \
     -CA /etc/ssl/certs/myrootca.crt -CAkey /etc/ssl/private/myrootca.key \
     -CAserial /etc/ssl/myrootca.srl -CAcreateserial \
     -in /tmp/myhost-msp.req -out /etc/mail/certs/myhost-msp.crt

    # 刪除憑證申請書
    rm -f /tmp/myhost-msp.req

然後設定 m4 檔 submic.mc 如下:

    ......
    dnl Sendmail STARTTLS SSL/TLS support
    define(`confCACERT_PATH', `/etc/ssl/certs')
    define(`confCACERT', `/etc/ssl/certs/myrootca.crt')
    define(`confCLIENT_CERT', `/etc/mail/certs/myhost-msp.crt')
    define(`confCLIENT_KEY', `/etc/mail/private/myhost-msp.key')
    define(`confDONT_BLAME_SENDMAIL', `GroupReadableKeyFile')
    ......

重做設定檔:

    m4 m4/cf.m4 submit.mc > submit.cf
    cp -f submit.cf /etc/mail/submit.cf

這樣就可以了。這不是設定 Sendmail 伺服器程式,不用重開 Sendmail 。 ^_*' 妳可以寄一封信給自己,然後看看系統郵件記錄 maillog ,有沒有成功使用 SSL 。

    ......
    Sep 14 04:19:24 rinse sendmail[12093]: STARTTLS=client, relay=localhost.localdom
    ain., version=TLSv1/SSLv3, verify=OK, cipher=EDH-RSA-DES-CBC3-SHA, bits=168/168
    ......

設定作業系統

有些作業系統,設有系統公用的憑證庫,把認得的憑證、認證中心放在一起。我們把我們自製的認證中心,加進系統公用的憑證庫,使用這個憑證庫的程式,就可以查得到了。
MS-WINDOWS

MS-WINDOWS 設有共用的憑證庫。從 [控制台] 進去,裏面有 [網際網路選項] (或 [Internet 選項] )。在上面點兩下,會打開一個[網際網路 內容] (或 [Internet 內容] )的視窗。在 [內容] 那一頁裏,中間有一區 [憑證] ,裏面有一個 [憑證(C)...] 的按鈕。按一下那個按鈕,會打開一個視窗,標題是 [憑證] 。這裏就是 MS-WINDOWS 管理憑證的地方。[17]

要加進我們的最高層認證中心,將我們的最高層認證中心 myrootca.crt 複製到 WINDOWS 上。點兩下打開 myrootca.crt ,會跳出一個 [憑證] 的視窗,裏面會列出憑證的內容。按下面的 [安裝憑證]按鈕,會跑出一個 [憑證管理員匯入精靈] 。一直按 [下一步] ,就會加進去了。

我所知道,會使用系統憑證庫的 WINDOWS 程式,有 Internet Exporer 、 Outlook Express 、 Outlook 、 Symantec pcAnywhere 。只要把我們自製的認證中心加進來,這些程式都可以用得到。
設定瀏覽器
Mozilla 與 Netscape 6 以後的版本

Mozilla 與 Netscape 6 以後的版本,有一個瀏覽器和郵件程式共用的憑證庫。從工具列上的 [編輯(E)] 、 [個人功能設定(E)] 進去後,會跳出 [功能設定] 的視窗。展開視窗左邊的 [個人及安全設定] ,點選裏面的 [認證] ,右邊的標題會切換成 [認證] ,中間會有一個 [管理認證...] 的按鈕。按下按鈕,會再跳出一個 [認證管理員] 的視窗。這裏就是 Mozilla 與 Netscape 管理憑證的地方。[18][19]

要加進我們的最高層認證中心,將我們的最高層認證中心 myrootca.crt 放到網站上,用 Mozilla/Netscape 從 web 連到該網址後,會出現一個 [下載認證中] 的視窗。在 [信認此認證以識別網站] 、 [信認此認證以識別郵件用戶] 、 [信認此認證以識別軟體製造商] 三個選項上都打勾,然後按 [確定] ,就會加進去了。

如果妳用的是 MS-WINDOWS 下的 Mozilla/Netscape ,妳也可以把最高層認證中心複製到 WINDOWS 上,網址列直接打上檔案路徑,也可以把它加進去。

在 Mozilla/Netscape 瀏覽器加進來的認證中心,也會用在 Mozilla 信件或 Netscape Mail & Newsgroups 裏,來查核憑證。
Internet Explorer

Internet Explorer 使用 WINDOWS 系統的憑證庫,妳只要把認證中心加進系統的憑證庫就可以了。詳情請參考「設定 MS-WINDOWS」。
Opera

Opera 截至目前為止 (6.05) ,只支援 RSA ,不支援 DSA 。因此,只能匯入 RSA 認證中心,不能匯入 DSA 認證中心。

打開 Opera ,從工具列上的 [檔案(F)] 、 [功能設定(R)...] 進去後,會打開 [功能設定] 的視窗。在視窗左邊的選單中,選最下面的 [安全性] 時,右上角會出現 [認證機構(A)...] 的按鈕。按下按鈕,會再打開 [認證機構] 的視窗。按一下右上角的 [匯入(I)...] 按鈕,找到我們的最高層認證中心,按 [開啟] ,就會加進去了。
Lynx

Lynx 截至目前為止 (2.8.4) ,不會檢查伺服器的 SSL 憑證。
設定電子郵件程式
Mozilla 與 Netscape 6 以後的版本

要設定使用 SSL 收信,啟動 Mozilla 信件與 News 或 Netscape Mail & Newsgroups 後,由工具列上的 [編輯(E)] 、 [信件與 News 帳號設定(M)...] 按下去,會打開一個 [信件與 News 帳號設定] 的視窗。在左邊選擇妳要設定的帳號下的 [伺服器設定] 。視窗右邊的 [伺服器名稱:] 中,要填上 POP3 郵件伺服器的完整名稱。在右下方 [伺服器設定] 裏的 [使用 SSL 安全連線] 選項上打勾,然後按 [確定] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,啟動 Mozilla 信件與 News 或 Netscape Mail & Newsgroups 後,由工具列上的 [編輯(E)] 、 [信件與 News 帳號設定(M)...] 按下去,會打開一個 [信件與 News 帳號設定] 的視窗。在左邊選擇 [SMTP 外寄郵件伺服器] ,右邊標題會變成 [SMTP 外送郵件伺服器設定] 。右邊中間有一個 [使用 SSL 安全連線] ,選 [若可以時] 。然後按 [確定] 。這樣就會用 SSL 寄信了。

憑證查核的部份,Mozilla 信件與 News 或 Netscape Mail & Newsgroups 使用 Mozilla 或 Netscape 6 的憑證庫,妳只要把認證中心加進 Mozilla 或 Netscape 6 就可以了。詳情請參考Mozilla 與 Netscape 6 的設定。
Netscape 4 及更早的版本

Netscape 4 及更早的版本不支援 SSL 。
Outlook Express 6

要設定使用 SSL 收信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳戶(A)...] 按下去,會打開一個 [網際網路帳戶] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [內送郵件 - POP3(I):] 中,要填上 POP3 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [內送郵件 - POP3(I):] 下面的 [這個伺服器需要安全連線 - SSL(C)] 的選項上打勾。然後按 [確定] 、 [關閉] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳戶(A)...] 按下去,會打開一個 [網際網路帳戶] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [外寄郵件 - SMTP(U):] 中,要填上 SMTP 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [內送郵件 - SMTP(O):] 下面的 [這個伺服器需要安全連線 - SSL(Q)] 的選項上打勾。然後按 [確定] 、 [關閉] 。這樣就會用 SSL 寄信了。

憑證查核的部份, Outlook Express 6 使用 WINDOWS 系統的憑證庫,妳只要把認證中心加進系統的憑證庫就可以了。詳情請參考「設定 MS-WINDOWS」。
Outlook Express 5.5

要設定使用 SSL 收信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳號(A)...] 按下去,會打開一個 [Internet 帳號] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [內送郵件 - POP3(I):] 中,要填上 POP3 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [內送郵件 - POP3(I):] 下面的 [這個伺服器需要安全連線 - SSL(C)] 的選項上打勾。然後按 [確定] 、 [關閉] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳號(A)...] 按下去,會打開一個 [Internet 帳號] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [外寄郵件 - SMTP(U):] 中,要填上 SMTP 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [外寄郵件 - SMTP(O):] 下面的 [這個伺服器需要安全連線 - SSL(Q)] 的選項上打勾。然後按 [確定] 、 [關閉] 。這樣就會用 SSL 寄信了。

憑證查核的部份, Outlook Express 5.5 使用 WINDOWS 系統的憑證庫,妳只要把認證中心加進系統的憑證庫就可以了。詳情請參考「設定 MS-WINDOWS」。
Outlook Express 4 或 5

要設定使用 SSL 收信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳號(A)...] 按下去,會打開一個 [Internet 帳號] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [內送郵件 - POP3(I):] 中,要填上 POP3 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [內送郵件 - POP3(I):] 下面的 [這個伺服器需要安全連線 - SSL(C)] 的選項上打勾。然後按 [確定] 、 [結束] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,啟動 Outlook Express 後,由工具列上的 [工具(T)] 、 [帳號(A)...] 按下去,會打開一個 [Internet 帳號] 的視窗。在視窗左邊選擇要設定的帳號,然後按下右邊的 [內容(P)] 按鈕,會打開另一個 [某某某 內容] 的視窗。按一下上方的 [伺服器] ,翻到 [伺服器] 那一頁。在 [外寄郵件 - SMTP(U):] 中,要填上 SMTP 郵件伺服器的完整名稱。再按一下上方的[進階] ,翻到 [進階] 那一頁。在 [外寄郵件 - SMTP(O):] 下面的 [這個伺服器需要安全連線 - SSL(Q)] 的選項上打勾。然後按 [確定] 、 [結束] 。這樣就會用 SSL 寄信了。

Outlook Express 4 與 5 不會檢查伺服器的 SSL 憑證。
Eudora 5.1 以後的版本

Eudora 的 SSL 設計不是很好。

Eudora 5.1 以後有一個 [Certificate Infomation Manager] 憑證管理員,可以管理 Eudora 的憑證。可是很奇怪,沒有辦法直接進入 [Certificate Infomation Manager][20] ,要先用 SSL 收一次信,才能進入 [Certificate Infomation Manager] 。[21]

收信的時候, Eudora 會用 STARTTLS 試探看能不能用 SSL 收信,如果可以的話就切換成 SSL ,不然就繼續用普通的 POP3 收信,所以不用特別設定收信的方式。不過這樣反而會造成困擾:如果切換成 SSL 以後, Eudora 卻查不到對方的憑證,反而會演變成憑證無效,停止收信。這時候,原本 POP3 正常收的信,伺服器加上 SSL 後, Eudora 突然不能收信,會造成使用者很大的困擾。這是 Eudora 另一個不良的設計。

請注意: OpenSSL 預設是做 PEM 格式的憑證,所以先前我們做的都是 PEM 格式的憑證。但 Eudora 只能匯入 DER 憑證格式。 PEM 只是把 DER 用 Base64 編碼,以方便在網路上傳送,放在網頁上或用 E-mail 寄。我們可以用 OpenSSL 把 PEM 轉 DER :

    # 將最高層認證中心轉成 DER 檔
    openssl x509 -in myrootca.crt -outform der -out myrootca-der.crt

要設定使用 SSL 收信,啟動 Eudora 後,由工具列上的 [Tools] 、 [Options...] 按下去,會打開一個 [Options] 的視窗。在左邊的 [Category] 中選擇 [Checking Mail] 。視窗右邊的 [Mail Server:] 中,要填上 POP3 郵件伺服器的完整名稱。右下方有一個 [Secure Sockets when Receiving:] 的選單,選 [If available, STARTTLS] 後,按 [OK] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,啟動 Eudora 後,由工具列上的 [Tools] 、 [Options...] 按下去,會打開一個 [Options] 的視窗。在左邊的 [Category] 中選擇 [Sending Mail] 。視窗右邊的 [Mail Server:] 中,要填上 SMTP 郵件伺服器的完整名稱。右下方有一個 [Secure Sockets when Receiving:] 的選單,選 [If available, STARTTLS] 後,按 [OK] 。這樣就會用 SSL 寄信了。

要加入我們的認證中心,要先收一次信。視窗下面會顯示 [SSL Negotiation Failed: Certificate Error: Cert Chain not trusted. ...] 的錯誤訊息。依前述方式回到 [Tools] 、 [Options...] 、 [Category] 、 [Checking Mail] 、 [Secure Sockets when Receiving:] 後,按一下 [Last SSL Info] ,以開啟 [Eudora SSL Connection Infomation Manager] 的視窗,顯示剛剛收到的憑證內容。按一下下面的 [Certificate Infomation Manger] 按鈕,會再跳出一個 [Certificate Infomation Manger] 的視窗。按一下右下角的 [Import Certificate] ,找到我們的最高層認證中心的 DER 檔 myrootca-der.crt ,按 [開啟] ,就會加進去了。[22]
Becky!

Becky! 目前不支援 SSL 。
Opera 郵件

要設定使用 SSL 收信,打開 Opera ,從工具列上的 [檔案(F)] 、 [功能設定(R)...] 進去後,會打開 [功能設定] 的視窗。在視窗左邊的選單中,選 [電子郵件] 時,右邊會出現 [使用 Opera 的帳號(O)] 的選單。選擇要設定的帳號,然後按旁邊的 [更改(P)...] ,會跳出一個 [郵件帳號設定] 的視窗。在上面的 [伺服器] 上按一下,切換到伺服器那一頁,在 [內收郵件] 裏 [採用 TLS 安全性協定] 的地方打勾,按 [確定] 、 [確定] 。這樣就會用 SSL 收信了。

要設定使用 SSL 寄信,打開 Opera ,從工具列上的 [檔案(F)] 、 [功能設定(R)...] 進去後,會打開 [功能設定] 的視窗。在視窗左邊的選單中,選 [電子郵件] 時,右邊會出現 [使用 Opera 的帳號(O)] 的選單。選擇要設定的帳號,然後按旁邊的 [更改(P)...] ,會跳出一個 [郵件帳號設定] 的視窗。在上面的 [伺服器] 上按一下,切換到伺服器那一頁,在 [外寄郵件] 裏 [採用 TLS 安全性協定] 的地方打勾,按 [確定] 、 [確定] 。這樣就會用 SSL 寄信了。

憑證查核的部份, Opera 郵件使用 Opera 的憑證庫,妳只要把認證中心加進 Opera 就可以了。詳情請參考 Opera 的設定。
觀念討論
SSL/X.509 簡介
X.509 的金字塔制度
X.509 的金字塔制度

SSL 採用的是 X.509 ,由上而下金字塔式的憑證制度。

在 X.509 中,每一個合格的憑證上,都會有一個簽名。最下層的憑證上,會有一個認證中心 (CA) 的簽名,表示這個認證中心 (CA) 檢查過,確認所有者資料無誤。中間的認證中心 (CA) 上,也會有管轄它的最高層認證中心 (Root CA) 的簽名,表示最高層認證中心授權給它,可以簽發別人的憑證。只有最高層認證中心上,因為它已經是最大,沒有再上層可以給它簽名了,所以只好自己簽自己,憑證上的簽名是自己簽的。

程式自己會認得幾家可靠的認證中心 (CA) ,碰到 SSL 網站時,雖然不認得伺服器的憑證 (Certificate) ,但只要那個憑證上,有自己認得的認證中心 (CA) 簽名保證過,那個憑證就沒有問題。
當程式碰到合格的 SSL 憑證
當程式碰到合格的 SSL 憑證

但如果那個伺服器憑證上,沒有自己認得的認證中心 (CA) 簽名保證過,伺服器憑證就有可能有問題,會出現憑證無效的警告。
當程式碰到有問題的 SSL 憑證
當程式碰到有問題的 SSL 憑證
憑證無效的警告

本文第一步討論的是如何自製最高層認證中心 (Root CA) 。因為這是我們自己的認證中心,程式不認得,所以第二步簽發的憑證 (Certificate) 上的簽名,程式自然也不認得,一定會出現憑證無效的警告。
當程式碰到我們自製的認證中心
當程式碰到我們自製的認證中心

若不想看到這個警告,就要先讓程式認得我們自己的認證中心 (CA) 。這時,第二步簽發的憑證 (Certificate) ,程式認得上面認證中心 (CA) 的簽名,就不會再出現憑證無效的警告。
把我們自己的認證中心加上去
把我們自己的認證中心加上去

詳細做法,請參考「設定作業系統」、「設定瀏覽器」與「設定電子郵件程式」各節。

請注意:這個方法,因為要在程式上,手動加入自己的認證中心 (CA) ,所以只有自己內部用的網站,使用者和程式數目都有限,可以自己一個一個去設認證中心 (CA) 的情況下,方才可行。若要用在公開的網站上,因為上網者來自各個不同的地方,妳也都不認識,沒有辦法在她們的電腦上,都加進自己的認證中心,就沒有辦法了。這一點受限於 X.509 的規定,愛莫能助。若真的很在意 SSL 憑證無效警告的問題,又需要在公開的網站使用 SSL ,請向各家簽證公司申請,年費大概幾萬元臺幣。
資料?什麼資料?

「等等,剛剛圖中的最後一個步驟,『沒問題,這是給妳的資料』。使用者還沒有填什麼資料啊!程式怎麼可以自己亂給對方資料呢?到底給了什麼資料?程式會不會自己給對方 E-mail 、信用卡號碼、身份證字號、密碼?」

程式傳給對方的,是接下來通信時,對稱式加解密用的 Key 。

Public/Private Key 的不對稱加解密法 (Asymmetric Encryption) ,可以把 Public Key 告訴全世界, Private Key 自己秘密保管好,要傳資料給妳的話,只要用妳的 Public Key 加密,全世界就只有妳的 Private Key 才解得開。這種不對稱加解密法雖然很安全,但是加解密的速度很慢。反過來說,傳統的對稱式加解密法 (Symmetric Encryption) ,雖然加解密速度快多了,但是雙方都要握有同一個 Key ,把 Key 傳給對方途中,會有被攔截監聽的危險。

SSL 採用兩階段式的作法:第一階段,先用 Public/Private Key 不對稱加解密法,傳給對方「接下來傳真正資料時,對稱式加解密法要用的 Key 」。第二階段,再用這個對稱式加解密的 Key ,來傳原本要傳的資料。真正傳資料時用的,其實是對稱式加解密法。這個傳資料用的對稱 Key 是用亂數取的,再用 Public/Private Key 法傳給對方,每一次連線時都不一樣。用這種兩階段式的作法, Key 是用不對稱加解密法傳給對方的,不用擔心中途被欄截,也能夠享受合理的加解密速度。
所以 SSL 就安全了囉?

「所以,只要對方 SSL 網站的憑證合格,上面有可靠的認證中心 (CA) 簽名,把我的信用卡資料傳過去就安全囉?」

不對。

仔細看看前段「 SSL/X.509 簡介 」,就會注意到, SSL/X.509 規定中,認證中心 (CA) 的簽名所保證的,只有「這個 Public Key 憑證的確是屬於這家公司的這個伺服器」而已。也就是說,它只保證「妳送的信用卡號碼會確確實實交到這家公司的這個伺服器手中,不怕被任何人中途攔截監聽」。但這並不代表「這家公司是優良企業,收到妳的信用卡資料後,不會濫用,不會側錄下來,不會多刷兩筆,不會轉手把資料賣給別家公司」 ,也不代表「這家公司的伺服器安全防護做得很好,不會被人入侵,不會被人偷偷安裝側錄上網資料的程式」。

沒錯, SSL 只能保證收到的 Public Key 憑證不是偽造的,但不能保證這家公司本身沒有問題。就算這家公司本身沒有問題,也不能保證這家公司內部會不會成為別人入侵、竊取資料的目標。

「那怎麼辦?怎麼樣才能算安全?才能放心把資料傳過去?」

就像在實體世界,跟不認識的商店買東西時,一定會保持戒心一樣,在網路上和任何網站交易,也一定要保持戒心,除了要考慮妳平常信不信任這個網站外,也要考慮妳傳過去的資料重不重要。舉例來說,留言板、討論區、網路投票等等,不是很私人的資料,可以放心傳過去沒問題;但如果是真實姓名、手機號碼、家裏電話、信用卡號碼, E-mail 等等,就只能傳給自己信任的網站了。
什麼是數位簽名?

數位簽名是用 Private Key ,針對某一段資料,用 Digest Hash 演算法(如 SHA1 )做出來的一段 Digest 摘要碼。只要原來的資料有所不同,演算出來的 Digest 摘要碼就會跟著變動。用 Private Key 做出來的 Digest 摘要碼,可以用它的 Public Key 來檢查。只要用它的 Public Key ,檢查 Digest 摘要碼和那一段資料符不符合,就可以知道資料有沒有中途被竄改過,是不是這個 Private Key 當初簽的那一段資料。

這個性質很像合約中,在整份合約上大大簽一個名一樣,人家認得妳簽名的筆跡,日後只要合約有任何塗改,一認便知。所以我們把它叫做數位簽名。

因為數位簽名可以用來檢查資料有沒有被竄改,所以我們把它用在憑證上,認證中心檢查過 Public Key 的所有人,和 Key 上記載的所有人資料相符後,用認證中心自己的 Private Key ,在這些資料上面做個數位簽名,表示證明。日後收到這個 Public Key 的人,只要檢查上面認證中心的簽名,就可以知道這個 Key ,和它上面所載的所有人資料相不相符,是不是真的是這家公司的 Key 。也就知道,連上的這個伺服器,是不是真的是這家公司的伺服器了。
什麼是憑證?

憑證的原文是 Certificate ,是附上所有人 (owner) 的資料(公司名稱、伺服器名稱、個人真實姓名、連絡 E-mail 、通訊地址等資料),後面加上數位簽名的 Public Key 。憑證上會附有幾個數位簽名,代表這些簽名的人,確認過這個 Public Key 的所有人,和憑證上所載的資料相符,沒有假造。

在 X.509 中,最下層每一個合格的憑證 (Certificate) 上,會有一個認證中心 (CA) 的簽名,表示這個認證中心 (CA) 檢查過,確認憑證上的所有者資料無誤。當程式碰到沒見過的憑證時,只要檢查憑證上認證中心 (CA) 的簽名無誤,即代表這個認證中心 (CA) 查核過這個憑證 (Certificate) ,憑證上的資料無誤。
什麼是認證中心?

認證中心的原文是 CA ,是 Certificate Authority 的縮寫,在微軟繁體中文 WINDOWS 上譯成「憑證授權」,「憑證授權」完全是逐字翻譯,意思不通,不用。認證中心是 X.509 的一環。認證中心也是一種憑證,上面附有認證中心本身的資料,但不是用來加解密,而是用來簽發憑證,證明憑證所有人和憑證上所載的資料無誤。請參見「SSL/X.509 簡介」的附圖。

每一個合格的認證中心 (CA) (微軟繁體中文 WINDOWS 上譯成「中繼憑證授權」,意思不通)上,會有一個管轄它的最高層認證中心 (Root CA) 的簽名,表示最高層認證中心授權給它,可以簽發別人的憑證。當程式碰到沒見過的憑證,憑證上簽名的認證中心 (CA) 也沒見過時,只要檢查認證中心上附的最高層認證中心 (Root CA) 的簽名無誤,即代表這個最高層認證中心 (Root CA) ,認為這個認證中心 (CA) 的憑證簽發過程很仔細,檢查資料很詳實,所以授權給它,准許它可以簽發憑證 (Certificate) 。所以這個認證中心 (CA) 簽發的憑證 (Certificate) ,憑證上的資料也沒有問題。
什麼是最高層認證中心?

最高層認證中心的原文是 Root CA ,在微軟繁體中文 WINDOWS 上譯成「根目錄憑證授權」。「根目錄」只是照 Root 這個字逐字翻譯,意思不通,不用。最高層認證中心是 X.509 的一環。v也是認證中心 (CA) ,和一般認證中心的差別在於,它不會直接用來簽發憑證,而是授權給一些中間的認證中心,讓這些中間的認證中心來簽發憑證。請參見「SSL/X.509 簡介」的附圖。

最高層認證中心,因為已經是最大,沒有再上層可以給它簽名了,所以憑證上的是自己的簽名,不是別人的簽名。因為最高層認證中心沒有再上面的簽名了,沒有人可以保證最高層認證中心本身有沒有問題,沒有辦法再往上檢查,所以程式只能事先就認得一些可靠的最高層認證中心,事先就知道一些可靠的最高層認證中心的 Public Key 。

最高層認證中心只能由一些著名、可靠的公司來擔任,因為沒有辦法再往上查驗。如果程式被加進一些不可靠的最高層認證中心,接下來碰到它簽下來的憑證,都會有問題,整個程式的安全都會被破壞。所以在 X.509 下, SSL 程式一定要好好保護最高層認證中心,一定要再三確認,不可以隨便讓人手動加進最高層認證中心。
如何填寫憑證申請書

如果妳不知道該如何填寫憑證申請書,請參考以下範例:

    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:TW
    State or Province Name (full name) [Some-State]:Taiwan
    Locality Name (eg, city) []:Taipei City
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Tavern IMACAT's
    Organizational Unit Name (eg, section) []:Owner
    Common Name (eg, YOUR name) []:Tavern IMACAT's
    Email Address []:imacat@mail.imacat.idv.tw

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

   1. 所有資料都要填英文 (ASCII 字集) 。 X.509 憑證只接受英文 ASCII 字集的字。
   2. Country Name 一定要是大寫的雙字母國碼,臺灣是 TW ,臺灣以外的地方,請參考 ISO-3166 的標準雙字母國碼。
   3. State Name 是國名或省名,不可以填國碼。臺灣填 Taiwan 即可。
   4. Locality Name 是地名,填所在地縣市名即可。
   5. Organization Name 是組織單位名稱,填公司行號,或學校局處的名稱。
   6. Organizational Unit Name 是部門名稱,填公司部門名稱,或學校局處的單位名稱。
   7. Common Name 是憑證的名稱。若是最上層憑證機構,請填上前面填的組織單位名稱,後面可以加上 RSA/2048 ,以便日後辨認憑證的性質。若是伺服器憑證,請填上伺服器的全名 (www.abc.com) 。若是 E-mail 憑證,請填上妳的 E-mail 。
   8. E-mail Address 是申請單位的連絡信箱,請填上妳的聯絡用 E-mail 。
   9. A challenge password 是申請書的密碼。不過申請書不用設密碼,所以不填。
  10. An optional company name 是憑證代辦公司的名稱,也不用填。

X.509 憑證制度的檢討

X.509 憑證制度,是靠事先認得一些可靠的最高層認證中心,再一層一層簽發下來的金字塔型結構。這樣的制度,很像信用卡制度或身份證制度:
X.509 制度
X.509 制度
信用卡制度
信用卡制度
身份證制度
身份證制度

這樣的金字塔結構,有一些好處,也有一些缺點。

好處是在於,在無限寬廣的網際網路上,我們根本不知道會碰到什麼樣的網站,所以根本也無從查認每一個收到的 Public Key 有沒有問題,是不是真的是這家公司的網站,我是不是真的是跟這家公司打交道。在 X.509 下,只要我們預先認得幾家可靠的最高層認證中心就好了。碰到不認識的 Public Key 時,只要一層一層往上追溯,如果最後追溯得到一個我們認得的可靠的最高層認證中心,那這個 Public Key 就沒有問題了。這樣的做法,簡化了無限寬廣的網際網路上,確認彼此身份的困難性。

缺點則在於,因為 X.509 是金字塔結構,最高層認證中心 (Root CA) 手中握有整個網際網路信任關係的關鍵,權力太大了。龐大的權力,伴隨著的是龐大的利益。曾經跟認證中心打過交道(如 VeriSign 、 HiTrust 網際威信、Taica 臺灣網路認證等)的人都知道,申請簽發 SSL 憑證非常貴,一年年費要好幾萬,普通人或中小企業,需要 SSL 網站加密的時候,根本就負擔不起。而因為金字塔頂層的最高層認證中心,是壟斷事業,數目很少,不會有什麼競爭,所以大型的最高層認證中心姿態都很高,年費一直降不下來。但若不靠這些最高層認證中心,自己來發證,程式沒有內建我們自製的認證中心,連到 SSL 站上,一定會出現警告。小組織裏內部自用的 SSL 伺服器還沒有問題,我們可以自己加入自製的認證中心,但大型公開的伺服器(像公司網站)上,不可能要不認識的上網者信任我們的認證中心,把我們的認證中心加進去,這時候資料的安全,就會亮起紅燈了。到頭來,我們還是得回過頭去,求這些大型的認證中心,乖乖繳一年好幾萬的年費。

這真的沒有辦法嗎?

答案是否定的。即使是 X.509 的金字塔結構,至少就有兩條路:第一條路是像信用卡制度一樣。信用卡制度也是金字塔結構,頂層的信用卡集團也是壟斷事業,數目很少,可是信用卡的年費只有幾千塊錢。有競爭就會降價,但沒有競爭,並不代表價格一定降不下來。價格其實還是卡在認證中心如何定價,信用卡制度就是一例。第二是像身份證一樣,由政府出面經營,以政府的信用擔保、審核,把它變成免費的公用事業,讓大家有錢沒錢,都可以來用安全的網站交易。

不過,仔細想想,我們是不是一定要用 X.509 這種金字塔制度,任這些頂層的認證中心宰割,予取予求呢?

其實憑證有好幾種。有一種叫做 PGP ,是採用「信任網 (Web of Trust) 」的模式,建立信任關係。 PGP 的信任網就像人際關係網一樣:我認得妳,妳認得她,所以我只要請妳來認她就好了。
PGP 的信任網
PGP 的信任網

在 PGP 信任網模式下,我們不需要一個最高層認證中心,給每個人核發憑證,才能取得 Public Key 的安全性。我們只要信任我們自己的 Public Key 憑證,用自己的憑證去簽認識的 Public Key 的憑證,別人也用他們自己的憑證,去簽他們認識的人的憑證,往外一層一層擴散出去,互相信任。碰到不認得的憑證時,只要能夠從他憑證上的簽名中,回溯到可信任的人的憑證身上,就可以了。其實事情本來就是這樣。我們為什麼要向別人繳一年好幾萬的年費,還要別人簽名,才能信任自己的憑證呢?

不過,不合理的是, SSL 規定,要用 X.509 。
其她 SSL/X.509 憑證的做法

在本文中,我們做了兩個憑證:一個是 Root CA 最上層認證中心,一個是用這個最高層認證中心簽發的憑證。

其實完整的話,應該要做三層(參考:「SSL/X.509 簡介」中的附圖):最高層認證中心 (Root CA) ,中間的認證中心 (CA) ,最後才簽發下面的憑證。可是我不會做中間的認證中心, ^^; 完整的三層挺複雜的。而且,最高層認證中心 (Root CA) 只是「不會」用來直接簽憑證,而不是「不能」用來直接簽憑證,最高層認證中心 (Root CA) 簽的憑證,一樣有效。更何況,我們通常都只有幾台伺服器,只需要幾個憑證就好,不需要授權好幾個中間的認證中心,來讓它們簽憑證。所以我們就省略了中間的認證中心,直接用最高層認證中心 (Root CA) 來簽發憑證 (Certificate) 。

其實還有兩個不那麼麻煩的做法。 Apache mod_ssl 有隨附一個「印度蛇油公司 (Snake Oil) 」的最高層認證中心 (Root CA) ,內有印度蛇油 (Snake Oil CA) 的 Private Key ,可以直接用印度蛇油認證中心 (Snake Oil CA) 的名義來簽發憑證。只要在編譯 apache 時, make 以後打 make certificate ,就會自動用印度蛇油認證中心,簽發 Apache 網站所需的伺服器憑證了。可是,基於安全上的理由,妳只能夠用這張簽出來的網站憑證,絕對不可以把印度蛇油認證中心 (Snake Oil CA) ,加到程式認得的認證中心中。因為印度蛇油的 Private Key 是隨著 Apache mod_ssl 公開散佈的,任何人只要下載 Apache mod_ssl ,裏面就會有印度蛇油的 Private Key ,就可以用印度蛇油的名義來簽憑證,自稱為某某公司。印度蛇油的可靠度是零,絕對不要加進程式中。(所以才叫做印度蛇油 Snake Oil ,騙人的。)

另一個方法,是只做一個最高層認證中心 (Root CA) ,直接用這個最高層認證中心,來當伺服器的憑證。因為最高層認證中心 (Root CA) 本身,也是一個憑證,所以當然也可以用,一樣有效。這時候,最高層認證中心的所有人名稱,就要用伺服器的名稱 (www.abc.com) ,而不是單位的名稱 (ABC Corporation.) 。這個方法,適合只有一個伺服器,只需要一個憑證,而且不在乎憑證名稱的人。用 Windows NT/2000 的 Certificate Server 憑證伺服器,可以做出這種憑證。但如果有好幾臺伺服器,每個憑證都要分別去加到每臺電腦上,這個方法就不大方便了。
exit
註釋

   1. FHS 是指 Filesystem Hierarchy Standard 檔案系統階層標準,是一個 Unix 下,目錄及檔案存放位置的標準規定,以方便系統管理員管理,方便不同程式間互相搭配整合。目前大多數 Linux 版本(如 Debian 、 Red Hat 、 Mandrake 等)都已支援 FHS 。更進一步的資料請參考 FHS 的網站 http://www.pathname.com/fhs/ 。 (回正文)
   2. Opera 截至目前為止 (6.05) ,只支援 RSA ,不支援 DSA 。 (回正文)
   3. 在 Mandrake 下裝 RPM 時,請改用:

          mv /usr/lib/ssl/openssl.cnf /etc/ssl
          ln -s /etc/ssl/openssl.cnf /usr/lib/ssl/openssl.cnf

      (回正文)
   4. 這是 bash 或 zsh 的指令。 csh 或 tcsh 下,請改用:

          setenv OPENSSL_CONF "/etc/ssl/openssl.cnf"

      (回正文)
   5. 這樣以後登入的時候,都能夠自動設定 OPENSSL_CONF 。這是用 bash 登入的情形,若用 csh 或 tcsh 登入,請改用:

          echo "# OpenSSL 設定檔的位置" >> ~/.cshrc
          echo "setenv OPENSSL_CONF \"/etc/ssl/openssl.cnf\"" >> ~/.cshrc

      若用 zsh 登入,請改用:

          echo "# OpenSSL 設定檔的位置" >> ~/.zshenv
          echo "export OPENSSL_CONF=\"/etc/ssl/openssl.cnf\"" >> ~/.zshenv

      (回正文)
   6. (感謝網中人 (netman) 提供)若妳安裝的是 Red Hat 的 openssl RPM ,在這裏會出一點問題。 Red Hat 的 openssl 做 rand 指令,配合 -out 參數時,參數解析會出錯,無法執行。目前我還沒有看到網路上有人提過這件事。解決方法之一,是自己編譯、安裝 OpenSSL 。這其實很簡單。在 Linux 上,步驟如下:

          ./config shared --prefix=/usr --openssldir=/usr/share/ssl
          make
          make install

      在其她作業系統 (*BSD/UNIX) 上,步驟如下:

          ./config --prefix=/usr --openssldir=/usr/share/ssl
          make
          make install

      如果不想自己編譯、安裝 OpenSSL ,另一個解決方法,由網中人提供,則是避開 -out 參數,改用輸出重導向:

          openssl rand 1024 > /etc/ssl/private/.rand 

      Mandrake 和 Debian 的 openssl 套件沒有這個問題。 (回正文)
   7. 若要做成 DSA Key,請改用:

          # 製作 DSA 參數檔
          openssl dsaparam -out /tmp/dsaparam 2048

          # 製作 DSA Private Key
          openssl gendsa -out /etc/ssl/private/myrootca.key /tmp/dsaparam
          chmod og-rwx /etc/ssl/private/myrootca.key

          # 刪除 DSA 參數檔
          rm -f /tmp/dsaparam

      因為 DSA 取亂數參數要取很久,所以 OpenSSL 不直接做 DSA Key ,而把取出來的 DSA 參數存檔,再用參數檔來做 DSA Key ,做下一組 Key 時就可以用同一個參數檔,以節省時間。不過這裏我們只做一組 Key ,所以參數檔用過就可以刪了。 (回正文)
   8. 若妳的最高層認證中心,放在另一臺伺服器上,請將 /tmp/myhost.req 複製到那臺伺服器上的 /tmp/myhost.req ,登入那臺伺服器上,再繼續進行。 (回正文:root/使用者)
   9. 如果妳原來是在另一臺伺服器做這組 Public/Private Key 的,把 /etc/ssl/certs/myhost.crt 複製到原來的伺服器上的 /etc/ssl/certs/myhost.crt ,就可以用了。記得要回到原來的伺服器上,把原來伺服器上的憑證申請書 /tmp/myhost.req 也刪掉。

          rm -f /tmp/myhost.req

      (回正文)
  10. 在 Mandrake 下裝 RPM 時,請改用:

          cp /usr/lib/ssl/openssl.cnf ~/etc/ssl

      (回正文)
  11. 這是 bash 和 zsh 的指令。 csh 或 tcsh 下,請改用:

          setenv OPENSSL_CONF "$HOME/etc/ssl/openssl.cnf"

      (回正文)
  12. 這樣以後登入的時候,都能夠自動設定 OPENSSL_CONF 。這是用 bash 登入的情形,若用 csh 或 tcsh 登入,請改用:

          echo "# OpenSSL 設定檔的位置" >> ~/.cshrc
          echo "setenv OPENSSL_CONF \"$HOME/etc/ssl/openssl.cnf\"" >> ~/.cshrc

      若用 zsh 登入,請改用:

          echo "# OpenSSL 設定檔的位置" >> ~/.zshenv
          echo "export OPENSSL_CONF=\"$HOME/etc/ssl/openssl.cnf\"" >> ~/.zshenv

      (回正文)
  13. (感謝網中人 (netman) 提供)若妳安裝的是 Red Hat 的 openssl RPM ,在這裏會出一點問題。 Red Hat 的 openssl 做 rand 指令,配合 -out 參數時,參數解析會出錯,無法執行。目前我還沒有看到網路上有人提過這件事。解決方法之一,是自己編譯、安裝 OpenSSL 。這其實很簡單。在 Linux 上,步驟如下:

          ./config shared --prefix=/usr --openssldir=/usr/share/ssl
          make
          make install

      在其她作業系統 (*BSD/UNIX) 上,步驟如下:

          ./config --prefix=/usr --openssldir=/usr/share/ssl
          make
          make install

      如果不想自己編譯、安裝 OpenSSL ,另一個解決方法,由網中人提供,則是避開 -out 參數,改用輸出重導向:

          openssl rand 1024 > ~/etc/ssl/private/.rand 

      Mandrake 和 Debian 的 openssl 套件沒有這個問題。 (回正文)
  14. 若要做成 DSA Key,請改用:

          # 製作 DSA 參數檔
          openssl dsaparam -out ~/tmp/dsaparam 2048

          # 製作 DSA Private Key
          openssl gendsa -out ~/etc/ssl/private/myrootca.key ~/tmp/dsaparam
          chmod og-rwx ~/etc/ssl/private/myrootca.key

          # 刪除 DSA 參數檔
          rm -f ~/tmp/dsaparam

      因為 DSA 取亂數參數要取很久,所以 OpenSSL 不直接做 DSA Key ,而把取出來的 DSA 參數存檔,再用參數檔來做 DSA Key ,做下一組 Key 時就可以用同一個參數檔,以節省時間。不過這裏我們只做一組 Key ,所以參數檔用過就可以刪了。 (回正文)
  15. 若妳的最高層認證中心,是由 root 管理,請接到 root 的第三步驟。 (回正文)
  16. 如果妳原來是在另一臺伺服器做這組 Public/Private Key 的,把 ~/etc/ssl/certs/myhost.crt 複製到原來的伺服器上的 ~/etc/ssl/certs/myhost.crt,就可以用了。記得要回到原來的伺服器上,把原來伺服器上的憑證申請書 /tmp/myhost.req 也刪掉。

          rm -f /tmp/myhost.req

      (回正文)
  17. 這裏 MS-WINDOWS 把「最高層認證中心 (Root CA) 」譯成「根目錄憑證授權」,把「認證中心 (CA) 」譯成「憑證授權」或「中繼憑證授權」,都是逐字翻譯的結果,完全不知所云,翻譯之大忌,戒之。(回正文)
  18. 到 Mozilla 1.1 版為止, Mozilla 把「憑證 (Certificate) 」譯成「認證」,把「認證中心 (CA) 」譯成「查證」,也是有問題的譯法,且不符目前的通譯。我已跟 Mozilla 中文化的作者林弘德反映過這個問題,他承諾於 1.0.1 版後修正。(回正文)
  19. 實際儲存的地方,在 Mozilla 使用者設定檔目錄下的 cert7.db ,格式是 Berkeley DB 。(回正文)
  20. 我還沒找到直接開啟 [Certificate Infomation Manager] 的方法。如果有人知道,煩請告訴我。 (回正文)
  21. 實際儲存的地方,公用的認證中心在 Eudora 程式目錄下的 rootcerts.p7b ,個人的認證中心在 Eudora 信箱目錄下的 usercerts.p7b ,格式是標準憑證格式 DER 的 PKCS#7 檔。(回正文)
  22. 要先失敗一次,才能去設定,其實挺蠢的。另一個「比較不那麼愚蠢的方法」,就是直接去改 usercerts.p7b 。 usercerts.p7b 是標準憑證格式 PKCS#7 檔,可以用 OpenSSL 處理:

          # 備份原檔案
          mv usercerts.p7b usercerts-orig.p7b

          # 把 DER 的 PKCS#7 檔,拆成一張一張的 PEM 憑證清單
          openssl pkcs7 -print_certs -inform der \
           -in usercerts-orig.p7b -out certslist.pem

          # 把我們的認證中心加進來
          cat /etc/ssl/certs/myrootca.crt >> certslist.pem

          # 將一張一張的 PEM 憑證清單,組合成 PEM 的 PKCS#7 檔
          openssl crl2pkcs7 -nocrl -certfile certslist.pem > usercerts.pem

          # 將 PEM 轉為 DER
          openssl pkcs7 -in usercerts.pem -outform der -out usercerts.p7b

          # 刪掉多餘的檔案
          rm -f certslist.pem usercerts.pem

      這樣就把我們的認證中心加進 usercerts.p7b 了。不要直接去改公用的認證中心 rootcerts.p7b ,這個檔案留給 Eudora 自己去維護。(回正文)

參考資料

   1. SSL: Netscape Security Documentation, Introduction to SSL, How SSL Works, SSL Protocol v3.0
   2. X.509: RFC 3280, RFC 2459 (舊版)
   3. OpenSSL: OpenSSL, openssl(1), x509(1), req(1), ca(1)
   4. PGP: GnuPG, PGPi, PGP, Introduction to Cryptography ( PDF 檔, PGP 的原作者 Phil Zimmermann 作), Phil Zimmermann
   5. FHS: http://www.pathname.com/fhs/
   6. TLS 1.0: RFC 2246
   7. Apache: http://www.apache.org/, Apache-SSL, mod_ssl
   8. Qpopper: http://www.eudora.com/qpopper/

後記
2002-09-14

本文參考的資料有限。 SSL 和 X.509 我還沒有完整看過。而目前網路上,即使是英文資料也很少。一開始,我只能從一堆零零散散的網路討論,和 OpenSSL 的文件中,自己拼湊出 SSL 憑證的做法。因為網路上找不到比較完整的 SSL 憑證製作教學,所以我想把它寫出來,開個先鋒。我沒有看完 SSL/X.509 ,只是儘量讓我做出來的憑證,在我所知道的 SSL 程式上,都跑得動。做出來憑證不一定完全符合 SSL/X.509 ,也不一定在所有的 SSL 程式上都能用。

然而,也不是每一個符合 SSL/X.509 的憑證,就能在所有的 SSL 程式上用。不見得每個 SSL 程式都完整支援 SSL/X.509 ,就像 Opera 目前還不支援 DSA 一樣。

本文第一版是 2002-01-09 ~ 2002-01-13 間所寫。第一版寫作的目的,是當時為了想自己做 Root CA (這樣憑證看起來比較好看),想辦法在網路上零碎的討論中,拼湊出 Root CA 的做法。整個做法有點複雜,怕自己下次要發憑證時忘記,所以寫下來,順便寫成 HOWTO 教學的形式,以把這個知識分享給大家。因為只是為了快點記下繁複的做法,寫得很倉促,交代也不清不楚。

這是第二版,是 2002-09-04 ~ 2002-09-14 間改寫的,當初改寫的目的,是這兩三個月來,收到好幾封信詢問這篇文章,覺得自己這篇文章,交代得不清不楚,所以重新改寫。因此原先改寫的時候,著重在 WHAT 和 WHY 的說明,把 SSL/X.509 架構,交代得比較嚴謹,也把腦子裏想的幾張流程圖,都給畫出來。不過到後來, HOW 的部份,也大幅度地改寫,重新編排流程,實驗各種情況,更正幾個錯誤,改善原來的設定,統整辭彙的翻譯,加上流程的說明。原文 2,931 字,改寫後 18,430 字, ^^; 改寫的幅度很大。

感謝 study-area 的網中人 (netman) 協助校正好幾個錯誤、疏漏之處。

希望改寫後,能讓這篇文章更好,更嚴謹,也更容易入手。
依瑪貓 <imacat@mail.imacat.idv.tw> 初稿 2002-01-09 ,上次更新日期 2002-09-14

※※ 這樣內容,上手會困難嗎?※※ 我想到什麼?就寫什麼!※※

※對於資訊!我想到什麼?就寫什麼!

如果困難的話?
歡迎來信討論或發表意見,我會儘快回覆。

也歡迎來 YAHOO 知識家,集思廣益!

我的YAHOO 知識家 首頁:
http://tw.knowledge.yahoo.com/my/my?show=AB05975376

有需要技術文件 DarkMan 蒐集了不少!
存在FTP共享。想下載?請洽DarkMan信箱取得下載帳號。※

(-.-)

我承認.....從西元2000年後,就沒有在「Grey Hat」過了?

況且,我們沒去玩弄中華電信的小烏龜.....我是安分守己的宅男
當然?駭客技術,是一種私下傳授的「奧義」,並不適合廣為人們學習!
畢竟,這樣多學習資訊的人?都被隔離~又隔離~切割~又切割~之後?
沒幾個能夠將「資訊整體」一窺全豹,自然沒有人,在資訊能力上,具有健全的行為。
至此,不少人都只懂得一部分?甚至更慘,活在一般資訊下,難以突破!

請散播更多Dark Man 的訊息!
DarkMan專用信箱darkman@ishr.twbbs.org
Mail 伺服器?遷移中!施工期間!有諸多不便!近請見諒!
"人資系統的黑暗人" http://hr-no.blogspot.com "
微軟免費「免費防毒軟體」
微軟免費「間諜攻擊防護」

Dark Man 對於擁有「技術、技能、軟體、硬體、平台」並不自大,而是更加的重視「自我約束、安全管理」,曾幾何時?那些對「職能素養」相當重視的人,都一一退出職場;留下的只是「自我膨脹、爭名奪利」的人。

重視職能達成的人?會否越來越不容易工作;除了要應付工作之餘?

還要去面對「自我膨脹、爭名奪利」之輩.......這是「極其惡意」的事情,為何?仍要這樣去組織「職場環境」,就因為「權大通天、利大遮事」嗎?

這裡講述到的「軟體平台」,沒有花一定的時間去熟悉,是不可能深入,也不可能順利操作,有興趣的人,要多花時間投入,才能夠掌握網路運用。