DEFRAA 의 택배지옥

이번에 새로운 장비를 독일 이베이를 통해 구입했습니다.

Shipping method 는 Standard International Shipping 이었고 7일에서 14일정도 소요된다고 하길래 이전 경험을 생각해봤을땐 금방 도착하겠구나 하고 그냥 셀러 직배송으로 한국으로 주문하였습니다.

셀러가 DHL 로 배송해줬길래 왠만하면 몇일내로 오겠구나 싶었는데 이게 왠일 배송을 다른 업체를 통해 진행한다는 안내가 표시되었습니다.

그리곤 한국 우체국을 통해 배송조회를 하라고 나와있는데 배송조회를 해보니 DEFRAA 라는 위치에서 몇일째 움직이지 않고 있었습니다..

구글에 검색을 해보니 이미 여러 사람들이 당한 것 같았습니다.

표현이 마치 독일의 옥천HUB 같은 느낌이라고 하는데 몇일동안 움직이지 않는 제 택배를 보니 화가 나는게 정말 올바른 표현인듯 하네요.

좀 더 검색을 해보니 DEFRAA 는 독일의 프랑크푸르트 공항 바로 옆에있는 우편물 창고이고, DHL 이 독일 우체국에 인수되면서 해외배송을 EMS 시스템을 통해 운영하고 있다는걸 알게되었습니다.

그래서 DHL 해외발송의 경우 저렴한 요금제를 사용하면 해외 -> 독일 -> 한국 이런식으로 배송이 되게 되고 독일 안에서는 DEFRAA 라는 곳을 경유하면서 배송이 많이 밀리게 되는 것입니다.

특히 독일에서 구매하는 상품이면서 요금이 저렴한 배송방법을 사용하게 되면 DEFRAA 를 거치게 된다고 하니 몰테일 같은 배송대행지를 사용하거나 돈을 더 내고 비싼 배송방법을 사용하는것이 정신건강에 좋을것 같습니다..

그래서 내 택배는 언제오지..

 

포스코 더샵 월패드 프로토콜 분석

요즘 생각보다 많은 분들이 IoT 장비에 관심을 갖고 계시더라구요

이전에 살던 아파트의 코콤 월패드와 서버간의 통신이 http 로 구현이 되어있고 사용하게 편하게 되어있어 IoT 에 사용하기 편하겠다는 생각을 했었는데, 이번에 새로 이사온 아파트의 경우는 호락호락하지 않았습니다.

첫번째로 앱이나 웹에서 제어를 하는 경우 API 방식이 아닌 서버에서 렌더링 해서 표여주는 페이지에서 버튼을 누르면 Form 이 POST 되면서 제어가 되는 형식으로 이것이 2020년대에 지어진 아파트의 제어시스템인가 싶을 정도의 충격을 받았습니다.

한가지 다행인점은 인증은 잘 체크한다는 점이었네요.

난방제어, 조명제어 등은 웹파싱과 HTTP POST 를 통해 모두 제어가 가능했지만 이번 아파트에서는 엘레베이터도 API 로 호출해서 제어를 해보고 싶었습니다.

하지만 엘레베이터 호출은 앱이나 웹에서는 지원하지 않고 월패드에서 직접 호출하는 경우에만 가능한 상태입니다.

따라서 IoT 장비등을 통해 엘레베이터를 호출하려면 월패드와 월패드 제어서버가 통신하는 통신을 분석해야 합니다.

그래서 분석해보았습니다.

분석 방식은 ARP Spoofing 을 통한 패킷캡쳐였고 분석 도중 다른 집에 피해가 가지 않도록 저희 집 월패드만 타겟팅 하여 분석을 진행하였습니다.

통신 방식은 월패드와 서버간에 지정된 포트를 통한 TCP 통신이였고 XML 비스무리한 내용을 전달하여 통신하고 있었습니다.

내용을 살펴보면 제어서버를 UIMS 라고 부르는듯 합니다.

