윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT
스펙터(Spectre) 보안 버그

사용자 삽입 이미지

스펙터 보안 버그의 로고. 유령(Ghost)이 나뭇가지(Branch)를 들고 있다. ^^


멜트다운 보안 버그에 이어 스펙터 보안버그도 알려졌습니다. 이건 좀 더 심각한게 멜트다운을 일으키는 OoOE(Out-of-Order Execution, 비순차적 실행)기능은 최신 CPU에만 들어가있는 기능이라 영향받는 CPU종류가 상대적으로 적습니다만, 스펙터 버그는 파이프라인(Pipeline)을 사용하는 대부분의 CPU에서 사용하는 Branch Prediction (분기예측)기능에 문제가 있는거라 영향 받는 범위가 더 많습니다. (마이크로 컨트롤러나 조그마한 기기에 사용되는 CPU를 제외하고는 모두 파이프라인 및 분기예측을 사용하고 있습니다) 인텔CPU는 물론 AMD CPU, 그리고 ARM 계열 CPU의 일부는 문제가 있다고 알려졌고, 그외에도 분기예측을 하는 모든 CPU들이 이런 문제를 내포하고 있을 수 있으므로 발표를 기다려 봐야 합니다. 라즈베리파이는 문제 없다고 발표 했습니다. (Why Raspberry Pi isn’t vulnerable to Spectre or Meltdown)

결과적으로 이 버그를 사용하면 특정 프로세스가 다른 프로세서에 매핑된 메모리를 볼 수 있게 합니다. 이것 역시 상당히 중대한 버그입니다. 프로세스별로 메모리 분리된다는건 기본 중의 기본 원칙인데, 이게 깨지는 거니까요. 보안에서 샌드박스 기법을 무력화 시키는 셈이 됩니다.

예측 분기 기술은 오래전부터 사용하던거라 영향받는 CPU가 많습니다. ARM CPU도 영향 받는다는건 안드로이드 스마트폰 기기도 영향 받는다는 의미입니다. 그나마 다행인건 제가 쓰는 갤럭시 노트8에 사용되는 Coretex-53 코어는 영향이 없다네요. (Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism)

재미있는건 자바스크립트 JIT에도 이런 버그가 숨어있다고 합니다. 즉 브라우저를 사용해도 문제가 생길 수 있다는 겁니다. 모질라와 구글은 이에 대한 대응을 하고 있구요. 대응방법은 아래에 있습니다.

그나마 다행인건 이버그를 활용해 해커가 데이터를 빼내는건 좀 어렵다고 하네요.

----

- 크롬 63의 최신버전에서 대응
chrome://flags#enable-site-per-process 에서 사용으로 설정

- 불여우 57의 최신버전에서  대응
about:config 에서 privacy.firstparty.isolate 를 true 으로 설정


----

Meltdown and Spectre

Reading privileged memory with a side-channel

Bounds Check Bypass

Branch Target Injection


글쓴시간
분류 기술,IT
멜트다운(Meltdown) 보안 버그

사용자 삽입 이미지


이 문서는 멜트다운 보안 버그만 포함합니다. 또다른 중대한 보안 버그인 스펙터는 스펙터(Spectre) 보안 버그 를 참고하세요.

연초부터 인텔이 대형 사고를 쳤습니다. CPU에 중대한 보안 버그가 알려진겁니다. 엠바고 기간이 남아있었는데 리눅스쪽에서 수정하려다 보니 수정 사항을 주의깊게 보던 사람들에게 발각된거죠. 뭔가 쓸데 없는걸, 성능이 더 안 좋게 리눅스 커널을 패치하고 있는거 같은데 굉장히 중요하게 생각하고 있고 허둥지둥대는게 이상하다는 거죠. 리눅스 커널 개발자 입장에서도 더이상 미룰 수 없다는 판단이 선 거겠죠.





- 기본적으로 OoOE(Out of Order Execution)시 메모리 영역 검사를 바이패스 해버리는 문제입니다. 메모리를 보안상 커널 영역과 유저영역을 분리해놓았고 커널영역은 커널 모드에서만 접근 하도록 했는데, 이거에 버그가 있습니다. 유저모드에서도 커널 영역의 메모리에 접근이 되는 겁니다. 커널 개발자 입장에선 그냥 말 그대로 헬입니다. 이런건 심각한 보안사고입니다.

