Y2K(千禧年)危機-數位時間的小鞋
巫靜宜、呂麗琴、李鴻璋
淡江大學資訊管理學系
1945年電腦的出現,象徵數位化處理時代的來臨。而70年代以來積體電路的蓬勃發展,更把人類推向電子數位時代,數位控制的設施幾乎環繞在人們生活的四周。然而由於應用數位來記錄、控制與處理類比資料有其有限性(受限於表達數位的位元數),所以當被表達類比資料超過該表達數位的最大值、穿限(over bound)現象就產生。在各種各類的穿限現象中、由於時間資料在傳訊、控管、計算中乃必要的參考數值、所以對數位時間穿限後資料的錯誤解釋將導致極嚴重的影響。
電腦的剛出現後的60年代,記億體以及儲存配備價格非常昂貴,因此,為了節省成本昂貴的記憶體空間,很多關於「年份」的儲存與計算都只取最後的兩位數(假定19世紀)。因此6位數MM/DD/YY表示變成是當時的表示日期的標準,多數電腦硬體與周邊設施、系統監控與管制所提供的系統日期也用6位數來表示年月日,甚至多數電腦語言如COBOL,其所提供的日期函數也都用6位數來表示。也因此,往後因此而完成之軟體系統也都以6位數來表示日期來運作。
然而以二位數表示年份的系統一直都運作正常,但是一旦發生紀元交替時,便會開始發生問題,年份「00」會被認為是1900年,而非公元2000年,以這種方式撰寫的程式或設計的電腦及其他含有嵌入式控制系統的電子裝置都可能產生編譯錯誤。某些系統可能也不知道 2000 年是閏年 (除了四年一次的閏年外,每過四世紀就會遇到一個閏年),所以從 2000年2月28日經過2000年2月29日到2000年3月1日時可能會發生錯誤。這類裝置在1999年12月31日之後可能無法適當地運作(或根本無法運作);如果這類裝置參考到公元2000年以後的日期但該裝置並未包括年份處理的設計時,錯誤可能會更早發生,例如在某人在1997年1月1日申請信用卡,而有效期限為三年,所以可能此人信用卡早在1900年就到期,而發生持卡人用信用卡消費時因過期而無法使用。
Y2K的問題基本來自於時間資料數位化後的穿限現象,以及19世紀來以6位數的標準來表示日期(MM/DD/YY )。從技術與理論觀點來看Y2K的問題並不複雜,但是Y2K涉入最基本的傳訊、控管及計算應用,所以影響與牽涉的層面很廣,如何完整解決這個問題並不容易。在此我們把所使用的電子設施分成電腦系統與嵌入式控制設備兩類,來詳細討論Y2K危機的存在原因,以求可能之解決之道。
一、電腦系統
電腦系統代表或處理數位時間資料分成五個層次。由使用者觀點到機器的硬體分成應用程式(Application, AP)、程式語言函式庫(Programming Language Library, PLL)或資料庫管理系統(Data Base Management System, DBMS)、作業系統(Operating System) 、基本輸入/輸出系統(Basic Input/output System, BIOS) 、與硬體時鐘(Real-Time Clock, RTC)。傳統數位時間資料的獲得是由RTC -> BIOS ->OS -> PLL(DBMS) -> AP 的程序。其中RTC是硬體不能用程式改之,BIOS、 OS、 PLL(DBMS)只負責數位時間資料的傳訊、表達與記錄,AP 則多了處理與監控的功能。
RTC 時鐘是一個電腦主機板上記錄系統時間的基礎硬體裝置。當電腦關機時,會由主機版上的電池供應電源給RTC,使得RTC可以正確記錄時間。早期RTC是用一個byte切成兩個BCD(Binary Coded Decimal)欄位來記錄年份,所以年份表示的範圍為00到99。到了公元2000年的時候,RTC的兩個BCD欄位的年份會由99變成00,這時隨著系統的不同,可能會把RTC的00數字解釋成1900年或1980年或 2000年或其它年份。
雖說RTC 時鐘層以上皆有再解釋RTC的00數字的能力。甚至於從數位時間資料的獲得的程序來看,只要BIOS能正確解釋出RTC的00(如BIOS提供世紀呼叫)即可解決,而對新呼叫(Function)的加入後整個作業系統改寫以及處理19世紀以來 (MM/DD/YY )6位數標準的舊資料交錯參考,使得BIOS以上各層次的修改曠日費時。
二、嵌入式控制設備
除了電腦系統外,含有微處理器嵌入式控制系統的設備也隱含Y2K的問題,這些設施因其有特有的軟體統控制其它硬體組件來運作19世紀 (MM/DD/YY )6位數標準,若該控制設備若使用到日期進行監控與管理的運算,其功能也可能會在將來受到千禧年問題的影響,這些嵌入式控制設備包括:
三、Y2K危機發生時間
一般歸納Y2K危機可能出現有十三個日期,事實上Y2K發生時間或因各企業的運算的需要,全球的時差不同,解決Y2K方法的差異以及人們對未知的恐懼,Y2K發生時間橫貫19世紀末到20世紀初數十年。我們將Y2K危機分成 (X,A,B,C) 四類詳述如下:
危機 X: (推測交錯):各別行業可能運用2000年後之日期來運算(如信用卡之有效期間橫跨2000年),以及人們對Y2K危機過或不足的推測所產生的猜疑恐懼。
危機 A: (事件忽略):在Y2K交換日前後,或因時差不同,誤認前時區(已是20世紀)的2000年為後時區(19世紀)的1900年,產生會因管制點與通報點的極大的差異,而至使管制程式(19世紀)會因1900年太舊而刪除該份資料,導致遺失該份事件,發生點是與現場監控設施有關(如機場,航海港口以及利用電腦自動監控的廠房如核電廠化工廠) ,而其影響是即時且重大。
危機 B: (年序整合):Y2K日後,政府或各企業因解決Y2K問題的完整與否或因解決方式的不一致,而產生年序資料交換與解釋的差異,而與各企業間,政府、企業與民眾間的糾紛進而產生法律的訴訟,其影響是持續且全面。
危機 C: (例外個案):階段性Y2K解決方式整合後,因零星例外個案的出現而產生的糾紛。
根據以上的探討,Y2K問題使得電腦系統內只要與時間處理相關的功能,都有可能產生問題,使系統無法正常運作,可能發生當機或錯誤的執行,其所引發的連鎖效應,非但造成企業或機構之巨大傷害,更將攸關所有民眾的權益。而當Y2K問題造成人民或消費者生命財產上的損失,則必將訴諸於法律責任;此外,Y2K問題的起因是由於電腦軟硬體設計者的無心之過,則電腦軟硬體廠商是否又該對此問題負起最終的法律責任,在探討Y2K問題的同時,此一層面的影響亦不容忽視,以下就政府及企業兩個層面來探討因Y2K所可能引發的法律問題。
一、政府面
(一) 國家賠償法
國家賠償法第二條第二項規定:「公務員於執行職務行使公權力時,因故意或過失不法侵害人民自由或權利者,國家應負損害賠償責任。公務員怠於執行職務,致人民自由或權利遭受損害者亦同。」同法第三條第一項規定:「公有公共設施因設置或管理有欠缺,致人民生命、身體或財產受損害者,國家應負損害賠償責任。」故公家機關及公有公共設施的管理機關若未能事先修正電腦系統,解決年序錯亂問題,而導致公務員事務因此發生錯誤或公共設施發生事故,使人民權益受損時,則有可能發生國家賠償責任。
(二) 公務員的刑事責任
根據刑法第一百三十條(廢弛職物釀成災害罪)規定:「公務員廢弛職物釀成災害罪者,處三年以上十年以下有期徒刑。」對於因Y2K問題所衍生的重大災害,若公務員對於該災害原有預防或遏止的職務,卻因為廢弛職物而釀成災害,則有可能需負起此項刑責。
二、 企業面
(一) 企業負責人
依照公司法第八條(公司負責人)第一項規定:「公司負責人在無限公司、兩合公司、為執行業務或代表公司之股東;在有限公司、股份有限公司為董事。」第二項規定:「公司之經理人或清算人,股份有限公司之發起人、監察人、檢查人、重整人或重整監督人,在執行業務範圍內,亦為公司負責人。」就Y2K問題可能引起的有:
1. 民事責任
由於Y2K問題可能造成的影響是眾所皆知之事,而若企業負責人仍忽視此問題而不加以處理,造成公司因Y2K而引起公司生產力下降或其他損害,則公司負責任可能須對公司負民事上的損害賠償責任。
2. 刑事責任
刑法第十五條第一項規定:「對於一定結果之發生,法律上有防止之義務,能防止而不防止者,與因積極行為發生結果者同。」若某企業對所出售的商品或提供服務有防止Y2K問題以免消費者發生死傷的義務,若能防止而不防止者例如不回收產品或修正,企業負責人即有可能須負相關刑事責任。
3. 證券交易法上之責任(§32,174)
證券暨期貨交易委員會已於民國八十七年六月十六日公佈修正「公司募集發行有價證券公開說明書應行記載事項準則」,其中第二十五條特別記載事項應列明申報(請)書件之重要內容第三款即規定,為因應公元兩千年電腦年序危機,應揭露:1.公司財務、業務及生產等部門電腦化深度及受電腦年序危機影響程度。2.公司為因應電腦年序危機預計之改進計畫進度及支出之金額。3.未及時因應完成,對公司財務、業務之影響。故負責人對前述公開說明書之記載有虛偽或隱匿之情事者如果就公開說明書之申請事項為虛偽或隱匿之記載,而致善意相對人因此而受損害時,依證券交易法第三十二條之規定,發行人及公司負責人,應與公司對善意相對人負連帶損害賠償責任。
4. 公司法--連帶賠償責任
公司法第二十三條(負責人之侵權行為責任)規定:「公司負責對於公司業務之執行,如有違反法令致他人受有損害時,對他人應與公司負連帶賠償之責。」因此,如果公司業務執行上所發生的Y2K問題,違反相關法令而導致他人因而受有損害時,負責人應與公司負連帶損害賠償責任。
(二) 企業
1. 民法--契約上債務不履行責任
若因Y2K問題,而導致公司生產線中斷或產生製程錯誤,使得貨物無法按照訂單的要求正常出貨,則企業可能需對客戶負起債務不履行責任。
2. 侵權責任
而若企業所生產的商品或所提供的服務若因Y2K問題發生故障而致人民生命、財產損害,則企業也可能負侵權行為之損害賠償責任。
(三) 資訊技術廠商
1. 瑕疵擔保責任(民 §354、356、359、360、364、392~394)
資訊技術廠商與企業(或一般客戶)間可能因商品及服務的買賣而成立「買賣」關係(例如套裝軟體、作業系統或其它軟硬體設備);或是廠商與企業約定,為企業設計或開發軟硬體所成立的「承攬」關係(例如企業資訊技術的委外處理)。依我國民法之規定,除雙方契約中另有約定外,買賣契約的出賣人對於買受人,以及承攬契約的承攬人對於定作人,均須對標的之「瑕疵」負擔保責任,由於電腦軟硬體若不具備解決Y2K的功能,則在法律上可能涉及「物的瑕疵」責任。民法第三百五十四條(物之瑕疵擔保責任與其效果)之規定,物之出賣人對於買受人應擔保其物於交付時,並無「價值」、「效用」或「品質」上之瑕疵。若物存有前述出賣人應擔保負責之瑕疵,則買受人得主張解除契約、減少價金或請求另行交付無瑕疵之物,若買賣之物缺少出賣人所保證之品質,買受人還可轉而請求損害賠償。(民 §354、359、360、364)
根據民法第四百九十二到四百九十四條(承攬人之擔保責任),及第四百九十五條(承攬人之損害賠償責任)規定,承攬之工作若有瑕疵時,定作人得請求承攬人修補或償還修補之必要費用,若承攬人不予修補或不能修補時,定作人得解除契約或請求減少報酬,如因可歸責承攬人之事由發生瑕疵者,定作人並得請求損害賠償。(民 §492~494、495)
所謂物之瑕疵,是指物本身之缺點而言。依通常交易觀念,或依當事人之決定,認為物應具備價值、效用或品質而不具備者,即為物有瑕疵。然而缺乏解決Y2K功能之電腦軟硬體是否為瑕疵?原則上,應先視交易時雙方是否已就電腦軟硬體具備該功能達成協議,若雙方並未就此問題有所協議,則須視交易當時的通常觀念是否認為其應具備該功能而定。
故因應Y2K問題,系統修正或轉換之相關費用應視其是否具有「瑕疵」而判定應由資訊廠商或企業來負擔。
2. 不完全給付責任
上述的「瑕疵擔保責任」是屬於「無過失責任」,所以債權人(買受人或定作人)不需證明債務人(出賣人或承攬人)是否有過失,便可主張之,但債權人必須證明「瑕疵」的存在,就Y2K問題而言,契約上的債權人必須證明交易當時雙方有解決Y2K功能的約定,或是當時交易觀念認為電腦應具有解決Y2K的功能。此外,如果買受人與定作人能證明出賣人及承攬人對於商品或工作之瑕疵,有故意或過失之情形,尚得請求其負「不完全給付」的違約責任。
3. 侵權行為責任
由於欠缺解決Y2K功能的電腦軟硬體,可能影響交易契約以外第三人之權利。例如受Y2K影響,電腦系統當機使廢水處理系統大亂造成人民飲用水的威脅、股市混亂使存戶帳餘額與交易記錄全毀、銀行存放款系統錯亂損及往來客戶權益、資訊系統錯亂造成交通事故等等,都將可能產生資訊技術廠商對於第三人的「侵權責任」,被害人對於負侵權行為責任之人得請求損害賠償權。
4. 著作權問題--改作權
資訊技術廠商為了解決Y2K問題,而接受客戶委托修改非由自己設計的程式,則有可能會侵著作權。但依著作權法第59條第一項規定:「合法電腦程式著作重製物之所有人得因配合其所使用機器之需要,修改其程式,或因備用存檔之需要重製其程式。但限於該所有人自行使用。」此可解釋企業或一般客戶可以因使用機器之需要而修改電腦程式。但條文中並沒有指明此軟體使用者可委由其他資訊技術廠商來進行修正工作。
5. 消費者保護法--商品製造人無過失責任(§7、5、42、51)
根據消費者保護法第七條第一項規定:「從事生產、製造商品或提供服務之企業經營者,應確保其提供之商品或服務無安全或衛生上之危險,否則對於因此而產生的損害,應負連帶賠償責任,但企業經營者能証明其無過失者,法院得減輕其賠償責任。」此為無過失責任,即只要消費者提出証據,証明損害是由企業經營者之商品或服務所導致者,縱然企業經營者對於損害之發生並無故意或過失,亦應對此損害負賠償責任。所以電腦廠商所生產的軟硬體設備或所提供之資訊技術服務,若因Y2K問題產生安全或衛生上之危險而侵犯消費者或第三人之生命、身體、健康、財產(可能因系統運作錯誤或當機所產生之損害),則需負起此項責任。(消費者保護法第七條)
企業在面對Y2K問題時,我們建議可以依下圖的流程來做為Y2K因應對策規劃的步驟:
七、規劃緊急應變計 六、系統上線 五、系統測試 四、系統修改或設計 三、Y2K影嚮性評估 二、系統清查 一、組織對Y2K問題圖一:Y2K因應對策規劃步驟
一、組織對Y2K問題認知
此階段主要是讓組織全體上下了解到Y2K問題發生原因,及Y2K對於系統會造成什麼影嚮,並且組成Y2K危機處理小組,專司負責Y2K相關問題解決方案的規劃。此一Y2K專案活動和系統開發活動類似之處,在於高階主管的全力支持也是關鍵成功因素之一。
二、系統清查
此階段的目的主要在於全面掌握公司內部作業各軟硬體系統之情況,不論是資訊類或是非資訊類的項目都必須清查,並將其列成清單。並且依據此清單做相關的評估及分析報告。
三、影嚮性評估
Y2K其影嚮層面涵蓋整體資訊架構,不論超級電腦、個人電腦、集中式架構、或分散式架構,均會受到影嚮,以下將受到影嚮的層面分為七大類:
此階段的目的主要是根據清查所做成的分析報告,根據上述七項進行影嚮性評估,進而規劃轉換與測試的建議方案、方案所需的預算及資源,最後擬定適當的處理策略及後續Y2K緊急應變計劃。
四、系統修改/設計新系統
若應用系統己經是Y2K相容的系統,則不需要再做任何的修復工作。在進行系統修改時應全盤考量各個應用系統、硬體平台、資料庫以及內部和外部界面;硬體平台和資料庫的更新工作,應洽詢系統代理商,確定現有使用版本是否Y2K相容,若不相容則應購置符合Y2K相容的硬體平台和資料庫版本,進行系統更換。系統修改主要分為兩方面:現有系統的修改與轉換、開發全新的資訊系統取代老舊系統。分述如下
(一) 開發全新的資訊系統以取代老舊的系統:此法應注意的是新的系統是否為Y2K相容的系統,其使用平台如作業系統、資料庫管理系統、編譯器、和其它套裝軟體,也應符合Y2K相容。
(二) 現有資訊系統的修改與轉換:經過系統評估之後,依據所列的清單,將必須修復之資訊系統,逐一的修改與轉換。良好的日期轉換策略不僅要考慮到個別程式的適用性,同時也必須考量到對於外部系統(資料接收者)所造成的衝擊及配合調整的成本。以下乃針對幾項最常用的日期策略及其優缺點加以描述:
1. 轉換成四位數記年的格式(4-digit-year format)
將所有參照或使用二位數記年格式的資料和程式,都轉換成以四位數記年的格式來表示(如:將96轉換成1996)。要注意的是凡是有參照或使用更新後資料的相關連程式必須同時做變更,否則也應有『橋接程式』在新、舊資料及系統之間執行轉換工作。如果不考量成本因素,此法是最佳的日期轉換策略。
優點:
缺點:
2. 固定的區間(Fixed windows):
使用固定的100年區間為範圍,通常情況之下都會跨越不同世紀。以1950-2049年區間來說,如果想以固定區間的方式解決Y2K的問題時,就必須發展出一套程式邏輯以辨識二位數記年,並且能判別00-49範圍內的年份屬於二十一世紀,而所有其它的年份都是二十世紀。
優點:
缺點:
3. 編碼(Encoding):
運用不同的的演算法和技術,在較小的欄位內表示明確的日期。此種方法必須將所有資料和程式修改,且須同時轉換所有的應用程式和參考資料。
優點:
缺點:
以上介紹了幾種較常用的日期策略,那麼該如何在上述幾種日期策略中選擇出適合的呢?!以下有幾點選擇日期策略的考慮事項:並非所有的日期都需要轉換,在成本的考量下,只有用來計算的日期、或是滿足重要任務而對世紀敏感的日期才需要轉換。需對外部介面造成的可能衝擊減到最低。儘可能遵照公認的日期標準,但有可能標準的成本會太高。把全部的日期/時間服務程式,合併成單一的共通程式,以節省未來的日期/時間相關問題的辨識和決解方案的花費。
五、系統測試
當資訊系統完成Y2K轉換階段工作時,接下來要面臨的是如何測試所有的修改是否都己改對,不僅只是那些被認為有Y2K問題的部份要接受測試,其它部份的系統也需要被測試,以避免錯誤的發生;關於日期測試不應只用單一或少數日期,唯有完整且詳細的整組高風險日期測試,才能確保在公元2000年前後,都能遠離千禧蟲的災害。通常測試階段占Y2K專案的百分之五十以上的資源,因此如何規劃一個完善的測試計劃是相當重要的。測試規劃應包含測試前的準備和測試工作的進行。測試前的準備工作是為了因應專案的特性,希望將專案的成本及風險降至最低,能夠及時地完成系統驗證而不會影嚮到系統使用者;測試前的準備包含了規劃人力與時程、規定相關測試程序、建構管理程序的制定與建立測試資料庫。測試工作的進行是為了對Y2K的影嚮層面做全盤的測試,確保所有受影嚮的層面,都能夠被修正;測試階段的工作應測試階段的工作包括系統相容性測試、單元測試、整合測試、系統測試、回歸測試與使用者接收測試。
六、系統上線
所謂的系統上線是指將測試好的新系統正式參與作業。Y2K系統上線有幾點注意事項,以下加以分述:
(一) 新系統導入程序:大體上系統的導入程序可分為三種,要採用那一種系統導入方式應視組織作業型態及系統導入預算。
1. 立即變換:於某一時點停止使用舊系統,並同時啟用新系統。此法風險最高,基本上不薦議採用此法。
2. 平行作業:讓新舊系統同時並存一段作業週期,並定期互相校訂資料。此法需要付出雙倍的上線作業成本,但相較之下風險也較低。
3. 分版導入:系統的基本功能為第一版,最早上線;接下來規劃的版次,及是逐漸增加其附加功能。此法有助於精準掌握需求,但每次改版都需要人力支援,頗為麻煩。
(二) 資料轉換:
主要工作是將舊系統的資料轉換到新系統的資料庫。主要有幾項動作:依作業的階段性,選擇新舊系統的分界日,以供後續作業參照、為新系統建立所需的資料庫或檔案並確保其正確性、持續維護新系統的資料庫直到新系統啟用為止、核對新舊系統間相對應資料的正確性並做必要的修正。
(三) 人員教育訓練計劃:
教育訓練是為了讓使用者熟新系統的操作,同時也需依使用者的反應適時地對系統進行調整。
八、緊急應變計劃
緊急應變計劃主要在確保當系統遭受到Y2K問題的衝擊後,仍能維持最低限度的運作,直到系統修復為止。緊急應變計劃內容所包含的最基本項目有:
(一) 就技術面而言:
(二) 就業務面而言:
一、 Y2K問題宣導與協助機構
行政院在1997年2月發函各政府部門,說明有關Y2K可能引發的各項問題,隨後便在全省北中南各地舉辦宣導研討會,參加對象為中央及地方機關、學校、公營事業機構、農會及信用合作社等單位。八月在行政院科技顧問組與經濟部的支持下,成立政府公元兩千年資訊危機網站(http://www.year2000.gov.tw)提供技術指引、經驗交流及常見問題解答等,提供各界參考。
1997年9月,行政院公佈Y2K行動方案,隨後舉辦高階主管宣導研討會,參加對象為運輸業、製造業、金融業、印刷業及資訊業等公司高階主管。且生產力中心亦成立稽核管理服務團,資訊工業策進會成立技術服務團,協助行政院及相關單位之Y2K因應事宜。
二、鼓勵民間因應Y2K問題設立優惠方案
政府為鼓勵民間積極因應Y2K問題,特別安排Y2K投資抵減租稅優惠及融資優惠貸款的措施。投資抵減部分,企業投入Y2K處理費用包括薪資、軟硬體購置成本、委外費用,均可適用「公司處理公元二千年資訊年序問題之支出適用投資抵減作業要點」之優惠。在融資優惠貸款方面,擴大解釋「購置自動化機器設備優惠貸款」及「輔導中小企業升級貸款」,將因應Y2K危機購置之軟、硬體設備之投資納入優惠貸款範圍。經濟部工業局亦宣布企業為Y2K問題所支出的修正電腦軟體費,可享抵減當年營所稅優惠。目前政府已籌措500億貸款額度供運用。
三、 Y2K支援相關網站
理論來看,Y2K的問題僅是將時間資料數位化表達處理後不可避免的必然宿命。但由於數位式時間資料所乃是在數位電子社會的基本處理(如傳訊、控管、計算)中都會使用到的數值,Y2K的問題影響的層面將是重大與深遠。
Y2K的問題另一方面的問題是解決Y2K的方案錯綜複雜,整合困難。各企業或因成本效益的考量,大多採多樣解決方案,企業內部是如此更不要說各企業與企業間。尤其甚者,有些Y2K的解決方案,有效期不長,一旦超過則另一個Y2K的問題就會產生(如Microsoft系統有效時間只到2099年,有Y2.1K的問題)。
政府因應Y2K的問題雖有連串的獎勵與鼓勵的措施,然而就政府層次而言,解決Y2K不僅範圍廣泛經緯萬千,錯綜複雜整合困難,且有國際性解決步伐整合的問題,難有百分之百的解決,在往後半年,政府應著重對會產生立即重大危害的A類危機,聘請專家與學者組成驗證小組,反覆加強檢驗與測試。
【網站資料】
[1] http://www.year2000.gov.tw
[3] http://www.inventec.com.tw/y2k/y2-law.htm英業達集團Y2K網站
[4] http://www.moea.gov.tw/~year2000/y2k.html經濟部Y2K網站
【書報雜誌資料】
[5] 我國產業如何因應Y2K法律衝擊<楊靜宜律師>
[6] Y2K問題中資訊技術廠商之相關法律責任分析<王鵬瑜律師 工業技術研究院>
[7] 談Y2K可能引發的法律問題<楊佳政律師 資策會科技法律中心>