주황색으로 칠해놓은 데이터에 대해 설명드리자면 데이터 젤 앞단에는 무슨 뜻인지 알 수 없는 숫자열이 있었고 trans 의 안에는 아마 월패드의 고유번호가 들어가는듯 하였습니다. addr 은 아파트 동호수가 1111-101 형식으로 들어가있었습니다.

제 예상으로는 파라미터에 동과 층수가 있을줄 알았는데 addr 데이터의 동 호수를 파싱하여 엘레베이터를 해당 층으로 보내주는듯 합니다.

이 통신을 응용하면 IoT 브릿지가 외출모드로 바뀌면 엘레베이터를 호출하도록 하는 등의 기능도 구현할수 있을듯 합니다.

 

 

그리고 엘레베이터를 호출하면 도착할때까지 제어서버에서 월패드로 위와 같은 데이터를 송신하는데 엘레베이터의 현재 위치와 상행 하행 구분을 보내주고 있습니다.

이 외에도 여러가지 기능들에 대해 테스트를 하고 캡쳐를 해보았는데 대부분 비슷한 데이터 형식을 사용하고 있었습니다.

이 아파트에서는 난방, 환기, 조명, 가스, 엘레베이터 등의 제어가 가능한데 대부분 필요한 것들은 아파트가 공식적으로 제공하는 제어 웹 페이지를 사용하여 가능하기 때문에 이렇게 크게 공 들일 필요가 없는듯 합니다.

하지만 저는 이렇게 공을 들여도 분석만 하고 귀찮아서 쓰지는 않고 있네요.

그리고 아쉬운 점은 대부분의 개발사들이 그렇지만 한번 계약해서 이러한 시스템을 공급한 이후에는 업데이트가 이루어지지 않는다는 점 입니다.

이럴거면 차라리 기본적으로 삼성 스마트씽즈 연동을 해서 제공을 해주었으면 하는 바램이 있습니다.

 

본 글에 대해 게시중단 요청을 희망하시는 경우 아래 이메일로 연락 부탁드립니다.

[email protected]

자동차의 ECU 그리고 BMW 의 코딩

자동차에는 ECU 라는 장치가 있습니다.

ECU 는 Electric Control Unit 의 약자로 자동차의 다양한 부분들을 전자적으로 제어하는 역할을 담당합니다.

ECU 는 하나의 차량안에 여러개가 있으며 각각 담당하는 부분들이 다릅니다.

차량 제조사마다 칭하는 이름은 다르지만 BMW 의 경우 BDC(Body Domain Controller), DKOMBI4 등이 있습니다.

BDC 는 차량의 전체적인 부분에 대해 담당을 하며 도어제어, 라이트제어 등 여러가지 부분들을 담당하고, DKOMBI4 의 경우 흔히 말하는 계기판(Instrument Cluster)이며 계기판의 역할만 담당합니다.

이렇게 보면 흔히 백엔드 프로그래머들이 말하는 MSA(Micro Service Architecture) 와 유사합니다. MSA 가 생겨난 이유중 하나는 한쪽에 문제가 생겨도 다른쪽에는 문제가 생기지 않도록 한다는 점이 있는데 자동차에서 이런 구성을 도입한 이유도 동일합니다.

예를들면 BDC가 문제가 생겨도 엔진을 컨트롤하는 ECU는 분리되어 있어 주행중 시동이 꺼지는 참사는 피할수 있습니다. 주행중에 문이 열리지 않거나 라이트가 제어되지 않아도 엑셀과 브레이크 그리고 핸들만 동작하면 사고날 확률은 적을 것입니다.

이런 여러 ECU 들은 서로 통신을 하게 되는데 CAN 이라는 bus 를 통해서 통신을 하게 됩니다. CAN 은 차량에서 많이 사용되는 내부 통신 방법으로 멀티캐스트와 비슷하게 방송을 하듯이 커뮤니케이션 하게 됩니다.

