얼마 전 컴퓨팅의 무작위화에 관한 기사를 읽은 기억이 납니다.무작위의실제로 시스템을 얻을 수 있습니다. 내 기억이 정확하다면 이 게시물은 코드의 사소한 변경으로 인해 큰 보안 취약점이 발생했기 때문에 작성되었습니다.
기사를 찾을 수 없고 오류가 무엇인지 정확히 기억할 수 없습니다. 몇 년 전에 수정된 버그에 대한 막연한 기억만으로 웹을 검색하는 것이 생각보다 어려웠습니다. 하지만 난 해냈어,이것을 찾았다. 설명에 맞는 것 같지만 openssl에만 관련됩니다.
이 버그가 openssl의 난수보다 더 널리 퍼져 있고 실제로 전체 엔트로피 풀을 엉망으로 만드는지 궁금합니다. 이 버그가 엔트로피 풀과 아무 관련이 없다면 다음과 같은 버그가 있었던 적이 있습니까(엔트로피가 크게 감소하여 예측 가능한 무작위화가 발생함)한 적이 있습니까? 그렇다면 어떤 배포판이 취약하고 이러한 버그에 대한 보고를 어디서 찾을 수 있는지 알고 싶습니다.
그러한 버그가 존재하지 않는다면... 사람들에게 환각과 망상을 일으키는 것으로 알려진 끔찍한 밤(불면증)을 보냈습니다... 용서해 주십시오.
관계자분들께:
제가 이 질문을 하는 이유는 제가 코드를 작성하면서 많은 것을 얻었기 때문입니다.힉스-바고손오류 보고서. 우리는 일부 문제의 원인이 무엇인지 조사해 왔으며 그 결과는 다음과 같습니다.가지다예측 가능한 무작위화와 관련이 있습니다.
너무 많은 세부 사항을 밝힐 수는 없습니다. 안타깝게도 저는 오픈 소스 회사에서 일하지 않으며 비공개 계약에 서명해야 합니다.
답변1
소프트웨어 난수 생성기는 시스템의 유일한 엔트로피 소스가 아닙니다. 실제로 그들은 전혀 엔트로피의 원천이 아닙니다 - 소프트웨어 RNG외부 엔트로피 소스 사용시스템에 엔트로피를 제공합니다. 실제 출처는언제나물리적(전용 하드웨어 RNG, 온도 센서, 오디오 입력, 네트워크 패킷 타이밍, 사용자 입력 또는 심지어CPU 내부 상태(가상 CPU의 경우 이는 이름을 지정한다는 의미에서 엄격히 "물리적"이 아닙니다.)
이제 귀하의 질문에 대해: Mat가 자신의 의견에서 언급했듯이 대부분의 버그는 엉성한 디자인/코딩(/testing)으로 인해 발생합니다. 저는 이것이 100%라고 말하고 싶습니다. 내 생각엔 당신의 코드가 어떤 종류의 문제를 겪고 있는 것 같아요경쟁 조건매우 형편없이 처리되었습니다(전혀 있는 경우). 따라서 어떤 의미에서는 엔트로피와 관련이 있습니다(경쟁 조건은 무작위 이벤트이므로). 적어도 그것을 RNG에 비난하는 것은 꽤 대담한 진술입니다. 임의의 숫자를 사용하여 트리거하지 않는 한, 이 경우 기능처럼 보입니다.
그건 그렇고, RNG 결함이 문제의 원인이라면 실제로는 상당히 예측 가능하게 볼 수 있습니다. Debian OpenSSL 버그와 관련하여 - Debian 기반 배포판(Ubuntu 포함) 이외의 다른 배포판은 영향을 받지 않았다고 생각합니다. 그러나 실수 자체는 그것이 처음에 어떻게 일어났는지에 대한 의미에서 교육적입니다.