시즌 3 105화: 원픽스! "보안 결함이 아닌"MS Office 암호화 실패 [오디오 + 텍스트]

소스 노드 : 1726750

"보안 서비스의 기준을 충족하지 못한다"는 것은 무엇을 의미합니까?

원하는 지점으로 건너뛰려면 아래의 음파를 클릭하고 끕니다. 당신은 또한 수 직접 들어 사운드클라우드에서.

Doug Aamoth와 Paul Ducklin과 함께. 인트로 및 아웃트로 음악 에디스 머지.

당신은 우리를들을 수 있습니다 사운드 클라우드, Apple Podcasts, Google 포드 캐스트, 스포티 파이, 스티 그리고 좋은 팟캐스트가 있는 곳이면 어디든지. 아니면 그냥 버리세요 RSS 피드의 URL 좋아하는 팟캐쳐에.


대본 읽기

더그.  숨막히는 침해, 해독 가능한 암호화 및 수많은 패치.

Naked Security 팟캐스트에서 더 많은 정보를 얻을 수 있습니다.

[뮤지컬 모뎀]

팟캐스트에 오신 것을 환영합니다.

저는 Doug Aamoth입니다. 그는 폴 더클린이다.

폴, 오늘은 어때요, 선생님?


오리.  Doug… 알아요, 당신이 나에게 미리 말했기 때문에 무엇이 들어오는지 이번 주 기술 역사, 그리고 그것은 굉장합니다!


더그.  OK!

이번 주, 18년 1958월 XNUMX일, 바람 저항을 시뮬레이션하기 위해 제작된 컴퓨터와 오실로스코프가 맞춤형 알루미늄 컨트롤러와 짝을 이루었습니다. 2 인승 테니스 태어났습니다.

브룩헤이븐 국립 연구소(Brookhaven National Laboratory)에서 열린 XNUMX일간의 전시회에서 선보인 두 사람을 위한 테니스(Tennis for Two)는 특히 고등학생들에게 매우 인기가 있는 것으로 판명되었습니다.

이것을 듣고 있다면 반드시 위키피디아에 가서 "Tennis for Two"를 검색해야 합니다.

1958년에 지어진 것에 대한 비디오가 있습니다…

...내 생각에 당신도 동의할 거라고 생각해요, Paul. 정말 놀라운 일이었어요.


오리.  나는 오늘 그것을 *좋아*하고 싶다!

그리고 Asteroids와 Battle Zone, 그리고 특별히 기억에 남는 1980년대 게임처럼…

...오실로스코프이기 때문에: 벡터 그래픽!

픽셀화가 없고 선이 90도인지 30도인지 45도인지에 따라 차이가 없습니다.

그리고 컨트롤러의 릴레이에서 나오는 사운드 피드백은... 훌륭합니다!

이게 1958년이라는게 믿기지 않습니다.

과거를 회상하다 이번 주 기술 역사, 그것은 트랜지스터 혁명의 정점에 있었습니다.

분명히, 계산의 절반은 열이온 밸브(진공관)와 릴레이의 혼합물이었습니다.

그리고 디스플레이 회로는 모두 트랜지스터 기반이었습니다. Doug

따라서 하나의 획기적인 비디오 게임에 릴레이, 밸브 및 트랜지스터와 같은 모든 기술이 결합되었습니다.


더그.  매우 시원합니다.

Wikipedia에서 확인하십시오. 2 인승 테니스.

이제 첫 번째 이야기로 넘어가겠습니다.

폴, 나는 당신이 훌륭한 시를 쓰는 데 매우 능숙하다는 것을 알고 있습니다.

…이 첫 번째 이야기를 소개하기 위해 아주 짧은 시를 썼습니다.


오리.  그럼 두줄이 되겠죠? [웃음]


더그.  약간 이런 식으로 진행됩니다.

Mac용 확대/축소/사용 불가 납치 된.

[매우 긴 침묵]

시를 마칩니다.


오리.  오, 미안해!

그것이 제목이고 당신이 지금 시를 할 것이라고 생각했습니다.


더그.  그래서, 그것은 시입니다.


오리.  좋아요.

[감정 없이] 러블리, 더그.


더그.  [아이러니] 감사합니다.


오리.  운율은 훌륭했습니다!

그러나 모든 시가 운율을 따라야 하는 것은 아닙니다.


더그.  그건 사실이야.