다른 ECU가 듣던 말던 내가 할말을 방송한다는 뜻입니다. 그래서 CAN 버스에 연결하고 통신 내용을 감청(sniff)하게 되면 짧은 시간안에 엄청나게 많은 메세지가 오고갑니다. 특정 ECU가 다른 ECU에 요청을 할 경우 본인의 요청 메세지를 broadcast 한 뒤 상대편 ECU가 응답하는 broadcast 메세지를 골라서 수신하는 방식으로 통신합니다.

그리고 broadcasting 의 장점으로 한번 방송하면 여러 ECU에서 수신할수 있습니다. 예를들면 계기판과 HUD가 속도계산 담당 ECU에서 현재 속도값을 가져와 표시하고 싶다면 속도계산을 담당하는 ECU에서 지속적으로 broadcasting 하고 있는 현재 속도값을 읽어서 표시하기만 하면 된다는 편리함이 있습니다.

하지만 얼핏보면 되게 비효율적이고 높은 처리량이 필요할것 같아 보이지만 의외로 신뢰성이 높고 안정적으로 운용되는 통신 시스템입니다.

그리고 CAN 통신은 차량의 실질적인 제어에 대한 부분을 담당하기 때문에 CAN 통신 값을 조작하게 되면 엑셀을 밟게 한다거나 핸들을 돌린다거나 시동을 끄는 동작들이 가능합니다. 이런 기능들을 응용하면 자율주행차를 만들수 있는 기본 인터페이스를 구축할수 있겠지요. 물론 엑스박스 패드나 PS4 컨트롤러로 차량 운전하기와 같은 것도 가능하겠지만 실제로 실행하기에는 무서울듯 합니다.

 

BMW 의 경우는 이러한 차량이 통신하는 네트워크에 LAN 으로 접속할수 있는 인터페이스를 만들어 두었습니다.

기존에 차량의 고장코드나 각종 점검을 위해 사용하는 OBD 단자가 있는데 BMW 는 이 단자의 일부 pin 을 LAN 에 할당하여 LAN 으로 통신할수 있도록 구현해놓았습니다.

원래는 서비스센터나 각종 딜러사에서 전용 프로그램을 통해 차량의 상태를 쉽게 확인하고 변경할수 있도록 하기 위해서 만들어진 인터페이스지만 누군가에 의해 이러한 프로그램과 인터페이스 구조가 유출되어 현재는 많은 사람들이 사용하고 있습니다.

이러한 인터페이스를 일반 사용자들이 어디에 사용할까 하는 궁금증이 들 수 있을텐데요. 차량의 ECU에는 본인의 차량에 맞는 변수값들과 설정값들을 가지고 있습니다. 하지만 이 변수값을 수정하면 없던 기능이 생겨난다면 어떨까요?

차량 제조사가 국가와 차량마다 기능을 제한하기 위해서 이렇게 ECU 내부 변수들로 기능을 비활성화 한 채 출시하는 방법을 사용하고 있습니다. 이 방법이 실제로 부품이나 기능 데이터를 빼고 출시하는것 보다 간편하고 비용이 절약되기 때문입니다.

하지만 BMW 의 경우 자체 프로그램이 너무 잘 만들어져 있어 이를 통해 비교적 쉽게 이러한 값들을 수정하고 차량에 등록하는 과정을 진행할수 있었기 때문에 좀 더 널리 알려진 면이 있습니다.

예를들면 오토하이빔, 반자율주행과 같은 기능들이 차량 판매시에는 비활성화 되어 있지만 관련 부품은 차량에 장착되어 있다면 이러한 변수값 코딩 과정을 통해 활성화 하여 사용할수 있습니다.

 

