Articles

Akamai 블로그 구독

Y2K 직후 우리는”next up,Y2038!”그러나 그 당시에는 미래에 영원을 느꼈고 다른 사람의 문제가 될 가능성이 있습니다. 이제 우리는 거기 중간,그리고 우리는 이미 지점에 도달 Y2038 문제를 일으킬 수 있는 소프트웨어 실패를,그것은 좋은 기회에 대한 계획을 시작 Y2038. 예를 들어,소프트웨어는 이미 있을 수 있습니다 문제가 발생 작업에서 20 년 수명 인증서 또는 20 년 저당,주파수 이러한 문제의 증가 우리가 가까이 Y2038. Akamai 우리는 이미 실행중이 전략적으로 대상으로 내부 기획 및 테스트를 위한 Y2038,그리고 그것을 가능성이 보인다는 이 일을 계속하는 성장을 통해 다음을 19 년간 이 중요한 노력을 증가에 긴급성이다.

우리를 위해 2000 년 1 월 1 일에 거의 잘못되었습니다(“19100″을 현재 날짜로 표시하는 Akamai 마케팅 사이트의 일부 Javascript 가 부족합니다!),그러나 놓친 한 가지는 그날 저녁 제한된 글로벌 영향은 두 가지 요인에 기인 한 것입니다.; 2)많은”Y2K 문제”는 실제로 롤오버 자체보다는 몇 년 전에 발생했습니다. 윤초는 어떤면에서 테스트하기가 더 어렵고 사전에 영향이 훨씬 적다는 점에서 날짜 형식 문제보다 무섭습니다. Y2K 의 영향 부족으로 인해 조직 및 기술자가 y2038 을 과소 준비 할 수있는 위험이 있습니다. 또한 Y2K 보다 평신도에게”Y2038″을 설명하기가 더 어려워 잠재적으로 고급 작업의 우선 순위를 정하고 집중하기가 더 어려워집니다. 의 큰 숫자는 임베디드 인터넷(IoT)을 장치되고 유비쿼터스 환경도 가능성이 높은 위험과 잠재적인 영향은 상당히 높은 Y2038 는 것은 Y2K.

몇 년 전에 내가 들으니 아마도 외경에 대한 일화는 초기 Y2K 생산에 영향을 미친다. 창고 두 자동화된 작업이다:하나는 찾았 깔판의 만료되는 상품 및 전송을 위한 처분,그리고 두 번째는 보에 대한 낮은 인벤토리를 더 주문의 제품입니다. 통조림한 토마토는 최초의 제품을 만료 날짜를 건너 시작으로 2000 년 및 Y2K 버그 지시하는 포크리프트 연산자를 그 처 토마토(만료되는 1900 년에! 그들이 도착한대로). 그런 다음 시스템은 통조림 토마토에 대한 재고가 적고 더 많은 것을 주문할 것임을 확인했습니다. 몇 주 후에 그들은 도착할 것이고,며칠 후에 지게차 운전자가 그들을 처분하기 위해 파견 될 것입니다. 이 사이클은 지게차 운전자가 마침내 잘못된 것을 발견하고 문제를 확대 할 때까지 계속되었습니다. 첫 번째 Y2038 문제 중 일부는 본질적으로 매우 유사 할 가능성이 높습니다.

우리의 초기 경험을 가진 Y2038 계획(외에 보고 충격에서 사람들이 듣고 문제 제기되고 처음에는 음 19 년)은 증가하고 초점을 맞춘 접근 방식이 필요 이 단계에 있습니다. 훨씬 더 참여하고 포괄적 인 프로그램은 확실히 길 아래로 년의 일부 번호가 필요합니다. 에서 이러한 초기 단계 일부 지역에 초점을 포함한다:1)소프트웨어를 다루고 미래의 시간 및 날짜;2)on-the-와이어 메시지와 파일 형식; 3)배포 된 수명이 긴 장치 및 해당 종속성. 물론 우리가 가까이 가면 될 것이다 중요한 시작에 초점을 맞추고 광범위한 설정 시스템을 포함하여할 수 있도록 하는 업무를 담당할 수 있는 손잡이를 건너 Y2038 전환니다.