- 이 버그는 2017년 여름에 구글의 보안팀에서 알아냈고 인텔에 연락해 패치를 개발했습니다. 물론 패치작업이 쉽지는 않았을거라 예상합니다. 패치 개발할 기간인 6개월동안 기다렸고 지금에야 공개된 상황입니다.

- 이미 이 버그를 악용한 코드가 나와있는걸로 알려져 있습니다. (공개되지는 않았습니다) 인증되지 않은 일반 사용자가 시스템 전체 메모리를 덤프할 수 있는 셈이기 때문에, 그냥 권한이고 뭐고 다 뚫립니다.

- 다행이 인텔CPU만 그렇고 AMD CPU는 안 그렇습니다. 인텔 CPU중 OoOE 를 지원하는 CPU만 해당됩니다. 인텔 CPU는 커널 메모리와 유저 메모리(정확하게는 유저 메모리 공간의 일부 가상 메모리 공간)간 캐시 히트를 높이기 위해 같은 메모리 공간(캐시 공간)에 두었다고 하는데 이것과 같이 엮이는 바람에 문제가 되었네요. AMD는 캐시 공간이 분리되어있어서 이 문제에서 자유롭다고 합니다.

- 이걸 인텔에겐 호재라고 보는 사람도 있습니다. 어차피 인텔은 CPU 리콜이나 교환을 안할거고 (비용 문제로. 해야할 이유도 없습니다. 자세한건 인텔 CPU 정품 사면 박스에 들어있는 라이선스 확인해보시면 됩니다) 그렇다면 다음 CPU에는 이 문제가 해결되어 나오기 때문에 그렇다면 CPU 교체 수요가 생기기 때문이죠.

- OS를 패치하면 성능이 경우에 따라 다르지만 평균 30% 정도 떨어진다고 합니다. 특히 커널-유저모드 전환이 많은 프로그램일 수록 더 떨어진다고 하네요. 30% 라면 심각한 수준입니다.

- 해결 방법은 윈도10에서는 최신 OS 패치를 설치하시면 됩니다.

----

Meltdown and Spectre

Reading privileged memory with a side-channel

Rogue Data Cache Load

글쓴시간
분류 기술,IT
삼성 스마트폰 충전기

- 삼성에서 현재 판매하는 충전기는 아래와 같이 3종류로 요약 가능하다고 생각한다.

1. 5V-2.0A 충전기
2. 5V-2.0A,9V-1.67A 충전기
3. 5V-2.0A,9V-1.67A,12V-2.1A 충전기

이중에, 삼성의 AFC(Adaptive Fast Charging, 삼성의 독자적인 USB기반 스마트폰 고속 충전 기술)를 지원하는건 2 와 3 이다.

※ 충전기 ETA-U90K, EP-TA12K

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 0.35A
- 출력: DC 5.0V 2.0A

ETA-U90K 보다 EP-TA12K 이 나중에 나왔다. 서로 호환되지는 않는듯. 노트2의 경우 ETA-U90K을 써야 충전이 빠르다.

※ 충전기 EP-TA20K

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 0.5A
- 출력: DC 5.0V 2.0A or 9.0V 1.67A

Adaptive Fast Charging 를 지원하는 충전기. 요즘나오는 삼성 스마트폰에 번들로 제공한다.

※ 충전기 EP-TA300

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 1.0A
- 출력: DC 5.0V 2.0A or 9.0V 1.67A or 12.0V 2.1A

Adaptive Fast Charging 를 지원하는 충전기. 요즘나오는 삼성 태블릿에 번들로 제공된다. 위 두가지보다 크기가 확연히 차이난다.

※ 배터리는 무리하게 급속충전하면 수명이 급속하게 줄어들고 심지어는 터질 우려가 있기 때문에(아니 터지기 때문에) 배터리 잔량이 적고 배터리 온도가 낮을때에만 급속으로 충전하도록 설계되어있다. 이게 고 전력 충전기를 사용해도 배터리 충전 시간이 크게 차이나지 않는 이유다. 보통 AFC만 지원되면 만족할만한 충전 시간이 나온다.

※ 노트8에서 번들로 주는 충전기는 EP-TA20K이다. 별도로 EP-TA300도 구매해서 사용하고 있다.

