Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

전체 글 213

Ethernaut 문제풀이 #4 - Telephone

레벨 4 Telephone입니다. 이번 문제도 Ownership을 탈취하는 문제고 역시 Beyond the console을 참고하라는, 즉 다른 컨트랙트를 통해 이 컨트랙트를 공격하라고 합니다. 자 해 봅시다. 똑같이 인스턴스를 생성하시고 나서 코드를 분석해 보겠습니다. 이번에는 코드가 짧네요. // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; contract Telephone { address public owner; constructor() public {//오너 설정 owner = msg.sender; } function changeOwner(address _owner) public { if (tx.origin != msg.sender) {//tx...

Ethernaut 문제풀이 #3 - Coin Flip

3번 문제 Coin Flip입니다. 동전뒤집기! 설명에도 동전의 앞면 뒷면을 예측하는 동전 뒤집기 게임이라고 나와 있네요. 사실 개인적으로는 블록체인 기술을 적용하면 딜러나 장부가 조작될 수 없다는 점에서 도박에도 적용하기 훌륭한 기술이라고 생각하고 있습니다. 하지만 이기기 위한 조건이 10번 연속 이기기입니다. 초능력을 사용하라고;;;; 요즘 유행인 오징어 게임 유리다리 건너기가 생각나네요. ㅎㅎ 거긴 연속 18번. 그에 비하면 양호하지만 유리 다리에서 죽은 사람들 생각하면 ㅠㅠㅠㅠ 자 10 연속 맞추러 갑시다. help 메뉴의의 Beyond the console을 읽어보는 게 좋을 것이라고 합니다. 제발 읽어 보자구요.ㅎㅎ https://ethernaut.openzeppelin.com/help Eth..

Ethernaut 문제풀이 #2 - Fallout

Fallout이라는 이름의 문제입니다. 오너십을 탈취하는 건데요. Solidity Remix IDE라는 솔리디티용 online ide가 도움이 될 거라고 나와 있습니다. 접속하면 아래와 같은 모습입니다. 마찬가지로 파란색 Get new instance 버튼을 눌러 인스턴스를 할당 받습니다. 컨트렉트에 6개의 ABI가 있구요. 음.. 오케이 그럼 일단 오너를 확인해봅시다. await contract.owner() 오잉? 오너가 없습니다. 그렇다면 보통 오너를 생성자에서 지정하니 분명 생성자에 문제가 있겠네요. 살펴봅시다. 생성자인데요. 음 저번 fallback과 비교해본다면 이전에는 constructor()를 사용해 생성자를 정의했고 이번 fallout은 자기 자신의 이름을 사용함으로써 생성자를 정의했네요..

Ethernaut 문제풀이 #1 - Fallback

2022.02.28 - [Smart contract/Ethernaut 문제풀이] - Ethernaut 문제풀이 #0 - Hello Ethernaut Ethernaut 두번째 Fallback 이라는 제목의 문제입니다. 두 가지 조건을 만족하면 클리어됩니다. 컨트렉트의 오너가 됩니다. 컨트렉트의 잔고를 0으로 만듭니다. 그리고 아래가 도움이 된다고 합니다. ABI와 상호 작용하여 이더를 보내는 방법 : 0번에서 지겹게 했었죠? ABI를 이용하지 않고 이더를 보내는 방법 wei/ether 단위를 변경하는 방법 (1 ether = 1,000,000,000,000,000,000 WEI) fallback method : ABI를 호출하지 않고 바로 이더를 컨트렉트로 송금하면 수행됩니다. 이번 문제부터는 Solidi..

Ethernaut 문제풀이 #0 - Hello Ethernaut

Ethernaut은 Ethereum smart contract 해킹을 통해 취약점을 파악하여 대비할 수 있도록 연습하는 일종의 게임입니다. 아래 링크에서 시작할 수 있습니다. 같이 한단계 한단계 시작해봅시다. https://ethernaut.openzeppelin.com/ Ethernaut ethernaut.openzeppelin.com *** 참고 Ethernaut 문제를 풀기 위해서는 적어도 CryptoZombie정도는 완료하셔야 합니다.(이것도 부족할 수 있습니다.) https://cryptozombies.io/ #1 Solidity Tutorial & Ethereum Blockchain Programming Course | CryptoZombies CryptoZombies is The Most P..

