2016년 2월 14일 일요일

OS X의 시스템 날짜를 1970년 1월 1일로 설정하면 어떤 일이 발생할까?

앞서 iOS의 시스템 날짜를 잘못건드리면 기기가 멈춰버리는 버그가 발견돼 세간의 입방아에 오르내리고 있다는 소식을 전해드린 바 있습니다.

iOS의 날짜와 시간 설정에서 '자동으로 설정' 옵션을 해제하고 직접 1970년 1월 1일로 바꾸면, 기기가 무한 재부팅 상태로 빠지면서 '소위' 벽돌폰이 된다는 내용이었죠. 공장초기화나 아이튠즈를 통한 복구기능으로도 문제가 해결되지 않기 때문에 문제가 생기면 애플 수리센터를 방문해 메인보드를 교체하거나 케이스를 분해한 뒤 배터리를 임의로 분리하는 것 외에는 아직까지 뚜렷한 해결 방안이 없는 상태입니다.

왜 이런 문제가 나타나는지 여러 분석이 나오고 있지만 가장 설득력 있는 주장은 '유닉스 에폭(The Unix Epoch)’에 따른 버그라는 것입니다. 

iOS의 뿌리는 맥OS 이고, 이건 이전 넥스트스텝이라는 잡스가 만든 운영체제에 기원합니다. 그리고 넥스트스텝은 유닉스(Unix)에 뿌리를 두고 있습니다. 그런데 유닉스 운영체제는 1970년 1월 1일 0시를 기준 시간으로 설정해 1초 단위로 시간을 계산합니다. 따라서 유닉스 기반 시스템의 시간을 초기화하면 1970년 1월1일로 돌아가게 되는데, 이때 시스템 내부가 꼬이면서 운영체제가 날짜를 제대로 인식하지 못한다는 것입니다.

그럼 여기서 한 가지 의문이 생깁니다. 

"그러면 OS X은 시스템 날짜를 1970년 1월 1일로 설정하면 어떻게 되나?"

결과를 미리 알려드리자면, OS X 역시 부팅이 제대로 되지 않습니다. 다만, 애플 수리센터를 방문해야 하는 iOS에 비해 상대적으로 복구가 간단한 편입니다. 어떻게 알았냐구요? 하지 말라는 일은 더 하고 싶고, 가지 말라는 곳엔 기어이 가 보아야 직성이 풀리는 성격이라서 말이죠.

우선, 위 사진처럼 시스템 환경설정을 통해 시간대를 그리니치 표준시로 변경하고, 시스템 날짜는 1970년 1월 1일 1시로 설정했습니다. 참고로 1970년 1월 1일 1시보다 더 빠른 시간을 입력하면 운영체제가 강제로 현재 시간으로 돌려놓습니다. 즉, 사용자가 입력할 수 있는 가장 빠른 날짜는 1970년 1월 1일 1시입니다.

이 상태에서 맥을 재시동하면 부팅은 이상 없이 진행되지만, 로그인 화면에서 문제가 발생합니다.

사용자 암호를 제대로 입력하더라도 잘못된 암호라면서 운영체제 진입을 못하게 되며, 어떠한 데이터도 접근할 수 없는 상태가 됩니다. 신기하게도 자동 로그인 설정을 꺼놨음에도 불구하고 맥을 부팅할 때 무조건 로그인 화면을 띄운 후 암호를 물어봅니다. 

OS X 키체인 인증 과정에서 문제가 발생하는 것인지, 아니면 시스템 날짜를 이용한 익스플로잇을 차단하는 메커니즘이 있는건지 모르겠지만, 아무튼 어떤 방법으로도 운영체제 진입이 불가능해지고, 하드웨어와 소프트웨어 정보가 저장된 NVRAM과 SMC 칩을 초기화하더라도 문제가 해결되지 않습니다.

이 상태에서 빠져나오는 유일한 방법은 시스템 복구 모드를 사용해 시스템 날짜를 원래대로 바꾸는 것뿐입니다. 

마치 로직보트에 달린 배터리가 방전됐을 때의 증상과 비슷한데요. 이때는 시스템 복구 모드에 들어가 터미널 앱을 실행한 뒤 'date' 명령어를 사용해 시스템 날짜를 원래 날짜로 설정해야 합니다. (관련 정보) 이렇게 하면 로그인 화면에서 사용자 암호를 암호를 정상적으로 인식합니다. 다만, 이렇게 운영체제에 성공적으로 진입하더라도 맥 앱스토어가 아닌 곳에서 구매한 응용 프로그램(Dropbox, ReadKit, Divvy, Scrivener 등) 상당 수의 인증이 풀리면서 앱이 시작하지 않거나 강제 충돌되는 현상이 나타났습니다.

사실 일요일에 포스팅이 없었던 이유도 이것 때문이었습니다. 타임머신으로 데이터 복구하는 데 하루 종일이 걸리더군요. 캘린더와 연락처 일정도 꼬여 있어서 아이클라우드 사이트를 방문해 시스템 날짜를 바꾸기 전의 데이터를 불러왔습니다. 다행히 복구 후에는 모든 프로그램이 정상적으로 실행되지만 다시는 하고 싶지 않은 경험이었습니다. 어쩌면 이것 외에도 아직 발견하지 못한 문제가 남아 있을 수 있습니다. 어제 이후 사파리도 어딘가 영 이상하게 돌아갑니다...

아무튼, 복구 방법이 있긴하지만 이처럼 엄청난 부작용이 있을 수 있으니 단순한 호기심으로라도 맥의 시스템 날짜를 1970년으로 돌리지 마시기 바랍니다. 제가 여러분의 실험체가 대신 되어 드렸습니다;;



관련 글
아이폰, 아이패드 '벽돌'로 만드는 시스템 날짜 버그 발견... 복구도 어려워 
• 시스템 복구 모드를 통해 OS X을 재설치 할 때 "설치를 준비하는 동안에 오류가 발생했습니다."
• OS X을 한글 상위로 사용할 때 '날짜와 시간'을 영어권 표기방식으로 변경하는 정확한 방법

저작자 표시 비영리 변경 금지


from Back to the Mac http://ift.tt/1PW9Spp
via IFTTT