오리.  그냥 자유 운문이라고 부를까요?


더그.  알겠습니다.


오리.  불행히도 이것은 Mac용 Zoom에 대한 무료 백도어였습니다.

[감정 죄책감] 죄송합니다. 그건 별로 좋은 시그가 아니었어요, 더그.

[웃음] 남의 밭을 밟고 종종 밀리기도 하고...


더그.  아니, 좋다!

나는 이번 주에 시를 시험해 보았다. 당신은 segues를 시도하고 있습니다.

우리는 때때로 우리의 안락한 지대에서 벗어나야 합니다.


오리.  나는 이것이 최종 빌드가 완료될 때 컴파일될 예정이었지만 실수로 남겨진 코드라고 가정합니다.

Zoom for Mac 버전에만 해당되며 패치가 완료되었으므로 최신 버전인지 확인하세요.

기본적으로, 어떤 상황에서는 비디오 스트림이 시작되거나 카메라가 앱 자체에 의해 활성화될 때 무심코 여러분이 프로그램을 디버그하고 싶다고 생각할 것입니다.

왜냐하면 당신이 개발자였을 수도 있습니다! [웃음]

릴리스 빌드에서는 당연히 발생하지 않아야 합니다.

이는 로컬 네트워크 인터페이스에 TCP 디버깅 포트가 열려 있음을 의미합니다.

즉, 해당 포트에 패킷을 전달할 수 있는 사람은 누구나 로컬에 연결된 다른 사용자일 수 있으므로 관리자나 심지어 게스트 사용자일 필요도 없습니다. 그것으로 충분합니다.

따라서 외부에서 패킷을 수신하여 로컬 인터페이스에 주입할 수 있는 일종의 프록시 맬웨어가 컴퓨터에 있는 공격자는 기본적으로 프로그램의 내장에 명령을 내릴 수 있습니다.

그리고 디버깅 인터페이스가 허용하는 일반적인 사항은 다음과 같습니다. 일부 메모리를 덤프합니다. 비밀을 추출하다; 프로그램의 동작을 변경합니다. 사용자가 볼 수 없도록 일반적인 인터페이스를 거치지 않고 구성 설정을 조정합니다. 녹음 경고를 표시하지 않고 아무에게도 알리지 않고 모든 오디오를 캡처합니다. 그런 모든 것들.

좋은 소식은 Zoom이 스스로 찾았고 꽤 빨리 패치했다는 것입니다.

그러나 우리가 자주 말하듯이 [웃음] "컵과 입술 사이에 미끄러짐이 많이 있습니다."


더그.  좋아, 아주 좋아.

패치 트레인을 타고 다음 역으로 가자.

그리고 이 이야기는... 아마도 가장 최근 패치 화요일의 이 이야기에서 가장 흥미로운 부분은 Microsoft가 *포함하지 않은* 것?


오리.  불행히도 모든 사람들이 예상했던 패치 – 그리고 우리는 최근 팟캐스트에서 다음과 같이 추측했습니다. "는 최근 메모리의 두 Exchange 제로 데이입니다.

E00F로 알려지게 된 것, 또는 더블 제로데이 결함 교환 내 용어로, 또는 ProxyNotShell Twittersphere에서 다소 혼란스럽게 알려져 있기 때문입니다.

이것이 이번 달 패치 화요일의 큰 이야기였습니다. 이 두 가지 버그는 훌륭하게 수정되지 않았습니다.

그래서 우리는 그것이 언제 일어날지 모릅니다.

완화를 적용했는지 확인해야 합니다.

이전에 말했듯이 Microsoft는 이전에 제안한 완화 방법을 계속 찾았습니다... 글쎄요, 아마도 충분히 좋지 않았을 수 있으며 계속해서 조정을 변경하고 스토리를 적용했습니다.

따라서 의심스러운 경우 nakedsecurity.sophos.com으로 돌아가서 해당 문구를 검색할 수 있습니다. ProxyNotShell (모두 한 단어), 그리고 나서 우리가 해야 할 말을 읽으십시오.

또한 최신 버전의 Microsoft 수정에 연결할 수도 있습니다.

...화요일 패치의 모든 것 중에서 가장 흥미로웠던 것은 당신이 말했듯이 거기에 없었기 때문입니다.


더그.  자, 이제 기어를 매우 실망스러운 이야기.