SSL/TLS embedded for IoT #9

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 아홉번째 이지만!!! 너무 오래 포스팅을 하지 않아서 .... 재작년이 마지막이었네요... 아하하하하하하... 너무 오랜 시간이 지난지라 저도 이어 하기가 쉽지 않고 그리고 티스토리도 불편하기고 하고 너무너무 바쁩니다. ㅠㅠ 그리고 또 두어달 후면 인도로 나가게 되서 embedded ssl example은 github에서 관리하려고 합니다. 아래 링크에서 확인하실 수 있어요.https://github.com/bangbh81/WIZnet-SSL-Example W5100S EVB(W5100S + STM32F103VC) 에서 작업한 것(위그림)이지만 다른 IC에서도 ..

HTTPS Root Certificate 다운로드 및 코드 적용 방법

본 글은 HTTPS를 위한 Root certificate를 코드에 적용시키는 방법에 대한 글입니다. Embedded SSL을 하다보니 자질구래한 일들이 꽤 많습니다. 그 중 하나가 바로 Certificate입니다. Certificate는 글자 그대로 인증서입니다. 모든 HTTPS 서버는 인증서를 가지고 있습니다. 그리고 그 인증서를 인증해주는 상위 인증서들이 있습니다. 맨 꼭대기에 위치해 있는 인증서가 바로 Root certificate이고 이 Root certificate는 시만텍 등 세계적인 보안기업들이 관리하고 있지요. SSL을 하려면 이 인증서가 필요한데요 Server에 SSL을 적용하려면 돈을 내고 상위 인증기관으로부터 인증서를 발급받아야 하는데 ㅎㅎㅎ 당연하겠지만 돈이 필요합니다. 그럼 Cli..

SSL/TLS embedded for IoT #8

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 여덟번째입니다. 대만 출장으로 인해 이번 포스팅이 조금 늦었습니다. 그리고 이번 강의 후 인도 출장이 잡혀 있어 약 2-3주 간 글 업로드가 힘들 것 같습니다. 양해 바랍니다. 그럼 시작해봅시다. 저번 시간에 초기화와 handshake를 제외한 SSL 함수들을 만들어 보았습니다. 계속 이어서 가봅시다. 초기화입니다. 초기화 함수는 mbed의 example을 참고하였습니다. 해당 example은 다운로드 받은 mbedtls 소스 중 programs 폴더 -> ssl 폴더에 있습니다. 하지만 여러분들이 이 글을 읽는 이유는 embedded SSL을 구현에 시간을 단..

SSL/TLS embedded for IoT #7

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 일곱번째입니다. 다시 달려 보겠습니다.(뭐 물론 저 혼자만의 느낌이지만.. ㅠㅠ) 저번시간에 만들어야할 함수 목록들이 있었습니다. 7개 정도? 있었지요? 한 번 만들어 봅시다. 물론 mbedTLS configuration 등 신경써야 할 부분이 많습니다. 하지만 장담하건데 시작하시기도 전에 지치실 수 있습니다. 그러니 아무 생각 말고 걱정 말고 따라 오셔요 ㅎㅎ. 아래가 만들어야 할 함수 목록 이라고 말씀드렸습니다. 사실 안만드셔도 됩니다. 하지만 사용하시려면 결국 만드실 겁니다. wiz_mbedtls_ssl_init();wiz_mbedtls_ssl_deinit..

SSL/TLS embedded for IoT #6

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 여섯번째입니다. 너무 몰아붙이나요? ㅎㅎ 아니겠죠 ㅎㅎ 저만 ㅠㅠ 여러분들은 시간날 때 보면 되니까 ㅠㅠ 암튼 전 주말이지만 기다리시는 분들이 계셔서 계속 진행합니다. 오늘은 W5500 iolibrary와 mbedTLS를 이어 붙이는 시간이 될 거에요. 하지만 그 전에 SSL/TLS라는 게 서버든 클라이언트든 있어야 하잖아요? 또 그러기 위해서는 뭔가... 그 뭐냐... 그그그그그.... Application!이 있어야 하겠죠? 제가 건망증이 좀 있습니다. 양해 좀 ㅎㅎ 우리가 지금 IoT 하고 있잖아요? 그래서 네트워크 어플리케이션으로 MQTT를 정하겠습니다...

