zoukankan      html  css  js  c++  java
  • OSX: 禁止iCloud钥匙链?

    自从10.9有了一个新的功能叫iCloud钥匙串的,就出现了不少的麻烦。一是在10.9.3之前。好多人出现无限循环地要求用户输入Local items的password问题,还好这个问题Apple官方给出了一个暂时解决办法:OS X Mavericks v10.9.1:重复提示解锁“本地项目”钥匙串。只是没有不是终极修复。还好10.9.3中差点儿不用发愁它了-在我的測试中仅仅幽灵般地出现过一次。

    二是,有的企业希望禁止它。可能它们的企业的安全规则禁止把诸如帐户信息/信用卡信息等存储到企业以外的不论什么介质中,尤其是放到网上,尽管Apple声称这个绝对的安全,只是依旧没有打消这种企业的顾虑,也许它们不愿或没有准备好改动内部规则来适应新的技术发展吧。

    总之,可以禁止就好了。


    而事实上iCloud钥匙串就是保存在用户的~/Library/Keychains中有着一长串类似UUID的目录里面的一个数据库中:


    在钥匙链存储(Keychain Access)中,被显示为Local Items。并且与login钥匙链不同。用户无法删除它。曾经Local items与login的加密解密类似都是使用用户的登录password,一旦用户的登录password在其他地方改变(比方管理员能够改变本地用户password,或者AD/OD用户等),系统就会不厌其烦地询问曾经的password来为它们解密。自从10.9.3之后,可能使用了用户认证加密机制而绕过password加密,所以不会出现询问password的问题,只是login钥匙串还没有改变。


    苹果的技术说了: No。

    Apple官方没有也不会讨论禁止它的策略/方法。

    只是建议能够屏蔽站点。


    有人说。在系统偏好中禁止iCloud就能够了。不管是用Profile还是MCX等等技术--事实上有人发现,在至今可见的全部的OSX版本号中Profile都存在一个"bug",使得即便被admin禁止的系统偏好项目。依旧能够被普通用户使用。但是即便是那里禁止了,能够用户依旧可能在使用其他软件的时候激活它。比方互联网帐号,mail, 联系簿等等。


    苹果建议,在网络上把iCloud给屏蔽了。


    1. 经过网上多个admin的尝试,似乎与这些apps有关:

    <span style="font-size:18px;">/System/Library/CoreServices/Keychain Circle Notification.app
    /System/Library/InternetAccounts/iCloud.iaplugin
    /usr/libexec/KeychainMigrator</span>

    能够删除这些程序--本人没有尝试。是从网上其他地方汇集的。操作之前备份,后果自负。


    2. 据说以下的脚本能够推断一个用户是否开启了iCloud:

    <span style="font-size:18px;">#!/bin/sh
    OSVersion=$(sw_vers -productVersion)
    
    if [ $OSVersion == 10.9 ]; then
    	currUser=$( /usr/bin/who | /usr/bin/awk '/console/{ print $1 }' )
    	Keychain=$( /usr/libexec/PlistBuddy -c "Print Accounts:0:Services:7:Enabled" "/Users/$currUser/Library/Preferences/MobileMeAccounts.plist" )
    	echo "<result>$Keychain</result>"
    
    else 
    	echo "<result>False</result>"
    fi</span>


    3. 这个脚本能够读取保存在当前用户plist文件里的与iCloud有关的网址。并加入到host文件里,来屏蔽它们:

    #!/bin/sh
    
    ####################################################
    #
    # This script checks the url iCloud Keychain uses 
    # and adds a record to the /etc/hosts file to point
    # it back to itself.
    #
    # Written by: Kenny 1/17/14
    #
    #####################################################
    
    
    # Get the current user.
    currentUser=`ls -l /dev/console | cut -d " " -f4`
    echo "$currentUser"
    
    # Get the URL iCloud Keychain contacts 
    iCloudKC=`defaults read /Users/$currentUser/Library/Preferences/MobileMeAccounts.plist | grep -A 4 "KEYCHAIN_SYNC" | grep "escrow" | cut -d ':' -f 2 | sed 's/[/]//g'`
    echo "$iCloudKC"
    
    # Append the /etc/hosts file
    echo "127.0.0.1       $iCloudKC" >> /etc/hosts
    echo "host file appended"

    4. 这个脚本把全部的iCloud escrowserver地址都屏蔽掉:

    #!/usr/bin/env bash
    
    HostFile="/private/etc/hosts"
    ditto -v "$HostFile" /private/etc/hosts.bkup
    CurrentBlockHosts=$(cat "$HostsFile" | grep -c "icloud")
    if [[ "$CurrentBlockHosts" -eq 25 ]]; then
    	exit 0
    elif [[ "$CurrentBlockHosts" -eq 0 ]]; then
    	echo "##" >> "$HostFile"
    	echo "# Block the following hosts" >> "$HostFile" 
    	echo 127.0.0.1 icloud.com >> "$HostFile"
    	for (( i = 1; i < 10; i++ )); do
    		echo "127.0.0.1 p0$i-escrowproxy.icloud.com" >> "$HostFile"
    		echo "127.0.0.1 p0$i-escrowservice.icloud.com" >> "$HostFile"
    	done
    	for (( i = 10; i < 25; i++ )); do 
    		echo "127.0.0.1 p$i-escrowproxy.icloud.com" >> "$HostFile"
    		echo "127.0.0.1 p$i-escrowservice.icloud.com" >> "$HostFile"
    	done
    else
    	logger "[iCloudBlocker] Found $CurrentBlockHosts iCloud entries"
    fi
    exit 0

    以上这些都是从网上搜集的信息。没有经过全然測试。

  • 相关阅读:
    String系列
    java初始化构造函数调用顺序
    转发和重定向的区别
    HttpServletResponse对象
    JSP九大隐式对象
    关于异常
    MySQL下载、安装及启动
    MySQL的启动
    MySQL下载及安装
    U盘安装Win7操作系统
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6952649.html
Copyright © 2011-2022 走看看