하지만 시간이 지나서 BMW도 이것을 어떻게 막을까 고민을 하게 되면서 새로운 방지책이 추가되었습니다. 기능 추가는 코딩 과정을 통해 가능하지만 실제 활성화는 활성화 코드가 담긴 인증서와 값이 있어야만 활성화가 되도록 해놓은 것이지요. 그래서 이러한 부분이 적용된 기능들은 코딩 과정을 통해 메뉴를 활성화하여 활성화 체크를 하더라도 실제 기능은 동작하지 않습니다. 하지만 활성화 과정이 비교적 복잡하기 때문에 중요하거나 돈이 될만한 부분들(네비게이션 지도 업데이트, 없던 부품을 추가하는 부분 등)에만 적용이 되어 있습니다.

그리고 이제 시간이 더 지나면서 아예 막아버리기 위한 방지책을 준비하고 있는듯 한데 기존에는 코딩 과정에 필요한 기반 데이터들(코딩 변수 메모리 위치값, 설명 등)을 다운로드 받아 사용하게 해서 유출이 쉬웠는데, 앞으로는 온라인에 연결하여 그때 그때 일부분만 받아와서 사용하게끔 하는 방식을 준비하고 있는듯 합니다. 이렇게 할 경우 온라인 인증을 넣게 되면 일반 사용자가 사용하는것은 매우 힘들어 질 것입니다.

안타깝긴 합니다만 제조사 입장에서는 당연한 조치이지 않나 싶습니다. 사실 BMW 전용 코딩 프로그램의 경우도 원래는 인증을 받아야 사용이 가능하지만 언제나 그렇듯이 여러 사람이 모이면 인증을 우회하는 프로그램도 생기고 그러는 법이라 우회 프로그램을 통해 사용되고 있습니다.

 

하지만 여기서 흥미로운 점들은 이러한 과정들이 일반인도 쉽게 가능하게 프로그램이 잘 제작되어 있다는 점과 인터페이스나 기반구조가 잡혀 있다는 점입니다.

 

물론 사용하다가 실수할 경우엔 ECU 가 멈추게 되면서 차량 운행이 불가능해질수도 있지만 보수적이라고 생각될만한 자동차에 대해 이만한 자유도를 가지고 차량을 제어하고 수정할수 있다는 점이 흥미롭습니다.

공기청정기/무선청소기/빔프로젝터 성능 비교 사이트

안녕하세요

공기청정기와 무선청소기와 빔프로젝터의 성능을 한곳에서 비교할수 있는 사이트를 소개하려 합니다.

다나와 같이 가격을 비교해주는 사이트는 있어도 같은 비교조건을 가지고 평가해주는 사이트를 한국에서는 찾기가 쉽지 않습니다.

구매자가 여러 제품마다 하나씩 검색해보면서 성능을 비교해보고 구매를 해야하는데, 구매하면서까지도 이것보다 더 좋고 저렴한 제품이 있지는 않은지 불안할때가 많습니다.

하지만 시간이 많이 없기 때문에 적정한 선에서 타협하며 구매를 하는 경우가 대다수입니다..

이러한 불편함을 개선하고 한 사이트에서 여러가지 최신 전자제품을 같은 조건과 사양으로 비교하고 바로 구매할수 있는 서비스가 바로 꿀리뷰 입니다.

무선청소기의 경우 흡입력 / 소음 / 무게가 가장 중요한 조건이고
빔프로젝터의 경우 밝기 / 소음 / 소비전력이 가장 중요한 조건이겠지요

이러한 조건들을 한번에 비교하고 가격대별로 볼 수 있는 서비스 입니다.

객관적인 정보를 바탕으로 비교할수 있기 때문에 구매시에도 많은 참고가 되지 않을까 싶습니다.

지금은 공기청정기 / 무선청소기 / 빔프로젝터 밖에 지원을 하지 않지만 앞으로 더 많은 카테고리가 추가될 예정이라고 합니다.

전자제품 비교와 리뷰를 한번에! | 꿀리뷰
https://www.ggulreview.com/