Jailbreak và firmware hacking, từ Apple-1 tới iPhone

Mình đã nhiều lần nghe nhiều người phàn nàn trên mạng rằng những công ty như Apple rất tham lam. Họ cố tình làm hệ điều hành của mình chậm đi theo từng phiên bản. Sau đó, họ cố tình tiếp không cho người dùng downgrade phiên bản dưới để họ bán được phần cứng. Họ cũng cố tình làm cho việc Jailbreak điện thoại khó khăn vì lòng tham của mình. Những lời lý giải kiểu đó đúng đến mấy phần, tại sao đúng, tại sao sai?
Hãy cùng đi ngược dòng thời gian trở về những năm 1970-1980, khi Apple là một trong những nhà tiên phong đi đầu trong việc mang máy tính đến với từng cá nhân. Trước đó, máy tính là thứ phải đến công sở mới được dùng một máy tính trạm để kết nối với máy chủ để làm việc. Hoặc nếu không có máy trạm, thì mỗi người chỉ được dùng máy chủ (mainframe) trong một thời gian ngắn mà mình đã đặt gạch xí chỗ - gọi là timesharing.
Khi đó, ý tưởng như một chiếc máy tính cá nhân để dùng ở nhà là một điều đột phá, ý tưởng đó như làm phòng thí nghiệm ở nhà vậy. Steve Wozniak (Woz) vốn là một kỹ sư điện tử thông thái, ông ta phát minh ra nhiều cách để tối ưu hóa các con chip. Ông tự chế được một chiếc máy tính cá nhân với giá rất rẻ với một cấu hình rất mạnh thời bấy giờ. Woz đi khoe chiếc máy tính của mình tại Câu lạc bộ Máy tính tự chế (Homebrew Computer Club), cùng với tất cả bản vẽ để ai muốn làm cái thứ hai thì tự đi mua chip mà chế. Steve Jobs là người ít có hiểu biết kỹ thuật hơn, xui Woz đi thương mại hóa bán chiếc máy đó. Hai chàng cho ra mắt chiếc máy tính Apple I với giá 666.66 đô, bán tại cửa hàng Byte Shop trên đường El Camino Real ở Mountain View, California (tức là "thung lũng Silicon"). Với các bạn lạ lẫm với văn hóa Mỹ, số 666.66 là con số rất đặc biệt, thường người ở Mỹ cho rằng số 666 tượng trưng cho quỷ Satan. Người Mỹ kỵ số 666 như người Việt kỵ số 49, 53. Nhưng với tính cách của hai thanh niên phá cách tuổi đôi mươi thì họ không màng.
Máy Apple-1 tại Computer History Museum - Mountain View, CA
Hồi đó, các máy tính thương mại thường đi kèm với bản vẽ để ai muốn thì tự sửa được khi máy tính hỏng. Chương trình cũng rất dễ hiểu, ai muốn sao chép gì thì sao chép. Các máy  tính khi bán ra chỉ có trong bộ nhớ một chương trình dịch Basic (do Bill Gates viết ra), và dòng lệnh. Ai muốn chạy chương trình gì thì phải nhập mã nguồn lấy ở các tạp chí vào mà chạy. Với phần cứng và phần mềm như vậy, nếu ai muốn đều có thể viết bất cứ cái gì cho mình, và chạy bất cứ chương trình nào mình muốn. Thậm chí, ai muốn máy tính nhanh hơn, mạnh hơn mà hiểu được cơ chế hoạt động của nó, thì mua thêm vài con chip gắn vào là được.
Mạch điện máy Apple-1
Khi máy tính trở nên thương mại hóa hơn, thì hai điều xảy ra. Một là để giảm diện tích, chi phí, thì các nhà sản xuất tìm cách chuyển từ dây nối sang các mạch điện tử tích hợp. Như vậy một người tương đối rành rẽ cũng khó có thể hiểu được một chiếc máy tính hoạt động như thế nào vì độ tích hợp của nó đã tăng vọt. Thứ hai, cùng với sự ra đời của máy trò chơi điện tử, phần mềm đã trở thành một mảnh đất màu mỡ. 
Để tránh phần mềm bị copy bừa bãi thì các công ty đã tìm đủ mọi cách để chống copy phần mềm. Trước tiên, họ tìm cách chống copy bằng phần mềm, ví dụ, nhập số serial để mở khóa phần mềm. Sau đó, các nhà sản xuất phần cứng trò chơi điện tử cũng đối mặt với việc không khóa phần mềm của mình. Hóa ra, ngay cả việc sao chép một con chip như con chip chứa chương trình trò chơi điện tử cũng không có gì là quá khó khăn. Nếu như trò chơi điện tử mà ai cũng viết được thì không ai kiểm tra chất lượng, dẫn đến chất lượng trò chơi thấp, dẫn đến việc không ai mua máy nữa. Còn nếu ai cũng copy trò chơi được thì sẽ không ai dám đầu tư viết trò chơi, và không ai thích mua máy để chơi nữa. Nintendo giải quyết việc đó bằng cách gắn hai con chip vào hai nơi, một là băng trò chơi điện tử, hai là cái máy trò chơi điện tử. Thường cách thức hoạt động của một con chip đi theo băng trò chơi điện tử chính hiệu là nó sẽ trả lời được một "câu hỏi" ngẫu nhiên mà con chip ở trên máy có thể hỏi. Nếu vượt qua được bước này, thì chiếc máy mới chạy chương trình trò chơi điện tử. Nếu như Nintendo là người duy nhất sản xuất được con chip gắn vào băng, thì họ vừa thu tiền được nhà sản xuất trò chơi, nhà sản xuất trò chơi lại đỡ nhức đầu hơn không lo phần mềm của mình bị sao chép.
Chip chống sao chép của máy Nintendo Entertainment System (4 nút). Ảnh Wikipedia.
Khi các cơ chế chống sao chép phần mềm xuất hiện, thì một hiện tượng mới xảy ra, đó là chiếc máy tính, hay máy trò chơi điện tử có thể từ chối chạy chương trình mà nó không "tin" là chương trình từ nhà sản xuất. Nhưng phần lớn những nỗ lực chống phần mềm mà phần cứng không "tin" là thật là để chống copy phần mềm bất hợp pháp nhằm đảm bảo quyền lợi cho nhà sản xuất, đầu tư phát triển phần mềm. Đó là những cách thức bảo vệ phần cứng và phần mềm từ thời 20-30 năm trước, và chỉ xảy ra với những nơi mà phần mềm không nhất thiết gắn với phần cứng (ví dụ, một chiếc máy trò chơi điện tử có thể chạy được rất nhiều băng trò chơi điện tử khác nhau). 
Với các thiết bị khác như điện thoại và máy PDA, thường người ta rất ít quan tâm đến vấn đề đó, vì cuối cùng chiếc điện thoại cũng chỉ có một người viết phần mềm cho nó (là nhà sản xuất phần cứng). Một khi bán được cả bộ rồi, thì việc copy được phần mềm hay cái phần cứng đó chạy cái gì thường không phải là điều nhà sản xuất phần cứng quan tâm. Hơn nữa, các điện thoại thời những năm 1990-đầu 2000 đều không có "app store," chúng sinh ra chỉ để chạy phần mềm nhúng để gọi, nhận gửi tin nhắn, và chạy game Snake. Các chip trong các điện thoại đơn giản là đọc chương trình từ bộ nhớ, chạy, và không cần biết ai viết nó.
Máy Siemens, những máy tiên phong cho phong trào firmware hacking trên điện thoại
Khi các máy điện thoại thông minh lên một chút, thời đầu 2000, các điện thoại nửa thông minh chạy được Java và nghe được MP3 ra đời. Một trong những câu chuyện mà mình nhớ là về các chiếc điện thoại của Siemens đời 45: S45, ME45. Các điện thoại này đều khác nhau về hình dáng, giá cả, chức năng nhưng về bên trong thì giống hệt nhau. Điều này dẫn đến việc một số người mua chiếc điện thoại model rẻ, về cài phần mềm (firmware) viết cho model đắt tiền, để chạy email, nghe nhạc, mở rộng bộ nhớ. Mình nhớ một số bậc tiền bối mình biết hồi đó còn là sinh viên mua những điện thoại ME45 về và cài firmware có Java vào để chơi trò chơi. Điều thú vị ở đây là Siemens chỉ muốn bán cái điện thoại và không có app store hậu mãi, và chỉ chạy phần mềm của nhà sản xuất, nhưng việc người dùng chạy firmware khác làm cho họ mất doanh số bán điện thoại. Nhưng mặt khác, việc cài và chạy firmware khác là một điều có lợi cho người dùng, nói chung họ không mất gì cả, chỉ mất công mày mò ghi chương trình lên con chip nhớ.
Chiếc iPhone là một gáo nước lạnh dội vào tất cả những nhà sản xuất sản xuất điện thoại khác. Chiếc điện thoại bây giờ bỗng dưng là một kho tàng những ứng dụng, thông tin cá nhân, những bí mật của người sở hữu chiếc điện thoại này. Chiếc điện thoại vốn đơn giản trở thành một trong những thiết bị máy tính mạnh nhất, phức tạp nhất mà mỗi người đều có trong lòng bàn tay. Bỗng nhiên việc kết nối được Internet biến chiếc điện thoại trở thành một công cụ để thăm dò đời tư một cách hiệu quả nhất. Nếu bạn có bất cứ thông tin gì mà một chương trình với quyền truy cập cao có thể khai thác được lọt vào tay kẻ xấu, bạn có thể mất mọi thứ từ tiền bạc tới danh dự và uy tín. Thế cho nên việc bảo đảm thông tin trên điện thoại là một trong những nhiệm vụ tối quan trọng của nhà sản xuất điện thoại.
Vấn đề là mô hình tín thác của những chiếc điện thoại Nokia hay Siemens, tức là đọc cái gì chạy cái nấy sẽ là một vấn đề vô cùng nghiêm trọng. Nếu có ai đó cài được vào máy điện thoại thông minh của bạn, trước khi nó đến tay bạn, hoặc trong khi nó ở tay bạn mà bạn không biết thì nó sẽ là một thảm họa không chỉ cho bạn mà cho cả nhà sản xuất điện thoại.
Vì thế các điện thoại này có một cơ chế tự bảo vệ đặc biệt cho chính mình như chiếc máy trò chơi điện tử Nintendo ngày xưa, là nó có một con chip đặc biệt ở trong bộ vi xử lý. Nhiệm vụ của nó là kiểm tra chữ ký điện tử của phần mềm trong con chip nhớ, chỉ khi nào nó kiểm tra chữ ký của phần mềm này là chữ ký mà nó "tin" thì chương trình trong điện thoại mới tiếp tục chạy. Điều này đảm bảo cho thông tin của bạn được an toàn mà chắc chắn không ai ngoài nhà sản xuất điện thoại có thể âm thầm chạy được mã độc trên điện thoại của bạn. Việc một nhà sản xuất đảm bảo được hàng tỷ chiếc máy điện thoại an toàn tối đa bất kể giá tiền, bất kể địa vị, không ai sợ bị lộ thông tin cá nhân vì mã độc là một kỳ tích vô cùng đáng nể. Tất cả việc này đều do nhờ có phát minh gọi là chữ ký điện tử. Chỉ khi nào phần mềm được đảm bảo bằng một chữ ký số mà chỉ một vài người trên thế giới này biết (ngay cả kỹ sư của Apple cũng không biết), thì 200 triệu chiếc điện thoại iPhone đang lưu hành trên thế giới mới chạy phần mềm viết cho nó.

