Android Q უკეთ დაიცავს თქვენს კონფიდენციალურობას ახალი ფუნქციებით

გაჟღენთილი Android Q-ის ანალოგების ანალიზმა აჩვენა, რომ Android-ზე მოდის უფრო მეტი კონფიდენციალურობის განახლება: ფონური ბუფერში წაკითხულის დაბლოკვა, მედიის უკეთესი დაცვა და სხვა.

Android-ის ყოველ ახალ ვერსიას აქვს ახალი ფუნქციები, რაც ნიშნავს, რომ Android-ს სჭირდება ახალი ნებართვები ამ ფუნქციებზე წვდომისთვის. ბევრი ახალი ნებართვა ვიპოვე Android Q-ის ჩარჩოში (ყველა მათგანს არ განვიხილავ ამ სტატიაში, რადგან ბევრი მათგანი არ არის საინტერესო). ზოგიერთ ნებართვას, რომელიც მე ვიპოვე, არ ჰქონდა აღწერილობა, მაგრამ მათი სახელები მაინც საკმაოდ გასაგებია. მოდით ჩავუღრმავდეთ და განვიხილოთ Android Q-ში კულისებში კონფიდენციალურობის ახალი გაუმჯობესებები, ისევე როგორც რამდენიმე სხვა საინტერესო ფუნქცია, რომელიც აღმოვაჩინე.

განსაკუთრებული მადლობა PNF Software-ს, რომ მოგვაწოდა გამოყენების ლიცენზია JEB დეკომპილერი. JEB Decompiler არის პროფესიონალური დონის საპირისპირო ინჟინერიის ინსტრუმენტი Android აპლიკაციებისთვის.

ფონური ბუფერში წვდომის დაბლოკვა

იცოდი რომ Android-ის ყველა აპს შეუძლია წაიკითხოს თქვენი ბუფერშიდა თქვენ არ უნდა მიანიჭოთ მათ მუშაობის დროის ნებართვა ამის გასაკეთებლად? ბევრი ადამიანი ალბათ კოპირებს მგრძნობიარე ინფორმაციას, როგორიცაა მომხმარებლის სახელები, პაროლები, მისამართები და ა.შ. ყოველთვის, ასე რომ, ნებისმიერი აპისთვის ადვილი იქნება ამ მონაცემების ფონზე გაფცქვნა. ამიტომაც მოსწონს პაროლის მენეჯერის ბევრ აპს

KeePass აქვს საკუთარი კლავიატურები, რომლებიც შეგიძლიათ გამოიყენოთ Android ბუფერის მენეჯერის გვერდის ავლით. პაროლის მენეჯერის აპები ხშირად ასუფთავებენ გაცვლის ბუფერს მას შემდეგ რაც დააკოპირებთ და ჩასვით რაიმე. მიზეზი, რის გამოც Android აპებმა უნდა წაიკითხონ ბუფერში არის ის, რომ მათ არ შეუძლიათ მიიღონ ნებისმიერი ტექსტი ბუფერიდან მის გარეშე, რაც ნიშნავს, რომ თქვენ არ შეგიძლიათ ჩასვათ თქვენს მიერ დაკოპირებული ტექსტი. Android Q ცდილობს ამის შეცვლას, საბედნიეროდ.

დაემატა ახალი ნებართვა სახელწოდებით "READ_CLIPBOARD_IN_BACKGROUND”როგორ ჟღერს, ის გააკეთებს ზუსტად იმას, რაც ამბობს: შეზღუდოს რა აპებს შეუძლიათ წაიკითხონ ბუფერში ფონზე. ამ ნებართვის დაცვის დონეა „ხელმოწერა“, რაც ნიშნავს, რომ მხოლოდ OEM-ის მიერ ხელმოწერილ აპებს შეუძლიათ ამ ნებართვის მინიჭება.

<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>

აპების დაქვეითების მხარდაჭერა?

ოდესმე დააინსტალირეთ აპლიკაციის განახლება Google Play-ზე და მაშინვე გინანიათ? ზოგჯერ დეველოპერი ახორციელებს განახლებას, რომელიც არღვევს იმას, რასაც ისინი არ ელოდნენ, მაგრამ მას შემდეგ რაც განახლებულია და დააინსტალირებს, ძალიან გვიანია ამის გაკეთება. დეველოპერმა სწრაფად უნდა გაუშვას ცხელი შესწორება და მომხმარებელმა ან უნდა შეწყვიტოს აპის გამოყენება განახლების გამოქვეყნებამდე, ან უნდა წაშალოს აპი და ჩაიტვირთოს ძველი ვერსია. არ არსებობს აპლიკაციის დაქვეითების საშუალება, თუ არ გაქვთ ძირეული მოწყობილობა მსგავსი აპით Titanium Backup, რადგან Android-ის პაკეტის მენეჯერი გბლოკავს აპების ძველი ვერსიების ინსტალაციას. ამის კარგი მიზეზი არსებობს, რადგან აპლიკაციის ძველი ვერსიის ინსტალაციამ შეიძლება გამოიწვიოს გაფუჭება აპლიკაციის მონაცემები არ არის გასუფთავებული, ან შეიძლება მომხმარებელს საფრთხე შეუქმნას, თუ ძველი ვერსია დაუცველია უსაფრთხოების მიმართ ნაკლი.