이것은 사이버 보안이 너무 나빠서 침해당했다는 사실조차 눈치채지 못한 큰 회사의 경우입니다!


오리.  예, 이것은 대부분의 사람들이 대문자로 된 한 단어로 쓰여진 SHEIN("she-in")으로 아마 알고 있을 브랜드입니다. (침해 당시 회사는 Zoetop으로 알려졌습니다.)

그리고 그들은 "패스트 패션"이라고 불리는 것입니다.

알다시피, 그들은 그것을 높게 쌓아서 싸게 판매하며 디자인을 어디에서 얻는지에 대한 논쟁이 없습니다.

그리고 온라인 소매업체로서 아마도 그들이 온라인 소매 사이버 보안 세부 정보를 알고 있을 것이라고 기대할 수 있습니다.

그러나 당신이 말했듯이 그들은하지 않았습니다!

그리고 미국 뉴욕주 법무장관실은 이 위반의 희생자 중 한 명인 뉴욕 주민들이 대우받는 방식이 마음에 들지 않는다고 결정했습니다.

그래서 그들은 이 회사에 대해 법적 조치를 취했습니다... 그리고 그것은 실수, 실수, 궁극적으로 은폐의 절대적인 낭독이었습니다. 한마디로 더글라스, 부정직이었습니다.

그들은 눈치채지 못한 이 위반이 있었습니다.

이것은 적어도 과거에는 실망스러울 정도로 일반적이었습니다. 회사는 신용 카드 취급자나 은행이 연락하여 "우리는 정말 많은 일을 겪었습니다. 이번 달 고객 사기 불만 건수”

“그리고 그들이 CPP라고 부르는 것을 되돌아보았을 때, 공통 구매 포인트, 모든 피해자가 무언가를 구매한 것으로 보이는 유일한 상인은 바로 당신입니다. 우리는 누출이 당신에게서 온 것으로 생각합니다.”

그리고 이 경우는 더 심했다.

분명히 다른 지불 처리자가 와서 "아, 그런데 우리는 판매용 신용 카드 번호 전체를 찾았습니다. 여러분이 도난당한 것으로 제공되었습니다."라고 말했습니다.

그래서 그들은 대량의 침해가 있었거나 조금씩 침해가 있었다는 분명한 증거를 가지고 있었습니다.


더그.  확실히 이 회사가 이 사실을 알았을 때 상황을 바로잡기 위해 발빠르게 움직였겠죠?


오리.  글쎄, 그것은 당신이 어떻게 하느냐에 달려 있습니다 ... [웃음] 항상 그랬듯이 Doug, 웃지 않아야합니다.

그것은 "수정"이 의미하는 바에 따라 다릅니다.


더그.  [웃음] 오, 세상에!


오리.  그래서 그들은 문제를 *다뤘던* 것 같습니다... 실제로, 그들이 정말 잘 은폐한 부분이 있었습니다.

분명히.

갑자기 "우와, 우리는 PCI DSS를 준수하는 것이 좋을 것입니다."라고 결정한 것 같습니다.

분명히 그들은 실패한 거래에 대한 신용 카드 세부 정보가 있는 디버그 로그를 보관하고 있었기 때문에 디스크에 쓰지 말아야 할 모든 것을 기록하고 있었습니다.

그리고 나서 그들은 그것이 일어났다는 것을 깨달았지만 자신의 네트워크에서 그 데이터를 어디에 두었는지 찾을 수 없었습니다!

따라서 분명히 그들은 PCI DSS와 호환되지 않는다는 것을 알고 있었습니다.

그들은 PCI DSS를 준수하도록 만들기 시작했으며, 이는 분명히 2019년까지 달성한 ​​것입니다. (해당 위반은 2018년에 발생했습니다.)

그러나 그들이 감사에 제출해야한다는 말을 들었을 때 법의학 조사는 ...

...뉴욕 법무장관에 따르면, 그들은 상당히 고의적으로 수사관을 방해했습니다.

그들은 기본적으로 수사관이 시스템을 수리하고 용접하고 광택을 낸 *후* 있는 그대로의 시스템을 볼 수 있도록 했고 "아, 백업을 볼 수 없습니다"라고 말했습니다. .


더그.  어 - 허.


오리.  또한 고객에게 침해 사실을 공개한 방식은 뉴욕주에서 상당한 분노를 불러일으켰습니다.