Nhưng các phần mềm đi theo điện thoại không bao giờ hoàn thiện, nhất là ở một môi trường phức tạp và có nhiều bộ phận phần mềm khác nhau. Thi thoảng, phần mềm điện thoại có lỗi, các lỗi này làm cho chiếc điện thoại này chạy mã mà nhà sản xuất không kiểm soát được. Kết quả của việc này là bạn có thể dùng chiếc điện thoại của mình để chạy các phần mềm gọi là Jailbreak. Jailbreak có điểm hay là bạn có thể chạy cái gì tùy thích, thay đổi cái gì tùy thích, chạy phần mềm của mình tự viết hay phần mềm chùa cũng được. Nhưng điểm dở của việc Jailbreak là bạn không chạy các phần mềm này trong vỏ bọc bảo vệ của hệ điều hành được nhà sản xuất viết ra. Bạn có thể chạy mã độc đóng giả như một chiếc điện thoại hay chương trình bình thường. Khi điều này diễn ra thì mọi lớp bảo vệ mà nhà sản xuất cung cấp cho bạn đều đi tong.
Không biết ai còn nhớ?
Để điều này không diễn ra, các nhà sản xuất phần mềm cho ra những bản cập nhật hệ điều hành định kỳ hoặc khi có lỗi mới được phát hiện. Khi nâng cấp lên bản mới không bị lỗi, nhà sản xuất thường có thêm một lớp bảo vệ nữa, là việc khóa không cho downgrade hệ điều hành trở về bản cũ. Vì nếu người ta có thể downgrade hệ điều hành, thì kẻ xấu có thể downgrade hệ điều hành không bị lỗi của bạn về bản có lỗi và lợi dụng lỗi đã được công bố để cài phần mềm độc hại vào điện thoại hay thiết bị máy tính của bạn.
Việc không cho downgrade OS chỉ là một hiệu ứng phụ của cơ chế bảo mật hệ điều hành chứ thường không phải là dụng ý xấu của nhà sản xuất. Những gì chúng ta có hiện nay là một thành tựu của hàng chục năm tiến hóa của các phương thức và các bước phát triển từ thương mại đến đảm bảo thông tin an toàn cá nhân cho hàng tỷ người.
Có nhiều người có nhu cầu chạy những phần mềm tự mình viết ở trên máy tính, điện thoại, và các thiết bị thông minh khác. Để thỏa mãn nhu cầu này thì có một số nhà sản xuất cho phép bạn gạt một nút vật lý hay điện tử trên thiết bị, khi đó chiếc máy sẽ chạy theo kiểu năm 1984, tức là đút cho cái gì thì chạy cái đó mà không kiểm tra chữ ký của nhà sản xuất. Các thiết bị điện thoại hay laptop của Google thường có chức năng này. Để đảm bảo tính an toàn cho người dùng thì cứ khi nào chức năng này được bật, chiếc điện thoại hay máy tính sẽ thông báo cho bạn bằng một màn hình "dọa dẫm" ngay khi khởi động và không có cách nào tắt đi, vì đúng là có thể bạn đang chạy mã độc mà không biết. Đây là giải pháp tương đối thông minh cho vấn đề niềm tin trên máy tính. 
Màn hình dọa dẫm của ChromeOS
Rất tiếc, các máy điện thoại của Apple không có tính năng bật tắt chế độ chạy phần mềm tin tưởng này mà chỉ cho người dùng một lựa chọn là chạy phần mềm mà Apple viết ra. Nhưng đó, theo mình, là sự lựa chọn tốt cho hầu hết số người đang sử dụng điện thoại của họ.
Màn hình dọa dẫm của điện thoại Pixel
Một điều bạn có thể thắc mắc, chính bản thân Apple và các hãng làm phần cứng khác làm cách nào để họ viết phần mềm chạy thử trên chính điện thoại của mình, khi ngay cả chính kỹ sư của họ cũng không biết chữ ký điện tử của Apple? Thường các giải pháp hiện đại là trong CPU thường có một số chiếc "cầu chì" điện tử gọi là eFUSE. Khi ra dây chuyền sản xuất thật thì họ dùng lệnh để làm cháy chiếc cầu chì này đi, khi đó chiếc điện thoại sẽ chỉ chạy mã đã có gắn chữ ký điện tử. Còn khi thiết kế, họ làm việc trên những thiết bị mà chiếc cầu chì này chưa bị cháy, khi đó phần cứng sẽ chạy thoải mái cái gì cũng chạy. Các thiết bị này gọi là prototype hardware, và các thiết bị này nếu ai có trên tay thì sẽ rất hữu dụng để tìm hiểu về phần cứng và phần mềm. Chính vì thế mà các prototype hardware có thể đáng giá rất nhiều tiền.
Prototype máy Palm tại Computer History Museum
Mình đã thăm bảo tàng Computer History Museum nhiều lần, nhưng mỗi lần đều thấy học được một điều mới. Thế giới của máy tính là thế giới của việc chính xác, hoàn thiện. Vì một thiết kế kín kẽ đến 99.999% là chưa đủ tốt, để một sản phẩm như chiếc iPhone ra đời cho hàng tỷ người từ chính khách đến dân thường, thì chiếc điện thoại phải 100% an toàn. Đó là một điều vô cùng khó khăn nhưng cũng vô cùng kỳ diệu khi chúng ta được hưởng những thành quả đó. Khi ta không hiểu rõ, việc gán ghép người khác có mưu đồ là điều dễ dàng nhất, nhưng cũng là điều nên tránh nhất.
78
2560 lượt xem
78
7
7 bình luận