მიუხედავად იმისა, რომ ჩვენ ზუსტად არ ვიცით, მისცემს თუ არა Google მომხმარებლებს აპების ძველ ვერსიაზე დაბრუნებას, ჩვენ ვიპოვეთ რამდენიმე ნებართვა და ბრძანება Android Q-ში, რაც ვარაუდობს, რომ ეს შესაძლებელი იქნება. პირველი, ახალი "PACKAGE_ROLLBACK_AGENT"და "MANAGE_ROLLBACKS” ნებართვები ვარაუდობენ, რომ წინასწარ დაინსტალირებულ საბაზრო აპს შეუძლია იმოქმედოს როგორც აგენტი აპლიკაციის ვერსიების უკან დაბრუნებაზე. პირველი ნებართვა არის „ხელმოწერა“, ხოლო მეორე არის „ინსტალერი“ „ხელმოწერის“ თავზე, ასე რომ ეს ნიშნავს მხოლოდ პლატფორმაზე ხელმოწერილ აპს, რომელსაც შეუძლია აპების ინსტალაცია (როგორც წესი, მხოლოდ პაკეტის მენეჯერს, Google Play Store-ს ან სხვა პირველი მხარის აპების მაღაზიებს, მოწყობილობიდან გამომდინარე) შეუძლია გამოიყენოს ეს ნებართვები. დაემატა ორი ახალი დაცული სამაუწყებლო ჩანაწერი:PACKAGE_ENABLE_ROLLBACK"და "PACKAGE_ROLLBACK EXECUTED.” ეს მაუწყებლობა არ შეიძლება გაიგზავნოს მესამე მხარის აპების მიერ და, სავარაუდოდ, მიზნად ისახავს დაზიანებულ აპს იცოდეს, როდის მოხდა მისი დაქვეითება (ბევრად მაგალითად, როგორ ეუბნებიან აპებს მათი განახლებისას, რაც მათ საშუალებას აძლევს აჩვენონ გარკვეული შეტყობინება მომდევნო დაწყებაზე.) და ბოლოს, ახალი დროშა დაემატა "pm install”ჭურვის ბრძანება. დროშა, ე.წ.--enable-rollback," შეიძლება მოგცეთ აპლიკაციის წინა ვერსიაზე დაბრუნება. თუმცა ვერ შევძელი სამუშაოდ.

<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>

ფაილების დაცვა გარე საცავში

Android-ში მონაცემთა შენახვა მოიცავს „შიდა მეხსიერებას“ (/მონაცემების გამოკლებით /data/media) და „გარე მეხსიერება“ (/data/media და ნებისმიერ დამონტაჟებულ SD ბარათს ან USB დისკს). APK და მათი ყველაზე მგრძნობიარე მონაცემები ინახება შიდა მეხსიერებაში, ხოლო ნებისმიერი გაზიარებული მედია, როგორიცაა დოკუმენტები, სურათები, ვიდეოები და ა.შ. ინახება გარე საცავში. ნაგულისხმევად, აპებს შეუძლიათ მხოლოდ ფაილების წაკითხვა და ჩაწერა გარე მეხსიერების ერთ დირექტორიაში: /data/media/[user]/Android/data/[package_name]. (ამ ქცევის შესახებ მეტის გასაგებად, გირჩევთ, წაიკითხოთ ჩემი სტატია sdcardfs-ზე Android Oreo-ში.) მას შემდეგ რაც მომხმარებელი მისცემს აპს ნებისმიერ ნებართვას გარე მეხსიერების ნებართვის ჯგუფში (READ_EXTERNAL_STORAGE ან WRITE_EXTERNAL_STORAGE), შემდეგ აპს შეუძლია წაიკითხოს ან ჩაწეროს ნებისმიერი ფაილი გარე მეხსიერებაში. ეს პრობლემურია, რადგან თქვენ აძლევთ აპს შესაძლებლობას, პოტენციურად მოაგროვოს ბევრი მონაცემი თქვენს შესახებ, როცა უბრალოდ გინდოდათ მისცეთ საშუალება წაიკითხოს ან დაწეროს გარკვეული ფაილები. ამის გამოსწორების მიზნით, Google, როგორც ჩანს, შემოაქვს გარე მეხსიერებასთან დაკავშირებული რამდენიმე ახალი ნებართვის Android Q-ში. ნებართვები შეიცავენ შემდეგ მახასიათებლებს:

  • თქვენი მედიიდან მდებარეობების წაკითხვის შესაძლებლობა. (სავარაუდოდ დაბლოკილია სურათების მეტამონაცემებზე წვდომა ნაგულისხმევად.)
  • მუსიკალურ ფაილებზე წვდომის შესაძლებლობა.
  • ფოტოებზე წვდომის შესაძლებლობა.
  • ვიდეოებზე წვდომის შესაძლებლობა.