※ 충전기와 충전 케이블은 반드시 정품을 사용하자. 충전기도 소모품이긴 하지만, 충전 케이블은 더 소모품이다. 케이블은 6개월 마다 한번 정도는 정품으로 구매해 사용하자.

- 정품이란, 온라인 몰에서 "정품" 이라고 판매하는 충전기 및 케이블을 말하는게 아니라, 삼성전자 서비스 센터, 삼성전자 대리점, 삼성전자 공식 온라인 판매점에서 판매하는 제품을 말한다. 충전기와 충전케이블만큼 가품이 많은것도 없으니 괜히 푼돈아끼려고 하지 말자. 특히 고속 충전을 제대로 사용하려면 반드시 정품 케이블 및 정품 충전기 사용해야 한다.
글쓴시간
분류 기술,IT
삼성 U Flex 블루투스 헤드폰

사용자 삽입 이미지


- 삼성의 블루투스 신형 헤드폰. 자유롭게 휘어지는 넥밴드와 빅스비 연동, 스케일러블 코덱기술을 지원하는게 강점이다.

- 스케일러블 코덱(Scalable Codec)이란 끊김없는 음악 재생을 위한 오디오 신호를 최적화 작업에 Wifi 신호를 사용하는게 특징이다. 어차피 블루투스 주파수와 와이파이 주파수는 동일하게 2.4 Ghz 대역을 사용하기 때문에 가능할거라고 추측한다.

사용자 삽입 이미지


- 음질은 그냥저냥. 이어폰은 듀얼 드라이버를 사용하는 식으로 꽤 신경 쓴거 같은데, 일단 음질은 그냥 블루투스 다운 음색이다. 펌웨어 업그레이드로도 어느 정도 향상시킬 수 있는 거라 지켜보자는게 내 생각이지만, 어차피 음질은 취향이라 음질에 대해서는 자세한 설명은 하지 않겠다. 그냥 근처 삼성전자 대리점 가서 들어보고 판단하는게 좋을듯. 기술적으로는 aptX 는 물론이고 UHQ-BT 도 지원 안하는 걸로 생각된다. (설명서에도 없고 삼성 스마트폰의 음장효과인 사운드얼라이브(Sound Alive)에도 업스케일링이 작동하지 않는다)

- 사용하려면 반드시 블루투스 이어폰을 최신버전으로 펌웨어 업그레이드 해야 한다. 하지않으면 일부 음원에서 잡음이 섞인다. 서비스 센터에서 이것때문에 교환해봐도 안되었었는데, 최근에 나온 펌웨어로 업그레이드 해보니 문제가 없어졌다. 업그레이드는 앱스토어에서 "Samsung Level"앱을 다운한 후 더보기 부분에서 Samsung U Flex 정보 메뉴로 들어가면 업데이트 할 수 있는 메뉴가 나온다. 글쓰는 시점에서 최신 버전은 617b21 이다.

---- 2017.12.21 추가

페어링 할 때 순서가 있어야 하는것 같다. 100% 그런건 아니지만, 아래와 같은 순서로 안하면 높은 확률로 페어링이 이상하게 되어 항상 잡음이 심하게 들린다. 첫번째 페어링은 일반적인 블루투스 페어링과 동일한 방법으로 하고, 그 이후 부터는(핸폰 기기에 기기정보가 저장된 이후부터는) 필자는 아래와 같은 순서로 한다.

1. 핸폰의 블루투스를 먼저 켠다.
2. UFlex 전원을 켜 페어링 모드로 진입한다.
3. 핸폰에 UFlex 와 연결하겠냐고 나오면 '연결' 버튼을 터치해 헤드폰과 페어링 한다.
글쓴시간
분류 기술,IT
Vitsmo VT10 - 4.4 펌웨어 업그레이드

아이의 윤선생을 끝내고 더이상 사용할 일이 없어 4.4 업그레이드를 단행했다. 그냥 공식 홈페이지에 나온 대로 업그레이드 하면 문제 없이 진행된다. 펌웨어 업그레이드에는 약 5분 정도 필요하다.

사용자 삽입 이미지

VT10의 기본 앱. 정말 저게 전부다.