특히 39,000,000명의 사용자 정보가 매우 약하게 해시된 비밀번호(5자리 솔트, MDXNUMX 한 라운드)를 포함하여 어떤 식으로든 도용된 것이 매우 분명했던 것 같습니다.

1998년은 고사하고 2018년에는 충분하지 않습니다!

그래서 그들은 이 많은 사용자에게 문제가 있다는 것을 알았지만 실제로 계정을 사용하고 주문한 사용자 중 6,000,000만 명에게만 연락을 시작한 것 같습니다.

그런 다음 그들은 "글쎄, 우리는 적어도 그 모든 사람들에게 연락했습니다."라고 말했습니다.

그리고 *그때* 실제로 실제로 6,000,000만 사용자 모두에게 연락하지 않았다는 것이 밝혀졌습니다!

그들은 우연히 캐나다, 미국 또는 유럽에 살았던 XNUMX만 명과 방금 연락을 취했습니다.

그래서 만약 당신이 세계의 다른 곳에서 왔다면, 불운을 빕니다!

당신이 상상할 수 있듯이, 그것은 당국과 규제 기관과 잘 어울리지 않았습니다.

그리고 인정해야 합니다... 놀랍게도 Doug는 1.9만 달러의 벌금을 부과받았습니다.

어느, 그렇게 큰 회사를 위해…


더그.  네!


오리.  ...그리고 그렇게 심각한 실수를 하고, 일어난 일에 대해 완전히 예의 바르고 정직하지 않고, 위반에 대해 거짓말을 한 것에 대해 뉴욕 법무장관에게 질책을 받고 있습니까?

나는 그들이 더 심각한 운명을 겪었을 수도 있다고 상상했습니다.

아마도 돈을 모아서 갚을 수 없는 것을 포함할 수도 있습니다.

아, 그리고 그들이 한 또 다른 일은 비밀번호가 위험에 처한 사용자가 있다는 것이 분명했을 때 ... 두 자리 솔트라는 사실 때문에 깊이 크랙이 가능했기 때문에 미리 계산된 사전을 100개 만들 수 있음을 의미합니다. …


더그.  흔한 일인가요?

두 자릿수만 해도 소금이 정말 낮은 것 같아요!


오리.  아니요, 일반적으로 128비트(16바이트) 또는 32바이트를 원할 것입니다.

느슨하게 말해서 어쨌든 크래킹 속도에 큰 차이를 만들지 않습니다. 왜냐하면 해시의 블록 크기에 따라 두 자리 숫자만 믹스에 추가하기 때문입니다.

따라서 해시의 실제 계산이 더 오래 걸리는 것은 아닙니다.

2016년으로 거슬러 올라가면 "해시캣" 프로그램을 실행하는 200개의 GPU 컴퓨터를 사용하는 사람들이 초당 5천억 개의 MDXNUMX를 처리할 수 있다고 생각합니다.

그때는! (지금은 그 금액이 XNUMX~XNUMX배 정도 더 올랐습니다.)

아주 아주, 아주 잘 깨질 수 있습니다.

그러나 실제로 사람들에게 연락하여 "당신의 비밀번호는 우리가 해시를 유출했기 때문에 위험합니다. 그리고 그것은 아주 좋은 것이 아니었습니다. 당신이 그것을 변경해야 합니다", 그들은 단지 말했다...

...너무 얄미운 말들이죠?


더그.  “귀하의 비밀번호는 보안 수준이 낮고 위험할 수 있습니다. 로그인 비밀번호를 변경해주세요.”

그리고는 "비밀번호가 365일 이상 업데이트되지 않았습니다. 귀하의 보호를 위해 지금 업데이트하십시오."


오리.  예, "비밀번호의 보안 수준이 낮습니다..."


더그.  “우리 때문에!”


오리.  그냥 후원하는게 아니잖아요?

내 눈에는 피해자 비난이 국경에 있거나 그 너머에 있습니다.

어쨌든, 이것은 옳은 일을 하고 싶어하지 않는 회사들에 대한 아주 강력한 인센티브가 아닌 것 같았습니다.


더그.  좋습니다. 의견을 들려주세요. 여러분의 생각을 듣고 싶습니다!

그 기사의 이름은 다음과 같습니다. 패션 브랜드 SHEIN, 데이터 유출 거짓말로 1.9만 달러 벌금.

그리고 또 다른 답답한 이야기...

