이탈리아와 영국 사이에 분리된 세 명의 연구원이 최근 논문을 발표 널리 알려진 스마트 전구에서 발견된 암호화된 보안에 대해 알아봤습니다.
연구원들은 다음과 같은 점을 근거로 대상 장치인 TP-Link Tapo L530E를 선택한 것으로 보입니다. "현재 Amazon Italy의 베스트셀러입니다." 그래서 우리는 다른 스마트 전구가 어떻게 쌓이는지 모르지만 그들의 보고서는 어쨌든 우리에게 많은 것을 가르쳐줍니다.
연구원들은 다음과 같이 말합니다.
우리는 VRP(취약성 연구 프로그램)를 통해 TP-Link에 성실하게 연락하여 발견된 XNUMX가지 취약점을 모두 보고했습니다.
그들은 그들 모두를 인정하고 앱과 전구 펌웨어 수준 모두에서 수정 작업을 시작했으며 적시에 릴리스할 계획이라고 알려주었습니다.
좋든 나쁘든(논문의 저자는 공개 날짜가 TP-Link와 합의되었는지 여부를 밝히지 않았기 때문에 회사가 패치 작업을 얼마나 오랫동안 진행했는지 알 수 없습니다) 연구원들은 이제 어떻게 공개 날짜를 공개했는지 밝혔습니다. 비록 홈 해커가 마음대로 악용할 수 있도록 복사하여 붙여넣을 수 있는 공격 코드를 제공하지 않더라도 그들의 공격은 작동합니다.
그러므로 우리는 이 논문이 조사해 볼 가치가 있다고 생각했습니다.
무선 설정
소위 "스마트" 장치라고 불리는 많은 장치와 마찬가지로 Tapo L530E는 Wi-Fi를 통해 빠르고 쉽게 설정할 수 있도록 설계되었습니다.
카메라, 자전거 액세서리 등 내장 USB 포트를 통해 충전하고 설정할 수 있는 배터리 구동식 장치에도 무선 기반 구성이 일반적이지만, 전구에는 일반적으로 공간과 안전을 위해 USB 포트가 없습니다. 이유는 전원 소켓에 연결하여 그대로 두도록 설계되었기 때문입니다.
벽 스위치에서 한 번에 530초 동안 Tapo LXNUMXE 전구를 반복해서 켜고 끄면 강제로 설정 모드로 전환할 수 있습니다(구성 준비가 되면 전구가 자동으로 세 번 깜박임).
대부분의 자동 구성 장치와 마찬가지로 스마트 전구는 인식하기 쉬운 다음과 같은 형식의 네트워크 이름을 사용하여 Wi-Fi 액세스 포인트로 전환됩니다. Tapo Bulb XXXX
, 여기서 X는 숫자의 문자열을 형성합니다.
그런 다음 스마트폰의 앱에서 비밀번호로 보호되지 않는 임시 액세스 포인트에 연결합니다.
그런 다음 전구에 비밀번호로 보호된 홈 Wi-Fi 네트워크와 향후 TP-Link 클라우드 계정에 연결하는 방법을 알려주면 전구의 펌웨어가 재부팅되고 인터넷에 자동으로 연결되어 전구를 관리할 수 있습니다. 휴대전화의 앱에서
전구는 홈 네트워크에 연결할 수 있습니다. 즉, ISP가 당시 오프라인 상태이더라도 집에 있을 때 자신의 Wi-Fi를 통해 전구에 직접 연결할 수 있습니다.
전구는 인터넷을 통해 클라우드 계정에 연결할 수 있으므로 이동 중에 클라우드 계정을 통해 간접적으로 명령을 보낼 수도 있습니다. 집에 누군가가 있다는 인상을 주기 위해.
사기꾼을 조심하세요
이것이 어디로 가는지 짐작할 수 있을 것입니다.
설정 프로세스를 진행할 때 휴대전화의 앱에 진짜 전구에 연결되어 있는지 확인하는 강력한 암호화 방법이 없다면…
...그런 다음 우연히 가짜를 시작하는 근처의 공격자 Tapo Bulb XXXX
적절한 순간에 액세스 포인트를 사용하면 중요한 설정 비밀을 실제 장치가 아닌 "임포스터 전구" 장치로 보내도록 유도하여 Wi-Fi 비밀번호와 TP-Link 계정 세부 정보를 모두 캡처할 수 있습니다.
좋은 소식은 연구원들이 Tapo 앱과 L530E 펌웨어 모두에 앱과 전구가 서로를 안정적으로 찾을 수 있도록 돕는 기본 안전 검사가 포함되어 있어 앱이 필요할 때 비밀번호를 모호하게 공개할 위험을 줄인다는 사실을 발견했다는 것입니다. '티.
그러나 나쁜 소식은 이것에 사용되는 프로토콜입니다. 당신은 정말 전구입니까? 교환은 공격을 방지하기보다는 실수를 방지하도록 명확하게 설계되었습니다.
대략적으로 설명하면 이 앱은 특수 UDP 패킷을 포트 20002로 브로드캐스팅하고 어떤 장치가 응답하는지 확인하여 네트워크에서 전구를 찾습니다.
듣는 전구가 다음과 같은 결정을 내릴 수 있도록 돕기 위해 여보세요? 요청은 포트 20002를 사용하는 다른 알려지지 않은 제품이나 서비스가 아닌 Tapo 앱에서 나왔습니다. 요청에는 전문 용어로 다음과 같이 알려진 내용이 포함됩니다. 키 해시.
XNUMXD덴탈의 여기 있어요! 전구의 응답에는 앱이 예상치 못한 원치 않는 UDP 응답을 필터링하는 데 도움이 되는 동일한 종류의 키 체크섬이 포함되어 있습니다.
간단히 말해서, 키 해시는 UDP 패킷의 데이터뿐만 아니라 체크섬에 포함되는 일부 추가 키 바이트를 기반으로 하는 체크섬입니다.
불행하게도 Tapo 프로토콜은 체크섬에 고정 키 바이트를 사용하며 동일한 "키"가 앱과 모든 Tapo 전구의 펌웨어에 내장되어 있습니다.
즉, 누군가가 앱이나 전구 펌웨어 또는 둘 다를 디컴파일하고 이 "키"를 복구하면 모든 사람이 그것이 무엇인지 알 것이라고 가정해야 합니다.거기 있어?/나 여기 있어! 위조하기 쉬운 메시지.
더 나쁜 것은 연구원들이 아무것도 디컴파일할 필요가 없다는 사실을 발견한 것입니다. 왜냐하면 이 비밀스럽지 않은 "키"는 길이가 32비트에 불과하기 때문입니다. 즉, Tapo 전구를 설정 모드로 설정한 다음 공급하면 됩니다. 여보세요? 2개를 모두 사용하는 메시지32 가능한 체크섬 키가 있으면 결국에는 다음과 같은 방법으로 올바른 키를 누르게 됩니다. 브 루트 포스.
이는 자전거 자물쇠의 모든 조합을 시도하기 위해 다이얼을 돌리는 것과 같은 암호화 방식입니다. 000
에 999
, 운이 좋아 자물쇠가 열릴 때까지. (평균적으로 가능한 조합의 절반을 시도한 후에 자물쇠를 열 수 있지만 1000번 이상 걸리지는 않습니다.)
사실 2개를 보낼 필요는 없었어요32 키를 해독하기 위해 앱에서 전구로 보내는 메시지.
유효한 키 해시가 포함된 알려진 진짜 메시지 하나만 캡처함으로써 저장한 것과 동일한 키 해시가 있는 메시지를 생성할 때까지 가능한 모든 키를 오프라인으로 테스트할 수 있었습니다.
이는 무차별 대입 공격이 단순히 Wi-Fi 네트워크 패킷 속도가 아닌 CPU 속도로 진행될 수 있음을 의미하며 연구원들은 다음과 같이 말했습니다. "우리 설정에서는 무차별 대입 공격이 항상 평균 140분 안에 성공했습니다."
(우리는 그들이 크래킹 코드가 올바르게 작동하는지 테스트하기 위해 반복적으로 시도했다고 가정하고 있지만 모든 Tapo 전구가 공유하는 하드 와이어드 키를 사용하면 첫 번째 크랙만으로도 충분했을 것입니다.)
당신이 안전하게 말하기만 한다면 나는 당신이 누구인지 상관하지 않습니다.
다음 암호화 문제는 전구 설정 프로세스의 다음 단계에서 나타났으며 비슷한 종류의 실수였습니다.
실제로 키가 없는 키 해시를 기반으로 전구를 정품으로 승인한 후 앱은 "진짜" 전구로 트래픽을 암호화하는 세션 키에 동의합니다.
...하지만 다시 한 번 핵심 합의가 실제 전구와 이루어졌는지 아니면 사기꾼과 이루어졌는지 확인할 방법이 없습니다.
세션 키에 동의하는 것은 중요합니다. 왜냐하면 이후에 Tapo 앱에서 Tapo 전구라고 생각되는 항목으로 Wi-Fi 및 Tapo 비밀번호가 전송될 때 네트워크의 다른 누구도 Wi-Fi 및 Tapo 비밀번호를 스누핑할 수 없기 때문입니다.
그러나 키 계약 자체에 대한 확인 프로세스가 없는 것은 HTTPS를 통해 웹사이트에 연결한 다음 다시 보내는 웹 인증서에 대한 가장 기본적인 검사조차 수행하지 않는 것과 비슷합니다. 트래픽은 전송 중에 안전하지만 그럼에도 불구하고 사기꾼의 손에 곧바로 들어갈 수 있습니다.
Tapo 앱은 RSA 공개 키를 전송하여 전구(또는 전구라고 생각하는 것)에 자신을 식별합니다. 다른 쪽 끝은 세션 중에 교환된 데이터를 보호하기 위해 임의로 생성된 AES 키를 암호화하는 데 사용합니다.
그러나 전구 장치는 유선 32비트 키가 있는 체크섬을 포함하여 Tapo 앱으로 돌아가는 어떤 종류의 식별도 제공하지 않습니다.
따라서 앱은 세션 키가 실제 전구에서 왔는지 사기꾼 장치에서 왔는지 알지 못한 채 세션 키를 수락할 수밖에 없습니다.
이 두 결함의 결합된 결과는 네트워크의 공격자가 먼저 자신의 불량 액세스 포인트가 구성되기를 기다리는 진짜 전구라고 사용자를 설득하여 사용자를 잘못된 위치로 유인한 다음 전송하도록 설득할 수 있다는 것입니다. 자신의 Wi-Fi 및 Tapo 비밀번호의 암호화된 사본.
아이러니하게도 유출된 비밀번호는 악성 액세스 포인트를 사용하는 사기꾼을 제외한 모든 사람으로부터 안전합니다.
계속해서 사용되는 한 번 사용되는 숫자
불행히도 더 있습니다.
위에서 우리가 그렇게 말했을 때 "유출된 비밀번호는 정말 안전할 거예요." 그것은 완전히 정확하지 않았습니다.
프로그래머가 AES를 사용하면서 실수를 했기 때문에 앞에서 설명한 키 동의 프로세스 중에 설정된 세션 키가 올바르게 처리되지 않습니다.
앱은 전구에 보내는 각 요청을 암호화할 때 AES-128-CBC라는 암호화 모드를 사용합니다.
CBC에 대해서는 설명하지 않겠습니다(암호 블록 체인) 여기에 있지만 CBC 모드는 동일한 데이터 청크를 두 번 이상 암호화하는 경우(예: 불을 켜다 및 불을 꺼라, 요청의 원시 데이터가 매번 동일한 경우) 매번 동일한 출력을 얻지 못합니다.
매번 불을 켜다 및 불을 끄다 요청이 동일하게 나왔고 일단 공격자가 무엇인지 추측했다면 그것을 끄다 패킷의 모습을 보면 앞으로는 해당 패킷을 해독하지 않고도 인식할 수 있을 뿐만 아니라 애초에 해당 패킷을 암호화하는 방법을 알 필요 없이 동일한 패킷을 재생할 수도 있습니다.
공교롭게도 CBC 기반 암호화는 먼저 무작위로 선택된 고유한 데이터 블록을 암호화 프로세스에 혼합하여 나머지 부분에 암호화된 데이터의 고유한 시퀀스를 생성함으로써 각 데이터 청크에 대한 암호화 프로세스를 효과적으로 "시딩"하는 방식에 의존합니다. 덩어리의.
이 "시드" 데이터는 IV라는 전문 용어로 알려져 있습니다. 초기화 벡터, 그리고 비밀을 의미하지는 않지만 매번 예측할 수 없을 정도로 달라야 합니다.
간단히 말해: 동일한 키 + 고유 IV = 고유한 암호문 출력이지만 동일한 키 + 동일한 IV = 예측 가능한 암호화입니다.
불행하게도 TP-Link 코더는 AES 세션 키를 생성하는 동시에 IV를 생성한 다음 이전 데이터가 정확히 반복되는 경우에도 모든 후속 데이터 패킷에 대해 동일한 IV를 계속해서 사용했습니다.
그것은 암호화된 것이 아닙니다.
XNUMX개의 패킷을 보냈나요, 아니면 XNUMX개만 보냈나요?
연구원들이 발견한 마지막 암호화 문제는 초기화 벡터 문제가 수정되더라도 여전히 보안에 해를 끼칠 수 있는 문제입니다. 즉, 공격자가 의미를 알든 모르든 오래된 메시지가 나중에 새 메시지인 것처럼 재생할 수 있다는 것입니다.
일반적으로 이러한 유형의 리플레이 공격 유효성을 제한하기 위해 각 데이터 패킷에 포함된 일종의 시퀀스 번호나 타임스탬프 또는 두 가지 모두에 의해 암호화 프로토콜에서 처리됩니다.
티켓 자체가 매표기에서 취소되거나 매표원이 펀치를 날리지 않더라도 이틀 연속으로 사용하려고 하면 무료로 제공되는 기차표의 날짜와 같이 데이터 패킷의 시퀀스 번호 및 타임스탬프 두 가지 중요한 목적을 수행합니다.
첫째, 공격자는 오늘의 트래픽을 기록하고 나중에 쉽게 재생할 수 없으며 잠재적으로 혼란을 초래할 수 있습니다.
둘째, 예를 들어 응답이 누락되거나 네트워크 승인이 누락되어 실수로 요청을 반복적으로 전송하는 버그가 있는 코드를 안정적으로 감지하고 제어할 수 있습니다.
무엇을해야 하는가?
Tapo 전구 사용자라면 이러한 문제를 해결하는 TP-Link의 펌웨어 업데이트를 주시하십시오.
네트워크 트래픽 보안과 네트워크 기반 제품 설정을 담당하는 프로그래머라면, 을 통해 읽기 유사한 실수를 저지르지 않았는지 확인하기 위해 연구 논문을 작성합니다.
다음 규칙을 기억하십시오.
- 암호화는 비밀에만 관한 것이 아닙니다. 암호화는 암호학적 "거룩한 삼위일체"의 한 부분일 뿐입니다. 기밀 유지 (암호화), 정품 (상대편에 누가 있는지 확인) 보전 (도중에 누군가가 그것을 조작하지 않았는지 확인하십시오).
- 일회용 키 또는 IV가 실제로 고유한지 확인하세요. 일반적인 전문 용어 로마 교황 사절는 이런 종류의 데이터에 사용되는 약어입니다. 한 번 사용한 번호, IV는 절대로 재사용해서는 안 된다는 것을 분명히 상기시키는 단어입니다.
- 재생 공격으로부터 보호합니다. 이는 다음 사항을 보장하는 특별한 측면입니다. 정품 및 보전 우리는 위에서 언급했습니다. 공격자는 현재 요청을 캡처하고 나중에 발각되지 않고 맹목적으로 재생할 수 없어야 합니다. 공격자가 메시지를 재생하여 잠재적으로 혼란을 야기할 수 있다면 메시지를 이해할 필요가 없다는 점을 기억하십시오.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 자동차 / EV, 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 차트프라임. ChartPrime으로 트레이딩 게임을 향상시키십시오. 여기에서 액세스하십시오.
- BlockOffsets. 환경 오프셋 소유권 현대화. 여기에서 액세스하십시오.
- 출처: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 125
- 15%
- 25
- 32
- 700
- a
- 할 수 있는
- 소개
- 위의
- 절대
- 수락
- 수락
- ACCESS
- 부속품
- 계정
- 인정
- 추가
- 주소
- AES
- 후
- 다시
- 반대
- 동의
- 협약
- All
- 허용
- 따라
- 또한
- 이기는하지만
- 항상
- am
- 아마존
- an
- 및
- 어떤
- 아무것도
- 앱
- 있군요
- AS
- 양상
- 취하다
- At
- 공격
- 공격
- 저자
- 작성자
- 자동
- 자동적으로
- 평균
- 피하기
- 떨어져
- 뒤로
- 배경 이미지
- 나쁜
- 기반으로
- 기본
- 기초
- BE
- 때문에
- 된
- BEST
- 더 나은
- 사이에
- 비트
- 맹목적으로
- 블록
- 경계
- 두
- 바닥
- 방송
- 브 루트 포스
- 내장
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- 라는
- 온
- 카메라
- CAN
- 포착
- 캡처
- 한
- 원인
- 센터
- 증명서
- 청구 된
- 검사
- 확인
- 선택
- 선택
- 명확하게
- 클라우드
- 암호
- 색
- 결합
- 조합
- 결합 된
- 공통의
- 회사
- 구성
- 구성
- 연결하기
- 연결
- 연결
- CONTACT
- 통제
- 납득시키다
- 수정
- 수
- 코스
- 엄호
- 갈라진 금
- 만들
- 만든
- 만들기
- cryptographic
- 데이터
- 날짜
- 날짜
- 일
- 결정하다
- 기술 된
- 설계
- 세부설명
- 탐지 된
- 장치
- 디바이스
- 다른
- 숫자
- 직접
- 폭로
- 디스플레이
- do
- 하지
- 하지 않습니다
- 말라
- 떨어 뜨린
- 두
- ...동안
- 마다
- 이전
- 용이하게
- 효과적으로
- 중
- 그렇지 않으면
- 암호화
- 암호화
- end
- 충분히
- 확인
- 보장
- 보장
- 전적으로
- 동등한
- 확립 된
- 조차
- 있을뿐만 아니라
- 모든
- 정확하게
- 예
- 외
- 교환
- 교환 된
- 설명
- 공적
- 아이메이크업
- 사실
- 모조품
- 먹이
- 필터링
- Find
- 먼저,
- 고정
- 결함
- 수행원
- 럭셔리
- 힘
- 위조하다
- 형태
- 발견
- 사
- 에
- 미래
- 일반적으로
- 생성
- 정품
- 얻을
- 점점
- 주기
- 주어진
- Go
- 간다
- 가는
- 좋은
- 추측
- 했다
- 반
- 손
- 발생
- 해가
- 해시
- 있다
- 데
- 신장
- 도움
- 여기에서 지금 확인해 보세요.
- 히트
- 홈
- 가져가
- 방법
- How To
- HTTPS
- i
- 식별
- 식별하다
- if
- 중대한
- in
- 포함
- 포함
- 간접적으로
- 정보
- 를 받아야 하는 미국 여행자
- 인터넷
- 으로
- ISP
- 문제
- IT
- 이탈리아
- 그
- 그 자체
- 특수 용어
- 어울리다
- 다만
- 딱 하나만
- 유지
- 키
- 키
- 알아
- 아는
- 알려진
- 성
- 늦은
- 후에
- 가장 작은
- 왼쪽 (left)
- 레벨
- 빛
- 전구
- 처럼
- 제한
- 청취
- 긴
- 보고
- 찾고
- 기계
- 만든
- 확인
- 유튜브 영상을 만드는 것은
- 관리
- .
- 한계
- 최대 폭
- 평균
- 방법
- 의미
- 말하는
- 단지
- 메시지
- 메시지
- 회의록
- 누락
- 잘못
- 실수
- 혼성
- 모드
- 순간
- 배우기
- 가장
- 절대로 필요한 것
- name
- 즉
- 필요
- 필요
- 네트워크
- 네트워크 이름
- 네트워크 트래픽
- 네트워크 기반
- 못
- 그렇지만
- 신제품
- news
- 다음 것
- 아니
- 없음
- 표준
- 지금
- 번호
- 숫자
- of
- 오프
- 오프라인
- 낡은
- on
- 일단
- ONE
- 만
- 열 수
- or
- 주문
- 기타
- 우리의
- 아웃
- 결과
- 출력
- 위에
- 자신의
- 패킷
- 서
- 부품
- 비밀번호
- 암호
- 패치
- 폴
- 수행
- 전화
- 장소
- 계획
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 연극
- 경기
- 많은
- 막힘
- 포인트 적립
- 팝
- 위치
- 가능한
- 게시물
- 잠재적으로
- 예측 가능
- 예방
- 너무 이른
- 아마
- 문제
- 진행
- 방법
- 생산
- 프로덕트
- 프로그램
- 프로그램 제작자
- 프로그래머
- 보호
- 프로토콜
- 프로토콜
- 제공
- 제공
- 공개
- 공개 키
- 목적
- 놓다
- 빨리
- 무작위로 생성
- 차라리
- 살갗이 벗어 진
- 준비
- 현실
- 정말
- 이유
- 최근에
- 인정하다
- 기록
- 감소
- 상대적인
- 공개
- 기억
- 반복
- 자꾸
- 댓글
- 신고
- 통계 보고서
- 의뢰
- 요청
- 연구
- 연구원
- 책임
- REST
- 공개
- 연락해주세요
- 위험
- 도로
- 열
- RSA
- 규칙
- 안전
- 말했다
- 같은
- 라고
- 둘째
- 비밀
- 안전해야합니다.
- 안전하게
- 확보
- 보안
- 보고
- 보다
- 보내다
- 전송
- 전송
- 전송
- 순서
- 서브
- 서비스
- 세션
- 세트
- 설정
- 설치
- 공유
- 짧은
- 영상을
- 비슷한
- SIX
- 스마트 한
- 스마트 폰
- 탐정
- So
- 고체
- 일부
- 어떤 사람
- 스페이스 버튼
- 말하다
- 특별한
- 속도
- 분열
- 스택
- 단계
- 스타트
- 시작
- 주 정부
- 아직도
- 직진
- 끈
- 강한
- 후속의
- 그후
- 이러한
- 확인
- SVG
- 스위치
- 받아
- 목표
- 이야기
- 일시적인
- 기간
- test
- 보다
- 그
- XNUMXD덴탈의
- 영국
- 그들의
- 그들
- 그때
- 그곳에.
- 따라서
- Bowman의
- 그들
- 맡은 일
- 생각
- 이
- 그
- 생각
- 세
- 을 통하여
- 그러므로
- 표
- 시간
- 시대
- 따라서 오른쪽 하단에
- 에
- 오늘
- 했다
- 상단
- 교통
- Train
- 운송
- 전이
- 투명한
- 시도
- 트리오
- 진정으로
- 시도
- 회전
- 돌린
- 선회
- 두
- 유형
- Uk
- 이해
- 예기치 않은
- 운수 나쁘게
- 유일한
- 알 수없는
- 까지
- 업데이트
- URL
- us
- USB
- 사용
- 익숙한
- 사용자
- 사용
- 사용
- 확인
- 확인
- 를 통해
- 취약점
- 취약점
- 기다리는
- 벽
- 였다
- 방법..
- we
- 웹
- 웹 사이트
- 잘
- 했다
- 뭐
- 언제
- 여부
- 어느
- 동안
- 누구
- Wi-Fi 접속 설비
- 폭
- 의지
- 과
- 없이
- 워드
- 말
- 작업
- 일하는
- 악화되는
- 가치
- 겠지
- 잘못된
- X
- 자신의
- 너의
- 제퍼 넷