일단 첫 느낌은 이걸 써 보니 삼성이 잘 만드는 거였구나. 하는 생각. 몇분만 써봐도 이것저것 불편함이 많고, 소프트웨어가 최적화가 안된게 바로바로 보인다. 게다가 기본 탑재 프로그램에 음악/미디어 플레이어가 안 들어있는것 보고 깜짝 놀랬다. 찾아보니 원래 없었던 듯. 음악/비디오 플레이어조차 제조사에서 직접 만들어서 넣어줘야 했던 것이었다.

그래도 아이 유튜브 HD영상 보는데는 문제 없으니 그나마 다행이다. 스피커는 별로고 이어폰 연결하면 더 별로라 블루투스로 스피커 연결해서 쓰면 나름 들어줄 만한 소리가 나오니 다행이기도 하다.

----

공식홈페이지: http://www.vitsmo.com/faq.html
글쓴시간
분류 기술,IT
파워서플라이 고장
※ 오랬동안 써왔던 파워서플라이 FSP FSP300-60LD 가 결국 고장났다. 전원버튼을 눌러도 켜지지 않는다. 몇일전에 거의 8년째 썼던 HEC 파워도 캐페시터가 부풀어올라서 파워전원은 들어오지만 그냥 폐기했는데, 이번엔 아예 뻥하는 소리와 함께 전원이 더이상 켜지지 않는다. 그나마 다행인건 부품에는 영향이 없는듯. 이래서 좋은 파워를 써야 한다. 고장나도 파워만 고장나는게 좋으니 말이다.
※ FSP FSP300-60LD 는 2007.07 출시한 파워다. TFX 규격이고 출시 당시에 볼록 나온 팬 부위때문에 유명(?)했다.

사용자 삽입 이미지

※ 60LD 는 단종되고 지금은 FSP FSP300-60GHT (2015.08 출시)를 판매한다. 80+ 인증이기 때문에 더 좋아진듯. 가격은 몇천원 정도 더 비싼 정도다. 

사용자 삽입 이미지


※ 마이크로닉스 Compact TFX 350W 80Plus EU Standard 와 고민되는 중. 어쨌든 조만간 구매해야한다.


사용자 삽입 이미지
글쓴시간
분류 기술,IT
헤드셋의 블루투스 스펙

※ 헤드셋의 스펙을 논하기에 앞서, 블루투스 헤드셋의 출력 음질을 결정짓는 가장 큰 요소는 전송율이다. (물론 음질을 결정짓는건 스피커와 DAC 의 조합에서 결정된다고 해도 과언이 아니다. 음질에 있어 블루투스의 스펙은 크게 중요한건 아니지만 여기서는 "블루투스"에 초점을 맞춘다)

- 디지털 음성 정보가, 주변의 전파 간섭없이 정확하게 블루투스 재생기에 전달된다면 SBC 코덱으로도 깨끗한 음질로 음악을 들을 수 있다.

- 아래에 소개한 코덱들은 데이터는 정확하게 전달된다는 가정을 했을때 SBC 보다 더 고음질로 들을 수 있다는 의미일뿐 간섭이 많아 데이터가 제대로 전달도 안되고 있는 상황에서는 코덱과 관계 없이 음질이 안좋아진다.

※ 블루투스 프로파일

- A2DP(Advanced Audio Distribution Profile)
오디오 전송 프로파일. 블루투스 헤드셋은 무조건 이 프로파일을 지원한다.

- HSP (HeadSet Profile)
헤드셋 프로파일. 스피커와 마이크를 지원한다. 전화통화가 가능해진다.

- HFP(HandsFree Profile)
핸즈프리 프로파일. 전화를 받고 끊을 수 있는 핸즈 프리 기능을 지원하게 해준다.

- AVRCP(Audio/Video Remote Control Profile)
블루투스를 통해 비디오/오디오를 제어(재생, 일시정지, 정지, 다음/이전곡 재생, 음량조절 등등)을 할 수 있는 프로파일

- 멀티 포인트
1개의 블루투스 헤드셋에 2대 이상의 기기에서 페어링해서 사용할 수 있는 기능

※ 블루투스 오디오 스트리밍 코덱

- SBC(Subband Coding)
-> 블루투스 오디오 스트리밍의 기본 코덱
-> 16bit, 48kHz, 328kbps, 20:1

- AAC(Advanced Audio Coding)
-> MP4 파일에서 주로 사용되는 오디오 코덱. 즉 무선 전송을 위해 개발된 코덱은 아니지만 블루투스 오디오 전송에도 사용된다. 여러 표준 규격에 사용되는 코덱이다. 애플 기기에서 주로 지원한다. 삼성에서 만든 스마트폰 기기에서도 안드로이드 8.0 기기부터 지원된다.