.., 또 다른 날, 신뢰할 수 없는 입력 처리에 대한 또 다른 경고 이야기!


오리.  아아, 그게 어떻게 될지 알아, 더그.

즉 년대 아파치 커먼즈 텍스트 버그, 그렇지?


더그.  그것은!


오리.  분명히 하자면 그것은 Apache Web Server가 아닙니다.

Apache는 수많은 제품과 무료 도구를 제공하는 소프트웨어 기반이며 ... 실제로 매우 유용하고 오픈 소스이며 훌륭합니다.

그러나 우리는 생태계의 Java 부분(Apache Web Server httpd Java로 작성되지 않았으므로 지금은 무시합시다. Apache와 Apache Web Server를 혼동하지 마십시오)…

...작년에 우리는 Apache의 Java 라이브러리에서 세 가지 유사한 문제를 겪었습니다.

우리는 악명 높은 Log4Shell 버그 소위 Log4J(Java용 로깅) 라이브러리에 있습니다.

그런 다음 유사한 버그가 있었습니다. 그게 뭐였죠?… Apache Commons 구성, INI 파일 및 XML 파일과 같은 모든 종류의 구성 파일을 모두 표준화된 방식으로 관리하기 위한 툴킷입니다.

그리고 이제 라는 더 낮은 수준의 라이브러리에서 아파치 커먼즈 텍스트.

Java에서 일반적으로 "문자열 보간"으로 알려진 문제의 버그입니다.

다른 언어의 프로그래머... PowerShell이나 Bash와 같은 것을 사용하면 "문자열 대체"라고 알 수 있습니다.

여기에서 문자로 가득 찬 문장을 일종의 미니 프로그램으로 마술처럼 만들 수 있습니다.

Bash 쉘을 사용한 적이 있다면 다음 명령을 입력하면 알 수 있습니다. echo USER, 문자열을 에코하거나 인쇄합니다. USER USER 화면에서 볼 수 있습니다.

그러나 명령을 실행하면 echo $USER, 그렇다고 해서 USER가 뒤에 오는 달러 기호를 에코하는 것은 아닙니다.

이것이 의미하는 바는 "현재 로그인한 사용자의 이름으로 해당 매직 문자열을 교체하고 대신 인쇄하십시오."입니다.

따라서 내 컴퓨터에서 echo USER, 너는 얻을 USER하지만 당신이 echo $USER, 당신은 단어를 얻을 duck 대신.

그리고 일부 Java 문자열 대체는 그보다 훨씬, 훨씬 더 멀리 나아갑니다. Log4Shell 수정 2021년 크리스마스는 기억할 것입니다!

문자열 내부에 포함할 수 있는 모든 종류의 영리한 작은 미니 프로그램이 있으며 이 문자열 처리 라이브러리로 처리합니다.

그래서 분명한 것이 있습니다. 사용자 이름을 읽으려면 ${env: ("환경 읽기"를 위해) user}... 구불구불한 괄호를 사용합니다.

달러 기호입니다. 구불구불한 브래킷; 어떤 마법 명령; 마법의 부분인 구불구불한 브래킷.

불행히도 이 라이브러리에는 다음과 같은 마법 명령의 제어되지 않는 기본 가용성이 있었습니다. ${url:...}, 이를 통해 문자열 처리 라이브러리를 속여 인터넷에 접속하고, 무언가를 다운로드하고, 문자열 대신 해당 웹 서버에서 얻은 내용을 인쇄할 수 있습니다. ${url:...}.

따라서 이것이 완전한 코드 삽입은 아니지만 원시 HTML이기 때문에 여전히 모든 종류의 쓰레기와 이상하고 신뢰할 수 없는 항목을 사람들의 로그 파일이나 웹 페이지에 넣을 수 있음을 의미합니다.

${dns:...}, 이는 네트워크 내부의 비즈니스 로직 서버일 수 있는 누군가의 서버를 속일 수 있음을 의미합니다…

… 명명된 서버에 대한 DNS 조회를 수행하도록 속일 수 있습니다.

그리고 사기꾼으로서 해당 도메인을 소유하고 있다면 해당 도메인과 관련된 DNS 서버도 소유하고 운영하게 됩니다.

따라서 DNS 조회가 발생하면 어떻게 될까요?