소프트웨어를 다루고 미래 날짜

아마도 가장 중요한 지역에 초점을 처음에는 소프트웨어를 거래하는 날짜와 미래에 같은 처리에 대한 X.509 인증서 또는 대한 재정 계획입니다. 많은 날짜 및 시간 형식 표현이 있으며 모두 Y2038 문제가 발생하지는 않습니다. 예를 들어,소프트웨어 처리 필요 시간에 지난 세기(전에 잘 1970 년)종종 다양한 날짜 및 시간이 표현입니다. 그러나,테스트하는 경우 X.509 인증서(같은 사용한 HTTPS)및 인증 기관(CAs)우리가 발견한 수많은 소프트웨어 문제 실험실에서는 시작을 발생으로 인증서 및 CAs 만료되는 과거 Y2038.

OpenSSL 특히 여러 시간 형식으로 ASN1_UTCTIME 는 한도에서 Y2049(별개의 문제에 대한 계획에서 Y2038),그래서 사용 ASN1_TIME 기능을 제공한 호환성의 모든 범위 시간. Openssl out 과 같은 라이브러리에서 times out 을 32 비트 time_t 로 변환하는 것은 문제가 발생할 가능성이있는 추가 영역입니다.

에서 많은 이러한 경우에는 가능한 문제를 해결하기 위해 단순히 이식하고 컴파일하는 기존 소프트웨어에 대한 64 비트는 아키텍처(예를 들어,에서 이동하는 32-bit integer time_t64 비트 time_t). 다른 경우에는 더 광범위한 변경되었을 필요한 때,특히 시간 캐스팅으로 정수한 수학 때 또는 와이어 메시지 포맷이 참여하거나 때 값 데이터베이스에 저장됩니다. 20 년 CAs 에 대한 지원 테스트 및 수정에서 나타난 한 가지는 다운 스트림 종속성 또한 작용한다는 것입니다. 예를 들어,만약에서 20 년 미래를 얻으로 먹인 시스템 또는 모니터링 시스템,그리고 그에 차례로 경보 시스템 또는 보고 데이터베이스 시스템 또는 프로비저닝,다음 사람들 수 있습니다 또한 모든 필요한 해결합니다.

에서-와이어 메시지와 파일의 형식

위에서 언급한 바와 같이,때 32-비트 타임 스탬프를 넣고 메시지 데이터베이스,또는 파일 형식에 미치는 영향을 확장할 수 있습 잘 넘어 특정 시스템입니다. 이들은 또한 시스템으로 외부 종속성을 더 많은 고급 계획 수시로 필요한 상호 작용은 십자가 시스템 경계. 이러한 컬렉션의 상호 운용하는 시스템,변경해야 할 수도 있습을 발표에서 특정기와의 호환성을 자주 놀이로 제공됩니다. 또한,이 있는 경우 또는 공식적으로 또는 비공식적으로 표준화된 프로토콜을 사용하는 32-bit epoch 타임스탬프 값이에서 메시지,어떤 마이그레이션하거나 수정될 수 있에 입각한 고정 표준입니다. 따라서 다음과 같은 종속성 체인과 마찬가지로 걱정할 필요가 있습니다:

  1. post-Y2038 타임 스탬프를 지원하도록 프로토콜/표준을 업데이트합니다.
  2. 소프트웨어 라이브러리에서 업데이트 된 표준에 대한 지원을 구현합니다.
  3. 소프트웨어 패키지에 통합 된 새 버전의 라이브러리를 가져옵니다.
  4. 새로운 배송 제품에 포함 된 소프트웨어 패키지를 가져옵니다.