- apt-X
-> CSR 에서(현재 퀄컴이 소유)에서 개발한 고음질 전송용 코덱
-> 16bit, 48kHz, 384kbps, 4:1

- apt-X HD
-> 퀄컴에서 개발한 고음질 전송용 코덱. apt-X 코덱의 향상 판이다.
-> 24bit, 48kHz, 576kbps, 4:1

- LDAC
-> 소니에서 개발한 고음질 전송용 코덱. HRA 음원을 전송할 수 있는 오디오 코덱이다. 최대 전송률은 990kbps 를 가진다. 24bit, 96kHz 까지 전송 가능하다. 안드로이드 8.0에 기본 탑재된다. 삼성에서 만든 스마트폰 기기에서도 안드로이드 8.0 기기부터 지원된다.
-> 24bit, 96kHz, 990kbps, 4:1

- UHQ-BT
-> 삼성에서 개발한 고음질 전송용 코덱. 자세한 스펙 불명. 삼성기기에서만 지원된다. 노트5이상, 갤럭시 S6 이상부터 지원하며, 삼성 블루투스 헤드셋 기기인 Level 시리즈중 Pro 급 기기를 사용해야 한다.
-> 24bit, 96kHz, 512kbps 으로 알려짐.
글쓴시간
분류 기술,IT
갤럭시 노트2 Adapt Sound

- 갤럭시 노트2에도 Sound Adapt 기능이 있다. 최신 펌웨어로 확인해보니 메뉴가 있다. 여태까지 찾지 못한 이유는 아마 메뉴가 엉뚱(?)한데 있어서일꺼다.

사용자 삽입 이미지


설정 -> 내 디바이스 -> 통화 -> 통화 음질 사용자 설정 -> 음질 최적화

설정 방법은 이후 버전과 같다. 단지 결과 페이지의 그래프가 전-후 로만 나오는데 이거 뭘 의미하는지 몰랐을 뿐. Adapt Sound 적용 전, 후 를 의미한다.

- 음악을 들으려는 상황을 가정하고 세팅해야 한다. 집에서 조용할때 세팅 한 결과를 가지고 시끄러운 곳에서 음악을 청취하면 다른 느낌이 난다.

사용자 삽입 이미지

- 이어폰 바꾸면 새로 설정해야 한다. 이어폰의 특성도 타기 때문이다.
글쓴시간
분류 기술,IT
PHP7 Memcached

- 루루 서버를 이전하긴 했는데, 이왕 설치하는거 최신버전을 설치하려고 PHP 7을 설치했다. 하지만 곧바로 문제가 발생했다. memcached 를 사용할 수 없다는 거다.

- 현재 PECL 에 등록되어있는 memcache 는 PHP 5 용이다. PHP 7에서는 사용이 불가능하다.

- 그러다가 https://github.com/websupport-sk/pecl-memcache 을 찾았다. 일단 설치는 되고 memcache 함수가 나온다. 하지만 완벽하지 않다.

- 뭔가 다른 방법을 찾아보다가 그냥 memcache 를 사용하지 않기로 결정했다. 다행이 서버가 빨라져서 속도 저하는 잘 못느끼고 있다.
글쓴시간
분류 기술,IT
PHP7 디버깅, TextCube 디버깅

- 최신버전의 TextCube 는 PHP7 을 지원한다. 현재 최신 버전은 1.10.10 이다.

- 하지만 나같이 오래전부터 사용하던 사람은 뭔가 설정이 안될 수 있다. PHP 업그레이드 한 후에 블로그가 하얀 화면만 떠서 살펴보니 MySQL 확장이 없어서 생긴 문제였다. config.php 에

$database['dbms'] = 'MySQLi';

를 추가해 해결했다.

- 참고로 TextCube 의 디버깅은 config.php 에

$service['debugmode'] = true;

을 넣으면 된다.

- PHP 7 자체를 디버깅 하려면 php.ini 의 error_reporting 항목을

error_reporting = E_ALL

으로 변경하고 PHP 재시작하면 화면에 오류메시지가 뜬다.

언제 또 업그레이드 할지 모르니 리마인드 차원에서 적어 놓았다.