SSL/TLS embedded for IoT #5

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 다섯번째입니다. 업로드가 느려 죄송한 마음에 하나 더 포스팅을 하도록 하겠습니다. 계속 본격적이라고 해놓고는 SSL 포팅은 맛도 못봤기 때문에 이번 시간에 SSL 포팅 바로 전까지 마무리하고 이후에는 SSL 포팅과 application을 진행하도록 하겠습니다. 저번 시간에는 main에 W5500만 초기화하는 코드를 넣었습니다. 이제는 W5500을 초기화 하고 network 정보를 입력할 시간입니다. W5500HardwareDriver.c에 W5500Initialize() 함수를 추가해 줄 거에요. void W5500Initialize(void) { unsigne..

SSL/TLS embedded for IoT #4

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 네번째입니다. 이번 글쓰기는 시간이 오래걸렸습니다. 기다려주시는 분들께 죄송한 마음뿐입니다. 바로 시작하겠습니다. 저번 포스팅까지는 기본적인 환경 구축을 완료했습니다. mbedTLS 소스와 ioLibrary도 추가했지요. 본격적으로 소스를 보겠습니다. 아무것도 없는 main을 보니 공허하네요 ㅠㅠ 저도 갑자기 하는 포팅이라 약간 가슴이 답답합니다. ㅎㅎㅎ 그래도 해보도록 하시지요~ 먼저 iolibrary부터 포팅해서 ethernet이 원활하게 되는지 확인하도록 하겠습니다. W5500을 사용하기 위해서는 3단계 정도만 거치면 됩니다. 1. SPI를 위한 GPIO ..

SSL/TLS embedded for IoT #3

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 세번째입니다. 준비물을 전부 준비하셨다면 시작해 보도록 하겠습니다. CoIDE 설치는 아래 블로그에서 상세하게 설명되어 있습니다. CoIDE 설치하기->> http://engschool.tistory.com/entry/CoIDE-2%EB%B2%88%EC%A7%B8 그럼 프로그램을 작성해보도록 하겠습니다. 메뉴에서 Project -> new project를 선택하시면 repository라는 이름의 탭이 추가되어 보여지면서 Chip 혹은 Board를 선택할 수 있습니다. 여기에서 우리는 board를 선택하도록 하지요. 그리고 나서 ST 탭을 선택하시면 제가 선택한 ..

SSL/TLS embedded for IoT #2

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. embedded SSL/TLS 두번째입니다. embedded용 SSL/TLS 라이브러리가 가장 궁금하실 것 같습니다. 우선 거의 대부분의 embedded용도의 SSL/TLS는 유료입니다. 그런데 이 와중에 ARM사가 Polar SSL을 인수하여 mbedTLS로 이름을 바꾸고 Apache 2.0 라이센스로 배포해버렸습니다. ARM 감사~Apache 2.0의 의미는 아시겠지만 누구나 자유롭게 사용가능하고 상업적 목적도 가능합니다. 우선 mbedTLS 주소는 여기에요.-> https://tls.mbed.org/ Download mbed TLS 클릭하시면 바로 다운로드 됩니다. 소스 코드를 다운로드..

SSL/TLS for embedded IoT #1

SSL/TLS embedded for IoT 이 글은 embedded IoT device의 보안에 관한 글입니다. SSL/TLS는 근래에 광범위하게 사용되는 암호화 방식입니다. 여기서 주저리 주저리 설명하는 것보다 제가 SSL 공부할 때 유용하게 방문했던 사이트 주소를 가르쳐 드릴게요. https://wiki.kldp.org/HOWTO/html/SSL-Certificates-HOWTO/x70.html 어디서 사용되냐구요? 보통은 웹브라우저에서 많이 사용됩니다. 일반적으로 SSL이 적용된 사이트는 "http://"가 아닌 "https://"를 사용합니다. 그리고 SSL이 인증된 사이트는 크롬에서는 주소창 맨 앞에 녹색 자물쇠 모양이 표시되고 익스플로러에서는 주소 끝에 자물쇠 모양이 표시됩니다. 크롬 브라우..

사장님 Project - Project 개요 및 구조

사장님 Project는 IoT와 Cloud를 결합한 IoT Cloud Service platform 입니다.ㅎㅎ 거창해 보이지만 사실 서버와 클라이언트의 모음입니다. ^^;;;사실 그렇게 어렵지도 않구요.(모르는 것들에 대한 궁금증을 배신하면 됩니다. ㅎㅎ) 사장님 Project를 함께 진행하고 나면 사장님이 될 수 있다는 뜻에서 사장님 Project라고 이름지은 것은 아닙니다.다만 요세 트렌드를 따라보고 그에 대한 Idea를 더욱 구체화해보자는 의미에서 사장님 Project라고 이름 지었습니다. 다시 한번 말씀드리자면 사장님 Project는 IoT Cloud service platform을 구축하는 Project입니다. 단일 Job이 아니므로 생각보다 내용이 방대할 수 있어 큰 그림을 머리속에 박아두시..

사장님 Project #1

마지막 글 올린지가 8월인데 벌서 9월 말이네요.IoT EVB Project도 진행해야 하는데 ㅠㅠ 또 새로운 프로젝트를 시작합니다.다양한 일을 하고 있어서 지루하지는 않은데 조금 지치는 느낌입니다.(술 때문일까요?) 업로드가 늦어도 양해 부탁드립니다. 새로 시작하는 프로젝트는 "사장님"입니다. ㅎㅎㅎ 뭐 신경쓰지 말자구요 ㅎㅎ.아무튼 "사장님" 프로젝트는 요새의 화두인 IoT와 Cloud를 합친 IoT Cloud Service 플랫폼을 직접! 구축하는 프로젝트입니다.뭔.. ㅎㅎ .. ㅎㅎㅎ ㅋㅋㅋㅋ 뭐 이쯤되면 이 새끼는 뭐하는 새낀가 하실 겁니다. 저도 처음에 클라우드 서비스라는 주제로 강의를 하라는 소리를 들었을 때에는 -_-;; 그야 말로 맨붕. 하지만 저도 진행하면서 느낀 건데 어렵다기 보다는 ..

IoT Project 3. 회로설계 - D

IoT Project 3. 회로 설계 - D 드디어 회로 마지막 시간이네요. 이번에는 FT-2232쪽 회로를 뜯어볼건데요. 레퍼런스 회로가 있는 듯 없는 듯 애매합니다. 그래도 걱정하지 마세요!! 우리에겐 구글이 있으니까요. ^^ 그럼 시작하겠습니다. FTDI사는 USB to RS232 Converter로 유명한 회사입니다. 하지만 전 그것보다 USB to JTAG이 더 맘에 듭니다. USB to Jtag을 지원하는 IC는 몇가지가 있는데요 저는 2 port를 지원하는 FT2232D를 선택했습니다. 한 포트는 UART로, 한 포트는 Jtag으로 사용하기 위해서 입니다. 그래서 IoT 보드에 USB를 꽂으면 아래 사진처럼 COMPORT 장비가 2개 잡힙니다. 제 PC 기준으로는 COM16번과 COM17번으..

IoT Project 3. 회로설계 - C

IoT Project 3. 회로 설계 - C 겁나 죄송하다는 말씀부터 드리겠습니다.4월에 포스팅하고 7월에 포스팅을 하다니 ㅠㅠ 죄송합니다. 뭐 문제가 생긴거 아니냐라고 하시는 분들도 계신데;;;그냥 제가 게을러서 그런겁니다. 좀더 의무감을 가지고 진행하도록 하겠습니다. 사실 보드는 제작이 이미 완료되어 테스트까지 마치고 제 직장에서 강의 용도로 사용하고 있습니다.위즈네트라는 회사구요, 강의는 무료로 진행되니까;;;오시던지~ 마시던지! (사실 회사 홍보하는 거 같아서 간지럽습니다.) 그리고 이 프로젝트에서 사용된 회로도 및 아트웍 그리고 PCB 용도의 거버 파일까지 몽땅 다 드릴 수 있어요.필요하신 분들은 방명록이나 다른 어디라도 e-mail주소 남겨주시면 보내드리도록 하겠습니다.이 보드 모양 그대로 판..

IoT Project 3. 회로설계 - B

IoT Project 3. 회로 설계 - B 이번 시간은 간단하게나마 회로도를 뜯어 보겠습니다. 음 거의 레퍼런스 회로도를 참고한 것이니 레퍼런스와 다른 음... 일반적인 내용이 되겠네요. 그럼 시작합니다. 자 첫번째 장은 MCU 파트 입니다. MCU의 최소 구동? 이랄까? ㅎㅎ 보통 MCU를 돌리기 위해서는 당연하지만 MCU가 필요하구요. 중앙에 있죠? 그리고 클럭(clock)이 필요하겠죠? 거의 모든 MCU는 클럭이 필요합니다. 왜냐면 MCU를 구성하는 게이트들은 상태 변화에 따라서만 작동하니까요. 즉, low->high 나 high->low로 변하는 순간에 작동합니다. 혹시나 모르시는 분들이 계실까봐 말씀드립니다. 그래서 MCU 옆에 크리스탈 이라는 것이 붙어있죠. 클럭을 발생시키는 아이는 아니고 ..

반응형