경우 다음 이러한 각각의 몇 년 동안 운송 제품 수명이 긴 그 후 오랫동안 리드 시간을 수 있습니다 여기에 이미할 수 있습니다.

장치 긴 배치 수명을,그리고 그들의 종속성

하는 또 다른 영역에 초점을 시작 초기가 장치 긴 배포 수명이 보장되어야 합니다. 방금 언급했듯이 이러한 장치가 가지고있는 외부 종속성을 따라가는 것도 중요합니다. 임베디드 장치의 운송으로 32-bit 하드웨어도 없을 쉽게 고칠 수의”다만 컴파일을 위한 64 비트 time_t”을 통해 소프트웨어 업데이트 또는 이렇게 가질 수 없는 성과에 미치는 영향.

연결된 자동차 및 기타 사항을 수용할 수 있는 아키텍처를 가능성이 있는 지역의 특정 관심사,그러나 나는 확실히 다른 많은 유사한 유형의 장치와 응용 프로그램. 예를 들어,현재 동향에 그것을 가능성이 있는 10%이상의 차량을 판매되는 오늘 여전히 운영에 Y2038,그리고 증가에서 차량대 및 차량 번호에서 더 높은 수 있습니다. 는 경우 그것은 몇 년 동안 운송을 위한 자동차으로 일반적으로 Y2038 준수하고,현재(증가)배포의 자동차 연령 우리가 끝날 수 있다는 상당한 부분의 자동차와 잠재력을 심각한 문제에서 십 년이다. 이 같은 패턴이 존재하에서 다른 기업 뿐만 아니라,등에서의 소비자 전자공학(같은 집과 같은 게임 콘솔하고 똑똑한 텔레비전)장치될 수 있습 배송과 함께 20 년 CA 인증서를 사전 설치되어 있습니다.

장치 긴 배치 수명이 더 필요할 수 있습니다 포괄적인 테스트의 장치 및 그것의 dependendencies 과 같은 테스트에는 운영 시스템 및 소프트웨어 작업을 계속하기 전에 제대로,도중 및 이후에 Y2038 전환점이다.

새해 복 많이 받으세요!

Y2038 문제는 IPv6 과 비슷한 범주에 있습니다: 그것은 일반적인 경우에 중요하지만(아이젠 하워 매트릭스 당)아직 긴급하지 않은 멀티 십년 롤아웃입니다. 이러한 관점에서,지금은 좋은 시간으로 모든 시작할 계획,심사 및 테스트가 되기 전에 긴급(거나 너무 늦). 미래의 날짜,온-더-와이어 메시지 및 파일 형식 및 긴 배포 된 수명을 가진 장치를 다루는 소프트웨어에 먼저 집중하십시오. 다음으로,초기 초점의 경험을 사용하여 향후 몇 년 동안보다 포괄적 인 프로그램을 구축하십시오. 에 관계없이 설정한 최소 표시줄 및 시작을 확인하는 새로운 소프트웨어,시스템,프로토콜,그리고 제품을 건축하고 배포하지 않을 소개하 Y2038 문제 및 국기 우려 때 당신이 볼 32-비트 타임스탬프-바이-더-유닉스 시기에 포함된 새로운 디자인입니다.

Erik Nygren 은 Akamai 의 플랫폼 엔지니어링 조직의 동료이자 수석 아키텍트입니다. 그는 이번 6 월 Akamai 에서 20 주년을 맞이할 예정입니다.

이 기사에 기여한 Akamai 의 여러 분들께 감사드립니다.

본 문서의 준비 과정에서 예방 조치가 취해진 동안,Akamai Technologies,Inc. 여기에있는 정보의 사용으로 인한 오류,누락 또는 손해에 대해 책임을지지 않습니다. 본 명세서의 정보는 예고 없이 변경될 수 있습니다. Akamai 와 Akamai wave 로고는 미국 내 등록 상표 또는 서비스 마크입니다(Reg. 미국 팻. &Tm. 꺼짐). 2019 년 1 월 10 일 게시.