이 조회는 *귀하의 서버*에서 종료되고 누군가의 비즈니스 네트워크 내부를 매핑하는 데 도움이 될 수 있습니다. 웹 서버뿐만 아니라 네트워크의 깊숙한 곳까지.

그리고 마지막으로 가장 걱정스러운 것은 적어도 이전 버전의 Java에는 다음과 같은 문제가 있었습니다. [웃음] 여기에 무엇이 오는지 알겠죠, Doug!

명령 ${script:...}.

"이봐, JavaScript를 제공하고 친절하게 나를 위해 실행해 보겠습니다."

그리고 당신은 아마도 "뭐?! 잠깐만, 이것은 Java의 버그입니다. JavaScript가 그것과 무슨 관련이 있습니까?”

글쎄요, 비교적 최근까지... 그리고 많은 기업들이 여전히 지원되는 이전 버전의 Java Development Kit를 사용하고 있음을 기억하십시오.

최근까지 Java… [웃음] (다시 말하지만 웃으면 안 됩니다.)… Java Development Kit에는 Java로 작성된 완전하고 작동하는 JavaScript 엔진이 내부에 포함되어 있었습니다.

이제 "Java"라는 네 글자를 제외하고는 Java와 JavaScript 사이에 관계가 없지만 다음을 입력할 수 있습니다. ${script:javascript:...}원하는 코드를 실행합니다.

그리고 짜증나게도 자바 런타임 내부의 자바스크립트 엔진에서 할 수 있는 일 중 하나는 자바스크립트 엔진에 "자바를 통해 이 일을 실행하고 싶어요."라고 말하는 것입니다.

따라서 Java가 *into* JavaScript를 호출하도록 하고 JavaScript가 본질적으로 *out*을 Java로 호출하도록 할 수 있습니다.

그런 다음 Java에서 "이 시스템 명령을 실행하십시오."로 이동할 수 있습니다.

그리고 Naked Security 기사로 이동하면 내가 의심스러운 명령을 사용하여 [COUGHS APOLOGETICALLY] 계산기를 띄우는 것을 보게 될 것입니다, Doug!

HP RPN 계산기는 물론, 계산기가 터지는 일을 하고 있기 때문에…


더그.  그래야만 해, 네!


오리.  ...이것은 HP-10입니다.

그래서 비록 위험이 Log4Shell로 훌륭합니다., 이 라이브러리를 사용하면 실제로 이를 배제할 수 없습니다.

Naked Security 기사에 Commons Text 라이브러리가 있는지 확인하는 방법에 대한 몇 가지 지침이 있습니다. 많은 사람들이 Log4J를 사용하는 것처럼 앱과 함께 제공되었을 수 있기 때문에 깨닫지 못하고 있을 수 있습니다.

또한 귀하가 적용한 완화 조치가 효과가 있었는지 여부를 테스트하는 데 사용할 수 있는 몇 가지 샘플 코드가 있습니다.


더그.  네이키드 시큐리티로 가세요.

그 기사의 이름은 다음과 같습니다. Log4Shell과 같은 Apache Commons Text의 위험한 구멍.

그리고 우리는 "암호화된 메시지가 일종의 암호화만 되면 어떻게 될까요?"라는 질문으로 마무리합니다.


오리.  아, 최근 핀란드 회사 WithSecure의 사이버 보안 연구원들이 제출한 공식 버그 보고서를 말씀하시는 것 같은데요...

...Microsoft Office에서 제공되는 기본 제공 암호화 또는 더 정확하게는 Office 365 메시지 암호화 또는 OME라는 기능에 대해 설명합니다.

앱에 이와 같은 작은 기능이 내장되어 있어 매우 편리합니다.


더그.  예, 간단하고 편리하게 들립니다!


오리.  예, 제외... 오, 이런!

그 이유는 모두 하위 호환성 때문인 것 같습니다. Doug…

… Microsoft는 이 기능이 여전히 Office 2010을 사용하는 사람들에게 다시 작동하기를 원합니다. Office XNUMX에는 다소 구식 암호 해독 기능이 내장되어 있습니다.

기본적으로 이 OME의 파일 암호화 과정은 가장 최신의 NIST 표준화 암호화 알고리즘인 AES를 사용하는 것으로 보인다.

그러나 잘못된 소위 암호화 모드에서 AES를 사용합니다.

ECB로 알려진 것을 사용합니다. 전자 코드북 방법.

그리고 그것은 단순히 원시 AES를 참조하는 방법입니다.

