Hello World vs. Hello Apple: 이 이미지를 보면 무엇을 볼 수 있나요?

Dec 18 2021
네 가지 변형이 모두 다른 사용자에게 어떻게 보이는지 보여주는 스크린샷 예시입니다. 우리 모두는 "이 드레스의 색은 무엇입니까?"를 기억합니다. 현상에 이어 "야니 vs.
네 가지 변형이 모두 다른 사용자에게 어떻게 보이는지 보여주는 스크린샷 예시입니다.

우리 모두는 "이 드레스의 색은 무엇입니까?"를 기억합니다. "Yanny vs. Laurel" 이 뒤따르는 현상 . 이제 세계는 집착해야 할 새로운 퍼즐을 갖게 되었고, 애플 사용자는 오랜 라이벌과 맞붙게 될 것입니다.

작동 방식은 다음과 같습니다 . PC 또는 Android 휴대폰(또는 기타 Apple 제품이 아닌 제품) 에서 이 이미지 를 확인하세요. 그런 다음 Apple 장치에서 동일한 이미지를 봅니다. 이미 Mac, iPhone 또는 iPad를 사용 중이었다면 다른 플랫폼으로 전환하십시오.

다른 이미지 로 다시 시도해 보겠습니다 .

꽤 깔끔하죠? PC나 안드로이드 폰에서 첫 번째 이미지를 볼 때 "HELLO WORLD"라는 메시지를 보았을 것입니다. Apple 장치에서 동일한 이미지 파일이 "HELLO APPLE"이라고 읽습니다. (아래에서 더 자세히 다룰 주의 사항이 있습니다.)

두 번째 이미지는 훨씬 더 큽니다. Apple이 아닌 장치에서 이미지는 오래된 IBM PC를 보여주지만 i-장치로 전환하면 오래된 Mac이 표시됩니다.

자, 도대체 여기서 무슨 일이 벌어지고 있는 걸까요? 이 퍼즐의 배후에 있는 엔지니어이자 암호학자인 David Buchanan이 설명하도록 하십시오.

“내 자신의 다중 스레드 PNG 디코더를 작성하는 동안 이것을 발견했습니다. 내 디자인을 숙고하는 동안 나는 악용 가능한 구현 버그가 있다는 것을 깨달았습니다.”라고 Buchanan은 블로그 게시물 에 썼습니다 . "Apple이 병렬 디코딩 가능한 PNG를 자체적으로 구현했다는 것을 알게 된 후, 나는 그들이 똑같은 실수를 저질렀다는 것을 깨달았습니다!"

간단히 말해서 이미지를 디코딩하는 다양한 방법이 있습니다. 뷰캐넌이 시도한 것처럼 단일 스레드에서 수행하거나 블록으로 분할된 병렬 스레드에서 수행할 수 있습니다(프로그램을 더 빠르게 실행하는 데 사용되는 방법). 그는 자신의 프로젝트에서 버그를 발견한 후 Apple이 같은 실수를 저질렀음을 발견했습니다. 그는 PNG 파일을 렌더링할 수 있다고 판단했습니다. decompress(a + b) != decompress(a) + decompress(b) (여기서 !=는 같지 않음을 의미함). 즉, 별도로 디코딩된 두 부분이 함께 디코딩된 동일한 두 부분이 함께 디코딩된 것과 항상 동일한 결과를 생성하지는 않습니다.

“ 압축되지 않은 블록을 통해 중간 끝나는 경우 발생할 수 있습니다. 따라서 병렬 또는 비병렬 디코더가 디코딩하는지 여부에 따라 이미지에 두 가지 가능한 해석이 있을 수 있습니다.”라고 Buchanan은 말했습니다.

회의론자들을 위해 제가 버지니아 대학교의 연구원인 제 형에게 이 이미지를 보여주었을 때 그는 파일을 해시(숫자로 변환)하고 실제로 동일한지 확인하여 뷰캐넌 이 자르지 않는다는 것을 증명했습니다. 사용 중인 브라우저나 OS에 따라 다른 파일을 제공하여 모서리를 보호합니다.

이 퍼즐을 복제하는 데 문제가 있는 경우 트릭이 하드웨어가 아닌 Apple 소프트웨어에 의존하기 때문에 브라우저와 관련이 있을 수 있습니다. 여러 장치와 브라우저에서 이미지를 본 후 Safari를 실행하는 Apple 제품은 항상 HELLO APPLE을 표시하는 반면 다른 브라우저를 사용하는 Apple 이외의 장치는 HELLO WORLD를 표시한다는 것을 알게 되었습니다.

그러나 혼합 및 일치를 시작하면 상황이 혼란스러워집니다.

Apple의 모바일 장치(iPad, iPhone)에서 Safari 이외의 브라우저를 사용할 때 HELLO APPLE 메시지가 나타납니다. 이상하게도 같은 브라우저(예: Chrome, Opera, Edge)를 Mac에서 사용하면 HELLO WORLD 메시지가 표시됩니다. 확신할 수는 없지만 App Store용으로 작성된 브라우저 앱은 Apple의 PNG 렌더링 이미지 라이브러리를 사용하는 반면 macOS에서 프로그램으로 다운로드한 브라우저는 자체 PNG 파서를 사용합니다.

어쨌든, Buchanan은 재미를 느끼고 싶다면 누구나 Apple 소프트웨어를 실행할 때 다르게 보이는 이미지를 만들 수 있는 'Ambiguous PNG Packer' 라는 도구를 게시했습니다. 그러나 이미지 파일 구문 분석의 이러한 편차는 보안 문제가 될 수 있으며 Buchanan은 "주의 깊게 접근해야" 한다고 생각하는 부분에 주의해야 합니다.

동부 표준시 기준 오후 1시 30분 업데이트: 원래 이 기사에 사진이 포함되어 게시되었습니다. 불행히도 우리 CMS는 환상을 깨기에 충분할 정도로 파일을 변경했습니다. Apple과 다른 플랫폼에서 다르게 보일 수 있는 사진으로 연결되는 링크가 포함된 기사를 업데이트했습니다.

BleepingComputer 를 통해