აპებისთვის, რომლებიც უკვე ფლობენ READ_EXTERNAL_STORAGE ან WRITE_EXTERNAL_STORAGE ნებართვები Android Q განახლებამდე, ისინი მიიღებენ ახალს წაიკითხეთ ნებართვები, მაგრამ არა ახალი დაწერე ნებართვები. მაგალითად, აპლიკაცია, რომელიც უკვე მინიჭებულია READ_EXTERNAL_STORAGE მომხმარებლის მიერ ავტომატურად მიენიჭება READ_MEDIA_IMAGES ნებართვა, მაგრამ არა WRITE_MEDIA_IMAGES ნებართვა.

შესაბამისი სტრიქონები Android Q-ის Framework-res-დან

<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>



"android.permission.READ_EXTERNAL_STORAGE"

targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

წაიკითხე მეტი

ფონური მდებარეობის წვდომის დაბრუნება

Android Oreo-მ და Android 9 Pie-მ დიდი ნაბიჯები გადადგა მომხმარებლის კონფიდენციალურობის დასაცავად, მაგრამ ზოგიერთი მომხმარებელი ფიქრობს, რომ Google-მა ძალიან შორს წაიყვანა. ერთ-ერთი ასეთი სფერო, რომელიც შეიძლება ჩაითვალოს მახასიათებლის რეგრესია, არის ფონის მდებარეობის წვდომა. მდებარეობაზე წვდომა Android Oreo-ში და უფრო გვიანდელში ძლიერ შეფერხებულია, თუ ფონზე გაშვებული აპებისთვის არ არის მთლიანად მოკლული. აპები უნდა იყოს ან წინა პლანზე, ან ჰქონდეს წინა პლანზე გაშვებული სერვისი, თუ მათ სურთ მუდმივად გამოკითხონ მოწყობილობის მდებარეობა. ეს ბლოკავს აპებს თქვენი მდებარეობის თვალთვალის ფონზე, მაგრამ ასევე ბლოკავს მომხმარებელს საკუთარი მდებარეობის რუკების დახატვას აპლიკაციის ფონზე. ეს არის პრობლემა, რომელსაც ცალკე სტატიაში შევეხეთ და როგორც ჩანს, Google ამატებს ახალ ნებართვას Android Q-ში ამ დეველოპერებისა და მომხმარებლების შეშფოთების გადასაჭრელად.

Android Q-ში დამატებულია ახალი ნებართვა, რომელიც საშუალებას აძლევს აპს ჰქონდეს ფონური წვდომა მოწყობილობის მდებარეობაზე. მომხმარებლისთვის ნებართვის აღწერა აფრთხილებს, რომ „აპს ყოველთვის ექნება წვდომა მდებარეობაზე, მაშინაც კი, როცა თქვენ არ იყენებთ აპს“. ეს ნებართვა შეიძლება მიენიჭება „დაახლოებითი ან ზუსტი მდებარეობის დამატებით“ ნებართვები, რათა აპს „შეუძლია წვდომა მდებარეობაზე ფონზე მუშაობისას“. Კონტრასტში, უხეში მდებარეობის ნებართვას შეუძლია თქვენი მდებარეობის მიღება მხოლოდ ქსელის წყაროებზე დაყრდნობით, როგორიცაა მობილური ანძები ან Wi-Fi ქსელები, მაგრამ მხოლოდ მაშინ, როდესაც აპი არის წინა პლანზე.

შესაბამისი სტრიქონები Android Q-ის Framework-res-დან

<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

წაიკითხე მეტი

ფიზიკური აქტივობის ამოცნობა

Android Q-ს დაემატა ახალი ნებართვა, რომელიც საშუალებას აძლევს აპს „აღიცნოს თქვენი ფიზიკური აქტივობა“. ეს ტექნიკურად ახალი არ არის, რადგან ეს არის უკვე Google Play სერვისების ნაწილია, მაგრამ ეს შეიძლება ნიშნავდეს, რომ Google გაწყვეტს Play Services-ის ნებართვას. იმის გამო, თუ რამდენად ინტეგრირებული იყო Google Play Services Android-ის ძირითადი ფუნქციების უზრუნველყოფაში, კარგია, რომ ნახოთ მისი გარკვეული ძალა AOSP-ისთვის.

<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>

მეტი Android Q სიახლეებისთვის, იხილეთ ჩვენი ტეგი თარიღის მიხედვით დალაგებული უახლესი ამბებით. ჩვენ ახლახან გამოვაქვეყნეთ სტატია მრავალი მტკიცებულებით, რომელიც მიუთითებს იმაზე, რომ Google მუშაობს Face ID-ის მსგავსი სახის ავთენტიფიკაციის აპარატურის მხარდაჭერა Android Q-ში. ჩვენ ასევე გვაქვს Android Q-ის გაჟონვის ადრეული პრაქტიკა (და კიდევ არის ვიდეო), რომელიც უნდა ნახოთ აქ. ჩვენ გამოვაქვეყნებთ უფრო მეტ დასკვნებს ამ ადრეული Android Q-ის ნაგებობიდან, რომელიც ჩვენ მივიღეთ, ასე რომ, თვალყური ადევნეთ.