AES는 한 번에 16바이트를 암호화합니다. 그런데 AES-16, AES-128 또는 AES-192을 사용하든지 간에 256바이트를 암호화합니다.

블록 크기와 키 크기를 혼동하지 마십시오. 블록 크기, 암호화 엔진에서 크랭크 핸들을 돌릴 때마다 휘어지고 암호화되는 바이트 수는 항상 128비스 또는 16바이트입니다.

어쨌든 전자 코드북 모드에서는 단순히 16바이트의 입력을 취하고 주어진 암호화 키 아래에서 크랭크 핸들을 한 번 돌리고 원시 및 재처리되지 않은 출력을 취합니다.

그리고 그 문제는 동일한 16바이트 경계에 정렬된 문서에서 동일한 입력을 얻을 때마다…

... 출력에서 ​​정확히 동일한 데이터를 얻습니다.

따라서 입력의 패턴은 출력에 표시되는 것처럼 시저 암호 또는 비제네르 암호:

한 번에 128비트 너비의 청크를 계속 처리하고 있기 때문에 암호를 해독할 수 있다는 의미는 아닙니다.

전자 코드북 모드의 문제는 일반 텍스트에서 암호문으로 패턴을 누출하기 때문에 정확하게 발생합니다.

알려진 일반 텍스트 공격은 특정 입력 문자열이 특정 방식으로 암호화되고 문서에서 반복되는 텍스트(예: 헤더 또는 회사 이름)에 대해 이러한 패턴이 반영된다는 것을 알고 있을 때 가능합니다.

그리고 이것이 Microsoft에 버그로 보고되었지만 분명히 회사는 보안 수정에 대한 "기준을 충족하지 못하기" 때문에 수정하지 않기로 결정했습니다.

그리고 그 이유는 "음, 우리는 여전히 Office 2010을 사용하는 사람들에게 불쾌감을 줄 것입니다."


더그.  돈!


오리.  네!


더그.  그리고 그 메모에 대해 이번 주에 이 이야기에 대한 독자 의견이 있습니다.

Naked Security Reader Bill은 부분적으로 다음과 같이 말했습니다.

이것은 Bletchley Park 암호 해독자들이 80차 세계 대전 중에 사용했던 '요람'을 생각나게 합니다. 나치는 종종 동일한 닫는 문구로 메시지를 종료하므로 암호 해독기는 암호화된 문자의 닫는 집합에서 다시 작업할 수 있으며, 그 문자가 무엇을 나타낼지 알 수 있습니다. XNUMX년이 지난 지금도 같은 실수를 반복하고 있는 것 같아 안타깝습니다.


오리.  80 년!

네, 참으로 실망스럽습니다.

내 이해에 따르면 연합국 암호 해독기가 특히 나치로 암호화된 텍스트에 사용할 수 있는 다른 침대도 문서의 *시작*을 처리했습니다.

나는 이것이 독일 일기예보를 위한 것이라고 생각합니다. 그들이 일기예보를 정확하게 제공하기 위해 따랐던 종교적 형식이 있었습니다.

그리고 당신이 상상할 수 있듯이, 밤에 공중 폭격을 수반하는 전쟁 중에 일기 예보는 정말 중요한 것이었습니다!

그것들은 아주, 아주 엄격한 패턴을 따랐던 것 같습니다. 이 패턴은 때때로 암호학적 "루저" 또는 처음에 침입하는 데 사용할 수 있는 쐐기로 사용할 수 있습니다.

그리고 Bill이 지적한 것처럼... 바로 이것이 전자 코드북 모드에서 AES 또는 모든 암호가 전체 문서를 암호화하는 데 만족스럽지 못한 이유입니다!


더그.  알겠습니다. 보내주셔서 감사합니다, 빌.

제출하고 싶은 흥미로운 이야기, 의견 또는 질문이 있으면 팟캐스트에서 읽고 싶습니다.

Tips@sophos.com으로 이메일을 보내거나, 우리 기사 중 하나에 댓글을 달거나, @nakedsecurity 소셜에서 연락할 수 있습니다.

그것이 오늘의 쇼입니다. 들어주셔서 대단히 감사합니다.

Paul Ducklin에게 저는 Doug Aamoth라고 합니다. 다음 시간까지...


양자 모두.  보안 유지!


타임 스탬프 :

더보기 노출 된 보안